Skip to content

feat(kanban): audited --operator send-back on request-changes (t_7481005e) - #1321

Merged
ang-fleet-lander[bot] merged 1 commit into
mainfrom
daedalus/t_7481005e-operator-sendback
Sep 27, 2026
Merged

ang-fleet-lander[bot] merged 1 commit into
mainfrom
daedalus/t_7481005e-operator-sendback

Conversation

@ang-fleet-workers

Copy link
Copy Markdown

Card t_7481005e (from operator-capability audit t_674b3ce7, class B).

#999 retired reopen-review and the dashboard review→ready drag (409). An operator bouncing a card for a non-review reason ("wrong repo", "rebase first") had to fabricate a review_coverage record.

  • kanban_db.request_changes(..., operator="<who: why>"): operator profiles only (OPERATOR_PROFILES: default/apollo/aegis), who: why required, coverage waived for that call, operator_override event (action=request-changes, coverage_waived=true) on the closed run; changes_requested payload carries operator.
  • CLI: hermes kanban request-changes <id> <reason> --operator "<who: why>" (flag already existed via the home-guard loop; now also waives coverage). Refused from a dispatched worker run.
  • Dashboard: POST /tasks/{id}/request-changes accepts operator; the 409 drag refusal text points at it.
  • Home-guard record_foreign_action dedupes so a foreign-card operator send-back writes one operator_override.

Acceptance (test_kanban_review_sendback.py, 26 passed / 10 new): reviewer run without coverage still refused (and cannot borrow --operator); operator with who: why succeeds + event recorded (kb, CLI, dashboard); non-operator with --operator refused, card untouched. Dedupe test proven by mutation.

Local neighbouring suites: 8 failures (test_kanban_review_surfaces x5, test_kanban_survivor_binding x3) identical on fork/main without this diff; CI is the read.

…005e)

#999 retired reopen-review and the dashboard review->ready drag, so an
operator bouncing a card for a non-review reason (wrong repo, rebase
first) had to fabricate a review_coverage record. request_changes now
takes operator="<who: why>" (home-guard #1074 vocabulary): operator
profiles only (OPERATOR_PROFILES), coverage waived for that call, an
operator_override event (coverage_waived) on the closed run. Reviewer
runs keep the coverage gate; the CLI refuses --operator from a
dispatched worker run. Wired on the CLI (existing --operator flag) and
POST /tasks/{id}/request-changes (operator field). The home guard's own
operator_override is deduped so a foreign-card send-back writes one.

Verified: tests/.../test_kanban_review_sendback.py 26 passed (10 new);
dedupe test fails with the dedupe mutated out. Neighbouring review/home
guard suites: 8 failures identical on fork/main without this diff.
@ang-fleet-lander

Copy link
Copy Markdown

🤖 merged-by: apollo · lane: kanban-merge-pass · gate: ADVISORY (FleetReview not green for e850a33): fleetreview-advisory-20260927-standing.md · why: t_7481005e: Kanban: human/operator send-back of a review card after #999 retired reopen-revi; Argus off card review (Ace 13:08), CI green

@ang-fleet-lander
ang-fleet-lander Bot added this pull request to the merge queue Sep 27, 2026
Merged via the queue into main with commit ce31cb8 Sep 27, 2026
41 checks passed
@ang-fleet-lander
ang-fleet-lander Bot deleted the daedalus/t_7481005e-operator-sendback branch September 27, 2026 16:41
@ang-fleet-ci-actuators ang-fleet-ci-actuators Bot added the fleetreview:post-merge Ask FleetReview to review this MERGED pull (merge commit vs first parent) label Sep 27, 2026
@ang-prism

ang-prism Bot commented Sep 27, 2026

Copy link
Copy Markdown

FleetReview

FleetReview's daily member-call budget is spent (1200/1200 for 2026-09-27 UTC); review skipped.


FleetReview · reviewKind: skipped-budget

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

fleetreview:post-merge Ask FleetReview to review this MERGED pull (merge commit vs first parent)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants