docs(blog): add retrospective on five broken releases before v0.3.2#997
docs(blog): add retrospective on five broken releases before v0.3.2#997
Conversation
First post under a new docs site blog section. It's a post-mortem on the six bugs that broke every Archon binary release from v0.2.13 through v0.3.1: - #960 pino-pretty transport crash in compiled binaries - #961/#979 isBinaryBuild runtime detection fragility - #986/#987 release workflow bypassing scripts/build-binaries.sh - #988 SQLite schema missing allow_env_keys column - #990 Claude SDK cli.js path baked in at build time - #991/#992 env-leak gate firing on unregistered cwd paths Each bug masked the next. The test-release skill was the first thing that exercised the full chain (install the released binary on a clean machine, run real commands, verify end-to-end), and it found all six in sequence as the earlier layers got fixed. The post covers: - The bug onion metaphor and why it's particularly hard to debug - Each of the six bugs with root cause and fix PR - Why dev mode hid all of this - Why locally-built binaries passed all contributor tests but failed for every other user - The smoke test that finally broke the pattern - What changed in the release skill + what's still open - An honest 'note on blame' — the lesson is structural, not about being more careful Also adds a 'Blog' section to the Astro sidebar config so the new directory is discoverable. Positioned between Getting Started and Guides. Pre-post sanity check items for reviewer: - Factual accuracy of the bug-by-bug timeline - Whether to name the community contributor (leex279) explicitly or keep it generic - Whether the 'Note on blame' section is the right tone - Length (~3000 words) — fine for a post-mortem, could be trimmed to ~2000 for a shorter read
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (2)
📝 WalkthroughWalkthroughAdded a blog section to Starlight documentation configuration and published a new blog post detailing the release issues and fixes for Archon v0.3.2, including build pipeline failures, schema mismatches, and process improvements. Changes
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~5 minutes Poem
🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ 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 |
…ix-api-key-warning fix: remove ANTHROPIC_API_KEY fallback to fix misleading startup warning
…ix-api-key-warning fix: remove ANTHROPIC_API_KEY fallback to fix misleading startup warning
…ix-api-key-warning fix: remove ANTHROPIC_API_KEY fallback to fix misleading startup warning
Summary
Adds a new blog post under
packages/docs-web/src/content/docs/blog/— a retrospective on the six bugs that broke every Archon binary release from v0.2.13 through v0.3.1, why dev mode hid all of them, and the smoke test (test-releaseskill) that finally caught them all.Also adds a
Blogsection to the Astro sidebar config so the new directory is discoverable.Why write this post
Over the past day we shipped v0.2.14 → v0.3.0 → v0.3.1 → v0.3.2 in rapid succession, each chasing a bug the previous release had that was hidden by an even earlier bug. This is a case study in how subtle differences between a contributor's dev environment and the user's installed environment can hide entire classes of bugs, and how a test that lives in the user's environment (a smoke test against the actual released binary on a clean machine) is the only thing that catches seam bugs between components.
Worth publishing because:
What's in the post
isBinaryBuildruntime detection fragilityscripts/build-binaries.shallow_env_keyscolumncli.jspath baked in at build timetest-releaseskillChanges
packages/docs-web/src/content/docs/blog/five-broken-releases.mdpackages/docs-web/astro.config.mjsBlogsidebar section betweenGetting StartedandGuidesThings worth reviewing
category: blog,audience: [user, contributor],sidebar.order: 1. Matches the pattern fromreference/security.md. Astro Starlight will autogenerate the section so new posts just land in the directory.date: 2026-04-08in the front matter. Starlight doesn't use this natively for sorting — if we want posts ordered chronologically, we'd need to either use numericordervalues OR set up a proper blog integration. For one post,order: 1is fine.What's NOT in this PR
blog/directory + sidebar entry, but no content addedindex.mdinblog/@astrojs/rsslater if desiredThese are all optional polish that can ship in follow-up PRs once the blog has more content.
Preview
After merge, the post will be live at
https://archon.diy/blog/five-broken-releases/(or similar — Starlight's URL scheme depends on the section structure). TheBlogsidebar entry will appear betweenGetting StartedandGuides.Want to see it locally before merging? Run
bun --filter @archon/docs-web devand navigate to the preview URL.Related
.claude/skills/test-release/SKILL.mdskill that's the hero of the story.claude/skills/release/SKILL.mdskill updates that added Steps 10-12 for Homebrew sync and post-release verificationSummary by CodeRabbit