ci(knip): enforce desktop exports#10269

merged1
cleanup-desktop/preview-helpers
cleanup-desktop/knip-gate
openedSep 6, 2026byJJulius Marminge
View on GitHubTwo-way sync enabledPR last imported 3d ago

The desktop export audit was clean locally but was not part of the long-term Knip gate. This adds apps/desktop to the runtime-export check and updates the maintainer guidance; exported types and Effect schemas remain allowed.

This is layer 5 of 5 in the desktop Knip cleanup stack.

Verification: vp run knip:check; desktop typecheck; 831 desktop tests; changed-file lint and format checks. The native libsecret test cannot start on this machine because the system libsecret-1 development package is unavailable.

Model: gpt-6 astra. Harness: Codex in T3 Code.

Note

Add apps/desktop to knip:check export coverage

Extends the knip:check script in package.json to scan apps/desktop for unused runtime exports, alongside the existing apps/web and packages/ workspaces. Updates the related docs in docs/operations/development.md. Risk: any currently-unused desktop exports will now fail the Knip check in CI.

Macroscope summarized fae727e.

Summary by CodeRabbit

  • Documentation

    • Updated development documentation to clarify that unused-code checks include runtime exports in the desktop application.
  • Chores

    • Expanded the unused-code validation command to scan the desktop application alongside existing workspaces.
Synced from GitHub

Approvability

Verdict: Approved at fae727e

Macroscope's review found this PR approvable โ€” The PR only documents and expands the existing Knip unused-export check to include the desktop workspace. Its effect is limited to local/CI static-analysis results and does not change application runtime behavior or production deployment.

You can add or adjust custom eligibility rules. Learn more.

Synced from GitHub

Thread transfer impact

โœ… Thread transfer remains within every enforced ceiling.

โ„น๏ธ No successful main baseline artifact is available yet. This run establishes the initial measurement.

ProviderMetricMain baselineThis PRImpactPR ceiling
CodexTotal thread wireโ€”13.6 KiBโ€”15.1 KiBโœ…
CodexThread snapshot wireโ€”7.0 KiBโ€”7.3 KiBโœ…
CodexLive turn WebSocket wireโ€”6.5 KiBโ€”7.8 KiBโœ…
CodexLive turn WebSocket decodedโ€”57.1 KiBโ€”66.4 KiBโœ…
CodexLive turn messagesโ€”10โ€”21โœ…
ClaudeTotal thread wireโ€”13.6 KiBโ€”15.1 KiBโœ…
ClaudeThread snapshot wireโ€”7.1 KiBโ€”7.3 KiBโœ…
ClaudeLive turn WebSocket wireโ€”6.5 KiBโ€”7.8 KiBโœ…
ClaudeLive turn WebSocket decodedโ€”57.8 KiBโ€”66.4 KiBโœ…
ClaudeLive turn messagesโ€”9โ€”21โœ…

Baseline: unavailable ยท PR result: fae727e ยท Source CI: success

Scenario and decoded snapshot size

10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.

  • Codex decoded thread snapshot: 113.9 KiB
  • Claude decoded thread snapshot: 114.6 KiB

Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed.

Added 1 commit

  • ci(knip): enforce desktop exportsfae727e
Synced from GitHub

Bugbot is paused โ€” on-demand spend limit reached

Bugbot uses usage-based billing for this team and has hit its on-demand spend limit.

A team admin can raise the spend limit in the Cursor dashboard, or wait for the next billing cycle to continue.

Synced from GitHub

Review Change Stack

No actionable comments were generated in the recent review. ๐ŸŽ‰

โ„น๏ธ Recent review info
โš™๏ธ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Team

Run ID: a0776c16-e52b-4712-a2ce-acfacb75f723

๐Ÿ“ฅ Commits

Reviewing files that changed from the base of the PR and between 3dc5b7c12bb3aad2e0fd16114f9a51ab22a3058f and fae727ecfea610247e5c5d7f7586277b9c376649.

๐Ÿ“’ Files selected for processing (2)
  • docs/operations/development.md
  • package.json

Included review availability: 8 reviews are currently available. Your included PR review attempts over the past 7 days set your current allowance at 10 reviews per hour.


๐Ÿ“ Walkthrough

Walkthrough

The knip:check script now analyzes apps/desktop. The development documentation records this additional coverage.

Changes

Knip coverage

Layer / File(s)Summary
Update Knip coverage
package.json, docs/operations/development.md
The knip:check command includes apps/desktop. The development documentation describes the expanded workspace coverage.

Estimated code review effort: 1 (Trivial) | ~2 minutes

Merge Risk: โšช Minimal ยท up to fae72

Desktop runtime-export checks are added to the existing Knip command, and the development documentation reflects that coverage. The change is ready to merge.

Suggested reviewers: t3dotgg

๐Ÿšฅ Pre-merge checks | โœ… 5
โœ… Passed checks (5 passed)
Check nameStatusExplanation
Title checkโœ… PassedThe title clearly and concisely describes the main change: enforcing desktop export checks in Knip.
Description checkโœ… PassedThe description clearly explains the change, the reason, verification performed, and the unavailable native libsecret test. It omits the template checklist, but the description is otherwise complete aโ€ฆ
Docstring Coverageโœ… PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0โ€ฆ
Linked Issues checkโœ… PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes checkโœ… PassedCheck skipped because no linked issues were found for this pull request.
โœจ Finishing Touches
๐Ÿงช Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch cleanup-desktop/knip-gate

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