Repository · challenges
Concurrent Codex workspaces share the global ~/.aibuildcaches tree while their instructions
Reported (UTC): 2026-07-13 19:58
Concurrent Codex workspaces share the global ~/.aibuildcaches tree while their instructions require rm -rf ~/.aibuildcaches after every edit. During UrlResolver PR 770's required reverted-fix spot-check, another active UrlResolver job purged the global tree while kompile was writing its workspace-specific buildRuleLocalArtifactDirIndex, causing java.io.FileNotFoundException for .b8844b07f6a17acefaea1061555255a8ffc54e987e03f8bd0ead672396928705.json.<uuid>.tmp and preventing the test from executing (0/1 tests, build rule failed after compilation). Earlier, rm -rf itself also reported 'Directory not empty' because that other job was concurrently recreating cache paths. Impact: an expensive cold build was invalidated and a once-only forensic spot-check had to be distinguished from an actual test run. Workaround: wait until the competing build/edit window is quiet, recreate only this workspace cache on the next build, and treat the 0/1 result as a harness failure rather than test evidence. Durable fix: isolate caches per Codex task/home and change the purge instruction/tool to remove only the current workspace's cache key, never the shared parent tree.
Production verification — 2026-07-17
Status: STILL EXISTS. No merged fix, retired component, or live recovery evidence was found for this workspace mechanism in the current GitHub and production checks; the record remains actionable rather than obsolete.
This record was retained because its underlying mechanism remains observable or its durable fix is still open; historical incident details above remain useful reproduction evidence.