Repository navigation
Conversation
This workflow runs tests and publishes a Node.js package to GitHub Packages upon release creation.
This workflow automates the build and deployment of a Jekyll site to GitHub Pages, including setup and artifact upload.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JioC3eCpQMqUFXMyTb1DHU
…nnect - TCP keepalive and connectionTimeoutMillis on the LISTEN client. - Periodic SELECT 1 with timeout detects half-open connections that never emit 'error' or 'end'; dead sockets are destroyed so they cannot leak. - After every successful reconnect, re-broadcast current state for each subscribed channel, since NOTIFY is not queued for a disconnected listener. - Tests: update made while LISTEN is down reaches SSE clients after reconnect; a silently hung connection is detected and recovered. - Make the schedule test create its 4 s cycle right before use and close open connections in cleanup so a failed assertion cannot hang the run. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JioC3eCpQMqUFXMyTb1DHU
… (A2-A4)
A2: ingest replaces the whole now-playing record; omitted artist/album are
written as null instead of keeping the previous track's values.
A3: every new SSE client receives its own initial frame independent of the
fan-out fingerprint; the 15 s age cache is replaced by a short TTL.
A4: unknown or inactive channels return 404 before any stream opens; add a
process-wide SSE connection cap (503 + Retry-After) and distinguish
missing channels, misconfigured channels, and database failures.
Each fix has a test that fails when the fix is removed.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JioC3eCpQMqUFXMyTb1DHU
…sets, remove fake UI (A5, B1-B4) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JioC3eCpQMqUFXMyTb1DHU
…aceful shutdown npm start used 'node -e import(...)', which left process.argv[1] empty so the entrypoint guard never ran start(): the process exited 0 silently. Run the file directly and default to production unless --dev/NODE_ENV=development. Adds a regression test that boots the server, checks robots/noindex and clean SIGTERM exit. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JioC3eCpQMqUFXMyTb1DHU
…aging, DEPLOY.md (T3/T4) Adds .github/workflows/radio-platform.yml (the one allowed file outside radio-platform/). Docker build and smoke test verified locally; Google Cloud steps are UNVERIFIED (see DEPLOY.md). Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JioC3eCpQMqUFXMyTb1DHU
…API, UI filters - server/sources/ajn.ts: RSS parser + filename/title classifier (air date, show, type, hour, variant), never guesses (weekday mismatch -> null + needsReview) - additive migration 20261002000000_content_sources (podcast_episodes columns, content_sources) - server/sources/sync.ts + npm run sources:sync: https/host allowlists, ETag, size/time caps, one transaction per feed, missingSince - API: episodes filters (show/type), facets, /api/sources; UI filter chips, dated clean titles - tests against real feed samples; integration tests on PGlite; entrypoint SYNC_SOURCES_ON_START - verified on the real feeds: 280 episodes imported, 0 needing review; real MP3 plays in headless Chromium Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JioC3eCpQMqUFXMyTb1DHU
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.