Skip to content

fix(hermes): quarantine replaced session generations - #121

Merged
galligan merged 4 commits into
mainfrom
dis-86-harden-hermes-recovery-replay-limits-and-attention-states
Sep 13, 2026
Merged

galligan merged 4 commits into
mainfrom
dis-86-harden-hermes-recovery-replay-limits-and-attention-states

Conversation

@galligan

@galligan galligan commented Sep 12, 2026

Copy link
Copy Markdown
Contributor

Context

When a Hermes worker generation is replaced, previously admitted lanes and ambiguous native evidence must not be reused as though continuity were proven. New work should remain available on the new generation while old lanes fail closed.

What changed

  • Durably quarantines every existing or unprovable Hermes lane before a replacement generation becomes ready.
  • Preserves frozen launch, receipt, native identity, and pending-attention evidence while allowing unrelated new lanes on generation two.
  • Keeps exact replay local and blocks fresh work on quarantined lanes before reservation or provider I/O.
  • Preserves unknown lost acknowledgements and prevents terminal-looking activity, EOF, or partial history from repairing them.
  • Makes lane-scoped quarantine discoverable through existing reads with bounded typed hold information and suppresses send capability for quarantined lanes.
  • Verifies owned worker cleanup ordering: close, observer drain, then unavailable state.

Verification

  • just check passed twice for the implementation state: Ruff, formatting, strict mypy, wheel and sdist builds, and package-content validation; the current stack-tip run passed 1,345 tests with 17 live tests deselected.
  • Focused changed-area suite passed 58 tests.
  • Independent final review scored 5/5 with zero P0–P2 findings.
  • Final exact-head composed-stack review at 7e5d6ba is clean at 5/5 with zero P0–P3 findings; adversarial supervisor coverage exercised all 27 immediate and 12 delayed recovery/closure outcome combinations.
  • Hosted current-head check and Bootstrap smoke (macOS) are successful.

Risks and boundaries

Old-generation receipt settlement remains intentionally unchanged. This does not add delayed-evidence recovery, native history lookup, ordinary resume, transport fallback, or active attention controls. The local native correlation patch remains unpublished. The stack remains ready for review and unmerged.

Closes: DIS-86

@linear-code

linear-code Bot commented Sep 12, 2026

Copy link
Copy Markdown

DIS-86

@galligan
galligan force-pushed the dis-85-add-the-hermes-adapter-and-prove-two-coherent-local-turns branch from 6427320 to 5f34fbd Compare September 13, 2026 18:20
@galligan
galligan force-pushed the dis-86-harden-hermes-recovery-replay-limits-and-attention-states branch from 041f86d to 713942d Compare September 13, 2026 18:20
@galligan
galligan marked this pull request as ready for review September 13, 2026 19:28
@cursor

cursor Bot commented Sep 13, 2026

Copy link
Copy Markdown

PR Summary

High Risk
Changes Hermes session continuity, delivery submission gates, and daemon ready-path behavior; mistakes could block writes or mishandle ambiguous receipts after gateway restarts.

Overview
Hermes gateway generation changes now durably quarantine every owned lane tied to an older or unprovable generation before the replacement binding is marked ready, instead of leaving the provider manager in a binding-wide quarantined state. Quarantined lanes keep local replay and receipts but block new reservations and provider I/O; runtime holds surface through writable, capabilities, and a bounded attention view on dispatch show / roster reads.

Delivery recovery for Hermes re-validates route and frozen generation before claiming a reserved delivery, and claim_delivery refuses Hermes lanes with an active runtime attention hold. Docs expand idempotent plain-text send on owned Hermes threads plus creation/delivery acknowledgment, unknown-outcome, and attention-hold behavior.

Reviewed by Cursor Bugbot for commit 4346d33. Configure here.

@cursor

cursor Bot commented Sep 13, 2026

Copy link
Copy Markdown

Bugbot couldn't run - usage limit reached

Bugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit.

A user or team admin can review and increase usage limits in the Cursor dashboard.

(requestId: serverGenReqId_6eecf4af-ae8a-4047-b126-1927babb7ce9)

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 13, 2026

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review Completed 2026-09-13T22:09:15.436612Z d2881c9 Manual request
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 713942d54f

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/outfitter/dispatch/core/handlers.py
Comment thread src/outfitter/dispatch/core/handlers.py
@galligan
galligan force-pushed the dis-86-harden-hermes-recovery-replay-limits-and-attention-states branch from 713942d to d8c5099 Compare September 13, 2026 20:33
@galligan
galligan force-pushed the dis-85-add-the-hermes-adapter-and-prove-two-coherent-local-turns branch from 5f34fbd to 229dde7 Compare September 13, 2026 20:33
@cursor

