Skip to content

perf(app): defer workbench Files surface - #18

Merged
Itsnotaka merged 1 commit into
mainfrom
daniel/frontend-defer-workbench-panes
Aug 4, 2026
Merged

Itsnotaka merged 1 commit into
mainfrom
daniel/frontend-defer-workbench-panes

Conversation

@Itsnotaka

@Itsnotaka Itsnotaka commented Aug 4, 2026 •

Copy link
Copy Markdown
Contributor

What changed

  • load the Files explorer and read-only viewer only after a Files/file workbench tab exists
  • keep route reconciliation, tab state, sizing, header, rail, and every other workbench surface eager
  • show an exact split-pane loading frame with the final explorer bounds, toolbar height, separator, directory label, and editor geometry
  • extend the startup graph gate to keep both Files modules deferred

Why

Workbench tabs are not persisted across process launches, but the 45.2 KiB Files explorer/viewer implementation was statically imported on every Electron start. It owns no startup controller responsibility.

Deep links still mount the Files surface immediately and see the final pixel geometry while the local chunk loads. Once loaded, existing visited-tab mounting and resource caching behavior are unchanged.

Performance

  • eager app source: 1,471.1 KiB → 1,430.7 KiB (-2.75%)
  • Electron window creation → ready-to-show median: 6,735 ms → 6,445 ms (-4.31%, three clean development starts)
  • process-wide Electron median: 7,792 ms → 7,307 ms (-6.22%)
  • production initial JS: 2,980,917 B → 2,965,273 B raw (-0.52%); 901,658 B → 898,241 B gzip (-0.38%)

One Vite dependency-optimizer error run was discarded and replaced. No release benchmark loop or UI automation was used.

Validation

  • pnpm --filter @honk/app dev:startup-review (0/2 Files modules eager; Vite started)
  • pnpm --filter @honk/app build
  • 29 focused Files/viewer/workbench route, tab, and presentation tests
  • focused Oxfmt and Oxlint
  • React Doctor adds no finding for this PR; it reports five warnings in the already-merged shell overlay host

Repository-wide checks retain main's existing failures: onboarding-layout.tsx references missing gearColossus, five files exceed the architecture limit, and v2.tsx has design-lint findings. This PR adds no findings to those checks.


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 5:32pm

Request Review

@Itsnotaka
Itsnotaka marked this pull request as ready for review August 4, 2026 17:31
@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
Itsnotaka merged commit d4ab494 into main Aug 4, 2026
4 of 5 checks passed
Itsnotaka added a commit that referenced this pull request Aug 6, 2026
@Itsnotaka
Itsnotaka deleted the daniel/frontend-defer-workbench-panes branch August 6, 2026 05:46

This branch was successfully deployed

1 active deployment
Preview — 14c8c4ac 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