fix(jobs): bind completed effects to checkpoints
This commit is contained in:
@@ -71,3 +71,24 @@ Fresh fix-wave verification:
|
||||
- Available harness suite (same sandbox exclusions described above):
|
||||
`579 passed, 5 deselected, 31 warnings`.
|
||||
- Scoped Ruff and `git diff --check`: clean.
|
||||
|
||||
## Final P1 fix — effect state and checkpoint-bound manifest roots
|
||||
|
||||
- Stage checkpoints now distinguish `intent` from `completed`. Vector intent is atomically sealed
|
||||
and checkpointed before upsert. A process-level `BaseException` after a partial multi-record
|
||||
write leaves the stage `running/intent`; resume never promotes it and instead reconciles
|
||||
`existing_hashes`, writing only the missing records. The completed state is persisted only after
|
||||
reconciliation returns successfully.
|
||||
- Every stage now persists its completed artifact state while still `running`, before the
|
||||
post-call fault hook. The checkpoint binds the SHA-256 of canonical `artifact-manifest.json`,
|
||||
effect state, exact producer stage, and exact required-file mapping. Resume validates this root
|
||||
and all bindings before promotion or copying.
|
||||
- Added process-interruption coverage proving the already-written vector record is not submitted
|
||||
twice, remaining records are written, and publish completes only after reconciliation. Added
|
||||
coordinated artifact/manifest, spec-binding, and producer-binding tamper rejection tests.
|
||||
|
||||
Fresh verification:
|
||||
|
||||
- Focused jobs/corpus/CLI/search suite: `86 passed, 18 warnings`.
|
||||
- Available broad harness suite: `583 passed, 5 deselected, 32 warnings`.
|
||||
- Scoped Ruff and `git diff --check`: clean.
|
||||
|
||||
Reference in New Issue
Block a user