fix: bound iCloud eviction failure feedback - #198
Conversation
|
Warning Review limit reachedNext included review available in 9 minutes. View limit detailsLimit details: You’ve used the included review currently available. You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Review configuration: ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (11)
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 |
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 head94cc1d6035396fc629e995abda16682c25f991c8. -
Head SHA:
94cc1d6035396fc629e995abda16682c25f991c8 -
Workflow run: 32132421407
-
Workflow attempt: 1
Coverage evidence
Coverage Decision
- Result: FAIL
- Test evidence: not proven passing
- Docstring evidence: not proven passing when configured
- Failure count: 1
Changed-File Evidence Map
flowchart LR
PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
Evidence --> S1["Changed file (4 files)"]
S1 --> I1["repository behavior"]
I1 --> R1["Review risk: Changed file (4 files)"]
R1 --> V1["required checks"]
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["Changed file (4 files)"]
S1 --> I1["repository behavior"]
I1 --> R1["Review risk: Changed file (4 files)"]
R1 --> V1["required checks"]
|
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 head94cc1d6035396fc629e995abda16682c25f991c8. -
Head SHA:
94cc1d6035396fc629e995abda16682c25f991c8 -
Workflow run: 32138787466
-
Workflow attempt: 1
Coverage evidence
Coverage Decision
- Result: FAIL
- Test evidence: not proven passing
- Docstring evidence: not proven passing when configured
- Failure count: 1
Changed-File Evidence Map
flowchart LR
PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
Evidence --> S1["Changed file (4 files)"]
S1 --> I1["repository behavior"]
I1 --> R1["Review risk: Changed file (4 files)"]
R1 --> V1["required checks"]
Dismissing: this REQUEST_CHANGES referenced workflow run 32138787466 where coverage-evidence failed at the same head SHA. coverage-evidence has since been re-run and now reports pass (verified via gh pr checks). No unresolved review threads remain. Re-request review to re-validate.
|
Hardened the blocker guidance lookup on current head Validation: focused Vitest (6 passed), |
|
Rebased the draft PR onto current |
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
Purpose
Prevent arbitrary thrown frontend/backend exception text and raw native blocker detail from crossing the iCloud local-copy eviction desktop boundary while ensuring every blocked, failed, or unverified state gives the customer a bounded next action, without changing planning, approval, fingerprint/revalidation, filesystem/cloud mutation, persistence, or object-authority semantics.
Exact current state
94cc1d6035396fc629e995abda16682c25f991c8.main:be418bac9bfbdc8aa41b1a698713833e3dbccfdc.src/lib/IcloudLocalEviction.svelte;src/lib/icloudLocalEvictionFeedback.ts;src/lib/icloudLocalEvictionFeedback.test.ts;src/lib/icloudLocalEvictionErrorPrivacyContract.test.ts.Test-first privacy and recovery repair
String(e)values for file selection, local-copy state inspection, and eviction execution.role="alert"boundary plus the unchangedplanIcloudLocalCopyEvictionandevictIcloudLocalCopyauthority calls.result_record_errorand native blocker codes still crossed the UI boundary, and bounded failure messages did not consistently explain the next safe action.icloudLocalEvictionFeedback.tsnow maps every current planning blocker and post-operation verification blocker to deduplicated customer guidance. Unknown backend values are never reflected; they receive a generic safe fallback.edbaec7aa44275a13e7dbc795b1f27cbb82254a4additionally required guidance even when an ineligible or unverified native result supplies an empty blocker list.94cc1d6035396fc629e995abda16682c25f991c8makes empty evidence fail closed to a generic next action, improves File Provider capability guidance to tell the customer to verify Finder’s ‘다운로드 제거’ availability, and makes the human-approval instruction independent of an impossible preceding blocker.Planning, plan fingerprints, exact confirmation, rationale, execution-time state revalidation, cloud-object retention checks, local-allocation verification, immutable approval/result records, and filesystem/cloud mutation authority remain unchanged.
Exact-head validation
For exact head
94cc1d6035396fc629e995abda16682c25f991c8:31884072291— success;31884072306— queued;31884072284— queued;31884072301— queued.Queued evidence is not passing, and predecessor-head success does not transfer. Conditional PR-inapplicable publication or attestation helpers are not represented as passing release or provenance evidence.
Scope / non-duplication
This line owns only iCloud local-copy eviction feedback and its focused privacy/recovery contracts. It does not import repository-wide coverage #156, generic cleanup #174, canonical documentation #149, or another provider/cloud durable-authority line.
Remaining integration blockers
Required before merge
Do not merge unless the unchanged exact head satisfies every applicable live required workflow and current finding, every review thread is resolved, a qualifying independent approval covers the last push/current head, fresh protected-main ancestry remains current, the live review ruleset is satisfied, and repository-wide exact coverage is satisfied without exclusions or threshold weakening. Pending, queued, skipped-required, neutral-required, failed, stale, predecessor, synthetic, diagnostic-only, status-only, model-only, rate-limited, no-source scanner, or infrastructure-only evidence is not passing.