feat: add accessible Storybook UX contracts - #246
Conversation
|
Warning Review limit reachedNext included review available in 1 minute. 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 (7)
📝 WalkthroughWalkthroughStorybook 접근성 설정과 Provider 상태 카드가 추가되었습니다. 디자인 토큰과 전역 접근성 스타일을 도입했습니다. 고객용 화면은 내부 오류와 구현 세부정보를 숨기도록 갱신했습니다. iCloud stall clock과 선호 스캔 루트를 추가했습니다. ChangesUX 및 플랫폼 변경
Estimated code review effort: 4 (Complex) | ~45 minutes Merge Risk: 🟡 Moderate · up to The PR currently has a compile-time contract error in iCloud stall handling and presents an incomplete description of the files Homebrew cleanup may remove. Merge should wait until the type/fallback behavior and cleanup-scope wording are corrected. Sequence Diagram(s)sequenceDiagram
participant GitHubActions
participant Storybook
participant Chromium
participant TestRunner
participant ProviderStatusCard
GitHubActions->>Storybook: 정적 빌드와 로컬 서버 시작
Chromium->>Storybook: 스토리 페이지 로드
TestRunner->>Chromium: 스토리 전역 viewport 적용
Chromium->>ProviderStatusCard: 상태 카드 렌더링
ProviderStatusCard-->>TestRunner: 접근성 및 취소 동작 결과 반환
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
Full details: Docstring CoverageExplanation Docstring coverage is 14.29% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 21 functions across 28 files. (12 skipped: 12 unsupported.) ✨ 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 |
* feat: add ontology-bound orphan cache cleanup * docs: bind orphan baseline to live provider evidence * test: cover orphan cache and support roots * docs: record orphan rust test evidence * test: reject orphan object identity replacements * docs: bind orphan identity test evidence * docs: record repeated provider stall evidence * docs: bind baseline to latest orphan head * fix: fail closed on deep app inventory scans * fix: propagate incomplete orphan scan evidence * docs: bind orphan scan safety to current head * test: pin orphan cleanup authority and privacy regressions * fix: align orphan cleanup UI with fail-closed authority * fix: harden orphan planning authority and privacy * test: bind orphan cleanup regressions to repaired boundaries * test: prevent orphan plan fingerprints from encoding HOME * test: cover general reverse-DNS orphan bundle identities * fix: remove HOME-derived orphan authority metadata * test: require HOME-free orphan wire contract * fix: align orphan API with path-free runtime contract * test: require orphan batch preflight before mutation * fix: preflight orphan cleanup batches before mutation * fix: avoid recursive read directory binding * docs: refresh orphan current-head evidence * docs: distinguish orphan implementation head * test: separate orphan cleanup success from refresh failure * fix: preserve orphan cleanup success across refresh failure * fix: distinguish orphan cleanup from refresh failure * test: bind orphan refresh outcome to UI contract * docs: refresh orphan frontend test evidence * docs: record orphan refresh authority boundary * docs: record live iCloud transfer evidence * docs: track orphan safety follow-ups * docs: bind orphan audit to merged base head * docs: record orphan audit documentation head * docs: label orphan evidence snapshot * fix: harden orphan evidence and goal commands * fix: harden installed app inventory evidence * fix: fail closed on recursive lsof diagnostics * test: require orphan cleanup component-owned styles * fix: scope orphan cleanup presentation styles * test: decouple orphan bundle fixture from host Spotlight completeness * test: distinguish benign lsof warnings from target traversal failures * fix: classify benign lsof warning continuations * test: remove host-dependent Spotlight assertion * fix: bound orphan probes and revalidate metadata * docs: record orphan deadline and manifest revalidation * fix: terminate launch services descendants on timeout * docs: record launch services timeout isolation * docs: record exact-head stacked PR audit * docs: bind orphan audit to pushed head * docs: label orphan implementation snapshot
41fa888 to
eb89d67
Compare
| return [admissionFingerprint(report), progressFingerprint(report)].join("|"); | ||
| } | ||
|
|
||
| export function updateIcloudHealthStallClock( |
There was a problem hiding this comment.
🔍 Stall-clock module wired only to its test
updateIcloudHealthStallClock and its fingerprint helper are imported only by the test file; no component uses them. The logic ships as dead code. Confirm whether integration was intended here or deferred.
Was this helpful? React with 👍 or 👎 to provide feedback.
There was a problem hiding this comment.
Confirmed against the fresh branch: this module was no longer integrated by any production component after CloudArchive/provider ownership had already converged out of #246; it was imported only by its own test and did not exist on protected main. The root-cause repair is ownership convergence, not another provider workaround in the Storybook UX owner: icloudHealthStallClock.test.ts and icloudHealthStallClock.ts were removed from this branch in 3f4f878fc9dcbcbed8d2559e0ee8e26861937a5c and e1856c096c033d5afa492d9d367d6b09ca4fdbab. Exact-head checks are queued, so the thread stays unresolved pending terminal verification.
| function podmanActionLabel(action: { kind: string }): string { | ||
| return action.kind === "dangling-image" | ||
| ? "재생성 가능한 미사용 이미지 정리" | ||
| : "Podman 저장 공간 확인"; | ||
| } |
There was a problem hiding this comment.
🟡 Podman recommended actions all show one generic label
podmanActionLabel compares the action kind to "dangling-image", but the backend never emits that value; its kinds serialize as snake_case like review_unused_images. The first branch is dead, so every recommended action renders the same generic "Podman 저장 공간 확인" label instead of describing what it recommends.
Prompt for agents
In src/lib/Cleanup.svelte, podmanActionLabel checks action.kind === "dangling-image", but the recommended-action kind values coming from the Rust backend (PodmanRecommendedActionKind in src-tauri/src/podman_reclaim.rs, serialized snake_case) are review_unused_images, review_unused_volumes, restore_guest_headroom, investigate_api, review_guest_trim, and review_stopped_containers. Because none of these equals "dangling-image", the first branch is unreachable and every recommended action gets the generic fallback label. Map each real kind string to appropriate customer-facing copy (the "재생성 가능한 미사용 이미지 정리" label likely belongs to review_unused_images), so the displayed label matches the actual recommendation.
Was this helpful? React with 👍 or 👎 to provide feedback.
| }: Props = $props(); | ||
|
|
||
| const stateLabel: Record<ProviderStatusState, string> = { | ||
| clear: "지금 복사 가능", |
There was a problem hiding this comment.
Purpose
Deliver the accessible Storybook/desktop UX contract while keeping provider, cleanup, release, scan-navigation, and destructive authority in their canonical owners.
Exact current state
main@79067c1160ddedf7fc962cbf8067ce7e83c4564a1a8ca96116f34720501a0f6c94e29dd48af2741dOwnership convergence in this head
A stale 58-file branch had accumulated release-verifier, release-version/provenance, canonical product-baseline, provider/cloud, TopFiles, and scan-page changes owned by other DiskSage lanes. The branch was converged non-destructively against current
mainand those foreign-to-this-PR deltas were restored to protected-main truth. In particular:TopFiles.svelteand the scan page returned to their dedicated owners;The remaining source is the Storybook/design-token/accessibility shell, preferred initial scan-root UX, focused customer-copy/error-feedback contracts, and the supporting provider-status presentation helpers.
Current product repair
A current review finding showed
Duplicates.svelterendering raw per-item backend errors ({r.error}) directly in customer markup. The repair was test-first:cleanupCustomerCopyContract.test.tsso Inventory/Duplicates may not render raw caught or per-item errors;The finding remains unresolved until the unchanged exact head obtains current hosted GREEN evidence.
UX / authority boundary
list_rootsTauri command keeps its external name while the UX preference lives inpreferred_scan_roots;/, avoiding accidental whole-filesystem-first scanning without removing explicit root access;Required before integration
Do not merge until this exact unchanged head has terminal-success applicable Test/Release/Security/SAST/accessibility and central required workflows, zero valid unresolved findings, the live review/ruleset requirements are satisfied, and repository-wide exact production coverage/package/SBOM/provenance requirements remain intact. Predecessor, pending, skipped-required, failed, stale, synthetic, status-only, or model-only evidence is non-passing.
Summary by CodeRabbit
새 기능
개선 사항
문서