45 lines
1.9 KiB
Markdown
45 lines
1.9 KiB
Markdown
# 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.mjs` passed 2/2.
|
|
- `npm --prefix web run test:server-job-directory` passed unit 2/2 and the independent checker.
|
|
- `node tools/web/check-server-job-isolation.mjs` passed:
|
|
`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 lint` and `git diff --check` passed.
|
|
|
|
## 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`.
|