Agents Builders

bin/release ship — auto-post release notes (POST /api/v1/release_notes)

Archived
task-8d27ce40caa2

Created

Jun 21, 04:43

Started

Jun 21, 13:44

Completed

Jun 21, 14:24

DevOps handoff

Type

Feature

Shape

backend

Worktree Slug

Repositories

mcritchie-studio

Release Train

Branch

feat/release-deploy-steps

Local URL

QA URL

Production URL

release

Acceptance Criteria

  • bin/release ship posts grouped, task-linked release notes via the existing POST /api/v1/release_notes after a successful prod deploy

Expected Test Plan

  • unit: Release::Conductor.post_release_notes formats via ReleaseNotes::Formatter + delivers via DiscordClient; dry-run + missing-webhook are non-fatal
  • integration: ship! → post_release_notes lifecycle (stubbed DiscordClient)

Checks Run

  • [review] Avi re-review SHIP — transport→DeliveryError conversion + post_release_notes defense-in-depth verified; non-2xx + MissingWebhook unaffected; regression tests cover the transport path; controller hardened as bonus; CI 4/4 green

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.

No stage changes recorded yet.

Conversation

QA review feedback, agent handoffs, and follow-up notes for this task.

QA Feedback 6 days ago

Avi: post_release_notes 'non-fatal' guarantee incomplete — only rescues MissingWebhook/DeliveryError, but DiscordClient only converts non-2xx HTTP to DeliveryError; transport errors (Net::OpenTimeout/SocketError/ECONNREFUSED/SSL) from Net::HTTP.start escape and would abort the ship report after an irreversible deploy. Fix: convert transport→DeliveryError in DiscordClient#deliver (hardens the API path too) + add a transport-failure test. Doc nit: bin/release:26 'safe for dev runs' is now half-true (prepare fires a real QA deploy).

Sealed-bid sizing

Edit →

Alex (PM)

Avi (PO)

Dev

Actual