Skip to content

fix(kanban): reject toolset names in task skills#22933

Closed
LeonSGP43 wants to merge 1 commit into
NousResearch:mainfrom
LeonSGP43:fix/22921-kanban-skill-validation
Closed

fix(kanban): reject toolset names in task skills#22933
LeonSGP43 wants to merge 1 commit into
NousResearch:mainfrom
LeonSGP43:fix/22921-kanban-skill-validation

Conversation

@LeonSGP43

Copy link
Copy Markdown
Contributor

Summary

  • reject toolset names like web or browser when creating kanban tasks with per-task skills
  • surface a clear kanban_create error instead of letting the worker crash later at dispatch
  • add core and dashboard regressions covering the new validation path

Testing

  • targeted pytest for kanban core skill normalization/validation and spawn argv coverage
  • targeted pytest for kanban dashboard task creation REST flow
  • git diff --check
  • uv sync --frozen --extra all
  • uv run --frozen ruff check .
  • clean env -i pytest --collect-only smoke
  • base-vs-head ruff/ty lint-diff with 0 new diagnostics in touched files

Closes #22921

@teknium1

Copy link
Copy Markdown
Contributor

Salvage merged via PR #23273 (rebase) — your commit shipped on main with your authorship preserved. AUTHOR_MAP entry already existed.

The DB-layer validation approach you took was the right call — it catches the bug at every entry point (CLI, dashboard POST, kanban_create tool, future REST/MCP) instead of needing a per-tool guard. The get_toolset_names() registry lookup is also better than hardcoding the list.

One small follow-up improvement during salvage: the loop now aggregates ALL toolset names found into a single error rather than raising on the first. Agents that confuse skills with toolsets usually pass several at once (skills=["web", "browser", "terminal"]), and listing only the first mistake forces serial fix-then-retry. Plus the error message now explicitly names the toolsets: YAML key and gives concrete examples of both categories so the conceptual gap closes.

Thanks @LeonSGP43!
#23273

@teknium1 teknium1 closed this May 10, 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.

[Bug]: kanban_create accepts toolset names in skills field, causing immediate worker crash

3 participants