extremely claude-assisted go game based on atproto! working on cleaning up and giving a more unique design, still has a bit of a slop vibe t

firehose: replace broken in-process subscriber with a Durable Object worker

The server-side Jetstream subscriber added in 3c9ca4d could not work on Cloudflare Pages: it opened a module-scope WebSocket from a request handler, kept per-isolate state, reconnected with setTimeout, and wrote D1 from a detached callback (which the runtime rejects). It also duplicated the already-working client-side subscriber in src/lib/firehose.ts. Replace it with a standalone Worker (firehose-worker/) whose Durable Object holds one Jetstream connection filtered to boo.sky.go.*, resumes from a persisted cursor, and keeps itself alive with an alarm re-armed every 10 minutes (an outbound socket only defers eviction for 15). A Cron Trigger bootstraps and recovers it. It is a separate Worker because @sveltejs/adapter-cloudflare emits a fixed _worker.js with no way to export a Durable Object class. Also in this pass: * Discovery: route board, scoring-board, og-image, nudge, nudge-image, reaction and join through ensureGameInDb so third-party games no longer 404; add GET /api/games reading the D1 index. * ensureGameInDb: drop the no-op limit param, guard the UFOs response shape, prefer Constellation's authoritative total over the limit-truncated results, and document that UFOs is a capped sample rather than an index. * Homepage: fetch the list from /api/games in one request instead of 32 UFOs reads plus 128 Constellation reads plus 32 move-count reads. * atproto-client: Constellation backlinks carry identifiers only, so hydrate moves/passes/resigns from their author's PDS (they previously threw on any game with two or more actions). * Seed the five third-party games the D1 index was missing, so the list matches what the client-side UFOs scan used to show. * Delete the stray empty "Check" file; refresh README and STATUS, which claimed OAuth and record writes were unimplemented.


Author goose.art Date Commit Parent 8ceab375