chore!: prepare release with ingestion hardening and dependency updates - #142
Merged
Merged
Conversation
Fix feed starvation, fence concurrent fetches, expose feed health, and use stable article cursors. Harden authentication and outbound requests, improve article UI behavior, and consolidate shared logic. Include migrations 0012 through 0014 and a release runbook covering backups, rollout, verification, and rollback. BREAKING CHANGE: require Node.js 24 and pnpm 12.4.2, replace numeric article cursors, and enforce public feed destinations and a 5 MiB response limit. Apply migrations before deploying matching API and frontend versions.
KyleTryon
marked this pull request as ready for review
September 20, 2026 01:55
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.
Description
Failing feeds repeatedly occupied the oldest-successful-fetch batch, starving healthy feeds. Schedule by attempts, run batches each minute, and apply refresh intervals per source. Add atomic fetch leases, ownership checks, bounded responses, accurate storage failures, retry backoff, and persistent ingestion-health reporting.
Prepare the next release with dependency upgrades, security fixes, UI improvements, shared helpers, and a migration/release runbook.
Type of Change
Changes Made
Migration and release
Follow docs/release-checklist.md. Apply all pending migrations before the updated API:
0012_overrated_toxin.sql: persistent authentication rate limits.0013_feed_fetch_attempts.sql: attempt timestamp/index, backfilled from successful fetch time.0014_feed_reliability.sql: feed-health state, leases, retries, and failure details.Cloudflare workflows migrate before API deployment and deploy the frontend after the API. Node startup migrates automatically. Rehearse preserved-data upgrades separately: the staging workflow wipes its database.
Breaking: Node 24+ and pnpm 12.4.2; object article cursors replace numeric cursors; feeds must use public destinations and responses must fit within 5 MiB. Node proxy headers require explicit trusted-proxy configuration. Deploy matching API/frontend versions; existing tabs may need a reload.
Back up production before migration. Keep additive schema changes during ordinary application rollback. Publishing the GitHub app release triggers production deployment and Docker publication; this PR does not deploy production.
Testing
pnpm test: 1,585 passed across 108 files; five existing skipspnpm pre-check: lint, formatting, strict types, and production builds in a clean tracked-source copy after a frozen install and Tricorder buildgit diff --checkDocumentation
Checklist
2498efaProduction database access was unavailable during review. No production migrations or deployments were performed. Articles already removed from upstream feeds cannot be recovered by the scheduling fix alone.