Description
The embedded web UI from #19299 works but has several production-facing gaps:
- Binary size: All fonts (~27MB) are embedded, though users only use one monospace font at a time
- DB migration on assets: Every asset request goes through
Instance.provide(), triggering DB migration checks
- No SPA routing: Page refreshes on client-side routes return 404 instead of
index.html
- No dev override: No way to point at a local
packages/app/dist during development without compiling
- No fallback: If an asset is missing from the embedded bundle, it's a hard 404 instead of falling back to CDN
Steps to reproduce
- Build binary with embedded web UI
- Navigate to a deep route like
/session/abc and refresh → 404
- Check binary size — ~27MB larger than necessary due to optional fonts
- During dev, no way to serve local app build without full recompilation
OpenCode version
v1.3.3
OS
Linux