# 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.