Skip to content

v1.11.1

Choose a tag to compare

@infinri infinri released this 30 Sep 19:24
· 38 commits to main since this release

On a plugin install, Writ now dispatches the agent types Claude Code actually registers (writ:writ-<role>), and records reviewer verdicts again. Before this, every generic dispatch the hook rerouted failed with "Agent type 'writ-explorer' not found", and the review commit gate was silently off.

Fixed

  • Dispatch names match the install. The dispatch-discipline hook rewrote generic dispatches to bare writ-<role>, which exists only when bootstrap.sh links the roles into ~/.claude/agents. It now emits the bare name when that file exists and writ:writ-<role> otherwise; the rewrite context, the deny reason and the auto-route announcements name the same type.
  • Reviewer verdicts are recorded on plugin installs. resolve_role passed writ:writ-reviewer through unchanged, so the SubagentStop hook never recognised the reviewer. It now strips one leading writ: from the envelope, sidecar and cached type, so the stop hook, gates, cache and role lookup see the bare role. get_subagent_role strips it too.
  • Hook tests are hermetic under Claude Code. A suite run from a session inherited the installed plugin's CLAUDE_PLUGIN_ROOT, so the working-tree hooks sourced the installed copy's libraries. conftest.py now clears it.