39 lines
1.6 KiB
Markdown
39 lines
1.6 KiB
Markdown
# M13-04J Status
|
|
|
|
status: done
|
|
task: server request idempotency and conflict isolation
|
|
updated: 2026-08-19 America/New_York
|
|
enablingTask: false
|
|
parityStateChange: false
|
|
|
|
## Scope
|
|
|
|
`projectId/requestId` is now an idempotency key. An exact retry verifies and reuses the existing result;
|
|
different output or source/settings/build identity returns a stable conflict and cannot overwrite the bound
|
|
result. Different requests use separate result and receipt files. Concurrent duplicate requests share one
|
|
in-flight submission and resolve as one commit plus one reuse. Execution remains `DISABLED`.
|
|
|
|
## Evidence
|
|
|
|
- `npm --prefix web run test:server-job-idempotency` passed 3/3 unit tests and the checker.
|
|
- Checker output: `server-job-idempotency-ok first=COMMITTED retry=REUSED conflict=BLOCKED isolated=1 concurrent=REUSED execution=DISABLED next=M13-05A`.
|
|
- `git diff --check` passed.
|
|
|
|
## Artifact Hashes
|
|
|
|
- parent manifest: `f9658954d3dbd0cd1edd696c10f6a1b880bb3288c91a39a47ca84c4496046a97`
|
|
- protocol: `15eca7550964c9985e26a22a7900d3f3aa69fdef35fe5962b48a8f55ebba5863`
|
|
- checker: `02247ffda07c095373642a7fa22268bb9f5ac181d41571f7fff685812976d3c4`
|
|
- unit: `6ee08e67cd8493e856f67309bd6562316eca42ef52dd4a9aad3a15efdc4b6b41`
|
|
- package: `5b47e94cf828fc9d3021019eed9922eb67815aba5416266d8c967c7cb5bd96ba`
|
|
- report: `31f95a8cc1c4792303986b8b5987ab02fc11a77ab25fd76b31c02d1ed1b104d1`
|
|
|
|
## Next Task
|
|
|
|
`M13-05A`: CSP denies inline script, eval, data script and undeclared origins.
|
|
|
|
## Rollback
|
|
|
|
Remove the idempotency protocol, unit/checker, report, manifest, package command and this status entry;
|
|
restore `M13-04I` as the queue tail.
|