v0.7.1 — Adversarial-review hardening
A bug-fix release hardening forge against the HIGH-tier and corruption-class findings from a six-agent adversarial review of the whole codebase.
Fixes
- Stream parsers no longer crash on hostile frames — a non-object JSON frame (
{"message": null}, a bare number/array/string) or a non-stringcontentpreviously raised an uncaught error that killed the turn or silently truncated the stream. - Anchored edits can no longer silently delete lines —
end_lineis now validated against the range actually read, and a blank anchor matches only a truly identical line. - TRUST daemon no longer permanently suppresses a done-claim after a transient verify timeout/error (the claim is marked seen only after a verdict is produced).
- Verify subprocess is bounded and group-killed on timeout, so it can't abort the tick or orphan the real test process.
- A bad paste no longer quits the REPL — an undecodable stdin byte is skipped instead of being read as EOF.
- Writes are atomic (temp-file +
os.replace, mode-preserving) so a mid-write failure can't truncate the original file. - Plus: paths-with-spaces handling, unreadable-store resilience, concurrent-passport-write safety, and cleaner error surfacing.
Stdlib-only, zero runtime deps. 415 tests green.