v3 targets long running agentic runs on strong models (Opus 4.8, Fable 5, GPT 5.5 class). Everything new is opt-in. With no mode marker on disk the hooks produce byte identical v2.43.0 output, verified by diffing the old inline hook commands against the new dispatcher on the same fixtures. Existing workflows need no changes.
Autonomous mode
init-session.sh --autonomous keeps the turn start plan injection and drops the per tool call re-injection that the v2.21 eval measured as a 68 percent token tax. The plan file on disk stays the source of truth. Recitation is reduced, not removed: published evidence on goal drift in long runs still supports one injection per turn.
Gated mode
init-session.sh --gated adds a deliberate completion gate on the Stop hook. The gate blocks a stop only when all five conditions hold: the plan opted into gated mode, a phase is in_progress, stop_hook_active is false, the block count is under the cap (default 20, PWF_GATE_CAP to override, reset at init), and the run ledger advanced since the previous block. Any single failure lets the stop through. An incomplete plan alone never blocks a session, which is the design lesson from issue #178.
Run ledger
Workers append one JSON line per event to a per agent ledger file. The injected context becomes a fixed shape synthesized summary instead of a raw progress.md tail: no free text from disk, no timestamps, stable for the host prompt cache. New scripts: ledger-append, ledger-summary, phase-status (sh and ps1), shipped in both scripts/ locations.
Security
v3 modes refuse to inject an unattested plan body, and attestation is on by default at init. Per session nonce delimiters replace the static markers. The SHA cache moved from the shared /tmp to the user private XDG cache path. Realpath containment in the plan dir resolver rejects symlinked plan directories that escape the project root.
Migration
MIGRATION.md gains a v2 to v3 section with host capability tiers (hard block: Claude Code, Codex CLI, Continue.dev; follow-up inject: Cursor, Pi, Kiro; notify only: OpenCode, Gemini CLI). New template templates/task_plan_autonomous.md with DependsOn, Owner, and AcceptanceCheck fields. Suite at 178 passed.
Full details in the CHANGELOG.