Agents Builders

Add release notes API

Archived Priority 1 avi
task-c8b95e62b0fa

Create an authenticated McRitchie Studio API endpoint that formats and sends canonical Discord production release notes from deployed task slugs.

Created

Jun 18, 23:01

Started

Jun 18, 23:01

Completed

Jun 19, 16:15

DevOps handoff

Type

Feature

Shape

Worktree Slug

release-notes-api

Repositories

mcritchie-studio

Release Train

2026-06-19-release-notes-api-qa

Branch

mcritchie-studio main aa750fa

api discord devops docs

Acceptance Criteria

  • Authenticated API accepts deployed task slugs and release metadata
  • API sends standard Discord Release Notes message grouped by application
  • Task links point to production McRitchie Studio task read pages
  • Docs tell future DevOps sessions to use the release notes API

Expected Test Plan

  • bin/rails test test/controllers/api/v1/release_notes_controller_test.rb
  • bin/rails test test/services/release_notes_formatter_test.rb
  • bin/rubocop

Checks Run

  • PR 51 merged at 39cd28e
  • GitHub CI PR 51 scan_ruby scan_js lint test passed
  • bin/rails test test/controllers/api/v1/tasks_controller_test.rb test/controllers/api/v1/activities_controller_test.rb test/controllers/api/v1/release_notes_controller_test.rb test/services/release_notes_formatter_test.rb
  • bin/rubocop
  • bin/qa-server deploy mcritchie-studio origin/main --yes v32
  • QA /up 200
  • QA POST /api/v1/release_notes dry_run true rendered grouped Release Notes and Discord not posted
  • PR #51 merged at 39cd28e
  • Current main aa750fa includes PR #51
  • GitHub CI green: lint
  • scan_js
  • scan_ruby
  • test
  • bin/rails test test/controllers/api/v1/release_notes_controller_test.rb test/services/release_notes_formatter_test.rb: 7 runs / 37 assertions / 0 failures
  • bin/rubocop: 388 files inspected
  • no offenses
  • bin/rails routes -g release_notes: POST /api/v1/release_notes
  • McRitchie Studio QA release v37 deployed aa750fa
  • QA /tasks 200
  • QA web and worker dynos up
  • QA release notes dry-run endpoint status 200
  • delivered=false
  • dry_run=true
  • QA dry-run rendered grouped app sections with production task links and did not send Discord
  • Temporary QA dry-run task cleanup verified removed
  • Production /api/v1/release_notes 404 before rollout; expected until this task is production deployed

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 avi 8 days ago

Avi QA review: PR #51 is merged at 39cd28e and included in current main aa750fa, deployed to McRitchie Studio QA release v37. Focused release-notes tests passed: 7 runs / 37 assertions / 0 failures; RuboCop passed with 388 files and no offenses; route proof shows POST /api/v1/release_notes. GitHub CI was green for lint, scan_js, scan_ruby, and test. QA dry-run proof returned status 200 with delivered=false and dry_run=true, grouped app sections, production task links, and no Discord send; the temporary QA task was removed. Production currently 404s for /api/v1/release_notes until this task is deployed, so the first production rollout including this task should call the API after deploy verification. Task moved to prod_ready. No production deploy performed.

Handoff avi 8 days ago

Production shipped: McRitchie Studio v72 / 4af95f8. Production URL: https://mcritchie.studio/api/v1/release_notes. Verification included production health checks, relevant route smokes, dyno status, and release notes posted to Discord. Task marked done.

Sealed-bid sizing

Edit →

Alex (PM)

Avi (PO)

Dev

Actual