assist v0.220.1
assist review handles missing codex CLI
assist review was crashing with an unhandled ENOENT when the codex CLI wasn’t on PATH — not a friendly experience for a tool that’s only useful if both reviewers can be spawned. Added ensureCodexAvailable that checks for codex, and on miss prompts the user to npm install -g @openai/codex. If they decline (or the install fails), the run continues with the Claude reviewer alone instead of falling over. The codex result slot is populated with a “skipped” stub so the synthesis stage doesn’t need a special case for “one reviewer was absent”.
While I was in there I broke the reviewer plumbing into smaller pieces — planCodexReviewer, resolveClaude/resolveCodex, runAndSynthesise, waitForChildExit, handleSpawnError — so the run-streaming code stops being one giant function. runReviewers.ts shrank by about 40 lines and the spawn-error path is now in one place instead of three.