v1.0.6 — Gauntlet Hardening
Perseus v1.0.6 — Gauntlet Hardening
This release fixes 5 bugs discovered during a full code review and gauntlet certification run of Perseus v1.0.5.
Fixes
task-92 — macOS ENOTEMPTY crash in Phase 0 cache clear
shutil.rmtree() raised OSError(66, 'Directory not empty') on macOS when cache files had extended attributes (@). Fixed with per-child deletion fallback.
task-93 — Four adversarial scenario bugs (A2/A3/A7/A10)
- A2/A3:
renders: Noneon skip → changed torenders: {}to preventAttributeErrorin post-processor - A7:
ValueErrorfromproc.communicate()afterproc.stdin.close()— now caught alongsideBrokenPipeError - A10:
context.mdwas created in cleanup (after render loop) — moved to before render loop
Note: max_bytes NameError fix (task-91) landed independently on main the same day via a parallel commit.
Gauntlet Results
- Smoke (10 devs/node): 90.0/100 — PASS (13/13 gates)
- CI: ✅ Python 3.10 / 3.11 / 3.12 — 750 tests passed