githubnext/chopinPublic

Let's compose rich plans together

Move signed-out and lazy-only code out of the initial bundle

The initial JavaScript entry was within bytes of its budget because shared
modules imported by the entry carried every export their lazy consumers use.

- Split the repository snapshot reader and validators from the cache-clearing
  helper the entry needs.
- Load the GitHub sign-in page and the legacy /channels route lazily.
- Keep the child-focus reducer in child-history so AnchoredChildSurface stays
  in the document host chunk.
- Move device-authorization and research-request calls next to their only
  consumers.

Initial JavaScript: 255781 -> 246743 B raw, 80560 -> 77694 B gzip.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
C5MAMaggie Appleton and Claude Opus 5.5 authored
e8794e7Patch
Parentebf436d
17 files changed+661-632
StackedSplit
apps/web/src/add-project-dialog.tsx+2 −2
apps/web/src/anchored-child-surface.tsx+7 −65
apps/web/src/api.test.ts+2 −5
apps/web/src/api.ts+1 −83
apps/web/src/app.tsx+9 −8
apps/web/src/channel-workspace.tsx+116 −0
apps/web/src/child-history.ts+65 −0
apps/web/src/device-authorization.ts+42 −0
apps/web/src/hosted-login.tsx+35 −0
apps/web/src/hosted.test.ts+2 −1
apps/web/src/hosted.tsx+17 −146
apps/web/src/local-login.tsx+11 −9
apps/web/src/repository-cache.test.ts+2 −2
apps/web/src/repository-cache.ts+5 −303
apps/web/src/repository-picker.tsx+2 −2
apps/web/src/repository-snapshot.ts+303 −0
apps/web/src/research-requests.ts+40 −6