Fix ATProto publish crash; rename script; rebuild once per feed change - #58
Conversation
Flightcast now emits a second enclosure per episode (the cover image) with no type attribute, which the copied-from-rss.ts schema required — so every publish run died in FeedSchema parse. Trim the schema to the fields the script reads (title, published, description, content_encoded, itunes_episodeType) so irrelevant feed changes can't break publishing. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Warning Review limit reachedNext included review available in 47 minutes. View limit detailsLimit details: You’ve used the included review currently available. You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Review configuration: ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (5)
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review. 📝 WalkthroughWalkthroughThe RSS feed schema now validates only fields consumed by the episode publishing script. Unused metadata fields and enclosure validation were removed. Fetching, filtering, publishing, pagination, rebuild waits, and error handling remain unchanged. ChangesRSS feed validation
Estimated code review effort: 2 (Simple) | ~10 minutes Merge Risk: ⚪ Minimal · up to The publish script now validates only the feed fields it uses, preventing unrelated enclosure metadata from stopping publishing; no actionable merge-blocking risk remains beyond normal checks and review. 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
…eed change The script only publishes standard.site documents to ATProto — episode pages come from the Astro build — so name it accordingly (pnpm scripts are now publish:atproto / publish:atproto:backfill). The gate also now records which feed content it already triggered a Vercel rebuild for, separately from the publish-success hash. A persistently failing publish (like the recent FeedSchema crash) keeps retrying every poll but no longer fires a fresh build each time; the publish script still waits on the pages from the one build it did trigger. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
An in-progress workspace import path ('starpod/src/utils/dasherize')
was accidentally captured during the rename; main still has src/ at the
repo root, so astro check failed with ts(2307).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Why
Publish Episodes to ATProtorun was failing withValiError: Invalid key: Expected "type"— Flightcast now emits a second, typeless enclosure (the episode cover image; 129 items in the live feed), and the script's feed schema requiredtypeon every enclosure.What
title,published,description,content_encoded,itunes_episodeType). Episode pages get their full data fromsrc/lib/rss.ts(which already tolerated the typeless enclosure); this script only publishes standard.site pointer documents, so irrelevant feed-host changes can no longer break it. Verified against the live feed.scripts/publish-episodes.ts→scripts/publish-atproto-episodes.ts(pnpm scriptspublish:atproto/publish:atproto:backfill), since the script is ATProto-only — pages come from the Astro build.🤖 Generated with Claude Code