1.9 KiB
M13-04A Status
status: done
task: server job one-shot directory
updated: 2026-08-19 America/New_York
enablingTask: false
parityStateChange: false
Scope
The server-side job allocator creates an unpredictable 0700 directory below a configured absolute
root for each request. Directory names do not contain the request ID, two concurrent jobs receive
distinct directories, and successful or failed cleanup removes the directory exactly once. Repeated
cleanup is idempotent. This task does not claim read-only source mounts, process limits or Blender
execution.
Browser E2E is not applicable: this is a Node server filesystem boundary. The checker uses real
temporary directories and fs.stat/fs.rm calls.
Evidence
node --test web/tests/unit/server-job-isolation.test.mjspassed 2/2.npm --prefix web run test:server-job-directorypassed unit 2/2 and the independent checker.node tools/web/check-server-job-isolation.mjspassed:server-job-directory-ok allocated=2 cleaned=2 unique=1 requestIdsHidden=1 mode=0700 residual=0 idempotent=1 next=M13-04B.npm --prefix web run typecheck,npm --prefix web run lintandgit diff --checkpassed.
Artifact Hashes
- protocol:
3aa5678a2c2769e4db5bb8f5c755b97e23045c4106e5636459748ab9b41929cd - checker:
b8d0e741144f742946246370bd35820d806686fb00dc0b040c925cf16f2179da - unit:
b1ac3324332180f7b3522f135520e7b5dace334dc461c92f2bce48fbcba2e147 - package:
0c2633da831e7ca10cf74797650353b6dfb1507ed5957688d34bc97f9a6dd193 - report:
07ed66fe0b2e1f1bbdba1cfb1089b052a5961d38f761bfcf79d8362980d2d502 - manifest:
fd2407a7b9fefe67e2d77ed844e6c2ca17cdc4a746857a5825a38ff02ab664e3
Next Task
M13-04B: source read-only mount and independent writable output directory.
Rollback
Remove the directory allocator, focused tests/checker, report, manifest, package command and this
status entry; restore M13-03G as the queue tail and move nextTask back to M13-04A.