hermes-bsd/website/docs/user-guide/features
Teknium d41427504e
feat(delegation): uncap max_spawn_depth (floor 1, no ceiling) (#39772)
* fix: respect disabled auto-compaction on context overflow

Port from anomalyco/opencode#30749.

When compression.enabled is false, NO automatic compaction trigger may
fire. The proactive token-threshold paths (preflight + post-response
should_compress gate) already honoured the setting, but the three
provider-overflow recovery paths in the agent loop — long-context-tier
429, 413 payload-too-large, and context-overflow — called
_compress_context() unconditionally, silently compressing and rotating
the session against the user's explicit choice.

Add a single guard at the top of the overflow-recovery dispatch: when
compression is disabled and the error is one of those three overflow
classes, surface a terminal error (compaction_disabled: True) telling the
user to /compress manually, /new, switch to a larger-context model, or
reduce attachments. Manual /compress (force=True) is unaffected — it never
enters this loop.

Tests: new TestOverflowWithCompactionDisabled (413 + 400 overflow don't
compress when disabled; control case still compresses when enabled).
Existing overflow-recovery tests updated to enable compaction explicitly
(they verify the recovery fires); fixture defaults flipped to True to
match production (compression.enabled defaults to True).

* feat(delegation): uncap max_spawn_depth to match max_concurrent_children

Removed the hard ceiling of 3 on delegation.max_spawn_depth. Depth now has
a floor of 1 and no upper limit, mirroring max_concurrent_children. Cost
(each level multiplies API spend) is the practical limiter, not a constant.

- delegate_tool.py: drop _MAX_SPAWN_DEPTH_CAP, _get_max_spawn_depth() floors
  at 1 instead of clamping to [1,3]; depth-limit error string reworded
- config.py / cli-config.yaml.example: doc comments say floor 1, no ceiling
- docs (configuration, delegation, delegation-patterns): range 1-3 -> >=1
- tests: convert clamp-above-3 change-detector into a no-ceiling invariant,
  drop the _MAX_SPAWN_DEPTH_CAP==3 snapshot assert, fix warning-text assert
2026-06-05 04:46:02 -07:00
..
_category_.json
acp.md
api-server.md
batch-processing.md
browser.md
built-in-plugins.md Add Hermes desktop app (#20059) 2026-05-31 17:46:56 -05:00
code-execution.md
codex-app-server-runtime.md
computer-use.md
context-files.md
context-references.md
credential-pools.md
cron.md
curator.md
delegation.md feat(delegation): uncap max_spawn_depth (floor 1, no ceiling) (#39772) 2026-06-05 04:46:02 -07:00
deliverable-mode.md
extending-the-dashboard.md
fallback-providers.md
goals.md
honcho.md
hooks.md feat(observability): observer-grade telemetry hooks + NeMo-Relay plugin 2026-06-03 06:36:46 -07:00
image-generation.md
kanban-tutorial.md
kanban-worker-lanes.md
kanban.md feat(kanban): goal_mode cards run workers in a /goal loop (#35710) 2026-05-31 01:16:33 -07:00
lsp.md
mcp.md
memory-providers.md refactor(supermemory): session-level ingest + kebab aliases (salvaged from #32487) (#38756) 2026-06-04 11:50:02 +05:30
memory.md
overview.md
personality.md
plugins.md Add Hermes desktop app (#20059) 2026-05-31 17:46:56 -05:00
provider-routing.md
skills.md feat(skills): blank-slate skills — install --no-skills + opt-out/opt-in (#36228) 2026-06-01 02:57:57 -07:00
skins.md
spotify.md
subscription-proxy.md feat(cli): make hermes portal the human-readable Portal onboarding alias 2026-06-04 01:19:28 +05:30
tool-gateway.md feat(cli): make hermes portal the human-readable Portal onboarding alias 2026-06-04 01:19:28 +05:30
tool-search.md
tools.md Add Hermes desktop app (#20059) 2026-05-31 17:46:56 -05:00
tts.md
vision.md
voice-mode.md
web-dashboard.md docs(dashboard): clarify auth provider suitability + registration across dashboard/Docker/Desktop docs (#39633) 2026-06-05 18:34:19 +10:00
web-search.md
x-search.md