v0.5.0 — cursor coding-agent backend
Adds a third coding-agent backend, cursor, alongside pi and claude_code. It drives Cursor's models through the cursor-agent CLI (cursor-agent login — no API key), proxying Anthropic/OpenAI/Grok/Kimi/Composer under one subscription, behind the same run(...) -> PiResult seam.
Highlights
coding_agent: cursorwith thecursor/model namespace (cursor/auto,cursor/claude-opus-4-8-thinking-high).- Own subprocess + tailed NDJSON like
pi; tool events re-emitted in pi's shape likeagent_cc.agents.execute()is unchanged. - System prompt carried in the prompt (no
--system-promptflag), composed only on the first send; resumed correction sends carry bare task text. anthropic/*still always routes toclaude_code, even over an explicitcoding_agent: cursor.
Bounded degradations (documented)
- No dollar cost — Cursor bills by subscription;
costis always$0(tokens exact). - Inert context-window valve — usage is terminal-only, so a cursor builder relies on the cooperative handoff;
execute()notes this at any cursor build phase.
Quality
Validated end-to-end (scout + builder ADWs). Hardened after a high-effort code review (stderr pipe-deadlock fix, system-prompt re-embed fix, dispatch + resume unit tests). just test green: engine pytest 168 · cockpit vitest 72 · roster-mirror + schema parity · typecheck.
Default roster unchanged — sssf.config.yaml ships a commented cursor exemplar only.
PR #40.