Files
Codex Local 2beaaf6179 fix: atomic composition saves + deep audit P0/P1 fixes
Deep audit 2026-03-26 (10 findings, 4 fixes):
- FINDING-1 P0: saveComposition async + atomic write (tmp+rename) — prevents partial JSON on concurrent saves
- FINDING-2 P0: MAX_COMPOSITIONS (500), MAX_COMPOSITION_BYTES (512KB), MAX_TRACKS_PER_COMPOSITION (100) env-configurable
- FINDING-3 P1: ttsQueues self-cleans via .finally() after chain drains
- FINDING-4 P1: personaMemoryLocks reset to Promise.resolve() in .finally() — prevents unbounded chain growth
- lot-204: docs/LOT204_TRAINING_SPIKE.md (OpenCharacter + PCL, GO verdict, 4 sub-lots, RTX 4090 sufficient)
- lot-30: docs/LOT030_TTS_EVALUATION.md (Pocket TTS: watch — EN-only blocker, FR planned, no date)
- docs/DEEP_AUDIT_2026-03-26.md: 10 findings P0-P2 catalogued

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-26 11:43:26 +01:00
..