[runtime] Fuzz and freeze atomic blob storage - #4433
Conversation
Deploying monorepo with
|
| Latest commit: |
10eac97
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://b295439b.monorepo-eu0.pages.dev |
| Branch Preview URL: | https://atomic-blobs.monorepo-eu0.pages.dev |
Deploying with
|
| Status | Name | Latest Commit | Updated (UTC) |
|---|---|---|---|
| ✅ Deployment successful! View logs |
commonware-mcp | 10eac97 | Aug 15 2026, 04:08 PM |
Benchmark resultsRegressions: ✅ `qmdb::merkleize/v=any::unordered::fixed::mmr k=10000 ch=false s=true cc=true` (2/2 gates passed)
✅ `qmdb::merkleize/v=current::ordered::fixed::mmb chunk=256 k=10000 ch=false s=true cc=true` (2/2 gates passed)
Baseline commit(s): |
1407e7d to
987fe35
Compare
987fe35 to
5dc331f
Compare
5dc331f to
18a38d9
Compare
18a38d9 to
63f9a94
Compare
63f9a94 to
10eac97
Compare
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Want fixes drafted automatically? Bugbot Autofix can create code changes for findings. A team admin can enable Autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 10eac97. Configure here.
| panic!("publication failed outside its injected I/O phase: {faults:?}") | ||
| } | ||
| } | ||
| } |
There was a problem hiding this comment.
Write fault ignores retention
Medium Severity
failed_publication maps Failure::Write to the predecessor world only, while Faults::config still attaches write_retention for that failure. Under Faulty storage, a failing write with retention durably commits retained prepared-root bytes before returning an error, so recovery can legally select the candidate. Failure::Sync already branches on retention; Write does not, so the model rejects valid candidate recoveries and can panic the fuzz target.
Additional Locations (1)
Reviewed by Cursor Bugbot for commit 10eac97. Configure here.
Codecov Report✅ All modified and coverable lines are covered by tests. @@ Coverage Diff @@
## atomic-blobs-model-tests #4433 +/- ##
=========================================================
Coverage 95.54% 95.54%
=========================================================
Files 609 609
Lines 280523 280523
Branches 6944 6944
=========================================================
+ Hits 268035 268037 +2
+ Misses 10233 10229 -4
- Partials 2255 2257 +2 see 11 files with indirect coverage changes Continue to review full report in Codecov by Harness.
🚀 New features to boost your workflow:
|


Summary
Adds the final adversarial and format-locking layer for atomic blob storage:
atomic_storage_operationstarget covering direct and batch operations, recovery cycles, stale integrity tokens, removal, and recreation;atomic_migrationtarget covering ordinary-to-atomic retry across precommit and postcommit failures;This is layer 6 of 6 at the top of the atomic blob stack. The cohesive engine is in #4490, remaining adapters are in #4502, migration is in #4495, exhaustive behavioral coverage is in #4491, and the bounded crash models are in #4492.
Review focus
Faulty<Memory>; filesystem copy, rename, and directory-sync cuts remain covered by the backend tests below this layer.Diff size
+0 / -0 LOC+1889 / -0 LOC+1889 / -0 LOCCounts are physical diff lines, including comments and blank lines. Test-only files, hooks, and lines inside
#[cfg(test)]modules are counted as tests; everything else is counted as production code.