- run sv migrate sveltekit-3: config moves into vite.config.ts, $lib becomes
#lib, $env/dynamic becomes $app/env/private via src/env.ts, $app/environment
becomes $app/env, hook types move to @sveltejs/kit/hooks
- env vars stay optional (the migrator defaulted them to ''), and BANCHO_MODE,
which it missed, is declared and passed to simulatorEnabled
- handleError only logs and masks unknown errors; Kit 3 now routes 404s and
error(...) through it too
- json()/text() become Response.json()/new Response(); goto keepFocus/noScroll
becomes reset: false; invalidateAll becomes refreshAll; page.url is copied
before mutating
- replace adapter-node with @sveltejs/adapter-bun; prod-server.ts wraps
Bun.serve to add native WebSockets (bunSockets) for /ws paths, since the
generated server has no websocket option
- drop the Kit readdir patch: Kit 3 sorts route entries itself
- match view and broadcast pages use the live score modules
BREAKING CHANGE: requires SvelteKit 3, TypeScript 6 and Bun 1.4; the build
output is build/index.js from adapter-bun, started through prod-server.ts.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- streamer/windows: vash-broadcast.exe (setup/login/start/stop/status/doctor)
with per-instance OBS, tosu and FFmpeg, a supervised worker, OCR room
selection and OBS scene reconciliation; built and tested on Linux only
- streamer/relay.ts shared with Vash TV; Cloudflare Access proxy for dev/staging
- worker status validation and live score helpers for the site
- STREAMING_HANDOFF.md and streamer/ALPHA_TEST.md record what is unverified
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>