Releasing
#Goals
- Ship npm packages (core first, then CLI).
- Tag + GitHub release.
- Submit the matching extension package to the Chrome Web Store unless the release is daemon-only.
- Leave formula updates to Homebrew/core autobump; optionally verify after it catches up.
#Checklist
scripts/release.sh all(gates → build all assets → pack verify → publish → smoke → tag → GitHub release/assets).- Verify the GitHub release notes and uploaded Bun/extension assets.
- Submit the Chrome extension update:
- Skip this step only when every shipped change is daemon-side and the packaged extension and its companion contract are unchanged.
- Using the existing authenticated Chrome profile, open the Chrome Web Store Developer Dashboard and select item
cejgnmmhbbpdmjnfppjdfkocebngehfg. - Upload
dist-chrome/summarize-chrome-extension-v<version>.zip. - Add source-backed Privacy-tab justifications for any newly declared permissions, then save the draft.
- Submit for review with automatic publishing enabled. Verify the dashboard shows the exact draft version as
Pending revieworPublished; the public listing can remain on the prior version until review completes.
- Optional follow-up, not a release gate: after Homebrew/core autobump catches up, verify the formula reflects the new version:
scripts/release.sh homebrewbrew install summarizesummarize --versionmatches tag.- Run a feature added in the release (for example
summarize daemon install).
- If a required release step fails, fix it before closeout. Homebrew/core autobump lag does not require re-cutting or delaying a completed release.
#Common failure
- NPM/GitHub release updated, but Homebrew/core still serves the old version.
- GitHub Release contains the extension ZIP, but the Chrome Web Store still serves an old version.
Expected while autobump is pending. Do not manually update the formula or block the release; step 4 can verify it later.
Fix: submit the matching ZIP in step 3 and verify the draft/review state before closeout.