hermes-agent/website/docs/user-guide/features
Teknium 0f102fa4dc
feat(browser): store full snapshots on truncation; make eval denylist opt-in (#65923)
* feat(browser): store full snapshots on truncation; make eval denylist opt-in

Two harness fixes motivated by BU_Bench results where fixed-verb + lossy
observation cost Hermes heavily vs code-driven browser agents:

1. Snapshot truncation no longer loses content. When a snapshot exceeds
   the 8000-char threshold, the complete accessibility tree is saved to
   cache/web (same truncate-and-store pattern as web_extract) and the
   truncated view / LLM summary includes the file path plus a ready-made
   read_file call. Element refs beyond the cut are recoverable without
   re-snapshotting. Stored copies are force-redacted and capped at 2MB;
   content-hash filenames dedupe repeated snapshots of the same page.

2. The browser_console(expression=...) sensitive-primitive denylist is
   now opt-in via browser.restrict_evaluate (default false). The
   names-based denylist blocked legitimate DOM extraction — any selector
   or expression containing 'fetch', 'cookie', 'input', etc. — which
   crippled the agent's only programmatic page-inspection path. The
   SSRF/private-URL egress guards in _browser_eval are independent of
   this policy and remain always-on. browser.allow_unsafe_evaluate keeps
   its meaning (bypass the denylist) for configs that already set it.

* test: update None-guard test for stored-snapshot pointer in _extract_relevant_content

test_normal_content_returned pinned the exact return value; the summary
now carries a pointer to the stored full snapshot. Assert the summary
passes through and the pointer is present instead.

* feat(browser): align snapshot threshold with web_extract's 15k char budget

SNAPSHOT_SUMMARIZE_THRESHOLD 8000 -> 15000, matching
web_tools.DEFAULT_EXTRACT_CHAR_LIMIT so the snapshot and web_extract
truncate-and-store paths give the model the same per-page budget.
_truncate_snapshot's default max_chars now follows the constant.
Invariant test added; docs (en+zh) and CLI tip updated.
2026-07-16 23:41:26 -07:00
..
_category_.json
acp.md docs: comprehensive 2-week sweep of feature/PR coverage gaps (#28497) 2026-05-18 23:55:25 -07:00
api-server.md fix(api): stop producers after run transport expires 2026-07-12 04:15:47 -07:00
batch-processing.md feat(reasoning): add max and ultra effort levels (#62650) 2026-07-12 00:26:49 -07:00
browser.md feat(browser): store full snapshots on truncation; make eval denylist opt-in (#65923) 2026-07-16 23:41:26 -07:00
built-in-plugins.md docs: Plugins subcategory under Extending + secret-source plugin guide + 1Password sidebar fix (#59613) 2026-07-06 12:11:31 -07:00
code-execution.md fix: drain thread no longer crashes on fd-less stdout streams (#34789) 2026-05-29 12:16:57 -07:00
codex-app-server-runtime.md docs: fix 25 documentation/code inconsistencies (audit round 3) 2026-07-16 04:47:40 -07:00
computer-use.md docs(computer-use): document Windows UIPI elevated-window limitation (#51121) 2026-06-23 08:41:33 -07:00
context-files.md feat(prompt): make context-file truncation limit configurable 2026-06-16 11:28:35 -07:00
context-references.md docs: comprehensive documentation audit — fix stale info, expand thin pages, add depth (#5393) 2026-04-05 19:45:50 -07:00
credential-pools.md docs: warn that mid-session model switches break prompt caching (#58747) 2026-07-05 04:34:05 -07:00
cron.md docs: clarify write safety, HERMES_WRITE_SAFE_ROOT, and file-mutation verifier 2026-07-14 17:09:40 +05:30
curator.md feat(curator): make skill consolidation opt-in (prune stays default-on) (#47840) 2026-06-17 05:20:32 -07:00
delegation.md docs(delegation): clarify background lifetime 2026-07-13 07:28:21 -07:00
deliverable-mode.md docs: 30-day overhaul — correctness audit, PR coverage, Nous Portal weave, sidebar reorg (#33782) 2026-05-28 02:41:36 -07:00
extending-the-dashboard.md revert(plugins): restore user dashboard plugin backend API auto-import (#43719) (#51950) 2026-06-24 07:46:54 -07:00
fallback-providers.md fix(compression): give fallback candidates their own timeout budget + escalate repeat-timeout cooldowns (#65143) 2026-07-15 12:28:09 -07:00
goals.md feat(goals): completion contracts for /goal — evidence-based judging (#50501) 2026-06-22 12:20:09 -07:00
honcho.md docs(honcho): clarify pinUserPeer pins only non-agent users 2026-06-15 21:34:09 +00:00
hooks.md fix(approval): emit observer hooks for smart verdicts 2026-07-13 02:00:09 -07:00
image-generation.md feat(image-gen): support Codex image inputs 2026-07-02 17:12:24 +05:30
kanban-tutorial.md docs(kanban): clarify decomposer profile roles 2026-06-06 19:29:00 -07:00
kanban-worker-lanes.md refactor(kanban): fold worker/orchestrator skills into injected guidance (#50473) 2026-06-21 17:06:48 -07:00
kanban.md follow-up: integrate agent nudge + dispatcher retry docs and tests 2026-07-14 16:47:33 +05:30
lsp.md feat(lsp): add PowerShellEditorServices language server (#55930) 2026-06-30 16:22:18 -07:00
mcp.md docs(mcp): document redirect_uri proxied callbacks + redirect_host WAF workaround 2026-07-16 06:14:34 -07:00
memory-providers.md feat(mem0): add self-hosted mode to the setup wizard 2026-07-07 14:07:16 -07:00
memory.md feat(background-review): aux-model selector for the self-improvement review (#49252) 2026-06-22 14:54:53 -07:00
mixture-of-agents.md fix(moa): route per-slot reasoning effort through the canonical parser 2026-07-16 06:14:58 -07:00
overview.md docs: fix 25 documentation/code inconsistencies (audit round 3) 2026-07-16 04:47:40 -07:00
personality.md fix(website): cross-locale doc links + drop empty ko locale (#31895) 2026-05-24 23:16:20 -07:00
pets.md docs: reconcile docs with code across last 3 releases (#54254) 2026-06-28 12:47:50 -07:00
plugins.md docs: Plugins subcategory under Extending + secret-source plugin guide + 1Password sidebar fix (#59613) 2026-07-06 12:11:31 -07:00
provider-routing.md fix(routing): preserve profile and delegation parity 2026-07-10 13:10:45 +05:30
skills.md fix(skills): bind bundles to exact files and origins 2026-07-12 02:59:27 -07:00
skins.md fix(website): cross-locale doc links + drop empty ko locale (#31895) 2026-05-24 23:16:20 -07:00
spotify.md docs(spotify): document 6-month re-auth cycle and add client-level invalid_grant test 2026-06-20 23:23:47 -07:00
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 docs: deep audit — registry drift, stale claims, 2-week PR coverage, dashboard screenshot (#40952) 2026-06-07 01:39:06 -07:00
tool-search.md docs: reconcile docs with code across last 3 releases (#54254) 2026-06-28 12:47:50 -07:00
tools.md docs: reconcile docs with code across last 3 releases (#54254) 2026-06-28 12:47:50 -07:00
tts.md docs: fix 25 documentation/code inconsistencies (audit round 3) 2026-07-16 04:47:40 -07:00
vision.md docs: 30-day overhaul — correctness audit, PR coverage, Nous Portal weave, sidebar reorg (#33782) 2026-05-28 02:41:36 -07:00
voice-mode.md fix(docs): discord permissions (add Create Public Threads, remove Use External Emojis) 2026-07-07 04:09:09 -07:00
web-dashboard.md docs: address audit review feedback 2026-07-16 04:47:40 -07:00
web-search.md docs: fix 25 documentation/code inconsistencies (audit round 3) 2026-07-16 04:47:40 -07:00
x-search.md docs: 30-day overhaul — correctness audit, PR coverage, Nous Portal weave, sidebar reorg (#33782) 2026-05-28 02:41:36 -07:00