Skip to content

Restore identity-checked Herdr handoff retirement - #2156

Draft
shatianming5 wants to merge 1 commit into
ThomasMichon:mainfrom
shatianming5:fix/herdr-handoff-retirement
Draft

shatianming5 wants to merge 1 commit into
ThomasMichon:mainfrom
shatianming5:fix/herdr-handoff-retirement

Conversation

@shatianming5

Copy link
Copy Markdown

Problem

Herdr-produced handoffs can reach mux-only consumers, leaving valid predecessor panes alive. Duplicate direct/marketplace installations also race for the same tool names. Refs #2155; follows the transport request in #1584 with consume-driven retirement.

Method

Add a bounded Herdr adapter to the shared core for checkout-local storage, predecessor identity capture, explicit-permission seeded launch, and exact retirement after consumption. Reuse existing file locks and retirement checkpoints; preserve mux behavior. Document single-provider selection. This closes the hosting vision acknowledgement/retirement safety gap; generalized provider discovery remains outside this narrow recovery patch and needs maintainer architectural review before merge.

Progress

  • Shared core, extension and CLI integrated
  • Plugin/catalog version bumped to 0.1.1-dev4
  • Focused mocked regression passed
  • Upstream review and merge

Evidence

Source regression was red before implementation. Core, CLI parity, locator and Herdr tests: 56 passed, 1 Windows-only skip. Tests cover stale foreground cwd, null agent name, terminal/session reuse, current-successor preservation, one-time consume, checkpoint retry, exact stop targeting and one seeded launch with explicit permission mode. No live panes were launched or stopped.

Blockers

Draft pending upstream review; no write/merge permission on upstream.

Capture checkout-local Herdr identity and retire only after successful consumption. Keep mux behavior and document single-provider registration. References ThomasMichon#2155.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
ThomasMichon added a commit that referenced this pull request Sep 10, 2026
… start, not full pickup (#2346)

Follow-up to #2344. That fix correctly added the earlier spawn-in-flight
signal, but also raised the wait ceiling to 120s under the assumption a
longer wait was needed. It wasn't: the design intent was always to wait up
to 30s for the CUTOVER to START (the status-monitor's handoff_cutover_spawn
marker, observed at ~10-25s), never to block for the successor to fully
finish cold-starting and consume the handoff -- that part legitimately
takes 40-90s+ and isn't worth a predecessor blocking on. Reverted waitMs's
default to 30000 and reworded the tool description / README / SKILL docs to
say so explicitly.

Also confirmed (grep audit) context-handoff itself remains fully free of
any mux/tmux/psmux/Herdr checks -- the only remaining mentions are the
guidance test's negative assertions and the docs' explicit 'we don't do
this' statements, both intentional. The upstream Herdr-coupling PRs (#1585,
#2156) remain open per the operator's call to discuss with their author
directly rather than close them here.

Full suite: node --test tests -> 66 tests, 64 passed/2 skipped/0 failed;
tools/run-plugin-tests.py context-handoff -> 27 passed/4 skipped. Version
bumped to 0.1.1-dev12.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
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