Agents Builders

Task API 404 and filter

Archived
task-api-not-found-filter

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

tooling

Acceptance Criteria

  • GET task slug returns 404 not 500 when missing
  • list response includes each task stage field
  • unknown list filter param handled cleanly

Expected Test Plan

  • unit

Checks Run

  • [unit] bin/rails test test/controllers/api/v1/tasks_controller_test.rb (18 runs, 0 failures)
  • [integration] missing slug -> 404 task not found; ?status=submitted -> 400 UNSUPPORTED_PARAM; list includes stage; ?stage filters
  • [lint] rubocop clean on changed files; bin/rails zeitwerk:check All is good

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.

  1. Created Designed
    F Flareon
    Flareon
    Model
    Duration
    Tokens
    Cost
    Completed Jun 24, 02:39 · 3 days ago
    api
  2. Designed Building
    F Flareon
    Flareon
    Model
    claude-opus-4-8
    Duration
    under a minute
    Tokens
    Cost
    Started Jun 24, 02:39
    Completed Jun 24, 02:39 · 3 days ago
    cli
  3. Building Submitted
    F Flareon
    Flareon
    Model
    claude-opus-4-8
    Duration
    23 minutes
    Tokens
    Cost
    Started Jun 24, 02:39
    Completed Jun 24, 03:02 · 3 days ago
    cli
  4. Submitted Reviewed
    C Carl
    Carl primary
    J Jasper
    Jasper light
    Model
    claude-opus-4-8
    Duration
    22 minutes
    Tokens
    37,825,654
    Cost
    ~$25.98
    Started Jun 24, 03:02
    Completed Jun 24, 03:25 · 3 days ago
    cli
  5. Reviewed Assembled
    S Steffon
    Steffon
    Model
    Duration
    under a minute
    Tokens
    Cost
    Started Jun 24, 03:25
    Completed Jun 24, 03:26 · 3 days ago
  6. Assembled Shipped
    A Avi
    Avi
    Model
    Duration
    10 minutes
    Tokens
    Cost
    Started Jun 24, 03:26
    Completed Jun 24, 03:35 · 3 days ago
  7. Shipped Archived
    1
    159aaa24-5db3-4c44-aa05-25c79d2902cd
    Model
    claude-opus-4-8
    Duration
    about 14 hours
    Tokens
    Cost
    Started Jun 24, 03:35
    Completed Jun 24, 17:38 · 3 days ago
    cli

Conversation

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

Comment avi 3 days ago

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