hermes-agent/tests
teknium1 3509be7124 fix(compression): auto-compression triggers at minimum context length (#14690)
The compaction threshold is max(context_length * threshold_percent,
MINIMUM_CONTEXT_LENGTH=64000). The floor prevents premature compression on
large models, but degenerates at small windows: a model at exactly 64000
ctx gets max(32000, 64000) = 64000 — a threshold equal to the ENTIRE
window. should_compress() can then never fire, because the provider
rejects the request before usage reaches 100%. Auto-compression silently
never triggers for any model whose context_length <= MINIMUM /
threshold_percent (e.g. 64K-per-slot local models).

Centralize the calc in _compute_threshold_tokens(). When the floor would
meet or exceed the context window, trigger at 85% of the window
(_MIN_CTX_TRIGGER_RATIO) — high enough that a minimum-context model uses
most of its budget before compacting (compacting at the 50% percentage
would waste half the small window), but below 100% so compaction actually
fires before the provider rejects the request. This mirrors the existing
gpt-5.5/Codex 85% autoraise rationale. Large-context behavior (floor at
64000) is unchanged; both call sites (__init__ and update_model) use the
shared helper.

Co-authored-by: soynchux <soynchuux@gmail.com>
Co-authored-by: LeonSGP43 <154585401+LeonSGP43@users.noreply.github.com>
Co-authored-by: Tranquil-Flow <tranquil_flow@protonmail.com>
2026-06-21 07:53:14 -07:00
..
acp
acp_adapter
agent fix(compression): auto-compression triggers at minimum context length (#14690) 2026-06-21 07:53:14 -07:00
cli fix(cli): persist sessions before shutdown 2026-06-21 07:25:56 -07:00
cron Merge pull request #50034 from NousResearch/salvage/cron-tz-offset-repair 2026-06-21 13:53:28 +05:30
docker
e2e refactor(gateway): migrate slack/dingtalk/whatsapp/matrix/feishu/telegram/wecom/email/sms adapters to bundled plugins 2026-06-20 10:26:45 -07:00
fakes
fixtures/plugins/example-dashboard/dashboard
gateway feat(api-server): configurable concurrent-run cap to prevent DoS (#50007) 2026-06-21 07:26:03 -07:00
hermes_cli feat(dashboard): surface gateway busy/drainable on /api/status 2026-06-21 17:22:52 +05:30
hermes_state
honcho_plugin
integration
openviking_plugin
plugins fix(plugins): silence raft check_fn log spam for users without raft CLI 2026-06-19 17:12:58 -07:00
providers
run_agent fix(agent): fail over to fallback provider on persistent auth failure (401/403) 2026-06-20 11:38:01 -07:00
scripts
skills
stress
tools Merge pull request #50136 from NousResearch/fix/context-aware-tool-budget 2026-06-21 20:01:32 +05:30
tui_gateway fix(tui): persist session messages on force-quit / signal shutdown 2026-06-21 07:26:07 -07:00
website
__init__.py
conftest.py feat(managed-scope): add managed_scope module (resolver, loaders, key helpers) 2026-06-19 07:46:33 -07:00
run_interrupt_test.py
test_account_usage.py
test_assistant_ui_tap_compat.py
test_atomic_replace_symlinks.py
test_base_url_hostname.py
test_batch_runner_checkpoint.py
test_bitwarden_secrets.py
test_cli_file_drop.py
test_cli_manual_compress.py
test_cli_skin_integration.py
test_ctx_halving_fix.py
test_dashboard_sidecar_close_on_disconnect.py fix(dashboard): hide sidecar sessions from history (#49269) 2026-06-19 18:06:38 -04:00
test_desktop_electron_pin.py
test_desktop_mac_entitlements.py
test_dispatch_session_id.py
test_docker_home_override_scripts.py
test_docker_stage2_browser_discovery.py
test_docker_webui_install_surface.py
test_dockerfile_tini_compat_shim.py
test_empty_model_fallback.py
test_empty_session_hygiene.py
test_env_loader_secret_sources.py
test_evidence_store.py
test_gateway_streaming_nested_config.py
test_get_tool_definitions_cache_isolation.py
test_hermes_bootstrap.py
test_hermes_constants.py fix(windows): prefer managed node for whatsapp and desktop 2026-06-20 02:00:37 +05:30
test_hermes_home_profile_warning.py
test_hermes_logging.py refactor(gateway): migrate slack/dingtalk/whatsapp/matrix/feishu/telegram/wecom/email/sms adapters to bundled plugins 2026-06-20 10:26:45 -07:00
test_hermes_state.py test(sessions): cover title reclaim across a compression lineage 2026-06-19 17:36:18 +05:30
test_hermes_state_compression_locks.py
test_hermes_state_wal_fallback.py
test_honcho_client_concurrency.py
test_honcho_client_config.py
test_honcho_session_context.py
test_honcho_startup_fail_open.py
test_install_no_initial_commit.py
test_install_ps1_native_stderr_eap.py
test_install_ps1_uv_powershell_host.py
test_install_sh_browser_install.py
test_install_sh_install_method_stamp.py
test_install_sh_node_global_prefix.py
test_install_sh_pythonpath_sanitization.py
test_install_sh_root_fhs_uv_python_path.py
test_install_sh_setup_wizard_tty_probe.py
test_install_sh_symlink_stomp.py
test_install_sh_termux_network_prereqs.py
test_install_unmerged_index.py
test_ipv4_preference.py
test_lazy_session_regressions.py
test_lint_config.py
test_live_system_guard_self_test.py
test_mcp_serve.py
test_mini_swe_runner.py
test_minimax_model_validation.py
test_minimax_oauth.py
test_minisweagent_path.py
test_model_forces_max_completion_tokens.py
test_model_picker_scroll.py
test_model_tools.py
test_model_tools_async_bridge.py
test_ollama_num_ctx.py
test_output_cap_parsing.py
test_package_json_lazy_deps.py
test_packaging_metadata.py
test_plugin_skills.py
test_plugin_utils.py
test_process_loop_event_loop_warning.py
test_project_metadata.py
test_retry_utils.py
test_run_tests_parallel.py
test_sanitize_tool_error.py
test_slash_worker_watchdog.py
test_sql_injection.py
test_state_db_malformed_repair.py
test_subprocess_home_isolation.py
test_termux_all_extra_compat.py
test_timezone.py
test_toolset_distributions.py
test_toolsets.py
test_trajectory_compressor.py
test_trajectory_compressor_async.py
test_transform_llm_output_hook.py
test_transform_tool_result_hook.py
test_tui_gateway_server.py fix(dashboard): hide sidecar sessions from history (#49269) 2026-06-19 18:06:38 -04:00
test_tui_gateway_ws.py
test_tui_mcp_late_refresh.py
test_utils_truthy_values.py
test_web_server.py
test_wheel_locales_e2e.py
test_yuanbao_integration.py
test_yuanbao_markdown.py
test_yuanbao_pipeline.py
test_yuanbao_proto.py
test_yuanbao_shutdown.py