Skip to content

fix: replace starter shell metadata with DiskSage identity - #204

Draft
seonghobae wants to merge 44 commits into
mainfrom
fix/app-shell-metadata-v1
Draft

fix: replace starter shell metadata with DiskSage identity#204
seonghobae wants to merge 44 commits into
mainfrom
fix/app-shell-metadata-v1

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

Purpose

Replace shipped starter identity with deterministic DiskSage application/package identity while preserving scan, cleanup, filesystem, model, network, and user-data authority boundaries.

Exact current state

  • protected main: 93aa7477629753187da101a8af0e7276480f1a86
  • exact current head: 09dd221d3279877d4784d71f25ae3f7f4d07bfa0
  • the branch was converged onto current protected main with a non-forced merge commit while preserving the current Svelte ^5.56.9 dependency and this PR's predev / prebuild icon-generation hooks
  • current Test 32319641097, Security Scan 32319641117, and SAST Semgrep 32319641161 are queued; Release 32319641115 is in progress. None is yet passing evidence for this head
  • PR remains Ready for review and mergeable; mergeability alone is not merge authorization

Product identity boundary

  • src/app.html declares Korean document language, DiskSage title, and the DiskSage SVG favicon
  • src-tauri/icons/icon-source.svg is the reviewable icon source of truth; .gitattributes fixes hashed/mirrored icon inputs to LF across platforms
  • src-tauri/icons/icon-contract.json fixes source digest, required PNG sizes, ICO ordering, and ICNS chunks
  • scripts/generate-icons.mjs deterministically generates native icon assets and icon-manifest.json using Node.js standard-library APIs
  • Tauri dev/build hooks generate those resources before packaging, and the generated manifest is bundled as integrity evidence
  • generated native icon assets remain ignored rather than committed, so generation failure is fail-closed instead of silently shipping stale binaries

Test-first repair lineage

The identity/icon contracts exposed Windows CRLF digest drift and then a clean-checkout test-ordering defect where Rust asserted the generated manifest before generation. The current workflow sets up pinned Node, generates icons on the clean checkout, and then runs the unchanged Rust contract. The resolved/outdated CodeRabbit source-of-truth finding was addressed by making the procedural generator and reviewable SVG share the same canonical definition contract rather than allowing hash-only drift.

Scope / non-duplication

This line owns application-shell/native-package identity, deterministic icon generation, and directly required Test-workflow ordering. It does not import repository-wide exact coverage #156, canonical product documentation #149, or unrelated cleanup/cloud/provider authority work.

Required before merge

Do not merge unless the unchanged exact head satisfies every applicable native and central required workflow, zero valid unresolved findings, fresh protected-main ancestry, the live review/last-push/thread ruleset, and repository-wide exact 100% owned-production region/statement-equivalent, branch, function, and line coverage without exclusions or threshold weakening. Pending, queued, skipped-required, neutral-required, cancelled, failed, stale, predecessor, synthetic, diagnostic-only, status-only, model-only, author-only, rate-limited, no-source-scanner, or infrastructure-only evidence is non-passing.


Open in Devin Review

@coderabbitai

coderabbitai Bot commented Aug 13, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

Next included review available in 15 minutes.

View limit details

Limit 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.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: d17c9f93-9d43-4996-9656-52a1d5c4afc4

📥 Commits

Reviewing files that changed from the base of the PR and between 55ff624 and 750213d.

⛔ Files ignored due to path filters (1)
  • package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (11)
  • .github/workflows/release.yml
  • .github/workflows/test.yml
  • .gitignore
  • package.json
  • scripts/generate-icons.mjs
  • src-tauri/icons/README.md
  • src-tauri/icons/icon-contract.json
  • src-tauri/tauri.conf.json
  • src/iconBrandingContract.test.ts
  • src/iconGeneratorRuntimeContract.test.ts
  • src/iconWindowsIcoCompatibility.test.ts
📝 Walkthrough

Walkthrough

아이콘 계약과 결정적 생성기를 추가했다. 생성기는 PNG·ICO·ICNS와 SHA-256 매니페스트를 만든다. Tauri와 CI가 생성기를 실행한다. HTML 브랜딩과 favicon을 변경하고 관련 계약 테스트를 추가했다.

Changes

아이콘 생성 파이프라인

Layer / File(s) Summary
아이콘 계약 및 생성기
src-tauri/icons/icon-contract.json, scripts/generate-icons.mjs, src-tauri/icons/README.md, .gitattributes
아이콘 계약을 정의했다. SVG를 결정적으로 래스터화하고 PNG·ICO·ICNS와 SHA-256 매니페스트를 생성한다. 생성기 CLI는 입력 경로와 알 수 없는 옵션을 검증한다.
빌드 및 배포 연동
.github/workflows/test.yml, src-tauri/tauri.conf.json, .gitignore
CI와 Tauri 개발·빌드 전처리에서 아이콘 생성기를 실행한다. 아이콘 매니페스트를 번들 리소스로 포함한다. 생성 산출물은 Git에서 제외한다.
브랜딩 및 계약 검증
src/app.html, src/appShellMetadataContract.test.ts, src/iconBrandingContract.test.ts, src/iconLineEndingContract.test.ts
문서 언어와 제목을 변경하고 SVG favicon을 연결한다. SVG 해시, 브랜드 색상, PNG·ICO·ICNS 구조, 매니페스트 해시, 빌드 훅 및 LF 설정을 검증한다.

Estimated code review effort: 4 (Complex) | ~45 minutes

Merge Risk: 🟡 Moderate · up to 55ff6

