hermes-bsd/tests/run_agent
teknium1 2f4f23fbfb fix(codex): bridge app-server item/started events to Telegram tool-progress (#38835)
When the main provider is the Codex app-server runtime (api_mode
codex_app_server), the gateway showed no verbose 'running X' tool-progress
breadcrumbs on Telegram while every other provider did. The app-server
session processes item/started notifications (command execution, file
changes, MCP/dynamic tool calls) but never surfaced them as Hermes
tool-progress events — the session was constructed without an on_event
hook, so the agent's tool_progress_callback was never invoked on this
route.

Add _codex_note_to_tool_progress() mapping item/started → (tool_name,
preview, args) for commandExecution / fileChange / mcpToolCall /
dynamicToolCall, and wire an on_event hook into CodexAppServerSession that
forwards mapped events to agent.tool_progress_callback('tool.started',
...) — the same signature the chat_completions path uses (tool_executor.py).
Non-tool items (agentMessage/reasoning) and non-item/started methods map
to None and are ignored.

Co-authored-by: jplew <462836+jplew@users.noreply.github.com>
2026-06-21 08:46:06 -07:00
..
__init__.py
conftest.py
repro_48013_image_shrink_brick.py fix(agent): accept pixel-correct image downscale when bytes grow (#48013) 2026-06-19 11:37:51 -07:00
test_413_compression.py refactor(agent): extract run_conversation prologue into agent/turn_context.py 2026-06-07 22:17:35 -07:00
test_860_dedup.py fix: harden gateway startup and turn persistence 2026-06-07 02:15:23 -07:00
test_1630_context_overflow_loop.py
test_18028_content_policy_blocked.py
test_31273_402_not_retried.py
test_agent_guardrails.py
test_anthropic_prompt_cache_policy.py
test_anthropic_third_party_oauth_guard.py
test_anthropic_truncation_continuation.py
test_api_max_retries_config.py
test_async_httpx_del_neuter.py fix(auxiliary): honor main fallback chain for auto tasks (#47235) 2026-06-16 06:23:24 -07:00
test_auth_provider_failover.py fix(agent): fail over to fallback provider on persistent auth failure (401/403) 2026-06-20 11:38:01 -07:00
test_background_review.py feat(display): document and test memory_notifications setting 2026-06-16 05:45:40 -07:00
test_background_review_cache_parity.py
test_background_review_summary.py
test_background_review_toolset_restriction.py
test_callable_api_key.py refactor(cli): extract agent-construction cluster into CLIAgentSetupMixin (god-file Phase 4) 2026-06-08 09:41:34 -07:00
test_codex_app_server_integration.py fix(codex): bridge app-server item/started events to Telegram tool-progress (#38835) 2026-06-21 08:46:06 -07:00
test_codex_multimodal_tool_result.py
test_codex_no_tools_nonetype.py
test_codex_silent_hang_hint.py
test_codex_xai_oauth_recovery.py fix(agent): summarize structured provider error messages 2026-06-18 21:37:52 -07:00
test_commit_memory_session_context_engine.py
test_compress_focus_plugin_fallback.py
test_compression_boundary.py
test_compression_boundary_hook.py test(hooks): cover session:compress event; drop dead import 2026-06-16 11:45:36 -07:00
test_compression_feasibility.py
test_compression_persistence.py fix(agent): persist repaired-turn responses (#46071) 2026-06-14 03:20:25 -07:00
test_compression_trigger_excludes_reasoning.py
test_compressor_fallback_update.py
test_concurrent_interrupt.py
test_context_token_tracking.py
test_copilot_native_vision_headers.py
test_create_openai_client_kwargs_isolation.py
test_create_openai_client_proxy_env.py
test_create_openai_client_reuse.py
test_credential_pool_interrupt.py
test_credits_notices_toggle.py fix(credits): suppress usage gauge when top-up funds exist + add display.credits_notices toggle (#44716) 2026-06-12 01:06:46 -07:00
test_deepseek_reasoning_content_echo.py
test_deepseek_v4_thinking_live.py
test_dict_tool_call_args.py test(run_agent): align test_dict_tool_call_args with explainer suffix 2026-05-29 19:23:05 -07:00
test_empty_response_recovery_persistence.py
test_exit_cleanup_interrupt.py
test_fallback_credential_isolation.py
test_file_mutation_verifier.py fix(security): neutralize file paths in mutation-verifier footer (#35584) (#35684) 2026-05-30 23:05:23 -07:00
test_identity_flush.py fix(agent): persist repaired-turn responses (#46071) 2026-06-14 03:20:25 -07:00
test_image_rejection_fallback.py
test_image_shrink_recovery.py fix(agent): accept pixel-correct image downscale when bytes grow (#48013) 2026-06-19 11:37:51 -07:00
test_in_place_compaction.py fix(compression): keep compaction-archived turns discoverable in session_search 2026-06-20 10:57:07 -07:00
test_infinite_compaction_loop.py fix(compaction): prevent infinite loop when transcript fits in tail budget 2026-06-07 21:50:57 -07:00
test_init_fallback_on_exhausted_pool.py
test_interactive_interrupt.py
test_interrupt_propagation.py
test_invalid_context_length_warning.py
test_iteration_budget_race.py
test_jsondecodeerror_retryable.py
test_last_reasoning_per_turn.py
test_long_context_tier_429.py
test_materialize_data_url_cleanup.py
test_memory_nudge_counter_hydration.py refactor(agent): extract run_conversation prologue into agent/turn_context.py 2026-06-07 22:17:35 -07:00
test_memory_provider_init.py feat(memory): improve OpenViking setup UX 2026-06-17 01:04:26 +08:00
test_memory_sync_interrupted.py fix(openviking): sanitize skill memory input 2026-06-16 10:37:37 -07:00
test_message_sequence_repair.py fix(agent): rewind flush cursor exactly when repair compacts before the cursor 2026-06-12 16:29:01 -07:00
test_multimodal_tool_content_recovery.py fix(vision): proactive downgrade for providers rejecting list-type tool content (#41072) 2026-06-07 21:50:57 -07:00
test_nonretryable_error_html_summary.py test(agent): cover non-retryable error HTML summarization 2026-06-18 15:46:19 +05:30
test_notice_spine.py feat(credits): usage-aware credits — in-session notices, /usage view, dev readout (#40011) 2026-06-06 13:18:18 +05:30
test_nous_429_fallback_reentry.py test: regression guard for Nous 429 fallback re-entry; AUTHOR_MAP entry 2026-06-12 12:21:29 -07:00
test_openai_client_lifecycle.py
test_partial_stream_finish_reason.py fix(stream): don't report dropped mid-tool-call streams as output truncation (#42314) 2026-06-08 11:56:10 -07:00
test_percentage_clamp.py test: repoint percentage-clamp source guard to gateway/slash_commands.py 2026-06-08 01:25:35 -07:00
test_plugin_context_engine_init.py
test_primary_runtime_restore.py Add Hermes desktop app (#20059) 2026-05-31 17:46:56 -05:00
test_provider_attribution_headers.py fix(agent): honor model.default_headers for custom OpenAI-compatible providers (#40033) 2026-06-07 02:02:40 -07:00
test_provider_fallback.py
test_provider_parity.py fix: strip extra_content from tool_calls for strict APIs (Fireworks, Mistral) 2026-06-03 16:42:52 -07:00
test_real_interrupt_subagent.py
test_redirect_stdout_issue.py
test_repair_tool_call_arguments.py revert: drop cumulative-resend tool-arg heuristic from shared streaming path (#35718) (#35860) 2026-05-31 06:14:32 -07:00
test_repair_tool_call_name.py fix(volcengine): strip XML attribute fragments from tool_use.name (#33007) 2026-06-07 22:22:01 -07:00
test_retry_status_buffer.py
test_review_prompt_class_first.py
test_run_agent.py fix(agent): aggregate anthropic aux calls via stream 2026-06-19 17:32:13 +05:30
test_run_agent_codex_responses.py test: cover request debug dump redaction 2026-06-15 05:31:21 -07:00
test_run_agent_multimodal_prologue.py
test_sequential_chats_live.py
test_session_id_env.py
test_session_meta_filtering.py
test_session_reset_fix.py
test_session_source.py fix(dashboard): hide sidecar sessions from history (#49269) 2026-06-19 18:06:38 -04:00
test_steer.py fix(agent): make mid-turn /steer trusted, not read as injection 2026-06-05 20:59:36 -05:00
test_stream_drop_logging.py
test_stream_interrupt_retry.py
test_streaming.py fix(bedrock): fall back to non-streaming InvokeModel when IAM denies InvokeModelWithResponseStream (#44293) 2026-06-11 07:15:30 -07:00
test_streaming_tool_call_repair.py
test_strict_api_validation.py
test_strip_reasoning_tags_cli.py
test_switch_model_context.py
test_switch_model_fallback_prune.py
test_switch_model_rollback.py
test_thinking_only_sanitizer.py fix(agent): treat Codex reasoning items as thinking-only 2026-06-13 14:35:00 -07:00
test_thinking_sig_recovery_persistence.py fix(agent): strip api_messages in thinking-signature recovery so the retry actually omits thinking blocks 2026-06-10 12:39:44 -07:00
test_tls_fd_recycle_corruption.py
test_token_persistence_non_cli.py
test_tool_arg_coercion.py
test_tool_call_args_sanitizer.py
test_tool_call_guardrail_runtime.py
test_tool_executor_contextvar_propagation.py
test_tool_name_db_persistence.py
test_turn_completion_explainer.py fix(agent): register explainer config key + shorten footer prefix 2026-05-29 19:23:05 -07:00
test_unicode_ascii_codec.py
test_vision_aware_preprocessing.py
test_vision_tool_messages.py fix(vision): proactive downgrade for providers rejecting list-type tool content (#41072) 2026-06-07 21:50:57 -07:00