Skip to content

feat(hermes): add operator diagnostics and package proof - #122

Merged
galligan merged 5 commits into
mainfrom
dis-88-finish-hermes-operator-docs-diagnostics-and-package
Sep 13, 2026
Merged

galligan merged 5 commits into
mainfrom
dis-88-finish-hermes-operator-docs-diagnostics-and-package

Conversation

@galligan

@galligan galligan commented Sep 12, 2026

Copy link
Copy Markdown
Contributor

Context

Operators need static configuration diagnostics, live readiness detail, installed guidance, and a reproducible package-level proof before the Hermes path can be evaluated as a release candidate.

What changed

  • Adds a static doctor check that validates optional Hermes interpreter and source layout without starting Hermes, while distinguishing configuration from negotiated readiness.
  • Reports sorted provider actions and three durability axes in daemon status.
  • Documents configuration, owned lifecycle, generation quarantine, replay and conflict behavior, attention holds, and the required gateway capabilities; stock Hermes remains explicitly unsupported.
  • Packages the Dispatch and DM skills, plugin metadata, and exactly four operator documents with installed-link validation.
  • Adds an opt-in installed-wheel smoke covering CLI launch, MCP follow-up, correlated receipts, transcript continuity, exact replay with zero resubmissions, changed-intent conflict, status diagnostics, installed assets, and owned-process cleanup.
  • Bounds mcp to <2 to retain the Server.list_tools API used by Dispatch after a clean install selected an incompatible newer release.

Verification

  • just check passed Ruff, formatting, strict mypy, 1,345 tests with 17 live tests deselected, wheel and sdist builds, and package-content validation at the current stack tip.
  • The clean temporary wheel smoke passed with MCP 1.30.0; both owned processes stopped. The recorded wheel SHA-256 is 1f6d77ef9b53fa82054843a4fb9b5097e9973347565fd5d2b8466abd167b2862.
  • The adversarial installed-wheel smoke with ambient PYTHONPATH, PYTHONSTARTUP, and bogus VIRTUAL_ENV also passed and confirmed package resolution inside the temporary environment.
  • Independent 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

The synthetic smoke proves packaged code and Dispatch wire behavior. It does not prove native Hermes continuity, native model execution, or persistence across native restarts; those claims remain tied to retained native evidence and its stated limits. This slice does not publish a package, replace an installed runtime, or activate Hermes configuration. The stack remains ready for review and unmerged.

Closes: DIS-88

@linear-code

linear-code Bot commented Sep 12, 2026

Copy link
Copy Markdown

DIS-88

@galligan
galligan force-pushed the dis-88-finish-hermes-operator-docs-diagnostics-and-package branch from 8311d8c to ca2b9fc 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

Low Risk
Mostly documentation, packaging, and additive diagnostics; the MCP upper bound and new smoke script reduce install/regression risk rather than changing core execution paths for existing Codex users.

Overview
DIS-88 adds operator-facing Hermes diagnostics, packaged guidance, and reproducible proof that an installed wheel can run Hermes-shaped CLI/MCP flows—without claiming stock Hermes is production-ready.

dispatch doctor gains a hermes_binding check that statically validates optional [providers.hermes] paths and required capabilities (prompt_submit_if_idle_v1, prompt_turn_correlation_v1) without starting the gateway; live readiness stays on dispatch daemon status --json, which now exposes supported_actions and a durability view per provider binding.

Operator docs, skills, plugin README, ADR/plan/retro, and delivery contracts are updated to document --provider hermes, owned stdio sessions, keyed replay/conflict, generation quarantine, and explicit refusal of durable sends on stock 939e45c/0.21.2. pyproject.toml force-includes four operator markdown files in the wheel/sdist; package-content checks enforce them. mcp is capped at <2 so clean installs keep a compatible MCP API.

