v2.5.29 β AGY workspace fix + heading-only plans + quick-unblock hint
What's new in v2.5.29
Fixes the AGY false "Planning Gate Blocked" deadlock + accepts heading-only plans + quick-unblock hint.
π Fix: AGY plugin-hook workspace path mismatch (the real deadlock)
AGY runs plugin hooks with cwd = the plugin directory, not the project root β so the planning gate looked for .agents/plan/current.md in the wrong place and blocked every source edit even with a valid plan on disk.
matcha-agy-hooks.jsnow readsevent.workspacePaths(AGY sends it in every hook event β confirmed from AGY's official hooks.md) and passes it as the workspace root.planning-gate.jsresolves intensity + plan path from that cwd instead ofprocess.cwd().- AGY's
Createtool now maps towrite_to_file(plan writes via Create stay exempt, source writes stay gated).
π Fix: heading-only plans no longer rejected
validateMarkdownPlan required a colon (**Problem:**) β the field report found valid heading-style plans (## Problem on its own line) were rejected. Both styles now work:
## Problem\n<text>(heading, no colon) β## Problem: <text>(heading + colon) β- **Problem:** <text>(bullet, existing) β
β DX: quick-unblock hint in deny messages
Both deny messages (no-plan + invalid-plan) now tell the agent exactly what to do:
β Writing to
.agents/plan/current.mdis ALWAYS allowed β create the plan there now via Edit/WriteFile.
π‘ Run/matcha:intensity observeto bypass the gate (switch back with/matcha:intensity enforce).
β Validation
- 602/602 tests pass (8 new regression tests) Β· copies consistent across all providers (Claude Code, opencode, AGY, universal)
- All 6 agents remain pure subagents everywhere Β· commands + MCP config verified on every provider
π Full field-report verdict (AGY v2.5.27 evaluation)
- 1.1 workspace mismatch β fixed here (CRITICAL)
- 1.2 strict parser β fixed here (heading-only now valid)
- 1.3 post-PASS block on git commit/bun test β already safe (simple-task auto-skip, verified)
- 2.1 cleaner read-only β not applicable (cleaner already has edit: allow, verified)
- 2.2 subagent auto-pass metadata β rejected by design (would weaken the gate)
- 3.1 auto-inject trivial plan β rejected by design (fast-path already exists)
- 3.2 better error message β done (hint + always-allowed note)