Repository navigation
The 1.1 spec is unchanged. This release fixes a bug in the Dispatch freshness gate that blocked an install's architect mid-session, twice.
What went wrong
The §6.2 gate checks the Dispatch once per session, then leaves a latch so later prompts pass. stop-cleanup released that latch on Claude Code's Stop event, on the assumption that Stop means the session ended. It doesn't: Stop fires at the end of every turn. So the gate re-ran before every prompt, and once the lanes had made more than three commits it blocked the architect, the one role whose job is to keep the Dispatch current. The workaround was ADP_DISPATCH_STALE_OK=1.
Fixed in this release
- Latch released on
SessionEnd. A newsession-end-latchhook (bash and Node) is wired in bothsettings.jsonandsettings.node.json.stop-cleanupkeeps worktree pruning and wire sync only. The gate itself is unchanged: every new session is still checked against a fresh Dispatch. - A fresh install no longer blocks its first prompt. The installer copied the template's
docs/tasks/current.mdwith the template's original date, so the gate's 24h check tripped immediately. The installers now stamp a newly added Dispatch with the install time. verify-hookschecks that the latch is released at SessionEnd, anduninstallremoves the new hook.
Upgrading
init --upgrade replaces the hook scripts but never edits your settings.json. If the ADP hooks are wired without a SessionEnd entry, the installer prints a note: copy that block from .claude/settings.json (bash) or .claude/settings.node.json (Node). Until you do, the gate still runs once per session.
Preprint: doi:10.5281/zenodo.21982389