Skip to content

fix: bound cloud archive failure feedback - #200

Closed
seonghobae wants to merge 9 commits into
mainfrom
fix/cloud-archive-error-privacy-v1
Closed

fix: bound cloud archive failure feedback#200
seonghobae wants to merge 9 commits into
mainfrom
fix/cloud-archive-error-privacy-v1

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

Purpose

Prevent arbitrary provider/filesystem exception text from crossing the CloudArchive desktop failure boundary and ensure every bounded failure message tells the customer what to check or do next, without changing cloud discovery, planning, review/tenant authority, copy/adoption, attestation, source-eviction authority, OAuth, capacity, persistence, or provider/filesystem mutation semantics.

Exact current state

  • Exact source head: 44a548f3bf11dd89440bb1caf013be1b2d42567a.
  • Live protected main: be418bac9bfbdc8aa41b1a698713833e3dbccfdc.
  • The PR is open, Ready for review, mergeable, and based directly on protected main.
  • The semantic delta remains exactly src/lib/CloudArchive.svelte plus src/lib/cloudArchiveErrorPrivacyContract.test.ts.
  • Current-head formal reviews and review threads are empty; no approval is claimed.

Test-first privacy and next-action repair

  • RED head e71e6e000ce9ffe43deb2ab05d7fed3b8edc503d added the source contract while the component still projected arbitrary String(e) values into visible feedback.
  • Initial implementation 23034fec4f8c0c81dcdfa3621711d5a1fda8be87 removed those projections across discovery, planning, review, copy/adoption, attestation, verified-source eviction, capacity verification, provider connect, and provider disconnect, and gave the dynamic failure region role="alert".
  • Review found the bounded messages still stopped at describing failure and did not consistently help the customer recover.
  • Test-only commit 5c359fab375cf42c76b52ae13fa7dcbbf84b81db requires operation-specific next actions and rejects unused catch (e) bindings.
  • Current implementation 44a548f3bf11dd89440bb1caf013be1b2d42567a changes only those ten catch boundaries: each now uses catch and supplies path-free guidance to check the relevant root permissions, scan result, tenant attestation, remote capacity, provider connection, approval phrase, provider evidence, OAuth consent, or OS Keychain before retrying from the correct safe stage.
  • The focused contract preserves the existing planCloudArchive, reviewCloudCandidate, copyCloudCandidate, adoptExistingCloudCandidate, attestCloudCopy, trashVerifiedCloudSource, verifyCloudProviderCapacity, connectCloudProvider, and disconnectCloudProvider authority calls.

Visible source and destination paths deliberately selected for business review remain available. Raw thrown provider, filesystem, credential, and implementation detail is not reflected into the interface.

Exact-head validation

For exact head 44a548f3bf11dd89440bb1caf013be1b2d42567a:

  • Test 31884524731 — queued;
  • Release 31884524708 — pending;
  • Security Scan 31884524710 — queued;
  • SAST Semgrep 31884524703 — queued.

Queued or pending 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 the CloudArchive desktop feedback boundary and its focused contract. It does not import repository-wide coverage #156, generic cleanup #174, canonical documentation #149, provider/cloud durable-authority storage lines, or another active owner.

Remaining integration blockers

  • The live organization ruleset requires one independent approving review, approval after the last push, and review-thread resolution; the current head has no approval.
  • Repository-wide exact 100% owned-production region/statement-equivalent, branch, function, and line coverage remains materially unsatisfied on canonical owner ci: require exact-head production coverage evidence #156.
  • Ready-for-review status is not merge authorization.

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.

Summary by CodeRabbit

  • 버그 수정

    • 클라우드 작업 중 오류 발생 시 원시 예외 내용 대신 작업별 한국어 안내 메시지를 표시합니다.
    • 초기 로딩, 분석·검토·복사·채택, 검증, 휴지통 이동, 용량 확인 및 연결 관리 오류를 구분해 안내합니다.
    • 예외에 포함될 수 있는 민감한 정보가 화면에 노출되지 않도록 개선했습니다.
  • 접근성

    • 오류 알림에 role="alert"을 적용해 보조 기술이 오류를 즉시 인식할 수 있습니다.

Open in Devin Review

@coderabbitai

coderabbitai Bot commented Aug 12, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 9aa7145e-935e-4909-8fd9-c5a85e7f4605

📥 Commits

Reviewing files that changed from the base of the PR and between 44a548f and d92c4ce.

📒 Files selected for processing (1)
  • src/lib/cloudArchiveErrorPrivacyContract.test.ts
🚧 Files skipped from review as they are similar to previous changes (1)
  • src/lib/cloudArchiveErrorPrivacyContract.test.ts

Included review availability: Your plan includes up to 1 review per rolling hour; 0 remain after this review.


📝 Walkthrough

Walkthrough

CloudArchive.svelte의 클라우드 작업 오류를 고정된 한국어 안내 문구로 변경했습니다. 예외 원문 비노출과 role="alert" 표시를 검증하는 계약 테스트를 추가했습니다.

Changes

클라우드 오류 개인정보 보호

Layer / File(s) Summary
작업별 오류 안내 및 알림 표시
src/lib/CloudArchive.svelte
클라우드 조회, 분석, 검토, 복사, 채택, 검증, 삭제, 용량 확인, 연결, 연결 해제 오류에 고정 안내 문구를 적용했습니다. loadError 요소에 role="alert"를 추가했습니다.
오류 개인정보 보호 계약 검증
src/lib/cloudArchiveErrorPrivacyContract.test.ts
예외 원문 비노출, 고정 오류 문구, 기존 클라우드 권한 작업 호출, role="alert" 표시를 검증합니다.

Estimated code review effort: 2 (Simple) | ~10 minutes

Merge Risk: 🟡 Moderate · up to d92c4

This PR replaces raw cloud and filesystem exception text with bounded, operation-specific guidance, improving privacy and recovery without changing archive operations. The current head is not merge-ready because required validation is still queued or pending and the required independent approval is absent; a localized redundant-wording issue also remains for owner follow-up.

Possibly related PRs

  • ContextualWisdomLab/disksage#197: 다른 컴포넌트에서 원시 예외 문자열을 고정된 한국어 오류 문구로 변경하고 role="alert"와 계약 테스트를 추가합니다.
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed 제목은 CloudArchive의 오류 피드백을 제한하는 주요 변경 사항을 간결하고 정확하게 설명합니다.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/cloud-archive-error-privacy-v1

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@seonghobae
seonghobae marked this pull request as ready for review August 15, 2026 09:04
coderabbitai[bot]

This comment was marked as resolved.

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Devin Review: No Issues Found

Devin Review analyzed this PR and found no bugs or issues to report.

Open in Devin Review

@opencode-agent opencode-agent Bot added priority: medium Normal-priority or P2 work status: needs-review Open pull request requiring current-head review or checks type: bug Defect or incorrect behavior labels Aug 22, 2026
@opencode-agent
opencode-agent Bot disabled auto-merge August 24, 2026 04:32
@seonghobae

Copy link
Copy Markdown
Contributor Author

Superseded by main: the bounded error-message boundary (boundedCloudArchiveErrorMessage) landed via #213 and current main has no raw String(e) projections in CloudArchive. The remaining delta — operation-specific next-action guidance plus cloudArchiveErrorPrivacyContract.test.ts — is recorded as a product gap in docs/product-technical-gap-baseline.md and will be re-landed as a fresh stacked PR on the current head.

@seonghobae seonghobae closed this Aug 24, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

priority: medium Normal-priority or P2 work status: needs-review Open pull request requiring current-head review or checks type: bug Defect or incorrect behavior

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant