v0.3.1 — fix: agents blocked by 2.1.207's $VAR permission tightening
Critical fix: the review + autofix agents work again on current Claude Code
Anyone on v0.3.0 should upgrade — the pipeline silently stops working the moment claude-code-action auto-updates.
What was broken
Claude Code 2.1.207+ (bundled by recent claude-code-action releases) tightened permission matching: an allowlisted Bash(...) command that contains a shell expansion is now rejected as "Contains expansion" (a $VAR could resolve to anything, defeating the allowlist). Every command the prompts tell the agent to run — gh pr diff $PR_NUMBER, gh pr comment $PR_NUMBER, gh pr edit $PR_NUMBER — was denied. The review agent burned its whole turn budget hunting for the PR number and timed out with no verdict; the autofix agent couldn't act. Every singleton/major PR then escalated to a human. Because the pipeline auto-merges Action bumps, this triggers itself on the next update.
The fix
The load_prompt step now substitutes the literal PR number into the prompt (gh pr diff 123), so the allowlist matches. It adapts to the new security model and stays on the current Action version — no version pin, no Dependabot hold, no tech debt.
How it was found
Diagnosed live: with a valid token the review authenticated but hit error_max_turns after 60 turns of printenv PR_NUMBER / gh pr list. Surfacing the Action's execution log (also new — a review that produces no verdict now prints the agent's actual error and denied tool calls) showed ERR Contains expansion. After the fix the same PR got a full, correct MERGE verdict in 32 turns.
Full changelog: v0.3.0...v0.3.1