You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Lets self-hosted users configure Honcho with only a base_url (no API key required). Resolves base_url aliases from both host and root config. Fixes the setup and identity CLI flows for local instances.
Defers Honcho session creation in tools mode until the first tool call actually needs it (avoids unnecessary API round-trips on startup). Session is created lazily via ensure_session() with migration check on first creation.
Truncates prefetched Honcho context (peer representation + peer card) to fit within the configured contextTokens budget. Uses conservative char estimate (budget * 4). Prevents oversized payloads from blowing past the context window. Refresh of #1878 (credit @AzothZephyr).
Syncs the aiPeer config field with the identity defined in SOUL.md at runtime, so the Honcho integration always reflects the current agent identity. Mutates shared config -- fine for CLI, but gateway/multi-agent would need a config copy (noted, not blocking).
Adds configurable prefetch cadence (context + dialectic), per-component injection toggles, injection frequency (how many turns cached context stays in prompt), and reasoning level cap. Defaults: first-turn-only API calls, AI peer data suppressed, reasoning pinned at floor. Full CLI coverage via hermes honcho status and hermes honcho tokens. Closes #3422.
Fixes bug where multiple profiles overwrite each other's config. Writes go to $HERMES_HOME/honcho.json (instance-local), reads fall back to ~/.honcho/config.json (global).
ensure_session() was a plain alias for get_or_create() -- migration path (migrate_memory_files) was dead code in recallMode=tools. Fixed: added _migrated set to session manager, ensure_session() now runs migration check on first creation per session key
Title updated (removed "per-directory default" claim -- that was already on main)
Dialectic synthesis is never injected under injectionFrequency: "first-turn" because dialectic isn't pre-warmed at startup. injectDialectic: true + injectionFrequency: "first-turn" = dialectic never appears. Should be documented
Falsy integer 0 in or-chains collapses incorrectly for cadence/frequency values
injectionFrequency default should stay "every-turn" (cost savings are already in cadence; "first-turn" makes dialectic permanently unavailable)
Merge #1957 first (lazy init is a strict win). #2164's snapshot fetch uses peer_id not session key, so it doesn't conflict. Migration gap in #1957 is now fixed
Honcho integration: open PR map
Tracks all open Honcho-related PRs, their dependencies, and merge path. Successor to #2210.
Last updated: 2026-03-30
Status overview
All erosika PRs are rebased on main, CI green, and mergeable.
To close after merge
Dependency graph
What each PR does
1. #2645 -- local baseUrl-only configuration
Lets self-hosted users configure Honcho with only a
base_url(no API key required). Resolvesbase_urlaliases from both host and root config. Fixes the setup and identity CLI flows for local instances.2. #1957 -- lazy session init in tools mode
Defers Honcho session creation in tools mode until the first tool call actually needs it (avoids unnecessary API round-trips on startup). Session is created lazily via
ensure_session()with migration check on first creation.3. #3265 -- contextTokens budget enforcement
Truncates prefetched Honcho context (peer representation + peer card) to fit within the configured
contextTokensbudget. Uses conservative char estimate (budget * 4). Prevents oversized payloads from blowing past the context window. Refresh of #1878 (credit @AzothZephyr).4. #1969 -- aiPeer sync from SOUL.md
Syncs the
aiPeerconfig field with the identity defined inSOUL.mdat runtime, so the Honcho integration always reflects the current agent identity. Mutates shared config -- fine for CLI, but gateway/multi-agent would need a config copy (noted, not blocking).5. #3425 -- cost-awareness controls
Adds configurable prefetch cadence (context + dialectic), per-component injection toggles, injection frequency (how many turns cached context stays in prompt), and reasoning level cap. Defaults: first-turn-only API calls, AI peer data suppressed, reasoning pinned at floor. Full CLI coverage via
hermes honcho statusandhermes honcho tokens. Closes #3422.6. #3999 -- profile-scoped Honcho host/peer resolution + observability
Full Honcho identity layer for the multi-profile system (#3681). Each profile becomes an independent Honcho peer in a shared workspace.
hermes.coder, auto-derived workspace/aiPeerhermes profile create coderauto-clones Honcho config, eagerly creates peerhermes honcho enable/disableper profilehermes honcho sync+ auto-sync onhermes updatefor existing profilesstatus --all(cross-profile table),peers(identity table),--target-profileflag, live peer card display7. #4037 -- instance-local config write path
Fixes bug where multiple profiles overwrite each other's config. Writes go to
$HERMES_HOME/honcho.json(instance-local), reads fall back to~/.honcho/config.json(global).8. #2757 -- graceful degradation + disable command
Handles bad/unreachable Honcho URLs gracefully instead of crashing. Adds a
disablecommand. Needs a complementaryenablecommand added. Depends on #2645 landing first.9. #2164 -- tools-mode startup context
Optional lightweight cached startup context for
recallMode=tools. Overlaps with #1957 (both touch_activate_honcho/ session init). Consolidation plan: #1957 defers session creation, #2164 adds opt-in snapshot fetch on top. Must compose cleanly with #1957's lazy init path.Merge order recommendation
Review findings (2026-03-29)
#2645 -- 4 bugs found and fixed
cmd_migratecrashed withKeyError: 'apiKey'on base-URL-only configs -- fixed to use_resolve_api_key(cfg)with fallback displaycmd_migratere-check after setup ignored base URL -- fixed to use_has_honcho_credentials(cfg)test_false_without_key_or_base_urlleaked env vars -- fixed withmonkeypatch.delenvcmd_setupdidn't clean upbaseURLalias -- addedpop("baseURL", None)_resolve_base_urlbetween cli.py and client.py (divergent signatures). Not blocking but maintenance risk#1957 -- 1 bug found and fixed
ensure_session()was a plain alias forget_or_create()-- migration path (migrate_memory_files) was dead code inrecallMode=tools. Fixed: added_migratedset to session manager,ensure_session()now runs migration check on first creation per session key#3265 -- approved with minor suggestions
rfind(' ')(minor)#3425 -- approved with notes
injectionFrequency: "first-turn"because dialectic isn't pre-warmed at startup.injectDialectic: true+injectionFrequency: "first-turn"= dialectic never appears. Should be documented0inor-chains collapses incorrectly for cadence/frequency valuesinjectionFrequencydefault should stay"every-turn"(cost savings are already in cadence;"first-turn"makes dialectic permanently unavailable)#3999 -- self-reviewed, 6 findings fixed
cmd_syncdefinition removedfrom_envworkspace fixed to stay shared_show_peer_cardsdocumented as idempotent#2757 -- needs work
from_global_config) -- rebase after fix(honcho): support local baseUrl-only configuration #2645 landscmd_disablesets root-levelenabled: false(too broad, affects all hosts) -- should only set host-level flagenablecommand yet (now provided by feat(honcho): scope host and peer resolution to active Hermes profile #3999)Resolved questions
enable/disableare idempotent and scriptable. Now in #3999peer_idnot session key, so it doesn't conflict. Migration gap in #1957 is now fixedacp<0.9(commit03396627). CI is green. #3111 only needed if upgrading past acp 0.9.0"every-turn". Real cost savings are in cadence (first-turn-only API calls)."first-turn"injection makes dialectic permanently unavailableOpen questions (remaining)
0in configor-chains -- fix now or follow-up?Related (non-Honcho)
AuthMethod->AuthMethodAgentrename for acp 0.9.0. Not blocking anything (main pinsacp<0.9), needed if/when upgrading