v4.1.8
What's New
Audit-review convergence detection (#682)
The audit-review retry loop now detects when the coder cannot fix a class of finding and short-circuits instead of burning budget. Three changes:
- Default retries reduced from 2 to 1 — the second retry almost never fixes what the first didn't
- Convergence detection — if ≥70% of injected findings persist after a retry, further retries are skipped
- Retry history surfaced to the reviewer — the reviewer sees which findings the coder tried and failed to fix, enabling informed severity decisions
Gate archetype for checkpoint task groups (#680)
Task groups with kind: checkpoint now use the lightweight "gate" archetype (30 turns, no thinking) instead of a full coder session (300 turns, adaptive thinking). Saves ~$3-7 per checkpoint group. The kind field is now propagated from afspec's TaskGroup model through TaskGroupDef into the graph builder.
Output effort level per archetype (#686)
Added effort (low/medium/high/xhigh/max) as a per-archetype config knob, mapped to the Claude API's output_config.effort. Per-archetype defaults: coder=xhigh, reviewer=high, verifier=high, curator=medium, gate=low, maintainer=medium. Configurable via [archetypes.overrides.<name>] in config.toml.
Deprecated thinking config removed (#683)
Removed thinking_mode="enabled", budget_tokens, and the unused ThinkingConfig class. These caused 400 errors on Opus 4.7+ and Sonnet 5. resolve_thinking() now returns {"type": "adaptive"} or None.
Other
- feat: add af-prd skill for iterative PRD authoring