hermes-agent/website/docs/user-guide/features
Teknium 9fad45fcda feat(kanban,mcp): orphaned-card reconciliation + per-server MCP identity header
Two small config-gated features:

1. Kanban orphaned-card reconciliation (kanban.reconcile_orphans, default
   true, config.yaml): a running card with broken claim bookkeeping
   (claim_lock or claim_expires NULL — crash mid-claim, manual SQL, DB
   restore) is invisible to all existing recovery paths
   (release_stale_claims requires claim_expires NOT NULL,
   detect_crashed_workers requires host-local lock + pid,
   detect_stale_running is config-disabled by default) and shows Running
   forever. New reconcile_orphaned_running() pass in kanban_db.py runs
   each dispatch_once tick: requeues orphans to ready with an explanatory
   comment, closes any leaked run, emits a 'reconciled' event, and defers
   when the recorded PID is still alive on this host (never requeue
   beside a live worker). Surfaced via DispatchResult.reconciled_orphans.

2. Per-server MCP identity header (mcp_servers.<name>.identity_header,
   config.yaml): optional {name, value_from: static|profile, value}
   mapping; the header is attached to that server's HTTP/SSE transport
   requests. 'static' sends the config value; 'profile' resolves the
   active Hermes profile name once at connect time (no per-call
   mutation). Explicit per-server headers of the same name (any casing)
   win. Invalid blocks warn-and-ignore; stdio servers warn-and-ignore.

Tests: tests/gateway/test_kanban_reconcile_orphans.py (9),
tests/tools/test_mcp_identity_header.py (13), all written first (RED)
then implemented (GREEN). No new HERMES_* env vars.

Inspired by: openai/symphony tracker reconciliation (Apache-2.0) +
Poke per-user MCP identity (idea-level).
2026-08-07 08:58:20 -07:00
..
_category_.json
acp.md
api-server.md
batch-processing.md
browser.md docs: DX sweep — 7 verified-absent documentation items 2026-08-07 08:58:08 -07:00
built-in-plugins.md
code-execution.md
codex-app-server-runtime.md
computer-use.md
context-files.md
context-references.md
credential-pools.md
cron.md feat(cron): pre-dispatch configuration validation (blocked_config + alert-once) 2026-08-07 08:57:53 -07:00
curator.md
delegation.md fix(delegation): harden steer lifecycle ownership 2026-08-06 09:40:27 -07:00
deliverable-mode.md
extending-the-dashboard.md
fallback-providers.md
goals.md
heartbeat.md
honcho.md
hooks.md
image-generation.md
kanban-tutorial.md
kanban-worker-lanes.md
kanban.md feat(kanban,mcp): orphaned-card reconciliation + per-server MCP identity header 2026-08-07 08:58:20 -07:00
lsp.md
mcp.md feat(kanban,mcp): orphaned-card reconciliation + per-server MCP identity header 2026-08-07 08:58:20 -07:00
memory-providers.md
memory.md
mixture-of-agents.md
overview.md
personality.md
pets.md
plugins.md
provider-routing.md
skills.md feat(/learn): expansive knowledge-base skills for books and large corpora 2026-08-06 22:14:52 -07:00
skins.md
spotify.md
subscription-proxy.md
tool-gateway.md
tool-search.md
tools.md docs: DX sweep — 7 verified-absent documentation items 2026-08-07 08:58:08 -07:00
tts.md
vision.md
voice-mode.md
wake-word.md
web-dashboard.md
web-search.md
x-search.md