hermes - ✅(Solved) Fix Kanban database is profile-aware, breaking multi-agent orchestrator → worker workflows [2 pull requests, 2 comments, 2 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
NousResearch/hermes-agent#19036Fetched 2026-05-03 04:52:48
View on GitHub
Comments
2
Participants
2
Timeline
7
Reactions
0
Author
Timeline (top)
labeled ×3commented ×2cross-referenced ×2

Root Cause

Tested in a real multi-agent setup with 4 profiles (techlead orchestrator + dev/devops/qa workers). Before the fix, workers crashed 10+ times per task because they could not find tasks created by the orchestrator. After the fix, all profiles share the same kanban.db and the full orchestrator → worker → QA pipeline works correctly.

Fix Action

Fix

Modified kanban_db_path() and workspaces_root() to always use the base HERMES_HOME (~/.hermes/) regardless of the active profile. Added a _base_hermes_home() helper that returns Path.home() / ".hermes" directly.

This ensures the Kanban board and workspaces are truly shared across all profiles, as the original docstring intended.

PR fix notes

PR #19037: fix: make kanban_db_path and workspaces_root profile-agnostic

Description (problem / solution / changelog)

Problem

The kanban_db_path() function uses get_hermes_home() which is profile-aware — it returns ~/.hermes/profiles/<profile>/ when a profile is active. This causes each profile to get its own isolated kanban.db, completely breaking multi-agent orchestrator → worker workflows.

Orchestrators (e.g. techlead) create tasks in their profile DB, but workers (e.g. dev, devops, qa) look in their own profile DB and crash-loop with "task not found".

The docstring says the board is "profile-agnostic on purpose", but the implementation contradicts this.

Fix

Added _base_hermes_home() helper that always returns ~/.hermes/ (ignoring profiles). Made kanban_db_path() and workspaces_root() use it so the board is truly shared across all profiles.

Testing

Tested in a real multi-agent setup with 4 profiles (techlead orchestrator + dev/devops/qa workers). Before the fix, workers crashed 10+ times per task. After the fix, all profiles share the same kanban.db and the full pipeline works correctly.

Fixes #19036

Changed files

  • hermes_cli/kanban_db.py (modified, +22/-6)
  • tools/kanban_tools.py (modified, +23/-5)

PR #19056: fix(kanban): make kanban_db_path and workspaces_root profile-agnostic (#19036)

Description (problem / solution / changelog)

Fix: Kanban board is profile-agnostic, but kanban_db_path() and workspaces_root() were profile-aware

Closes #19036

Problem

The module docstring in kanban_db.py states:

The board lives at $HERMES_HOME/kanban.db (profile-agnostic on purpose: multiple profiles on the same machine all see the same board)

But kanban_db_path() used get_hermes_home(), which returns ~/.hermes/profiles/<profile>/ when a profile is active. This means:

  1. Orchestrator (e.g., techlead) creates tasks in ~/.hermes/profiles/techlead/kanban.db
  2. Workers (e.g., dev, devops, qa) look in ~/.hermes/profiles/dev/kanban.db
  3. Workers can never find orchestrator-created tasks → crash loop

Fix

Changed kanban_db_path() and workspaces_root() to use get_default_hermes_root() instead of get_hermes_home(). This ensures all profiles share the same kanban.db regardless of active profile — matching the documented intent.

Log paths (log_dir, task_log_path) intentionally still use get_hermes_home() since per-profile logs make sense.

Companion PR

This extends the fix from #19030 which addressed list_profiles_on_disk(). Together, all path resolution in kanban_db.py is now consistent with the "profile-agnostic" design.

Testing

  • Verified kanban_db_path() and workspaces_root() return base ~/.hermes/ paths regardless of profile
  • Verified log paths still correctly resolve to profile-specific directories
  • Type checks pass

Changed files

  • hermes_cli/kanban_db.py (modified, +15/-6)
RAW_BUFFERClick to expand / collapse

Problem

The kanban_db_path() function in hermes_cli/kanban_db.py uses get_hermes_home() to resolve the path to kanban.db. However, get_hermes_home() is profile-aware — it returns ~/.hermes/profiles/<profile>/ when a profile is active.

This means each profile gets its own isolated kanban.db, which completely breaks the multi-agent Kanban workflow:

  1. An orchestrator profile (e.g. techlead) creates tasks in ~/.hermes/profiles/techlead/kanban.db
  2. Worker profiles (e.g. dev, devops, qa) are dispatched and look for tasks in ~/.hermes/profiles/dev/kanban.db (their own profile DB)
  3. Workers cannot find the tasks → kanban_show fails → workers crash in an infinite retry loop

The docstring in kanban_db.py says the board is "profile-agnostic on purpose", but the implementation contradicts this.

Impact

  • Multi-agent Kanban workflows are completely broken when using profiles
  • Orchestrators create tasks that workers can never see
  • Workers crash-loop with "task not found" errors
  • The dispatcher keeps re-spawning workers that immediately fail

Reproduction

  1. Create a techlead profile with kanban toolset
  2. Create dev, devops, qa worker profiles
  3. Start gateways for all profiles
  4. Send a message to techlead asking it to create a Kanban task
  5. Techlead creates task in ~/.hermes/profiles/techlead/kanban.db
  6. Dispatcher spawns worker (e.g. dev) which looks in ~/.hermes/profiles/dev/kanban.db
  7. Worker crashes: task not found

Fix

Modified kanban_db_path() and workspaces_root() to always use the base HERMES_HOME (~/.hermes/) regardless of the active profile. Added a _base_hermes_home() helper that returns Path.home() / ".hermes" directly.

This ensures the Kanban board and workspaces are truly shared across all profiles, as the original docstring intended.

Testing

Tested in a real multi-agent setup with 4 profiles (techlead orchestrator + dev/devops/qa workers). Before the fix, workers crashed 10+ times per task because they could not find tasks created by the orchestrator. After the fix, all profiles share the same kanban.db and the full orchestrator → worker → QA pipeline works correctly.

extent analysis

TL;DR

To fix the broken multi-agent Kanban workflow, modify the kanban_db_path() function to use the base HERMES_HOME (~/.hermes/) instead of the profile-aware path returned by get_hermes_home().

Guidance

  • Identify the kanban_db.py file and locate the kanban_db_path() function to apply the necessary changes.
  • Replace the get_hermes_home() call with a new _base_hermes_home() helper function that returns the base HERMES_HOME path (~/.hermes/).
  • Update the workspaces_root() function to also use the _base_hermes_home() helper for consistency.
  • Verify the fix by testing the multi-agent Kanban workflow with multiple profiles, ensuring that tasks created by the orchestrator are visible to all workers.

Example

from pathlib import Path

def _base_hermes_home():
    return Path.home() / ".hermes"

def kanban_db_path():
    return _base_hermes_home() / "kanban.db"

Notes

The provided fix assumes that the base HERMES_HOME is the desired location for the shared Kanban board and workspaces. If a different location is intended, the _base_hermes_home() helper function can be modified accordingly.

Recommendation

Apply the workaround by modifying the kanban_db_path() function to use the base HERMES_HOME, as this ensures that all profiles share the same kanban.db and fixes the broken multi-agent Kanban workflow.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

hermes - ✅(Solved) Fix Kanban database is profile-aware, breaking multi-agent orchestrator → worker workflows [2 pull requests, 2 comments, 2 participants]