Skip to content

fix: allow kanban tools for orchestrator profiles with kanban toolset#18970

Closed
pdonizete wants to merge 1 commit into
NousResearch:mainfrom
pdonizete:fix/kanban-orchestrator-tools
Closed

fix: allow kanban tools for orchestrator profiles with kanban toolset#18970
pdonizete wants to merge 1 commit into
NousResearch:mainfrom
pdonizete:fix/kanban-orchestrator-tools

Conversation

@pdonizete

@pdonizete pdonizete commented May 2, 2026

Copy link
Copy Markdown
Contributor

Problem

The _check_kanban_mode() gating function in tools/kanban_tools.py only returns True when HERMES_KANBAN_TASK is set in the environment. This env var is only set by the kanban dispatcher when spawning a worker process.

Orchestrator profiles (like a techlead that routes work via Kanban) never see the kanban tools, even when they have kanban explicitly listed in their toolsets config.

Impact

  • Orchestrator profiles cannot create, link, or manage Kanban tasks via tool calls
  • The orchestrator hallucinates task creation because its SOUL.md instructs it to use kanban tools that do not exist in its schema
  • Workers spawned by the dispatcher work fine (they get HERMES_KANBAN_TASK set)

Fix

Modified _check_kanban_mode() to also return True when the current profile has kanban in its toolsets config.

Uses load_config() from hermes_cli.config which has mtime-based caching, so this adds negligible overhead. The check_fn results are further TTL-cached (~30s) by the tool registry.

This allows orchestrator profiles to use kanban_create, kanban_link, etc. to route work, while workers continue to use the full kanban toolset via the dispatcher env var.

Testing

Tested in a real multi-agent setup with 4 profiles (techlead, dev, devops, qa). Before the fix, the techlead orchestrator could not see any kanban tools and hallucinated task creation. After the fix, it correctly sees and uses kanban_create, kanban_link, etc.

Fixes #18968

@alt-glitch alt-glitch added type/bug Something isn't working P2 Medium — degraded but workaround exists comp/tools Tool registry, model_tools, toolsets labels May 2, 2026
The _check_kanban_mode() gating function only checked for
HERMES_KANBAN_TASK env var, which is only set by the dispatcher
when spawning workers. This prevented orchestrator profiles (like
techlead) from using kanban_create, kanban_link, etc. even when
they had 'kanban' explicitly in their toolsets config.

Now uses load_config() from hermes_cli.config (which has mtime-based
caching) to check if 'kanban' is in the profile's toolsets list.
This enables orchestrators to route work via Kanban while workers
continue using the dispatcher env var.

Fixes NousResearch#18968
@teknium1

teknium1 commented May 4, 2026

Copy link
Copy Markdown
Contributor

Merged via #19606 — your commit was cherry-picked onto current main (138 commits ahead of your branch) with your authorship preserved in git log. Also included a test fixup for the stale test_kanban_guidance_in_worker_prompt assertion that #19427 made obsolete. Thanks for the clean fix — #18971 and #18991 proposed the same shape but you submitted first and you're the issue reporter. Closes #18968.

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

Labels

comp/tools Tool registry, model_tools, toolsets P2 Medium — degraded but workaround exists type/bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Kanban tools not visible to orchestrator profiles with kanban toolset enabled

3 participants