perf: split editor from hosted entry #89
- MA
## Summary
- keep login, repository selection, and channel browsing on a small hosted entry - load the existing room workspace only after a channel route is selected, alongside channel metadata - enforce the complete static JavaScript entry graph at 250,000 B raw and 80,000 B gzip during every production build
## Measurements
| Initial JavaScript | Raw | Gzip | | --- | ---: | ---: | | Before | 1,396,071 B | 438,080 B | | After | 225,991 B | 70,930 B | | Reduction | 83.8% | 83.8% |
The deferred room workspace is 1,168,368 B raw / 367,550 B gzip. Baseline source-map analysis found the largest eager contributors were `react-dom`, Lexical, `@chopin/editor`, `json-joy`, MDXEditor, Yjs, and `@lexical/table`. The final hosted entry retains React, hosted UI, and the editor package pointer-capability helper; Lexical, MDXEditor, `json-joy`, Yjs, and workspace modules are absent.
## Behavior and tradeoffs
- channel metadata and workspace code load concurrently under the existing “Opening channel...” treatment - channel and module failures use the hosted recovery surface, including safe retries and known-channel context - channel opening adds one deferred JavaScript request and its CSS - the Vite warning for the large deferred workspace remains visible; this PR does not raise or silence the threshold
## Verification
- `bun test` — passed, with 2 PostgreSQL-only skips - `bun run types` - `bun run ci` - `bun run build` — budget reports 225,991 B raw / 70,930 B gzip - `E2E_SKIP_BUILD=1 bun scripts/e2e.ts e2e/hosted.e2e.ts` — 15 passed, including channel creation, opening, retry, and recovery
MaggieAppletonhead-ref-force-pushed c54c863c1e9d2 months ago on GitHub
MaggieAppletonhead-ref-force-pushed 19994970fcae2 months ago on GitHub
MaggieAppletonmerged f83b9da772c02 months ago on GitHub
MaggieAppletonhead-ref-deleted2 months ago on GitHub