feat: persist provider sync goals and runtime ADRs - #213
Conversation
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
📝 WalkthroughWalkthroughProvider 동기화 상태와 불변 receipt에서 Cloud offload Goal·ADR projection을 생성합니다. 복사, attestation, reconciliation, source eviction 결과에 상태와 projection 정보를 추가합니다. Judge calibration, iCloud native 상태, bounded scan, 캐시 정리와 worktree fallback도 갱신합니다. Changes클라우드 오프로드 상태와 증거
Judge calibration 승인 게이트
iCloud 복사 준비성
실행 및 파일 처리 안전성
Estimated code review effort: 5 (Critical) | ~100 minutes Merge Risk: 🟠 High · up to This PR changes cloud-copy admission, provider-state persistence, and ADR/Goal projections, but the current head can still leave projections inconsistent and allow iCloud copies after admission is blocked. Additional unresolved paths may bypass or misstate cleanup, scan, evidence, reconciliation, and worktree safety gates, so merging should wait for fixes or explicit acceptance. Sequence Diagram(s)sequenceDiagram
participant CloudArchive
participant CloudCommands
participant ProviderSync
participant CloudAdr
participant ProjectionFiles
CloudArchive->>CloudCommands: copy 또는 receipt reconciliation 요청
CloudCommands->>ProviderSync: provider evidence 수집
ProviderSync-->>CloudCommands: sync_state 반환
CloudCommands->>CloudAdr: Goal·ADR snapshot 생성
CloudAdr->>ProjectionFiles: JSON 원자적 교체
ProjectionFiles-->>CloudCommands: projection 경로와 경고 반환
CloudCommands-->>CloudArchive: Goal 상태·동기화 상태·projection 표시
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ 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 |
cdd839c to
4f970d7
Compare
|
Current-head release-gate finding on exact PR head Please keep this in the existing |
|
Separate current-head release-supply-chain finding on exact head Please keep this in the existing |
|
Bugbot is not enabled for your account, so this pull request was not reviewed. Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs. |
There was a problem hiding this comment.
Pull request overview
OpenCode cannot approve yet because required coverage evidence did not pass.
Review outcome
1. HIGH .github/workflows/opencode-review.yml:1 - Coverage evidence did not prove required test/docstring evidence
-
Problem: The required coverage-evidence job result was
failure, so OpenCode cannot establish approval sufficiency for this head. -
Root cause: Automated approval is only valid when the same-head coverage-evidence job proves supported repository test suites passed and configured docstring gates passed or were advisory, or reports not applicable because no supported source files or package manifests exist. Missing, failed, skipped, unavailable, or unsupported-tooling test evidence is a blocker.
-
Fix: Install or configure the repository test/docstring evidence tooling when source files or package manifests exist, rerun the current-head coverage-evidence job, and approve only after it reports
successwith required evidence or explicit no-source not-applicable evidence. -
Regression test: Keep the approval branch checking
needs.coverage-evidence.result == successbefore posting APPROVE, and publish REQUEST_CHANGES when coverage-evidence blocker states such as cancelled, skipped, failed, unsupported-tooling, or below-100 evidence are present. -
Result: REQUEST_CHANGES
-
Reason: coverage-evidence result was
failure, so required test/docstring evidence was not proven for current head221744d5a49811d696e916f13f4185491c0a0abe. -
Head SHA:
221744d5a49811d696e916f13f4185491c0a0abe -
Workflow run: 32148570654
-
Workflow attempt: 1
Coverage evidence
Coverage Decision
- Result: FAIL
- Test evidence: not proven passing
- Docstring evidence: not proven passing when configured
- Failure count: 2
Changed-File Evidence Map
flowchart LR
PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
Evidence --> S1["Workflow (2 files)"]
S1 --> I1["GitHub Actions review job"]
I1 --> R1["Review risk: Workflow (2 files)"]
R1 --> V1["actionlint plus required checks"]
Evidence --> S2["Changed file (50 files)"]
S2 --> I2["repository behavior"]
I2 --> R2["Review risk: Changed file (50 files)"]
R2 --> V2["required checks"]
Evidence --> S3["Docs (7 files)"]
S3 --> I3["operator or user guidance"]
I3 --> R3["Review risk: Docs (7 files)"]
R3 --> V3["docs review"]
OpenCode Review Overview
Pull request overviewOpenCode cannot approve yet because required coverage evidence did not pass. Review outcome1. HIGH .github/workflows/opencode-review.yml:1 - Coverage evidence did not prove required test/docstring evidence
Coverage evidenceCoverage Decision
Changed-File Evidence Mapflowchart LR
PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
Evidence --> S1["Workflow (2 files)"]
S1 --> I1["GitHub Actions review job"]
I1 --> R1["Review risk: Workflow (2 files)"]
R1 --> V1["actionlint plus required checks"]
Evidence --> S2["Changed file (53 files)"]
S2 --> I2["repository behavior"]
I2 --> R2["Review risk: Changed file (53 files)"]
R2 --> V2["required checks"]
Evidence --> S3["Docs (7 files)"]
S3 --> I3["operator or user guidance"]
I3 --> R3["Review risk: Docs (7 files)"]
R3 --> V3["docs review"]
|
There was a problem hiding this comment.
Pull request overview
OpenCode cannot approve yet because required coverage evidence did not pass.
Review outcome
1. HIGH .github/workflows/opencode-review.yml:1 - Coverage evidence did not prove required test/docstring evidence
-
Problem: The required coverage-evidence job result was
failure, so OpenCode cannot establish approval sufficiency for this head. -
Root cause: Automated approval is only valid when the same-head coverage-evidence job proves supported repository test suites passed and configured docstring gates passed or were advisory, or reports not applicable because no supported source files or package manifests exist. Missing, failed, skipped, unavailable, or unsupported-tooling test evidence is a blocker.
-
Fix: Install or configure the repository test/docstring evidence tooling when source files or package manifests exist, rerun the current-head coverage-evidence job, and approve only after it reports
successwith required evidence or explicit no-source not-applicable evidence. -
Regression test: Keep the approval branch checking
needs.coverage-evidence.result == successbefore posting APPROVE, and publish REQUEST_CHANGES when coverage-evidence blocker states such as cancelled, skipped, failed, unsupported-tooling, or below-100 evidence are present. -
Result: REQUEST_CHANGES
-
Reason: coverage-evidence result was
failure, so required test/docstring evidence was not proven for current headf8d92181f275a8602cdab2c34a4c1683acacb3ad. -
Head SHA:
f8d92181f275a8602cdab2c34a4c1683acacb3ad -
Workflow run: 32189898261
-
Workflow attempt: 1
Coverage evidence
Coverage Decision
- Result: FAIL
- Test evidence: not proven passing
- Docstring evidence: not proven passing when configured
- Failure count: 2
Changed-File Evidence Map
flowchart LR
PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
Evidence --> S1["Workflow (2 files)"]
S1 --> I1["GitHub Actions review job"]
I1 --> R1["Review risk: Workflow (2 files)"]
R1 --> V1["actionlint plus required checks"]
Evidence --> S2["Changed file (50 files)"]
S2 --> I2["repository behavior"]
I2 --> R2["Review risk: Changed file (50 files)"]
R2 --> V2["required checks"]
Evidence --> S3["Docs (7 files)"]
S3 --> I3["operator or user guidance"]
I3 --> R3["Review risk: Docs (7 files)"]
R3 --> V3["docs review"]
There was a problem hiding this comment.
Pull request overview
OpenCode cannot approve yet because required coverage evidence did not pass.
Review outcome
1. HIGH .github/workflows/opencode-review.yml:1 - Coverage evidence did not prove required test/docstring evidence
-
Problem: The required coverage-evidence job result was
failure, so OpenCode cannot establish approval sufficiency for this head. -
Root cause: Automated approval is only valid when the same-head coverage-evidence job proves supported repository test suites passed and configured docstring gates passed or were advisory, or reports not applicable because no supported source files or package manifests exist. Missing, failed, skipped, unavailable, or unsupported-tooling test evidence is a blocker.
-
Fix: Install or configure the repository test/docstring evidence tooling when source files or package manifests exist, rerun the current-head coverage-evidence job, and approve only after it reports
successwith required evidence or explicit no-source not-applicable evidence. -
Regression test: Keep the approval branch checking
needs.coverage-evidence.result == successbefore posting APPROVE, and publish REQUEST_CHANGES when coverage-evidence blocker states such as cancelled, skipped, failed, unsupported-tooling, or below-100 evidence are present. -
Result: REQUEST_CHANGES
-
Reason: coverage-evidence result was
failure, so required test/docstring evidence was not proven for current headf8d92181f275a8602cdab2c34a4c1683acacb3ad. -
Head SHA:
f8d92181f275a8602cdab2c34a4c1683acacb3ad -
Workflow run: 32194522265
-
Workflow attempt: 1
Coverage evidence
Coverage Decision
- Result: FAIL
- Test evidence: not proven passing
- Docstring evidence: not proven passing when configured
- Failure count: 2
Changed-File Evidence Map
flowchart LR
PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
Evidence --> S1["Workflow (2 files)"]
S1 --> I1["GitHub Actions review job"]
I1 --> R1["Review risk: Workflow (2 files)"]
R1 --> V1["actionlint plus required checks"]
Evidence --> S2["Changed file (50 files)"]
S2 --> I2["repository behavior"]
I2 --> R2["Review risk: Changed file (50 files)"]
R2 --> V2["required checks"]
Evidence --> S3["Docs (7 files)"]
S3 --> I3["operator or user guidance"]
I3 --> R3["Review risk: Docs (7 files)"]
R3 --> V3["docs review"]
There was a problem hiding this comment.
Pull request overview
OpenCode cannot approve yet because required coverage evidence did not pass.
Review outcome
1. HIGH .github/workflows/opencode-review.yml:1 - Coverage evidence did not prove required test/docstring evidence
-
Problem: The required coverage-evidence job result was
failure, so OpenCode cannot establish approval sufficiency for this head. -
Root cause: Automated approval is only valid when the same-head coverage-evidence job proves supported repository test suites passed and configured docstring gates passed or were advisory, or reports not applicable because no supported source files or package manifests exist. Missing, failed, skipped, unavailable, or unsupported-tooling test evidence is a blocker.
-
Fix: Install or configure the repository test/docstring evidence tooling when source files or package manifests exist, rerun the current-head coverage-evidence job, and approve only after it reports
successwith required evidence or explicit no-source not-applicable evidence. -
Regression test: Keep the approval branch checking
needs.coverage-evidence.result == successbefore posting APPROVE, and publish REQUEST_CHANGES when coverage-evidence blocker states such as cancelled, skipped, failed, unsupported-tooling, or below-100 evidence are present. -
Result: REQUEST_CHANGES
-
Reason: coverage-evidence result was
failure, so required test/docstring evidence was not proven for current head53d92d18ace763a1378c3b68ca1f47b46a3777a7. -
Head SHA:
53d92d18ace763a1378c3b68ca1f47b46a3777a7 -
Workflow run: 32213498207
-
Workflow attempt: 1
Coverage evidence
Coverage Decision
- Result: FAIL
- Test evidence: not proven passing
- Docstring evidence: not proven passing when configured
- Failure count: 2
Changed-File Evidence Map
flowchart LR
PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
Evidence --> S1["Workflow (2 files)"]
S1 --> I1["GitHub Actions review job"]
I1 --> R1["Review risk: Workflow (2 files)"]
R1 --> V1["actionlint plus required checks"]
Evidence --> S2["Changed file (53 files)"]
S2 --> I2["repository behavior"]
I2 --> R2["Review risk: Changed file (53 files)"]
R2 --> V2["required checks"]
Evidence --> S3["Docs (7 files)"]
S3 --> I3["operator or user guidance"]
I3 --> R3["Review risk: Docs (7 files)"]
R3 --> V3["docs review"]
129249b to
853b409
Compare
|
@coderabbitai review |
|
|
Current-head fix pushed at 3e72277: integration test now uses the public exact copy-approval boundary (the helper was unit-test-only), and asserts legacy unknown sync evidence fails closed as provider-sync-incomplete. Please review and rerun checks for this exact head. |
|
Current-head CI repair a6ec6e2: the same timed-out lsof shell-descendant race found in the stack was present here too. The bounded lsof probe now creates and kills a process group, preserving the independent ps active-use probe budget. Focused test passed on the equivalent fix (3/3, Rust 1.97.1). Please review this exact head. |
|
Current-head follow-up at
Hosted required checks and protected review remain pending; no merge is claimed. |
|
Validated current-head data-integrity/reliability defect requiring owner repair before this Draft can advance: exact #213 head Required test-first repair on this canonical owner: add a focused regression that supplies distinct source/destination volume probe identities and proves headroom admission is bound to the actual staging/destination filesystem; then move the probe to the destination/staging boundary immediately before mutation while preserving adoption exemption and stable fail-closed |
|
Current exact head Read-only local proof on that exact head with Rust 1.97.1:
The focused proof covers missing destination descendants, nearest existing destination authority, symlink-parent rejection, overflow/headroom behavior, and the source-vs-destination contract. No provider, Finder, cloud object, or user data was mutated. |
|
@OpenCode review current exact head |
Dismissing: this REQUEST_CHANGES was posted against commit 53d92d1 where coverage-evidence failed. The PR's current head has coverage-evidence passing (verified via gh pr checks). All 102 review threads on this PR are resolved. Re-request review to re-validate.
|
@OpenCode review current exact head |
Reapply the #247 unique delta (post-#213 lineage) onto current main: - pending iCloud File Provider indexing detection and admission blocker duration - backend-clock stall timing with restart-safe preservation - Naruon readiness indexing-blocker binding and numeric disk-full markers - preview headroom bound to destination; impossible stall onset rejected
Summary
local-currentwithis_uploaded=falseaspending-upload; incomplete File Provider items fail closedExact current state
4fab5d8fa91c5f72c59fb78c3104b0be23a896abmain:be418bac9bfbdc8aa41b1a698713833e3dbccfdc32274241586, Release32274241576, Security Scan32274241579, and SAST Semgrep32274241674are queued/pending or running; none is passing evidence until completed on this unchanged headCurrent-head security repair: exact Podman mutation authority
The predecessor head introduced an approval phrase bound to the observed dangling-image fingerprint but executed
podman image prune --force. Podman's documentedimage prunebehavior removes all dangling images visible at execution time, so a newly dangling image could enter the mutation set after review without being represented by the approved fingerprint.The current head adds a production regression before the fix and routes the public Podman reclaim module through an explicit mutation-authority boundary. Execution now:
podman-prune-candidate-set-changedbefore mutation;podman image rm --no-prune;image prune, never uses--force, and therefore does not authorize removal of newly dangling images, parent images, or containers outside the reviewed set;The regression
src-tauri/tests/podman_prune_candidate_set_race.rsexercises both candidate-set drift and the exact-ID/no-force/no-parent-prune command boundary with a real subprocess fixture.Cloud-planner process boundary
The predecessor regression showed that
run()resolved HOME/USERPROFILE before argument parsing. The process boundary screensstd::env::args_os()first, makes sole--help/-hterminate successfully without HOME, and maps non-UTF-8 host input to stableinvalid-argument-encodingwithout reflecting payload bytes. The existing planner implementation remains behind an internal include/module boundary.Windows MSI bundle repair
A predecessor Release run exposed WiX
LGHT0103for the nonexistentdisksage-cloud-plan-implementation.rs.exe. Tauri CLI scanned the source fragment undersrc/binas a binary name. The fragment now lives outsidesrc/bin, whilebuild.rskeeps the generated include contract and a package contract test prevents recurrence.Provider-global-sync and Naruon integrity
Provider-global-sync admission requires canonical evidence identity, complete evidence, empty blockers, and quiet aggregate progress. Naruon readiness binds the same
fileproviderctl-global-dumpevidence contract and rejects forged evidence kind or contradictory clear aggregate progress. These paths remain fail-closed and do not grant provider write or source-eviction authority.Integration boundary
Required before merge
Revalidate the unchanged exact head against branch protection, all applicable Test/Release/Security/SAST/coverage/package/provenance gates, zero valid unresolved findings, fresh protected-main ancestry, and qualifying independent review where live governance requires it. Queued, pending, skipped, cancelled, absent, neutral, failed, stale/predecessor, synthetic, status-only, model-only, author-only, no-source, or infrastructure-only evidence is non-passing.