fix(storage): publish cleanup manifests atomically - #3786
Conversation
Preserve complete recovery records across handled publication failures and keep existing partial-purge restoration boundaries. Refs #3778. Local checks deferred to final stack CI by maintainer instruction.
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Team Run ID: 📒 Files selected for processing (4)
📝 WalkthroughWalkthroughCleanup manifests and satellite backups now use atomic temporary-file publication. Tests cover staging, replacement, and purge-incomplete failures. Documentation records prior-manifest preservation and restore behavior after permanent purges. ChangesCleanup publication
Estimated code review effort: 3 (Moderate) | ~25 minutes Sequence Diagram(s)sequenceDiagram
participant Cleanup
participant writePrivateFile
participant TemporaryFile
participant Manifest
participant restoreTrashEntry
Cleanup->>writePrivateFile: publish cleanup manifest
writePrivateFile->>TemporaryFile: write and fsync complete contents
writePrivateFile->>Manifest: atomically replace target
restoreTrashEntry->>Manifest: read published manifest
Manifest-->>restoreTrashEntry: return valid recovery record
restoreTrashEntry->>Cleanup: restore staged files when records remain valid
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
✅ Deterministic PR hygiene checks passed. |
리뷰 · 우선순위 68 / 80지금 코드 쪽으로는 Track 3 수동 스택의 맨 아래 층(base=
메인테이너의 판단이 필요한 지점
너의 추천 이 댓글은 grok-bot이 작성했습니다 |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
Summary
Track 3 manual stack, layer 1 (base: dev). Later layers add separate Docker persistence, access-key recipes, Windows diagnostic origins and create-only configuration initialization. This is an ordinary branch chain, not a registered native stack.
Verification
git diff --cached --checkpassed. No local tests, typecheck, builds or suite were run, as explicitly instructed by the maintainer.Cumulative tested source:
9ea896737bd17085ebb8a69b3320c9cace61889e, based on deveff908e0fb9452d5ff2952af1c5dafc1c4c35dd9.cli-modelsfirst-child 15-second watchdog. One unchanged-head rerun of that shard completed 3,489 cases (3,465 pass, 24 skip, 0 fail); the first models case took 943 ms. The initial failure is retained; the slow phase remains unproven and no flakiness fix is claimed.The maintainer explicitly authorizes dev admin integration and final-head-first validation for this manual chain: #3786 → #3788 → #3789 → #3790 → #3796 → #3802. Lower automatic tests are deferred with
[skip ci], not represented as passing. No local tests, typecheck, builds or suites were run; pushes used--no-verify. Merge commits preserve source ancestry and suppress duplicate lower CI; fresh head/base/actor/review checks and resulting tree checks accompany each merge.Checklist
Landing confirmed: merged into
devas43970794feef5984858ed2afec345861ca227e39. The final chain merge isf89b815090020f52089801b50f569a777bdfdc0a; its tree846b8ffc383fc0ba99486917bdfb820a0fa432baequals the tested cumulative source. Source ancestry and every merge were verified after fetchingdev.