The app's database role cannot create tables in public, so migrations
failed with "permission denied for schema public". They now also load
/etc/esports/{prod,staging}-migrations.env, whose DATABASE_URL overrides
the app's. The health pre-check wrote a fixed /tmp file that another user
already owned, which silently skipped the live-match check; it uses mktemp.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The deploy user has passwordless sudo for tee and docker only, so the
script stopped at its first sudo install. release.env is rewritten with
tee, and the backup container creates the backup directory and sets the
file modes itself. HOST_PORT comes from the target, not release.env.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- 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>