gabriel / musehub public
feat BREAKING deploy feat/185-publish-muse-release-production-support #1 / 1
AI Agent gabriel · 1 day ago · Sep 10, 2026 · Diff

feat(deploy): publish_muse_release.sh now supports production, not just staging (#185 Phase 6)

Required prerequisite before v0.2.1-rc1 (or any future RC) can be promoted to stable: production only ever receives official releases, and there was previously no tested path to publish there at all.

Environment is now a required first argument (`staging` or `production`), with no default — an accidental default (staging or otherwise) is exactly the kind of mistake this script should make impossible for a command whose production branch publishes to the public install.sh/releases URL.

Verified before writing any code: - Production's real instance ID (i-043aaed71bef11903, corrected from a stale legacy ID in a separate fix earlier today) — confirmed via the documented DNS-pointed origin in docs/infrastructure.md, not assumed. - Production's Docker volume is named musehub_data — same as staging. Confirmed live via CloudShell (gabriel, SSO admin session), not assumed. This mattered: the script's copy/list/cleanup steps all hardcode that volume name in the docker run commands they SSM to the target instance. - The S3 bucket (musehub-releases) has a public-read bucket policy (Principal: "*", s3:GetObject) — no cross-account IAM or bucket-policy changes needed for production's pull step to work.

Re-ran the full staging publish end-to-end against the refactored script to confirm no regression: build, upload, SSM copy, cleanup, HTTP 200 verification, and the full 20-check smoke test all still pass identically to before this change.

Deliberately did NOT run this against production for real — v0.2.1-rc1 is still baking on staging per the agreed policy (RCs stay staging-only until promoted). The production branch is logic-validated (correct instance ID, URL, and volume name) but not yet exercised end-to-end; that will happen naturally at actual promotion time.

sha256:32d3e5cf25fc1830ced478019e268f8a82ad098f031d3b06421b68e2340e3314 sha
1 changed · 1071 in snapshot files
sha256:2f5505040a976c0ba8a6bb475dd9edc5119faa05d5bc4fa84155264199c5a6a6 snapshot
1
file changed
1071
files in snapshot
Semantic Changes
Files Changed
~1
1071 in snapshot
← Older Oldest on feat/185-publish-muse-release-production-support
All commits
Newer → Latest on feat/185-publish-muse-release-production-support

0 comments

No comments yet. Be the first to start the discussion.

To add a comment, use the Muse CLI: muse hub commit comment sha256:32d3e5cf25fc1830ced478019e268f8a82ad098f031d3b06421b68e2340e3314 --body "your comment"