Skip to content

fix: scan all kanban boards for active workers - #72750

Open
the24thLetter wants to merge 2 commits into
NousResearch:mainfrom
the24thLetter:agent/scan-all-kanban-boards-active-workers
Open

the24thLetter wants to merge 2 commits into
NousResearch:mainfrom
the24thLetter:agent/scan-all-kanban-boards-active-workers

Conversation

@the24thLetter

@the24thLetter the24thLetter commented Jul 27, 2026

Copy link
Copy Markdown

Summary

  • Scan every non-archived Kanban board when GET /api/plugins/kanban/workers/active is called without a board parameter.
  • Preserve the existing active-worker contract: an open task_runs row with a PID still counts without requiring tasks.current_run_id.
  • Deduplicate resolved SQLite paths so HERMES_KANBAN_DB aliases do not report the same worker multiple times.
  • Include the board slug on each worker returned by a cross-board scan.

Root cause

The gateway dispatcher enumerates all boards, but the dashboard endpoint resolved an omitted board parameter to only the current board. A worker running on another board was therefore invisible and the endpoint could incorrectly return count=0.

Scope

This is a narrow reimplementation of the worker-visibility fix from #33923 on current main. It intentionally excludes the unrelated ledger, review-gate, scripts, generated assets, PID fallback, and diagnostic changes from that PR.

Validation

Added focused coverage for:

  • preserving the existing open-run predicate without requiring tasks.current_run_id
  • finding an active worker on a non-current board when board is omitted
  • retaining explicit single-board filtering
  • deduplicating multiple board slugs that resolve to the same HERMES_KANBAN_DB

The rebased endpoint and test additions pass Python AST syntax validation. Repository CI is awaiting maintainer approval to run for this fork-originated PR.

@alt-glitch alt-glitch added type/bug Something isn't working P3 Low — cosmetic, nice to have comp/plugins Plugin system and bundled plugins needs-decision Awaiting maintainer decision before any implementation labels Jul 27, 2026
@the24thLetter
the24thLetter force-pushed the agent/scan-all-kanban-boards-active-workers branch from 4b99ccc to 14db1a9 Compare July 30, 2026 11:19
@teknium1

Copy link
Copy Markdown
Collaborator

Thanks for the focused fix. The premise is present on current main: plugins/kanban/dashboard/plugin_api.py:1417-1462 resolves an omitted board through the active-board path and queries only that connection, while the gateway dispatcher already enumerates every non-archived board in gateway/kanban_watchers.py:1266-1281. The PR aligns the endpoint with that dispatcher behavior, retains the established task_runs predicate, and covers cross-board lookup, explicit board filtering, and shared-DB deduplication.

Automated hermes-sweeper review.

@teknium1 teknium1 added sweeper:risk-compatibility Sweeper risk: may break existing users, config, migrations, defaults, or upgrades sweeper:blast-moderate Sweeper blast radius: moderate — a subsystem or single platform labels Jul 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comp/plugins Plugin system and bundled plugins needs-decision Awaiting maintainer decision before any implementation P3 Low — cosmetic, nice to have sweeper:blast-moderate Sweeper blast radius: moderate — a subsystem or single platform sweeper:risk-compatibility Sweeper risk: may break existing users, config, migrations, defaults, or upgrades type/bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants