Outcome ledger review tier trivial handling

Task 12492 · Done · Coder · created · updated

Seen on dev (Task 12443): a coder runner declared `review_tier = trivial` (a tier `tasks.review_tier` and the code-review policy accept, `apps/api/app/models/tasks.py:47`). Its `task_outcomes` row stored `unknown`, because the ledger's closed set (`apps/api/app/outcome_ledger/dimensions.py::REVIEW_TIERS`, check `ck_task_outcomes_review_tier`) omits `trivial`. `tests/test_task_outcomes.py::test_the_declared_review_tier_reaches_the_row_and_one_outside_the_set_is_refused` pins the fold. As a result the Outcome panel's Review chip reads "—" for the most common small-change tier, and performance strata lump trivial changes in with undeclared ones. Ask: decide whether the ledger keeps `trivial` as its own tier (widen the set and its check constraint additively, then update the pinned test) or maps it on purpose; record the decision where the vocabulary lives. Out of scope: any other ledger dimension. Done means: - A trivial declaration shows as "Trivial" on the Outcome panel, or the decision not to is recorded with its reason beside `REVIEW_TIERS`. - Required checks: ./dc check quick, changed-area tests, merge lane full gate.

Outcome

Ledger now keeps `trivial` as its own review tier, and the Outcome chip reads "Trivial". Sets derive from tasks.REVIEW_TIERS; additive migration widens the CHECK. Quick gate and changed-area tests green; PR #7699 queued. Memory: none applied.

Pull request

Artifacts

Activity

  • Created
  • Run
  • Runner started
  • Runner ended (done)