Native packages can retain outdated icon artwork even when the canonical DiskSage source and integrity manifest change, causing inconsistent branding and misleading asset verification. Merge should wait until native assets are generated from the same canonical source.

Sequence Diagram(s)

sequenceDiagram
  participant Tauri as Tauri 명령
  participant Generator as generateIconSet
  participant Assets as 아이콘 산출물
  participant Bundle as Tauri 번들
  Tauri->>Generator: 개발 또는 빌드 전 아이콘 생성 실행
  Generator->>Generator: SVG와 아이콘 계약 검증
  Generator->>Assets: PNG·ICO·ICNS·매니페스트 생성
  Tauri->>Bundle: 아이콘 매니페스트 포함
Loading
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
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 제목은 스타터 셸 메타데이터를 DiskSage 정체성으로 교체하는 PR의 핵심 변경을 간결하게 설명합니다.
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/app-shell-metadata-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 13, 2026 11:41
@seonghobae
seonghobae marked this pull request as draft August 13, 2026 16:16
@seonghobae
seonghobae marked this pull request as ready for review August 13, 2026 21:23
@seonghobae
seonghobae marked this pull request as draft August 15, 2026 10:10
@seonghobae
seonghobae marked this pull request as ready for review August 15, 2026 10:10
@cursor

cursor Bot commented Aug 16, 2026

Copy link
Copy Markdown

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.

coderabbitai[bot]

This comment was marked as resolved.

@seonghobae
seonghobae marked this pull request as draft August 23, 2026 23:09
devin-ai-integration[bot]

This comment was marked as resolved.

@seonghobae

Copy link
Copy Markdown
Contributor Author

Root cause repaired at exact HEAD 7035521: the generator contract had truncated zlib 1.3.0.1-motley, while Node 20.19.0 actually reports 1.3.0.1-motley-82a5fec; Release also used floating node-version: 20 and received Node 20.20.2/zlib 1.3.1. Both Release setup-node entries are now pinned to 20.19.0 and the contract/test use the full audited ABI. Local evidence: icon runtime contract 3/3 passed under Node 20.19.0, npm run check passed with 0 diagnostics, and deterministic icon generation succeeded. Hosted checks restarted; PR remains draft/blocked and no merge claim is made.

# Conflicts:
#	.github/workflows/test.yml
@seonghobae

Copy link
Copy Markdown
Contributor Author

Rebased without force-push onto current protected main in merge commit e62342c3daa45584f7d16b461e6be527a466bfd8, resolving the sole test.yml conflict by retaining the pinned Node 20.19.0 setup and adding the current archive-tree help test. The branch is no longer DIRTY; hosted checks restarted for this exact head and remain pending. Draft/review-required protected gates still apply.

@seonghobae

Copy link
Copy Markdown
Contributor Author

Follow-up at exact HEAD d8d8a4c pins the remaining attestation-job Node bootstrap introduced by current main; all five Test/Release node-version entries now use 20.19.0, so the runtime contract cannot silently drift again. Targeted icon runtime tests remain 3/3 under Node 20.19.0. Hosted checks restarted; protected review is still required.

@seonghobae

Copy link
Copy Markdown
Contributor Author

Correction: the exact follow-up commit is 5bf86a9c593888fe5f08bff9f8dea74e5f1299ae (not d8d8a4c). The branch ref and PR HEAD now both point to this SHA.

@seonghobae

Copy link
Copy Markdown
Contributor Author

The failed Strix job for exact head 5bf86a9c593888fe5f08bff9f8dea74e5f1299ae is provider infrastructure: NVIDIA NIM returned HTTP 429 on attempts 001–003; the configured NIM fallback completed the scan on attempt 004, while legacy OpenAI-direct fallback returned HTTP 404. No source finding or structured SARIF failure was produced. Requesting a same-head rerun; no source change is inferred.

@seonghobae
seonghobae marked this pull request as ready for review August 25, 2026 02:30
@seonghobae

Copy link
Copy Markdown
Contributor Author

@OpenCode @coderabbitai review current exact head 5bf86a9c593888fe5f08bff9f8dea74e5f1299ae. The Intel Homebrew path contract is covered; prior Strix failure was provider infrastructure and has been rerun. Review only this exact head.

@coderabbitai

coderabbitai Bot commented Aug 25, 2026

Copy link
Copy Markdown

@seonghobae I will review PR #204 only at commit 5bf86a9c593888fe5f08bff9f8dea74e5f1299ae.

⚠️ Action not completed

Review rate limited.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@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 found 2 new potential issues.

Open in Devin Review

Comment thread scripts/generate-icons.mjs
Comment thread .gitignore
@seonghobae

Copy link
Copy Markdown
Contributor Author

Current head 303ac6b810f4ab7fbaf131bea1111cbf6bc45edc resolves the Node 22 review finding by narrowing package.json engines to the exact audited generator runtime 20.19.0; the zlib-pinned deterministic asset contract remains fail-closed. The runtime contract test now prevents the package engine declaration from drifting.

Local evidence: npm run check; focused runtime-contract test (1 passed, 2 skipped); JSON and diff checks passed. Please re-review this exact head.

@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 found 2 new potential issues.

Open in Devin Review

Comment thread scripts/generate-icons.mjs
Comment thread package.json
@seonghobae

Copy link
Copy Markdown
Contributor Author

Follow-up head 750213df also synchronizes package-lock.json with the narrowed exact engine, so install-time metadata and package.json cannot disagree.

@seonghobae
seonghobae marked this pull request as draft August 25, 2026 04:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: auth Authentication, authorization, identity, or tenant isolation 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