hermes-agent/agent
Teknium abc0db8cde fix(agent): bounded admission + stale-job cancellation for the compress pool (review F6)
The process-wide 4-worker pool retained the stdlib executor's unbounded
queue: four hung summaries wedged every slot, a fifth compression queued
silently, waited out its whole budget without starting, and remained
eligible to run later as an expensive stale job whose fence was already
cancelled (the first fence check used to sit AFTER the summary call).

- Bounded admission: submission fails fast (messages returned unchanged,
  loud warning) when all pool slots are occupied; slots are freed by a
  future done-callback. Recovery contract documented at the constant: new
  work fails fast while wedged, wedged workers are fence-cancelled and
  restore service when they return; a worker that never returns costs its
  slot — bounded, observable degradation instead of unbounded queueing.
- Not-yet-started futures are cancel()ed on timeout.
- The cancelled fence is checked BEFORE any expensive summary work, both
  in the pooled wrapper (stale queued job) and inside compress_context
  (pre-summary gate), so a stale job never burns an LLM call or acquires
  session state.

Saturation regression: 4 event-blocked summaries wedge the pool, a 5th
submission fails fast (asserted while the four are provably still
blocked), the refused job never runs after worker recovery, and a fresh
submission after recovery succeeds.

PR #76354 review, blocking finding 6 / merge gate 7.
2026-08-02 16:16:36 -07:00
..
lsp fix(runtime): resolve Hermes-managed Node and uv before bare PATH 2026-08-01 21:17:51 -04:00
monitoring
…
pet
…
proxy_sources
…
secret_sources fix(gateway): hydrate cold profile secret sources 2026-08-02 00:11:50 -07:00
transports fix(codex): defang reserved Harmony tokens in requests 2026-07-31 22:53:20 -07:00
__init__.py
…
account_usage.py
…
agent_init.py feat(gateway): session activity watchdog, stall notify, compress timeout (#72424) 2026-08-02 16:16:36 -07:00
agent_runtime_helpers.py fix: use lazy logging with %s formatting in logger calls 2026-08-02 23:17:40 +05:30
anthropic_adapter.py fix(auth): route anthropic adapter credential reads through the profile secret scope 2026-08-01 16:42:51 -07:00
async_utils.py
…
aux_accounting.py
…
auxiliary_client.py fix(secrets): route auxiliary-client provider key reads through the profile secret scope 2026-08-02 10:02:33 -07:00
azure_identity_adapter.py fix(secrets): scope-aware Azure credential presence reads in identity diagnostics 2026-08-02 10:02:33 -07:00
backend_identity.py
…
background_review.py fix(background-review): inherit prefill messages + OpenRouter provider pins on non-routed forks 2026-08-02 23:48:42 +05:30
battery.py
…
bedrock_adapter.py
…
billing_links.py
…
billing_usage.py chore: remove unused imports and dead locals (ruff F401/F841 sweep) 2026-07-29 11:53:39 -07:00
billing_view.py chore: remove unused imports and dead locals (ruff F401/F841 sweep) 2026-07-29 11:53:39 -07:00
bounded_response.py
…
browser_provider.py fix(browser): replace expired cloud sessions 2026-08-02 11:18:41 +05:30
browser_registry.py
…
chat_completion_helpers.py fix: use lazy logging with %s formatting in logger calls 2026-08-02 23:17:40 +05:30
codex_responses_adapter.py fix(codex): defang reserved Harmony tokens in requests 2026-07-31 22:53:20 -07:00
codex_runtime.py fix(codex): don't retry after a valid response.completed on drain error 2026-07-29 16:41:39 -03:00
coding_context.py perf: use load_config_readonly() at read-only call sites in agent/ 2026-07-29 15:28:15 -07:00
context_breakdown.py
…
context_compressor.py fix(agent): holder-qualified durable lease cancellation, cooldown ordering (review F4) 2026-08-02 16:16:36 -07:00
context_engine.py
…
context_references.py
…
conversation_compression.py fix(agent): bounded admission + stale-job cancellation for the compress pool (review F6) 2026-08-02 16:16:36 -07:00
conversation_loop.py fix: use lazy logging with %s formatting in logger calls 2026-08-02 23:17:40 +05:30
copilot_acp_client.py
…
credential_persistence.py
…
credential_pool.py fix: widen source guard to include manual:device_code entries 2026-08-03 00:28:48 +05:30
credential_sources.py
…
credits_tracker.py
…
curator.py perf: use load_config_readonly() at read-only call sites in agent/ 2026-07-29 15:28:15 -07:00
curator_backup.py fix(curator): restore the real skills tree when a rollback extract dies part-way 2026-07-31 22:34:57 -07:00
delegation_context.py fix(delegation): prevent child HERMES_SESSION_ID leak into parent process env 2026-07-31 22:32:55 -07:00
display.py
…
error_classifier.py fix(moa): stream completed aggregator responses safely 2026-07-31 21:52:35 -07:00
errors.py
…
file_safety.py
…
gemini_native_adapter.py
…
gemini_schema.py
…
i18n.py perf: use load_config_readonly() at read-only call sites in agent/ 2026-07-29 15:28:15 -07:00
image_gen_provider.py
…
image_gen_registry.py perf: use load_config_readonly() at read-only call sites in agent/ 2026-07-29 15:28:15 -07:00
image_routing.py
…
insights.py
…
interrupt_compat.py fix(compression): let explicit interrupts cancel safely 2026-08-02 22:15:20 +05:30
iteration_budget.py
…
jiter_preload.py
…
kanban_stop.py
…
learn_prompt.py
…
learning_graph.py
…
learning_graph_render.py chore: remove unused imports and dead locals (ruff F401/F841 sweep) 2026-07-29 11:53:39 -07:00
learning_mutations.py
…
lmstudio_reasoning.py
…
manual_compression_feedback.py
…
markdown_tables.py
…
memory_manager.py
…
memory_provider.py
…
message_content.py
…
message_sanitization.py refactor(agent): single-owner call_id + reasoning_content sanitization policies (wire-parity verified) 2026-07-29 12:29:39 -07:00
moa_loop.py refactor(agent): share the cache_ttl disable predicate across init and stub paths 2026-08-02 11:52:59 +05:30
moa_trace.py
…
model_metadata.py fix: use lazy logging with %s formatting in logger calls 2026-08-02 23:17:40 +05:30
models_dev.py Revert "remove Vercel AI Gateway and Vercel Sandbox (#33067)" 2026-07-29 19:48:37 -07:00
moonshot_schema.py
…
nous_rate_guard.py
…
onboarding.py
…
oneshot.py
…
outbound_webhooks.py fix(hooks): flush outbound queue at interpreter exit 2026-08-02 15:01:11 -07:00
plugin_llm.py perf: use load_config_readonly() at read-only call sites in agent/ 2026-07-29 15:28:15 -07:00
portal_tags.py
…
process_bootstrap.py
…
prompt_builder.py feat(terminal): raise Docker sandbox /dev/shm to 1g by default (configurable) 2026-07-31 21:31:51 -07:00
prompt_caching.py perf(prompt-caching): make PromptCachePlan.marker_count lazy 2026-08-01 15:39:58 +05:30
rate_limit_tracker.py
…
reactions.py
…
reasoning_timeouts.py
…
redact.py perf(redact): eliminate exponential backtracking in config-key patterns 2026-08-01 15:58:25 +05:30
relay_llm.py fix(moa): carry completed responses through the managed Relay path 2026-07-31 21:52:35 -07:00
relay_runtime.py
…
relay_tools.py
…
replay_cleanup.py
…
retry_utils.py refactor: single shared Retry-After parser 2026-07-29 10:13:50 -07:00
runtime_cwd.py
…
secret_scope.py fix(secrets): allowlist API_SERVER listener settings as global deployment env 2026-08-02 09:59:52 -07:00
session_activity.py refactor(agent): pin session activity heartbeat cadence + harden best-effort write 2026-08-02 16:16:36 -07:00
shell_hooks.py feat(hooks): outbound webhooks — push signed lifecycle events to external HTTP endpoints 2026-08-02 15:01:11 -07:00
skill_bundles.py
…
skill_commands.py
…
skill_preprocessing.py perf: use load_config_readonly() at read-only call sites in agent/ 2026-07-29 15:28:15 -07:00
skill_utils.py Merge origin/main into feat/hsp-sync-client 2026-07-29 13:01:36 -07:00
ssl_guard.py
…
ssl_verify.py
…
stream_diag.py
…
stream_single_writer.py
…
subagent_lifecycle.py fix(compression): let explicit interrupts cancel safely 2026-08-02 22:15:20 +05:30
subdirectory_hints.py
…
subscription_view.py
…
system_prompt.py
…
think_scrubber.py
…
thinking_timeout_guidance.py
…
thread_scoped_output.py
…
title_generator.py perf: use load_config_readonly() at read-only call sites in agent/ 2026-07-29 15:28:15 -07:00
tool_dispatch_helpers.py fix(agent): scope parallel batches from V4A patch headers 2026-08-01 11:40:59 -07:00
tool_executor.py fix(tool-executor): use lazy logging format in debug calls 2026-08-02 23:17:40 +05:30
tool_guardrails.py
…
tool_result_classification.py
…
trace_upload.py
…
trajectory.py
…
transcription_provider.py
…
transcription_registry.py
…
tts_provider.py
…
tts_registry.py
…
turn_context.py
…
turn_finalizer.py fix(agent): invalidate flush-scan cursor at the defrag marker-pop sibling site 2026-07-31 23:18:12 -07:00
turn_retry_state.py fix(copilot): recover from stale/degraded token 400 AND expired IDE-token 401 2026-07-31 22:31:09 -07:00
turn_summary.py
…
usage_pricing.py Revert "remove Vercel AI Gateway and Vercel Sandbox (#33067)" 2026-07-29 19:48:37 -07:00
verification_evidence.py fix(state): make journal mode canonical and behaviorally verified 2026-07-29 18:13:09 -07:00
verification_stop.py flux3 messaging system fixes 2026-07-30 15:20:09 -07:00
verify_hooks.py
…
vertex_adapter.py
…
video_gen_provider.py
…
video_gen_registry.py perf: use load_config_readonly() at read-only call sites in agent/ 2026-07-29 15:28:15 -07:00
web_search_provider.py
…
web_search_registry.py perf: use load_config_readonly() at read-only call sites in agent/ 2026-07-29 15:28:15 -07:00