Created
Jun 25, 14:48
Started
Jun 25, 14:49
Completed
Jun 25, 19:24
DevOps handoff
Type
Bug
Shape
backend
Worktree Slug
fix-release-gem-version-read
Repositories
mcritchie-studio
Release Train
—
Branch
feat/fix-release-gem-version-read
Local URL
—
QA URL
—
Production URL
—
Acceptance Criteria
Expected Test Plan
Checks Run
Agent Context
From conductor retro 2026-06-25; this bug just cost a manual gem save on studio-engine 0.11.0. bin/release gem_version_local(repo) (~bin/release:162) reads the gem version from the LOCAL checkout's version_file. During ship, that read happens BEFORE the ship ff's the local checkout to the new release SHA — so it reads the STALE pre-ff version (0.10.0), the publish-skip check sees 0.10.0 'already live', and it SKIPS publishing the actually-bumped version (0.11.0) whose gemspec is on the release SHA (1671e54). Net: rel-20260625-344494 shipped but studio-engine 0.11.0 never published (had to gem-push manually). The dry-run even labels it '0.10.0' (the tell). FIX: read the gem version from the RELEASE SHA / member_plan (e.g. git show <release-ref>:<version_file>, or use member_plan's version), independent of local ff order, so the publish-skip check + the published artifact use the version that will actually build (0.11.0). Fix the dry-run label too. Test: unit on the version resolver (reads release-SHA version, not pre-ff local); integration that a bumped gem PUBLISHES (not skips) via the existing release_cli_test stub seam — and keep it CI-portable (no on-disk sibling dependency; see the #191/#181 lesson).
Stage Timeline
Who handled each stage, the time it took (measured), and the model / tokens / cost reported (best-effort) — plus who's on it right now. — means the agent didn't report that metric.
Conversation
QA review feedback, agent handoffs, and follow-up notes for this task.
Review pair APPROVED: carl (heavy) + shannon (light). gem_version_from_ref reads the gem version at the frozen release SHA (git show <ref>:<version_file>); both publish-decision sites (whats_live + ship gem loop) fixed; dry-run/preflight label now shows the version that will publish. 3 CI-portable regression tests (frozen-ref read, local fallback, end-to-end publish-not-skip), CI green. Non-blocking note (both reviewers): gem_version_from_ref does no fetch before git show — relies on the frozen object being local (same invariant as frozen_sha_for); future hardening comment. Held from release merge until Rails 8.1 RC ships.
Sealed-bid sizing
Edit →Alex (PM)
—
Avi (PO)
—
Dev
—
Actual
—
We emailed a one-tap sign-in link to . It expires shortly and can only be used once.
No email? Check spam, or close this and try again.