feat: evidence-bound provider cache reclaim - #303
Conversation
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: true📝 WalkthroughWalkthroughProvider 캐시 회수 기능을 세 가지 캐시 종류로 제한했습니다. 계획은 증거와 지문을 수집합니다. 실행은 재계획과 콘텐츠 재검증 후 휴지통 또는 영구 삭제를 수행합니다. Podman 저장소 손상은 ChangesProvider 캐시 회수
Estimated code review effort: 4 (Complex) | ~60 minutes Merge Risk: 🟡 Moderate · up to The PR adds permanent deletion for selected provider caches. A concurrent mutation could cause content different from the approved manifest to be removed, while interrupted cleanup may leave staged data without enough journal detail for deterministic recovery; a CI test also depends on external host tools. Merge should wait for these risks to be fixed or explicitly accepted. Sequence Diagram(s)sequenceDiagram
participant Client
participant TauriCommands
participant ProviderCacheReclaim
participant FileSystem
participant ReceiptStore
Client->>TauriCommands: planProviderCacheReclaim()
TauriCommands->>ProviderCacheReclaim: plan_with_runtime()
ProviderCacheReclaim->>FileSystem: 캐시와 활성 사용 증거 검사
ProviderCacheReclaim-->>Client: ProviderCacheReclaimPlan 반환
Client->>TauriCommands: executeProviderCacheReclaim()
TauriCommands->>ProviderCacheReclaim: 승인 정보와 요청 전달
ProviderCacheReclaim->>ProviderCacheReclaim: 재계획과 콘텐츠 검증
ProviderCacheReclaim->>FileSystem: 휴지통 이동 또는 영구 삭제
ProviderCacheReclaim->>ReceiptStore: 불변 영수증 생성
ProviderCacheReclaim-->>Client: ProviderCacheCleanupResult 반환
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches 💡 2📝 Generate docstrings 💡
🛠️ Fix failing CI checks 💡
🧪 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 |
|
Owner-authority refresh, 2026-09-07 KST: current reusable filesystem owner #344 is exact |
|
Fresh consumer repair/evidence sweep on 2026-09-07 KST:
Keep Draft. Permanent provider-cache deletion remains unavailable; these repairs do not add irreversible mutation authority. |
Purpose
Evidence-bound provider-cache reclaim for exact, regenerable local caches. Preserve classification, planning, reversible Trash, receipt, stale-content, and recovery evidence while refusing irreversible provider-cache deletion until mutation authority is same-object and recovery-complete.
Current owner state — 2026-09-07 KST
main:0e90f9cebadbd7f59606baaec4ca1d2f178c899a;3e33229b4157a084a1985a1c7e952f98a64f25e3;736da6db1fb0918d998b3f4d240c63936c91b11d, exact Test34050767861terminal success on Ubuntutest, Windowswindows-home-resolution, and Ubuntullm-engine-build;5164b847ed95661a4b40a69c66b520639f58d970;736da6db...to feat: evidence-bound provider cache reclaim #3035164b847...has merge base exactly736da6db...and shows only the provider-cache consumer delta. The reusable owner delta is inherited rather than copied;34054137067is current and non-terminal; Draft Release34054137078is skipped and non-passing;Review / safety boundary
All shipped Rust facade, Tauri, TypeScript, and headless CLI provider-cache contracts remain Trash-only. The crate-private executor rejects
PermanentPurgebefore planning/receipt mutation and historical pathname-staged purge helpers remain test-only.The adopted #344 point keeps descriptor-relative create-new private publication distinct from mutable replacement: existing-record replacement returns stable
object-bound-replace-source-identity-unavailablebefore lookup/mutation; invalid private modes fail earlier; non-Unix replacement remains unsupported. Provider-cache final receipts are create-new and do not infer mutable-record replacement or irreversible deletion authority.Current #344 semantics now inherited here include nonblocking final visible-name inspection, exact path admission, bounded
encoded.len()+1final descriptor reads with real enlarged-file regressions, streaming 8 MiB private-JSON serialization enforcement, the narrow production core shim, and the Rust 1.98Read::by_refcompile repair.Permanent provider-cache deletion remains unavailable. Issue #170 stays open for cross-platform same-object Trash/future irreversible mutation, durable journal/recovery/undo, and Windows/Linux/macOS parity.
Exact-head evidence and next action
Pre-adoption Test
34037987035on68ac5af...was terminal failure and is not transferable. Exact post-adoption Test34054137067must supply the consumer's own terminal evidence. If it fails, RCA and minimal causal fix belong on this consumer head; owner #344 GREEN is not a substitute.#264 remains separately blocked by the canonical
.githubCodeQL metadata-binding owner path; leaf reruns are not a substitute for that owner repair. Keep Draft until one unchanged exact head and prerequisites have terminal passing applicable Test/security/SAST/CodeQL/coverage/review evidence. No self-approval, force-push, destructive rebase, gate weakening, administrative bypass, pathname fallback, or predecessor-evidence transfer.