Skip to content

fix(sync): mark shows whose Podcast Index IDs differ from their served IDs for the overlay - #1149

Merged
ashwkun merged 1 commit into
masterfrom
sync-served-show-aliases
Oct 20, 2026
Merged

ashwkun merged 1 commit into
masterfrom
sync-served-show-aliases

Conversation

@ashwkun

@ashwkun ashwkun commented Oct 20, 2026

Copy link
Copy Markdown
Member

Summary

When Podcast Index renumbers or duplicates an episode the book already has, the show is now marked for the Worker's ID overlay, so old builds keep getting the episode's original ID everywhere.

Motivation

Since the sync started writing the episode book, a renumbered episode keeps its served ID (its vector keeps its name) and the new Podcast Index ID becomes an alias. The Worker only translates Podcast Index IDs for shows in served_show, which so far meant shows with recipe-served episodes. For other shows, recommendations returned the served ID while episode lists from Podcast Index returned the new ID, so an old build could see one episode under two IDs. In production this affected 168 aliases in 12 shows; those 12 were marked by hand.

What changed

  • lib/episode-book.js: bootstrapShow (used by the bootstrap and stage 4) adds one statement to its transaction that marks the show in served_show when any of its Podcast Index aliases differs from the row's served ID.
  • The served_show table comment and scripts/README.md describe the wider meaning.

Behavior & compatibility

  • Listeners on old builds: a renumbered or duplicated episode keeps the ID they already have on every route.
  • Deploy: the sync runs outside GitHub Actions.

Impact (required)

User impact — pick exactly one

  • user-impact-critical
  • user-impact-high
  • user-impact-medium
  • user-impact-low
  • no-user-impact

Backend — optional, pairable with any user-impact level

  • backend-change

Release copy (verbatim — highest priority)

CHANGELOG.md (required developer copy)

Fixed

  • Episodes that Podcast Index renumbers or lists twice keep their original ID for older app builds.

README What's New / Upcoming (required for user-impact changes)

Test plan

  • npm run test:sync --prefix scripts: 144 tests. 1 is new: a show is marked only when a Podcast Index ID differs from the served ID (renumbered or duplicated), never when they match.

@ashwkun ashwkun added no-user-impact No listener-facing change (CI, docs, internal) backend-change Touches backend/proxy/infra — pairable with any user-impact level labels Oct 20, 2026
@coderabbitai

coderabbitai Bot commented Oct 20, 2026

Copy link
Copy Markdown

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 5 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used all 2 included reviews currently available.

Learn how review limits work.

Review configuration:

⚙️ Run configuration
  • Configuration used: Repository: boxcreate/boxlore/.coderabbit.yaml
  • Review profile: ASSERTIVE
  • Plan: Advanced
  • Run ID: b2fcd2f6-9d13-4a3b-952f-b544cca9c98f
📥 Commits

Reviewing files that changed from the base of the PR and between 1614171 and 73d9750.

📒 Files selected for processing: 3
  • scripts/README.md
  • scripts/sync/lib/episode-book.js
  • scripts/sync/lib/episode-book.test.js
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@sonarqubecloud

Copy link
Copy Markdown

@ashwkun
ashwkun merged commit 0d04e0f into master Oct 20, 2026
11 of 12 checks passed
@ashwkun
ashwkun deleted the sync-served-show-aliases branch October 20, 2026 16:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backend-change Touches backend/proxy/infra — pairable with any user-impact level no-user-impact No listener-facing change (CI, docs, internal)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant