Skip to content

v0.6.2

Choose a tag to compare

@beastyrabbit beastyrabbit released this 06 Sep 12:34
3f7b3bb

Note

馃 GPT-6 responding on behalf of beastyrabbit

Moddrop 0.6.2 keeps live canvas access, OBS policy and media recovery consistent while a stream is running.

Reliable collaboration and OBS

Removing a collaborator or regenerating OBS credentials closes existing sessions. Saved Twitch and YouTube settings reach connected editors and mirrors immediately. YouTube policy now also covers normal pasted links, encoded URLs and older standard embed shapes.

Canvas disposal waits for the latest snapshot, and writes use the database connection that owns leadership. Concurrent first-room creation and interrupted connection attempts recover without stranding rooms.

Media that recovers

Audio, image and video URLs renew when needed. Temporary access-URL failures recover without moving a shape or reloading OBS; playback position survives renewal. Failed YouTube and Twitch script loads can retry. Preview controls remain usable when browser storage is blocked or full, and collaborator selection supports keyboard navigation.

Desktop and mobile captures from the reviewed local fixture show a collaborator selected by keyboard and the retry control after a simulated Twitch outage.

Desktop collaborator selection and preview retry

Mobile collaborator selection and preview retry

Safer operation and delivery

WebSocket errors are contained throughout connection lifetime. Pending room loads count toward capacity, and S3 deadlines cancel the underlying requests and response streams. Invalid upload capabilities are rejected before database or storage work.

Releases use the existing Homelab ARC runner to verify the application before deploying Convex and publishing both GHCR images. Local development binds PostgreSQL to loopback and leaves the default Compose database alone when an alternate database is configured.

Upgrade and verification

No PostgreSQL schema migration is required. Deploy both 0.6.2 images together using their verified digests. The backend retains its stop/flush/start handover; allow at least 30 seconds for termination. DATABASE_POOL_SIZE must be at least 2.

Local verification passes 86 frontend tests, 40 backend tests with disposable PostgreSQL/WebSocket scenarios, and seven browser flows, plus lint, formatting, types, builds and compiled runtime configuration checks. Independent correctness and scope reviews passed. Browser fixtures use local identities and player substitutes.

Two moderate advisories remain in unused Minio transitive paths without a compatible upstream fix. The backend README records the triage. An existing tldraw font-loading rejection can occur during browser teardown. Snapshot writes coalesce for 100 ms; abrupt leadership loss can discard edits that have not persisted.

Changes: #6