Created
Jun 24, 02:39
Started
Jun 24, 02:39
Completed
Jun 24, 03:35
DevOps handoff
Type
Bug
Shape
backend
Worktree Slug
task-api-not-found-filter
Repositories
mcritchie-studio
Release Train
—
Branch
feat/task-api-not-found-filter
Local URL
—
QA URL
—
Production URL
—
Acceptance Criteria
Expected Test Plan
Checks Run
Agent Context
Two task-board API papercuts. (A) GET /api/v1/tasks/:slug returns 500 (not 404) for a missing slug (bin/reviewer-select document-test-gotchas -> 500). Controller should return a clean 404. (B) GET /api/v1/tasks list: filter param is 'stage' (works) but ?status=submitted is silently ignored -> returns ALL; and the list serializer omits stage/status (blank in list, present in show). Include stage in list responses + handle an unknown filter param cleanly. Request/controller tests.
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.
2-senior review (carl heavy adversarial + jasper light). BOTH APPROVE. Carl verified the rescue_from reorder against the ActiveSupport gem (reverse_each -> last-registered wins; new order = RecordNotFound->404, RecordInvalid->422, else->500), blast radius clean across all 6 Api::V1 controllers (2 deltas, both improvements incl. a latent 422 fix), genuine 500s still 500, auth still 401, 400-whitelist breaks no caller (bin/task + bin/devops-cycle checked); 27 tests 0 failures, zeitwerk clean. Jasper(light) confirmed reorder safe + whitelist safe + stage in list. = 2 approvals.
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.