cursor Bot commented Sep 13, 2026

Copy link
Copy Markdown

Bugbot couldn't run - usage limit reached

Bugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit.

A user or team admin can review and increase usage limits in the Cursor dashboard.

(requestId: serverGenReqId_67abf6af-8d15-4cee-b54e-a9888ad86edc)

@galligan
galligan force-pushed the dis-86-harden-hermes-recovery-replay-limits-and-attention-states branch from d8c5099 to edd7364 Compare September 13, 2026 20:37
@galligan
galligan force-pushed the dis-85-add-the-hermes-adapter-and-prove-two-coherent-local-turns branch from 229dde7 to 91a05d0 Compare September 13, 2026 20:37
@galligan

Copy link
Copy Markdown
Contributor Author

@codex review

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: edd7364edb

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/outfitter/dispatch/daemon/host.py
@galligan
galligan force-pushed the dis-85-add-the-hermes-adapter-and-prove-two-coherent-local-turns branch from 91a05d0 to c9b25d5 Compare September 13, 2026 20:48
@galligan
galligan force-pushed the dis-86-harden-hermes-recovery-replay-limits-and-attention-states branch from edd7364 to d7fd240 Compare September 13, 2026 20:48
@galligan

Copy link
Copy Markdown
Contributor Author

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Bravo.

Reviewed commit: d7fd240662

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@galligan
galligan force-pushed the dis-86-harden-hermes-recovery-replay-limits-and-attention-states branch from d7fd240 to d2881c9 Compare September 13, 2026 22:02
@galligan
galligan force-pushed the dis-85-add-the-hermes-adapter-and-prove-two-coherent-local-turns branch from c9b25d5 to a70595a Compare September 13, 2026 22:02
@cursor

cursor Bot commented Sep 13, 2026

Copy link
Copy Markdown

Bugbot couldn't run - usage limit reached

Bugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit.

A user or team admin can review and increase usage limits in the Cursor dashboard.

(requestId: serverGenReqId_bd79fcd8-1b01-4904-9c45-67cff52cafa2)

@galligan

Copy link
Copy Markdown
Contributor Author

@codex review

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: d2881c9fc7

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/outfitter/dispatch/core/handlers.py
@galligan
galligan force-pushed the dis-85-add-the-hermes-adapter-and-prove-two-coherent-local-turns branch from a70595a to 946851b Compare September 13, 2026 22:32
@galligan
galligan force-pushed the dis-86-harden-hermes-recovery-replay-limits-and-attention-states branch from d2881c9 to 4d252a0 Compare September 13, 2026 22:32
@galligan
galligan force-pushed the dis-85-add-the-hermes-adapter-and-prove-two-coherent-local-turns branch from 946851b to 9e1a29f Compare September 13, 2026 22:50
@galligan
galligan force-pushed the dis-86-harden-hermes-recovery-replay-limits-and-attention-states branch from 4d252a0 to 15e4580 Compare September 13, 2026 22:50

galligan commented Sep 13, 2026

Copy link
Copy Markdown
Contributor Author

Merge activity

  • Sep 13, 11:23 PM UTC: A user started a stack merge that includes this pull request via Graphite.
  • Sep 13, 11:44 PM UTC: Graphite rebased this pull request as part of a merge.
  • Sep 13, 11:44 PM UTC: @galligan merged this pull request with Graphite.

@galligan
galligan changed the base branch from dis-85-add-the-hermes-adapter-and-prove-two-coherent-local-turns to graphite-base/121 September 13, 2026 23:41
@galligan
galligan changed the base branch from graphite-base/121 to main September 13, 2026 23:42
@galligan
galligan force-pushed the dis-86-harden-hermes-recovery-replay-limits-and-attention-states branch from 15e4580 to 4346d33 Compare September 13, 2026 23:43
@cursor

cursor Bot commented Sep 13, 2026

Copy link
Copy Markdown

Bugbot couldn't run - usage limit reached

Bugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit.

A user or team admin can review and increase usage limits in the Cursor dashboard.

(requestId: serverGenReqId_4553a98b-cd8b-4969-b154-985a9ba73bc3)

@galligan
galligan merged commit c2c518f into main Sep 13, 2026
9 checks passed
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