Skip to content

fix(kanban): surface unusable triage auxiliary model (auto-decompose aware)#27871

Merged
teknium1 merged 1 commit into
mainfrom
hermes/hermes-6df71afb
May 18, 2026
Merged

fix(kanban): surface unusable triage auxiliary model (auto-decompose aware)#27871
teknium1 merged 1 commit into
mainfrom
hermes/hermes-6df71afb

Conversation

@teknium1

Copy link
Copy Markdown
Contributor

Reworks @qWaitCrypto's #25640 idea to align with the auto-decompose dispatcher landed in #27572.

The original PR added a triage_missing_specifier diagnostic that always pointed at auxiliary.triage_specifier. After #27572, triage tasks fan out via auxiliary.kanban_decomposer (the primary path) and only fall back to triage_specifier when the LLM returns fanout=false — so the original wording would have steered users to configure the wrong slot when kanban.auto_decompose is on (the default).

What this PR does

New diagnostic triage_aux_unavailable for tasks stuck in triage:

  • kanban.auto_decompose=True (default): primary slot is auxiliary.kanban_decomposer, with triage_specifier mentioned as fan-out=false fallback.
  • kanban.auto_decompose=False: primary slot is auxiliary.triage_specifier, with the manual hermes kanban specify <id> command surfaced as an action.

Default aux slots use provider: auto which falls back to the main model, so the rule only fires when both the explicit slot config AND the main-model auto fallback are absent. Quiet by default; informative when there's a real configuration gap.

Also adds kd.config_from_runtime_config() (extends #25591's config_from_kanban_config to also carry auxiliary + model) and switches CLI + dashboard call sites to use it. The old function is preserved for back-compat.

Validation

  • 45/45 test_kanban_diagnostics.py tests passing (35 existing + 10 new).
  • Live E2E with isolated HERMES_HOME, real load_config():
    • No main model + auto_decompose on → fires, points at auxiliary.kanban_decomposer.
    • Main model configured + aux defaults → silent (auto fallback works).
    • auto_decompose=False + no main model → fires, points at auxiliary.triage_specifier + offers manual hermes kanban specify.

Credit: @qWaitCrypto (co-authored). Original PR #25640 will be closed pointing at this.

…aware)

Adds a 'triage_aux_unavailable' diagnostic for tasks stuck in triage when
neither the active aux helper slot nor the main-model auto fallback is usable.

Auto-decompose aware:
- kanban.auto_decompose=True (default): primary is auxiliary.kanban_decomposer,
  triage_specifier is the fanout=false fallback.
- kanban.auto_decompose=False: primary is auxiliary.triage_specifier (manual
  'hermes kanban specify' path).

Default aux slots use 'provider: auto' which falls back to the main model, so
this rule only fires when both the explicit slot config AND the main-model
auto fallback are absent. Quiet by default; informative when there is a real
config gap.

Also adds kd.config_from_runtime_config() that carries kanban + auxiliary +
model keys through to diagnostics, and updates CLI/dashboard call sites to
use it. config_from_kanban_config() is preserved for back-compat.

Reworks the original PR #25640 idea (@qWaitCrypto) to align with the new
auto-decompose dispatcher path landed in #27572. The original PR pointed only
at auxiliary.triage_specifier, which is now the fallback rather than the
primary helper.

Co-authored-by: qWaitCrypto <axmaiqiu@gmail.com>
@teknium1 teknium1 merged commit dadc8aa into main May 18, 2026
16 of 17 checks passed
@teknium1 teknium1 deleted the hermes/hermes-6df71afb branch May 18, 2026 08:27
@github-actions

Copy link
Copy Markdown
Contributor

🔎 Lint report: hermes/hermes-6df71afb vs origin/main

ruff

Total: 0 on HEAD, 0 on base (➖ 0)

🆕 New issues: none

✅ Fixed issues: none

Unchanged: 0 pre-existing issues carried over.

ty (type checker)

Total: 8779 on HEAD, 8779 on base (➖ 0)

🆕 New issues: none

✅ Fixed issues: none

Unchanged: 4616 pre-existing issues carried over.

Diagnostics are surfaced as warnings — this check never fails the build.

@alt-glitch alt-glitch added type/bug Something isn't working comp/cli CLI entry point, hermes_cli/, setup wizard comp/plugins Plugin system and bundled plugins P3 Low — cosmetic, nice to have labels May 18, 2026
Lillard01 pushed a commit to Lillard01/hermes-agent that referenced this pull request May 21, 2026
…aware) (NousResearch#27871)

Adds a 'triage_aux_unavailable' diagnostic for tasks stuck in triage when
neither the active aux helper slot nor the main-model auto fallback is usable.

Auto-decompose aware:
- kanban.auto_decompose=True (default): primary is auxiliary.kanban_decomposer,
  triage_specifier is the fanout=false fallback.
- kanban.auto_decompose=False: primary is auxiliary.triage_specifier (manual
  'hermes kanban specify' path).

Default aux slots use 'provider: auto' which falls back to the main model, so
this rule only fires when both the explicit slot config AND the main-model
auto fallback are absent. Quiet by default; informative when there is a real
config gap.

Also adds kd.config_from_runtime_config() that carries kanban + auxiliary +
model keys through to diagnostics, and updates CLI/dashboard call sites to
use it. config_from_kanban_config() is preserved for back-compat.

Reworks the original PR NousResearch#25640 idea (@qWaitCrypto) to align with the new
auto-decompose dispatcher path landed in NousResearch#27572. The original PR pointed only
at auxiliary.triage_specifier, which is now the fallback rather than the
primary helper.

Co-authored-by: qWaitCrypto <axmaiqiu@gmail.com>
gweeteve pushed a commit to gweeteve/hermes-agent that referenced this pull request Jun 2, 2026
…aware) (NousResearch#27871)

Adds a 'triage_aux_unavailable' diagnostic for tasks stuck in triage when
neither the active aux helper slot nor the main-model auto fallback is usable.

Auto-decompose aware:
- kanban.auto_decompose=True (default): primary is auxiliary.kanban_decomposer,
  triage_specifier is the fanout=false fallback.
- kanban.auto_decompose=False: primary is auxiliary.triage_specifier (manual
  'hermes kanban specify' path).

Default aux slots use 'provider: auto' which falls back to the main model, so
this rule only fires when both the explicit slot config AND the main-model
auto fallback are absent. Quiet by default; informative when there is a real
config gap.

Also adds kd.config_from_runtime_config() that carries kanban + auxiliary +
model keys through to diagnostics, and updates CLI/dashboard call sites to
use it. config_from_kanban_config() is preserved for back-compat.

Reworks the original PR NousResearch#25640 idea (@qWaitCrypto) to align with the new
auto-decompose dispatcher path landed in NousResearch#27572. The original PR pointed only
at auxiliary.triage_specifier, which is now the fallback rather than the
primary helper.

Co-authored-by: qWaitCrypto <axmaiqiu@gmail.com>
xenosnikos pushed a commit to xenosnikos/hermes-agent that referenced this pull request Jun 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comp/cli CLI entry point, hermes_cli/, setup wizard comp/plugins Plugin system and bundled plugins P3 Low — cosmetic, nice to have type/bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants