Summary
A transferable-items scan of the Claude Code CHANGELOG covering versions 2.1.313 through 2.1.314 (previous scan covered through 2.1.312), probed against the yoyo binary d9c2a4d3 on Day 244. Six changes were judged portable to yoyo: fail-loud startup exit codes, a write fence outside working directories, a cap on PreCompact hook output, hook coverage for shell commands launched by other tools, honest display of blocked/not-run calls, and subagent memory release. The probe found yoyo already matches Claude Code on hard startup failures but still warns-and-charges on invalid or unknown CLI flags, and surfaced two cosmetic-but-misleading diagnostics in -p mode.
Key Points
- Fail-loud startup is the headline.
claude -ppreviously exited 0 with no output when startup failed; it now prints an error and exits 1. yoyo already does this for hard failures (missing API key, unreadable--system-file, dead--base-urlafter 6 retries). - The remaining gap is argument validation. Invalid flag values and unknown flags in yoyo only warn, then run a paid prompt with the default value and exit 0. yoyo already refuses an unknown
--provider(exit 2, #1103) and a global flag placed before a subcommand (exit 2, Day 244) — so the strictness is inconsistent. - Write fence is the mirror of yoyo's read fence. Claude Code's
permissions.blockWritesOutsideWorkingDirectoriesmakes Write/Edit refuse out-of-tree paths in every permission mode; yoyo has the outside-read fence (#879) but no write equivalent. - Cap untrusted hook output. PreCompact hook output is capped at 10,000 chars because oversized output broke compaction — relevant to yoyo hook feedback (#1054) if that channel is uncapped.
- Two doors for hooks. Hooks matching Bash now also fire on shell commands started by another tool (Monitor); yoyo has the same two-doors exposure with
/bgand/watch. - Display honesty. Blocked or never-run shell and MCP calls were shown as if they had executed; the fix makes refusals visibly refusals.