Generate the episode page after publishing, not before

regenerate_website_pages() ran at step 3.7, before the step-4 publish call.
generate_episode_pages.py is driven entirely by the RSS feed, so the episode
being published was never in the data it read: the generator exited 0, printed
its success line, and silently omitted the new episode. Its page only appeared
on the NEXT publish.

Social posts link to /episode/<slug>/, so every launch-day link across X,
Bluesky, Discord, Instagram, Threads, Facebook, LinkedIn, Mastodon and Nostr
404'd during exactly the window the post was circulating. That held for all 58
published episodes.

The existing test only asserted the generator gets invoked with --sitemap,
which passed throughout. Added two tests pinning the call between the publish
and the wrangler deploy, verified to fail against the previous ordering.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-15 17:05:17 -05:00
co-authored by Claude Opus 5
parent fe37c037d4
commit 242eb15e0a
2 changed files with 45 additions and 4 deletions
+9 -4
View File
@@ -1871,10 +1871,6 @@ def main():
shutil.copy2(str(transcript_path), str(website_transcript_path))
print(f" Transcript copied to website/transcripts/")
# Build this episode's static page and regenerate the sitemap wholesale.
# generate_episode_pages.py is the only writer of sitemap.xml.
regenerate_website_pages()
# Sync any remaining episode media to BunnyCDN (cover art, etc.)
print(" Syncing remaining episode media to CDN...")
sync_episode_media_to_bunny(episode["id"], uploaded_keys)
@@ -1891,6 +1887,15 @@ def main():
else:
raise
# Build this episode's static page and regenerate the sitemap wholesale.
# generate_episode_pages.py is the only writer of sitemap.xml.
#
# MUST run after the publish above: the generator is driven entirely by the
# RSS feed, so running it earlier silently omits the episode being published
# and its page only appears on the NEXT publish. Social posts link to
# /episode/<slug>/, so that left every launch-day link 404ing.
regenerate_website_pages()
# Step 5: Deploy website (transcript + sitemap must be live before social links go out)
print("[5/5] Deploying website...")
project_dir = Path(__file__).parent