hermes-agent/tools
Teknium b1201213b7 fix(gateway): honest durable ack semantics for undeliverable async completions
Adapter acceptance is not proof of delivery: the inner #55578 resolver can
still fail closed inside the message pipeline after the adapter accepted the
synthetic event, which falsely acknowledged the durable row as delivered and
silently discarded the delegation result.

Pre-flight the delivery target in _deliver_completion_notification before
adapter acceptance (adapted from #65838 by @henrynguyeninfo1):
- live parent or verified live compression tip -> deliver (inner resolver
  still owns the actual route retarget)
- explicit-reset / unknown parent -> terminal 'dropped' disposition via new
  drop_completion_delivery() (not falsely 'delivered', not eternally
  'pending')
- transient uncertainty (DB error, mid-flight rotation without a visible
  continuation) -> release the claim for retry

release_completion_delivery() now converges to a terminal 'dropped' state
once _MAX_DELIVERY_ATTEMPTS is exhausted, so an undeliverable completion
cannot replay on every gateway restart forever.
2026-07-22 06:56:08 -07:00
..
computer_use fix(computer_use): reconnect a dead cua-driver session instead of hanging (#67138) 2026-07-18 15:07:04 -07:00
environments test(file-sync): patch module-level _monotonic alias instead of shared stdlib time module 2026-07-20 02:25:53 -07:00
neutts_samples
…
__init__.py
…
ansi_strip.py fix(cli): sanitize terminal escapes when replaying stored history (/resume recap, /status recap) 2026-07-17 04:53:38 -07:00
approval.py fix(approval): restore session approval for Tirith-flagged commands 2026-07-21 12:04:47 -07:00
async_delegation.py fix(gateway): honest durable ack semantics for undeliverable async completions 2026-07-22 06:56:08 -07:00
binary_extensions.py
…
blueprints.py fix: widen UTF-8 BOM tolerance to all sibling frontmatter parsers 2026-07-17 04:52:02 -07:00
browser_camofox.py
…
browser_camofox_state.py
…
browser_cdp_tool.py
…
browser_dialog_tool.py
…
browser_supervisor.py
…
browser_tool.py Fix headed browser sessions being killed after every turn 2026-07-18 10:07:46 -07:00
budget_config.py
…
checkpoint_manager.py
…
clarify_gateway.py
…
clarify_tool.py
…
close_terminal_tool.py
…
code_execution_tool.py fix(security): widen non-ASCII compare_digest crash fix to all sibling sites 2026-07-16 07:22:24 -07:00
computer_use_tool.py
…
credential_files.py fix(credentials): hoist read-guard import, fail closed loudly (#67665) 2026-07-20 09:21:08 -07:00
cronjob_tools.py
…
daemon_pool.py
…
debug_helpers.py
…
delegate_tool.py feat(delegation): live-viewable subagent transcripts — tail your subagents while they work (#67479) 2026-07-19 10:29:14 -07:00
delegation_live_log.py fix(delegation): redact credentials in live subagent transcripts 2026-07-20 06:50:31 -07:00
discord_tool.py
…
env_passthrough.py
…
env_probe.py fix(tools): bound env probe subprocess so a Windows inherited pipe can't wedge sessions (#67964) 2026-07-20 06:50:11 -07:00
fal_common.py
…
feishu_doc_tool.py
…
feishu_drive_tool.py
…
file_operations.py
…
file_state.py
…
file_tools.py
…
fuzzy_match.py
…
homeassistant_tool.py
…
hook_output_spill.py
…
image_generation_tool.py
…
image_source.py
…
interrupt.py
…
kanban_tools.py fix(goals): update judge consumers for transport result 2026-07-20 05:38:25 -07:00
lazy_deps.py fix(honcho): update SDK and restore CI coverage 2026-07-16 12:48:48 -07:00
managed_tool_gateway.py
…
mcp_dashboard_oauth.py fix(mcp): preserve live OAuth state during reauth 2026-07-17 04:50:47 -07:00
mcp_oauth.py fix(mcp): preserve live OAuth state during reauth 2026-07-17 04:50:47 -07:00
mcp_oauth_manager.py fix(mcp): preserve live OAuth state during reauth 2026-07-17 04:50:47 -07:00
mcp_stdio_watchdog.py fix(mcp): use direct parent identity in stdio watchdog 2026-07-18 04:15:13 -07:00
mcp_tool.py fix(mcp): pass secret-source-injected env vars to stdio servers 2026-07-22 03:19:42 -07:00
memory_tool.py fix(compression): verify cached prompt embeds current memory before retaining 2026-07-20 13:13:02 +05:30
microsoft_graph_auth.py
…
microsoft_graph_client.py
…
neutts_synth.py
…
openrouter_client.py
…
osv_check.py
…
patch_parser.py
…
path_security.py
…
process_registry.py feat(delegation): live-viewable subagent transcripts — tail your subagents while they work (#67479) 2026-07-19 10:29:14 -07:00
project_tools.py
…
read_extract.py
…
read_terminal_tool.py
…
registry.py
…
schema_sanitizer.py
…
send_message_tool.py fix(gateway/platforms): migrate all Weixin fallbacks to get_secret() for consistent profile-scoped resolution 2026-07-16 05:39:58 -07:00
session_search_tool.py perf(state): external-content FTS + tool-row-free trigram index (schema v23) (#65798) 2026-07-22 04:42:50 -07:00
skill_manager_tool.py fix(curator): guard background review writes against manually authored skills 2026-07-18 20:17:22 +05:30
skill_provenance.py
…
skill_usage.py
…
skills_ast_audit.py
…
skills_guard.py
…
skills_hub.py fix: widen UTF-8 BOM tolerance to all sibling frontmatter parsers 2026-07-17 04:52:02 -07:00
skills_sync.py
…
skills_tool.py
…
slash_confirm.py
…
terminal_tool.py fix(delegate): declare stateless channel in one-shot and cron so delegate_task returns results 2026-07-18 00:05:25 -07:00
thread_context.py
…
threat_patterns.py
…
tirith_security.py
…
todo_tool.py
…
tool_backend_helpers.py
…
tool_output_limits.py
…
tool_result_storage.py
…
tool_search.py
…
transcription_tools.py
…
tts_tool.py
…
url_safety.py
…
video_generation_tool.py
…
vision_tools.py
…
voice_mode.py
…
web_tools.py
…
website_policy.py
…
write_approval.py
…
x_search_tool.py feat: configure X Search reasoning effort 2026-07-19 23:58:33 -07:00
xai_http.py fix(auth): make xAI OAuth pools multi-account resilient 2026-07-17 11:37:25 +05:30
xai_video_tools.py
…
yuanbao_tools.py
…