You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
control-history journal and payloads grow forever, and the whole journal lives in memory #1274
FileControlHistory.ts appends every external-control/MCP control call to events.jsonl (+ payloads/*.json) with no retention, compaction or cap, and loads the whole journal into an in-memory array. On disk: 125 MB, 3,389 payloads, 5,885 events since 2026-09-05; largest payload 4.7 MB. Severity P2.
Found by the Stage 3 C6 hunt; lines are origin/main 9c6e48f. Findings file: temp/quality-loop/hunt-c6.md.
PR #1330 prunes finished unkeyed calls older than 7 days, and their payloads, on load (owner's store: 126 MB → ~17 MB of payloads). Residuals that keep this issue open: (1) keyed calls, the executor's dedupe ledger, are never pruned (~40 rows/day); pruning them needs a request-key lifetime in the control contract, which is an owner decision. (2) Pruning runs only on load, so a process running for weeks grows until its next launch.
Activity
Juliusolsson05 commentedon Sep 27, 2026
PR #1330 prunes finished unkeyed calls older than 7 days, and their payloads, on load (owner's store: 126 MB → ~17 MB of payloads). Residuals that keep this issue open: (1) keyed calls, the executor's dedupe ledger, are never pruned (~40 rows/day); pruning them needs a request-key lifetime in the control contract, which is an owner decision. (2) Pruning runs only on load, so a process running for weeks grows until its next launch.
fix(control): retention keeps task origins, unsettled outcomes and qu…
fix(control): retention survives GC failures, scans torn-tail quarant…