Skip to content

perf(app): defer settings panels from startup - #16

Merged
Itsnotaka merged 1 commit into
mainfrom
daniel/frontend-settings-startup
Aug 4, 2026
Merged

Itsnotaka merged 1 commit into
mainfrom
daniel/frontend-settings-startup

Conversation

@Itsnotaka

@Itsnotaka Itsnotaka commented Aug 4, 2026 •

Copy link
Copy Markdown
Contributor

What changed

  • Lazily load all nine settings panel modules while keeping the settings frame, rail, header, and close control eager.
  • Render a token-backed fallback using the existing settings row geometry so the permanent dialog structure stays fixed while a panel chunk loads.
  • Add a development startup graph gate and an opt-in Electron ready-to-show probe.
  • Document the performance review, static UI boundary, measurements, and non-goals.

Why

The closed Settings overlay was statically importing every panel into the renderer startup graph. Those controls are unavailable until Settings opens, and only one panel is visible at a time.

Impact

  • Electron dev process-to-ready median: 8,365 ms → 7,849 ms (-6.17%)
  • Electron dev window-to-ready median: 7,433 ms → 6,932 ms (-6.74%)
  • Production initial renderer JS: 3,133,697 B → 3,041,442 B (-2.94%)
  • V8 initial-module compile median: 37.43 ms → 35.60 ms (-4.89%)
  • Eager app source in the dev graph: 1,663.1 KiB → 1,527.9 KiB (-8.1%)

The first visit to a settings panel pays one local dynamic import. Subsequent visits use the module cache. Build configuration, allocators, and permanent startup UI are unchanged.

Validation

  • pnpm --filter @honk/app dev:startup-review
  • pnpm --filter @honk/desktop typecheck
  • pnpm --filter @honk/desktop test (76 passed)
  • pnpm --filter @honk/desktop build
  • React Doctor on changed files (100/100)
  • Focused oxlint and formatting checks

The full app typecheck, app test suite, architecture check, and design lint retain failures reproduced on a clean baseline checkout: the missing gearColossus icon type, three StyleX debug-class assertions, five existing oversized files, and existing raw-style findings in v2.tsx.


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.

@vercel

vercel Bot commented Aug 4, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
honk-marketing Ready Ready Preview Aug 4, 2026 4:42pm

Request Review

@Itsnotaka
Itsnotaka marked this pull request as ready for review August 4, 2026 16:47
@Itsnotaka
Itsnotaka merged commit 0ec0419 into main Aug 4, 2026
4 of 5 checks passed
@cursor

cursor Bot commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

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.

Itsnotaka added a commit that referenced this pull request Aug 6, 2026
Defers settings panel modules from the renderer startup graph and adds development startup measurements.
@Itsnotaka
Itsnotaka deleted the daniel/frontend-settings-startup branch August 6, 2026 05:46

This branch was successfully deployed

1 active deployment
Preview — 75e196bd Deployed Aug 4, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant