Skip to content

ci: validate PR 74379 integration at pinned upstream - #1

Closed
rhernaus wants to merge 1 commit into
ci/pr74379-base-470cf66from
ci/pr74379-phase2-06b373
Closed

ci: validate PR 74379 integration at pinned upstream#1
rhernaus wants to merge 1 commit into
ci/pr74379-base-470cf66from
ci/pr74379-phase2-06b373

Conversation

@rhernaus

@rhernaus rhernaus commented Aug 1, 2026

Copy link
Copy Markdown
Owner

Purpose

Temporary draft PR to run the existing GitHub Actions suite against the exact frozen integration of upstream PR NousResearch#74379. Not for merge.

Frozen identities

  • baseline: 470cf66b039c73bdd2c21d43094ce41a4db74eae
  • candidate: 06b373a7f0bc4013943fa339e9633a8f2befe04e
  • candidate tree: 3a59ca421678c98aa826b980d110f725f72db915
  • source patch SHA-256: b7f2c29c02817932a63e8186262efcee86389745525cb04cb00615ce9314b8c0
  • changed paths: 15, matching the frozen manifest exactly

The workflow files are inherited unchanged from the pinned baseline. The authoritative upstream baseline CI at this commit passed: https://github.com/NousResearch/hermes-agent/actions/runs/30698638847

@rhernaus rhernaus closed this Aug 1, 2026
@rhernaus rhernaus reopened this Aug 1, 2026
@rhernaus rhernaus closed this Aug 1, 2026
@rhernaus
rhernaus deleted the ci/pr74379-phase2-06b373 branch August 1, 2026 23:57
rhernaus pushed a commit that referenced this pull request Aug 4, 2026
Users following abbreviated links guess /docs/quickstart and
/docs/installation and hit raw GitHub-Pages 404s — the real pages live
under /docs/getting-started/. Add client redirects for both.

Consumer-onboarding audit finding #1, Aug 2026.
rhernaus pushed a commit that referenced this pull request Aug 4, 2026
The #1 patch failure class in production (state.db mining, 250k-window)
is a re-send of an edit that already landed: 'old_string and new_string
are identical' (299 occurrences) plus a share of hunk-not-found errors
where the new text is already in the file. These errored, sending
models into re-read/re-patch loops.

New tools/fuzzy_match.is_already_applied(content, old, new) — a
conservative check requiring (1) non-trivial new_string (>=8 chars),
(2) EXACT presence of new_string, (3) old_string gone (unless
identical). Wired into three sites:

- patch_replace (replace mode): returns success + no_change: true +
  an explicit note instead of the identical-strings / no-match error.
- V4A validation phase: an already-applied hunk validates as a no-op
  so multi-hunk patches no longer fail wholesale when one hunk landed
  in a prior call.
- V4A apply phase: mirrors the same skip so the two phases agree.

Genuine no-matches (new text absent) and half-applied renames (old
text still present) keep their error behavior — covered by tests.
rhernaus pushed a commit that referenced this pull request Aug 4, 2026
process(action='wait') hitting its window returned status='timeout'
with a terse note — models read it as an error and re-issued identical
waits (process is the #1 exact-duplicate tool call in production: 511
dupes in a 400k-msg window; wait is 57% of all process actions).

The timeout result now carries:
- process_running: true — machine-readable 'this is a status, not a
  failure'
- an explicit note: 'Wait window of Ns elapsed — the process is still
  running. This is not an error. Uptime: Ms.' plus the right next step:
  when notify_on_complete is set, 'you will be notified on exit — do
  more work instead of waiting again'; otherwise a pointer to
  notify_on_complete for next time.
- the clamp note (requested > max) now composes with the status note
  instead of replacing it.

Exited/interrupted results are unchanged.
rhernaus pushed a commit that referenced this pull request Aug 4, 2026
…e-review #1)

revoke_commit_admission() used to invoke the holder-qualified lease
release unconditionally — including while an admitted commit was still
mutating SessionDB — letting a second compressor acquire the durable
lock mid-commit and interleave with the first commit's writes.

The admission_revoked flag store stays lock-free, but the lease-release
decision now coordinates with the fence lock:
- revoke acquires the fence lock non-blocking; on success no commit can
  be in flight (an admitted commit retains the lock until finish_commit)
  and the release runs immediately, still under the lock so a racing
  begin_commit cannot slip between the check and the release.
- on failure the release is deferred: finish_commit() re-checks
  _admission_revoked and performs it AFTER the commit completes (prompt
  even if the worker thread is later parked), and the begin_commit
  refusal path does the same for a revoke that lost the race to a
  transient lock-setup/cancel boundary. All paths are idempotent with
  the worker's own outer cleanup (DB release is holder-qualified).

Invariant encoded + tested: no second compressor can acquire the durable
lock while an admitted commit is still mutating; after a post-revoke
commit finishes the lease is released promptly. Both regressions
(revoke-during-commit deferral, revoke-before-commit immediate release +
refused begin_commit) are sabotage-verified.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant