From 79f6654d163445a42764967198dfe82cbdaf18ae Mon Sep 17 00:00:00 2001 From: loicnico96 <28805820+loicnico96@users.noreply.github.com> Date: Mon, 18 May 2026 21:08:56 -0700 Subject: [PATCH] feat(kanban): surface per-task model_override in show + tool output Salvages #26897 by @loicnico96. The per-task model_override DB column already exists on main, but it wasn't exposed in user-facing surfaces. This adds: - 'kanban show' prints 'model: ' when model_override is set - kanban_show / kanban_list tool responses include the model_override field Original branch was stale (PR was authored against an older field name 'model'); applied the substantive surface exposure manually using the current 'model_override' field name. --- hermes_cli/kanban.py | 2 ++ tools/kanban_tools.py | 2 ++ 2 files changed, 4 insertions(+) diff --git a/hermes_cli/kanban.py b/hermes_cli/kanban.py index 396cdcba699..b9f0ce6f57c 100644 --- a/hermes_cli/kanban.py +++ b/hermes_cli/kanban.py @@ -1319,6 +1319,8 @@ def _cmd_show(args: argparse.Namespace) -> int: (f" @ {task.workspace_path}" if task.workspace_path else "")) if task.skills: print(f" skills: {', '.join(task.skills)}") + if task.model_override: + print(f" model: {task.model_override}") # Effective retry threshold. Show the per-task override if set, # otherwise the dispatcher's resolved value from config (or the # default if config doesn't set it either). Helps operators see diff --git a/tools/kanban_tools.py b/tools/kanban_tools.py index 43982b09493..ec60937d14a 100644 --- a/tools/kanban_tools.py +++ b/tools/kanban_tools.py @@ -232,6 +232,7 @@ def _task_summary_dict(kb, conn, task) -> dict[str, Any]: "started_at": task.started_at, "completed_at": task.completed_at, "current_run_id": task.current_run_id, + "model_override": task.model_override, "parents": parents, "children": children, "parent_count": len(parents), @@ -275,6 +276,7 @@ def _handle_show(args: dict, **kw) -> str: "completed_at": t.completed_at, "result": t.result, "current_run_id": t.current_run_id, + "model_override": t.model_override, } def _run_dict(r):