What's Changed
Bug Fixes
- listTaskStates resilience: corrupt state files no longer crash the entire listing — uses
Promise.allSettledto skip malformed entries gracefully - validateImplementerResult hardening: rejects non-string elements in
files_changedandconcernsarrays
Improvements
- Auto-scaffold config:
.claude/codex-defaults.jsonis automatically created with sensible defaults on first MCP tool call per workspace - Doctor testability: extracted
assertWritableStateDirandrunDoctorChecksas exported functions with dependency injection
Tests
- 5 new tests (160 total): malformed state resilience, array element validation, doctor state-dir checks, config scaffolding
Full Changelog: v0.4.0...v0.4.1