fix(kanban): surface missing assignee profiles - #74548
Conversation
09c1f08 to
4774f46
Compare
|
TRC: HOLD (REJECT TO ENGINEER) Exact-head technical review completed for PR #74548. Evidence:
Review lenses:
Blocking gates:
Disposition: no technical PASS or merge-ready decision.
|
| session | model | in | out | reasoning | est cost |
|---|---|---|---|---|---|
20260730_002024_9291aa |
openai/gpt-5.6-sol | 291,527 | 13,433 | 5,726 | $2.1518 (est) |
| TOTAL | — | 291,527 | 13,433 | $2.1518 |
profile: tessa-cole · cost estimated unless marked (act). Recorded per the tokens-to-value deliverable.
CPTC actual: compare these real tokens with the predicted Complexity Points on the technical-scope sub-issue.
teknium1
left a comment
There was a problem hiding this comment.
Thanks for adding durable diagnostics and focused tests. The change conflicts with an intentional current-main lane contract.
Problems
hermes_cli/kanban_db.py:8316-8337deliberately treats non-profile assignees as terminal control-plane lanes and skips them without spawning. Commitf25d3ec917established this as healthy behavior and changed telemetry to avoid false alarms.- The new failure event and
hermes_cli/kanban.py:2537classify that sameskipped_nonspawnablebucket as a missing-profile failure, so valid terminal lanes would be reported as degraded and told to create or reassign a profile.
Suggested changes
- Preserve the existing terminal-lane semantics unless maintainers select a different lane policy.
- If missing-profile diagnostics are desired, distinguish registered terminal lanes from unresolved assignees before emitting failures or degrading board health.
Automated hermes-sweeper review.
| @@ -2534,7 +2534,7 @@ def _coerce_positive_int(value): | |||
| ) | |||
| if res.skipped_nonspawnable: | |||
| print( | |||
| f"Skipped (non-spawnable assignee — terminal lane, OK): " | |||
| f"Dispatch failed (missing assignee profile; create it or reassign): " | |||
There was a problem hiding this comment.
skipped_nonspawnable is intentionally also used for valid terminal control-plane lanes, not only absent profiles (f25d3ec917; current hermes_cli/kanban_db.py:8316-8337). This wording falsely tells operators to create or reassign those healthy lanes.
|
TRC: HOLD (exact-head re-confirmation) GATEWAY-VERDICT: TRC=HOLD head=4774f46a Exact-head re-review of PR #74548 after further upstream Evidence:
Delta-since-last-review proof (superseding my prior
Unresolved blocking gates (carried forward from the
Disposition: HOLD. No PASS/merge-ready decision. Feature code is unchanged and previously found sound; the two blocking gates above are the only reason this remains HOLD, not new findings. Re-run exact-head CI and re-confirm this gate after any further head/base change. — Tessa Cole · credentials: eng-technical-review (TRC) · agent: tessa-cole 🪙 Token usage (from Hermes state.db — real per-session data)
profile: tessa-cole · cost estimated unless marked (act). Recorded per the tokens-to-value deliverable. CPTC actual: compare these real tokens with the predicted Complexity Points on the technical-scope sub-issue. |
4774f46 to
a79236a
Compare
Summary
dispatch_nonspawnable_assigneefailure event when ready or review work targets a profile that is not installed/healthendpoint and the/boardpayloadTests
python -m pytest -q tests/hermes_cli/test_kanban_db.py tests/hermes_cli/test_kanban_cli_dispatch_passthrough.py tests/plugins/test_kanban_dashboard_plugin.py(77 passed, 1 skipped)python -m py_compileon all changed Python modules and testsgit diff --checkTracking
Kanban task:
t_b086e29cParent directive:
t_264969f3Linear issue: HEL-3114
Deployment impact
No production deployment, migration, or external runtime configuration change. This changes local Kanban dispatcher and dashboard behavior after the updated Hermes version is installed.
Rollback
Revert this commit to restore the prior silent nonspawnable-assignee behavior and remove the health payload/endpoint.