An opt-in scripts/check_hermes_package_smoke.py (with a synthetic gateway fixture) builds/installs a wheel in isolation and asserts doctor behavior, packaged assets/link resolution, two correlated CLI/MCP turns, receipt replay, delivery_conflict, and process cleanup.

Reviewed by Cursor Bugbot for commit 0c6037f. 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_7de464af-cce6-40d9-bca0-477efa2ed7e4)

@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:08:37.627429Z 7e5d6ba 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: ca2b9fcd00

ℹ️ 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 scripts/check_hermes_package_smoke.py Outdated
@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-88-finish-hermes-operator-docs-diagnostics-and-package branch from ca2b9fc to 9f7948c 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_fa0b0d3b-5df8-430e-a3f6-dfeba46fa3e8)

@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-88-finish-hermes-operator-docs-diagnostics-and-package branch from 9f7948c to 3a99d6b 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: 3a99d6b474

ℹ️ 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 Outdated
Comment thread scripts/check_hermes_package_smoke.py
Comment thread README.md
@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
galligan force-pushed the dis-88-finish-hermes-operator-docs-diagnostics-and-package branch from 3a99d6b to 36eee55 Compare September 13, 2026 20:48
@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: 36eee55be8

ℹ️ 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 scripts/check_hermes_package_smoke.py Outdated
Comment thread scripts/check_hermes_package_smoke.py Outdated
Comment thread pyproject.toml
@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-88-finish-hermes-operator-docs-diagnostics-and-package branch from 36eee55 to 7e5d6ba 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_e75e57b2-9f3c-40da-9fda-61e9ee38a631)

@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: 7e5d6ba746

ℹ️ 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 scripts/check_hermes_package_smoke.py Outdated
@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-88-finish-hermes-operator-docs-diagnostics-and-package branch from 7e5d6ba to 1b82b33 Compare September 13, 2026 22:32
@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
galligan force-pushed the dis-88-finish-hermes-operator-docs-diagnostics-and-package branch from 1b82b33 to 380d4a8 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:46 PM UTC: Graphite rebased this pull request as part of a merge.
  • Sep 13, 11:46 PM UTC: @galligan merged this pull request with Graphite.

@galligan
galligan changed the base branch from dis-86-harden-hermes-recovery-replay-limits-and-attention-states to graphite-base/122 September 13, 2026 23:43
@galligan
galligan changed the base branch from graphite-base/122 to main September 13, 2026 23:44
@galligan
galligan force-pushed the dis-88-finish-hermes-operator-docs-diagnostics-and-package branch from 380d4a8 to 0c6037f Compare September 13, 2026 23:45
@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_3ce1dc89-1fe4-437e-9726-acb8e0314742)

@galligan
galligan merged commit e734dac into main Sep 13, 2026
9 checks passed
galligan added a commit that referenced this pull request Sep 14, 2026
## Context

`main` at e734dac carries the full stations/providers stack (#111#122) on top of 0.12.0 with no published release. Releases are cut by CI only when `pyproject.toml` carries an untagged version, so this PR is the bump.

## What changed

- `pyproject.toml`: 0.12.0 → 0.13.0
- `uv.lock`: project version line only

No code changes. When this merges, main CI tags `v0.13.0`, creates the GitHub Release, and dispatches the PyPI publish workflow.

## Since v0.12.0

Provider-binding identity (schema v24), guarded binding-qualified routing, frozen provider requests (v25), correlated receipt observations (v26), independent provider startup/recovery, the Hermes local adapter with `lane_launches` (v27) and generation quarantine, operator diagnostics, packaged skills/docs, and the installed-wheel smoke. Registry schema moves 23 → 29; the release notes carry the migrate-before-start upgrade step.

## Verification

- `just check` on this branch: ruff, format, `mypy --strict`, 1,367 tests (17 live tests deselected), wheel/sdist build reporting 0.13.0, package-content check.
- `just release-status` reports `create GitHub Release v0.13.0`.

Refs: DIS-96
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