agent-zero/tests
Alessandro 965c4d07be Cache empty plugin lookup results
get_plugins_list, get_enabled_plugins and get_enabled_plugin_paths
checked cached values by truthiness, so empty lists were recomputed on
every call. Profiles and tools without plugin-provided paths re-ran
find_plugin_dir for every enabled plugin on each lookup: about 5,700
calls per Responses tool build. Check for None like the other cache
sites; plugin watchdog clears still invalidate the same areas.

Add a regression proving an empty path lookup is computed once and
document the contract. Tool prompts remain uncached.

Validation: 108 focused plugin and tool-resolution tests passed with
this change alone on the original base in the Docker framework
runtime. The new regression fails on the old code. The earlier full
suite reported 1,981 passed, with 7 pre-existing or Playwright Chromium
environment failures. Earlier warm measurements showed Responses tool
builds dropping from 112 ms to 58 ms and the tools system prompt from
77 ms to 46 ms.
2026-09-23 18:27:38 +02:00
..
AGENTS.md Keep the rate limiter demo out of test collection 2026-09-06 21:39:18 +02:00
chunk_parser_test.py File Tree: Fixed other tests to make full test suite functional 2025-11-09 15:13:04 +01:00
rate_limiter_test.py Keep the rate limiter demo out of test collection 2026-09-06 21:39:18 +02:00
test_a0_connector_attachment_metadata.py Bound attachment metadata percent decoding 2026-08-12 14:34:15 +02:00
test_a0_connector_computer_use_metadata.py Preserve computer-use capability metadata 2026-05-30 22:39:44 +02:00
test_a0_connector_launcher_gateway.py Remove Launcher Host access controls from Core 2026-07-17 15:59:30 +02:00
test_a0_connector_payload_limits.py Harden Core connector transport 2026-07-27 10:14:52 +02:00
test_a0_connector_prompt_gating.py Align remote execution and Computer Use tool contracts 2026-09-12 18:24:54 +02:00
test_agent_editor.py fix agent profile switching logic 2026-08-12 14:34:15 +02:00
test_agent_editor_webui.py Clarify required Agent Editor instructions 2026-09-02 16:34:13 +02:00
test_anthropic_thoughts_prompt.py Adapt thoughts instructions only for Anthropic models 2026-09-23 15:19:25 +02:00
test_api_chat_lifetime.py Persist API chat lifetime and add cleanup job 2026-05-11 08:49:06 +02:00
test_backup_large_archives.py Exclude Orchestrator runtime data from default backups 2026-09-23 08:28:12 +02:00
test_browser_agent_regressions.py Fix Browser startup state and stale URLs across chats 2026-09-17 19:19:20 +02:00
test_browser_tool_output.py Bound browser evaluate with recoverable JavaScript cancellation 2026-09-14 16:38:01 +02:00
test_chat_compaction.py Preserve compacted context in provider history 2026-08-23 14:15:36 +02:00
test_chat_create.py feat(chats): allow explicit project selection on creation 2026-09-22 08:55:56 +02:00
test_chat_encrypted_reasoning.py Keep encrypted Chat reasoning out of readable output 2026-09-06 22:07:05 +02:00
test_chat_import_export.py Fix chat export targeting and import cancellation 2026-09-19 03:22:59 +02:00
test_chat_input_drafts.py Fix mobile composer and welcome sizing 2026-09-23 14:07:35 +02:00
test_chat_working_animation.py style(sidebar): refine thread spacing and nesting 2026-09-22 12:03:49 +02:00
test_code_execution_pager.py fix: release Paramiko import traceback 2026-07-21 00:56:59 +02:00
test_csrf_tunnel_origins.py Fix Tailscale Remote Control CSRF origins 2026-06-04 14:54:39 +02:00
test_default_prompt_budget.py test: align browser and specialist prompt expectations 2026-09-08 15:43:07 +02:00
test_defer_lifecycle.py Serialize shared event-loop initialization 2026-09-07 09:20:08 +02:00
test_dirty_json.py Add file-level DOX docs & update AGENTS indexes 2026-06-08 12:41:53 +02:00
test_docker_initialize_limits.py Raise Docker open file limit at startup 2026-06-24 11:00:00 +02:00
test_docker_release_plan.py Refresh Docker publish workflow assertions 2026-09-04 00:20:45 +02:00
test_document_query_fallback.py fix(document_query): isolate LiteParse parsing 2026-05-29 15:51:59 +02:00
test_document_query_plugin.py Hide disabled capabilities from system prompts 2026-08-31 01:55:40 +02:00
test_download_toast_regressions.py Fix notification actions in notifications modal and preset editor select state 2026-09-19 14:02:13 +02:00
test_download_work_dir_file.py Make workspace HTTP transfers atomic 2026-07-27 10:15:02 +02:00
test_download_work_dir_paths.py Centralize streamed file transfers and harden archive operations 2026-09-09 01:40:04 +02:00
test_editor_files.py Skip hidden Markdown previews when opening source files 2026-09-12 18:48:56 +02:00
test_email_integration_sender.py Fix IMAP sender whitelist bypass with strict mailbox parsing 2026-09-09 13:54:54 +02:00
test_embedding_model_preload.py Reuse preloaded local embedding models 2026-08-26 23:04:32 +02:00
test_error_retry_plugin.py Surface provider refusals and stop automatic retries 2026-09-23 15:19:12 +02:00
test_extensions_stress.py refactor: improve caching system and optimize extension/plugin path resolution 2026-03-18 12:40:33 +01:00
test_fasta2a_client.py BIG PYTHON REFACTOR 2026-03-05 17:28:11 +01:00
test_fasta2a_server.py Enable A2A streaming capability by default 2026-06-12 03:11:00 +02:00
test_fastmcp_openapi_security.py Upgrade FastMCP to 3.2.4 / MCP to 1.27.0 for CVE-2026-32871 2026-04-16 15:21:01 +02:00
test_file_browser_archives.py Centralize streamed file transfers and harden archive operations 2026-09-09 01:40:04 +02:00
test_file_browser_host.py Centralize streamed file transfers and harden archive operations 2026-09-09 01:40:04 +02:00
test_file_browser_navigation.py Simplify Files navigation and preserve picker lifecycle 2026-09-17 04:23:42 +02:00
test_file_browser_path_link.py Simplify Files navigation and preserve picker lifecycle 2026-09-17 04:23:42 +02:00
test_file_browser_settings.py Centralize streamed file transfers and harden archive operations 2026-09-09 01:40:04 +02:00
test_file_connections.py Centralize streamed file transfers and harden archive operations 2026-09-09 01:40:04 +02:00
test_file_transfer_safety.py Centralize streamed file transfers and harden archive operations 2026-09-09 01:40:04 +02:00
test_file_tree.py Simplify Files navigation and preserve picker lifecycle 2026-09-17 04:23:42 +02:00
test_file_tree_indent.py Add regression coverage and normalize prompt file endings 2026-09-04 00:20:07 +03:00
test_file_tree_visualize.py BIG PYTHON REFACTOR 2026-03-05 17:28:11 +01:00
test_git_version_label.py Add /stop API and stop-button UI/behavior 2026-07-28 09:26:06 +02:00
test_history.py Fix assistant-first provider history 2026-08-12 14:34:16 +02:00
test_history_compression_wait.py Fix Responses state after history compaction 2026-07-07 16:59:49 +02:00
test_host_browser_connector.py Bound browser evaluate with recoverable JavaScript cancellation 2026-09-14 16:38:01 +02:00
test_http_auth_csrf.py Repair HTTP auth redirect tests 2026-09-04 00:21:58 +02:00
test_image_get_security.py fix(api): resolve image_get containment bypass (#1609) 2026-05-12 04:15:10 +02:00
test_initial_message.py Document and verify greeting history and log ownership 2026-09-06 20:38:35 +02:00
test_intervention_llm_abort.py Route nudge as system message and minify message templates 2026-09-03 03:54:51 +03:00
test_kokoro_tts.py Enhance native Kokoro voice blending 2026-08-12 14:34:15 +02:00
test_mcp_handler_multimodal.py Fix MCP lookup for Responses tool aliases 2026-07-16 02:29:39 +02:00
test_media_artifacts.py Fix MCP multimodal content handling 2026-05-26 15:31:33 +02:00
test_memory_cleanup.py Make bundled memory behavior reliable 2026-08-23 14:15:51 +02:00
test_memory_json_serialization.py Scope memory JSON compatibility to the dashboard 2026-08-23 16:49:03 +02:00
test_memory_quality.py Improve auto-memory extraction quality 2026-06-02 09:42:47 +02:00
test_memory_recall.py Make bundled memory behavior reliable 2026-08-23 14:15:51 +02:00
test_message_action_buttons_static.py Stabilize streaming message controls 2026-08-27 06:31:42 +02:00
test_message_loop_result.py Preserve native calls in assistant history and repeat checks 2026-09-06 20:10:46 +02:00
test_migration_cleanup.py Remove legacy filesystem logs 2026-07-16 15:30:37 +02:00
test_model_call_extensions.py Expose unified model calls to extensions 2026-07-17 17:00:40 +02:00
test_model_config_api_keys.py Preserve configured API-key pools when saving settings 2026-09-19 02:31:45 +02:00
test_model_config_project_presets.py Cache parsed global model presets 2026-09-23 18:10:54 +02:00
test_model_config_ui.py Fix notification actions in notifications modal and preset editor select state 2026-09-19 14:02:13 +02:00
test_model_parameter_text.py Identify the preset and model slot in parameter save errors 2026-09-07 00:11:53 +02:00
test_model_rate_limiter.py Skip rate-limiter token counting without limits 2026-09-23 18:11:13 +02:00
test_model_refusal.py Surface provider refusals and stop automatic retries 2026-09-23 15:19:12 +02:00
test_model_search.py Keep OAuth model discovery tied to account availability 2026-09-06 20:32:18 +02:00
test_model_search_controller.py Discard model search results for changed drafts and queries 2026-09-07 00:08:28 +02:00
test_multi_tab_isolation.py Optimize realtime WebUI synchronization 2026-08-26 15:27:36 +02:00
test_multimodal_embeddings.py Prevent chat parameters from leaking into embeddings 2026-09-06 06:31:21 +02:00
test_oauth_codex.py Reuse pooled connections for Codex upstream requests 2026-09-23 18:11:36 +02:00
test_oauth_gemini_api.py Add OAuth provider registry and Gemini API OAuth 2026-06-01 14:55:08 +02:00
test_oauth_github_copilot.py Refresh Codex OAuth model defaults 2026-07-02 17:29:40 +02:00
test_oauth_providers.py Update Codex version and close OAuth upstream streams 2026-09-23 16:13:22 +02:00
test_oauth_static.py Add Codex response defaults to OAuth settings 2026-07-28 16:46:38 +02:00
test_oauth_xai_grok.py Add OAuth provider registry and Gemini API OAuth 2026-06-01 14:55:08 +02:00
test_office_canvas_setup.py Unify text and code editing in the shared Editor 2026-09-08 15:02:57 +02:00
test_office_desktop_state.py Fit Desktop display to the active canvas 2026-09-08 12:40:08 +02:00
test_office_document_store.py Keep LibreOffice saves on the renamed document 2026-09-17 04:41:34 +02:00
test_onboarding_static.py fix(onboarding): await modal close before presets 2026-08-14 02:56:31 +08:00
test_parallel_code_lifetime.py Align remote execution and Computer Use tool contracts 2026-09-12 18:24:54 +02:00
test_parallel_tool.py fix(delegation): honor names when continuing subordinates 2026-09-23 14:52:51 +02:00
test_parallel_tool_args.py Cover top-level parallel arg mutation in regression test 2026-09-18 22:58:47 +08:00
test_persist_chat_deletion_guards.py Guard chat deletion against empty context IDs 2026-08-12 14:34:16 +02:00
test_persist_chat_log_ids.py Make chat persistence crash-safe 2026-07-10 13:08:09 +02:00
test_plain_response_logging.py Preserve native Responses history within prepared prompts 2026-09-06 22:08:21 +02:00
test_plugin_activation_ui.py Cache empty plugin lookup results 2026-09-23 18:27:38 +02:00
test_plugin_git_update.py Rebase local plugin commits during updates 2026-09-16 00:44:04 +02:00
test_plugin_hook_context.py feat: add caller context to plugin config hooks 2026-08-12 14:34:16 +02:00
test_plugin_scan_prompt.py Reduce plugin scanner false positives 2026-05-21 04:02:43 +02:00
test_plugin_skills.py refactor(skills): consolidate plugin authoring and discovery 2026-09-08 03:09:16 +02:00
test_print_style.py Remove legacy filesystem logs 2026-07-16 15:30:37 +02:00
test_projects.py Avoid rewriting unrelated chats on project changes 2026-08-12 14:34:15 +02:00
test_prompt_catalogs.py refactor(skills): consolidate plugin authoring and discovery 2026-09-08 03:09:16 +02:00
test_prompt_protocol.py fix(llm): stabilize Chat Completions cache boundaries 2026-09-23 00:32:20 +02:00
test_promptinclude.py Handle empty promptinclude scans cleanly 2026-08-31 01:56:02 +02:00
test_response_stream_cadence.py Stream native tool arguments through the existing live display 2026-09-06 20:19:45 +02:00
test_response_tool_validation.py fix(response): keep completions on the tool path 2026-07-25 00:44:56 +02:00
test_responses_architecture.py Build native tools only for Responses turns 2026-09-23 18:10:59 +02:00
test_responses_history.py Preserve commentary in native Responses history replay 2026-09-15 15:06:17 +02:00
test_responses_tools.py Align remote execution and Computer Use tool contracts 2026-09-12 18:24:54 +02:00
test_run_ui_config.py Extend WebSocket heartbeat grace 2026-06-16 16:29:00 +02:00
test_secrets.py Preserve masked secrets across key casing changes 2026-09-19 02:31:45 +02:00
test_self_update_runtime_sync.py Preserve rollback stash identity during self-update 2026-09-06 18:42:05 +02:00
test_self_update_tag_filter.py Preserve rollback stash identity during self-update 2026-09-06 18:42:05 +02:00
test_settings_api_keys.py Preserve configured API-key pools when saving settings 2026-09-19 02:31:45 +02:00
test_settings_cache.py Speed up settings saves by reusing the Git version 2026-09-18 17:16:45 +02:00
test_settings_developer_sections.py Avoid password-manager prompts in settings 2026-07-02 17:29:40 +02:00
test_settings_mcp.py Fix MCP settings apply NameError 2026-06-22 10:26:05 +02:00
test_settings_mobile.py Fix mobile settings Save and simplify section navigation 2026-09-23 15:56:37 +02:00
test_sidebar_row_actions.py fix(sidebar): render workers beyond the first child level 2026-09-23 14:53:43 +02:00
test_skills_catalog_api.py Load skills into chat history 2026-07-08 01:52:22 +02:00
test_skills_cli.py Unify skills CLI with runtime helpers 2026-07-17 15:20:33 +02:00
test_skills_runtime.py refactor(skills): consolidate plugin authoring and discovery 2026-09-08 03:09:16 +02:00
test_skills_scan.py Polish skills settings scope and search 2026-06-18 13:14:19 +02:00
test_snapshot_parity.py Prune deleted saved chats from sidebar state 2026-07-02 17:29:40 +02:00
test_snapshot_schema_v1.py Optimize realtime WebUI synchronization 2026-08-26 15:27:36 +02:00
test_socketio_library_semantics.py WebSocket merge 2026-02-01 16:07:45 +01:00
test_socketio_unknown_namespace.py WebSocket merge 2026-02-01 16:07:45 +01:00
test_speech_plugin_split.py Improve Browser startup and annotations 2026-08-16 15:22:10 +02:00
test_state_monitor.py Optimize realtime WebUI synchronization 2026-08-26 15:27:36 +02:00
test_state_sync_handler.py Optimize realtime WebUI synchronization 2026-08-26 15:27:36 +02:00
test_state_sync_welcome_screen.py Rebuild test suite & update documentation 2026-03-26 01:12:22 -07:00
test_stop_agent.py Add /stop API and stop-button UI/behavior 2026-07-28 09:26:06 +02:00
test_stream_tool_early_stop.py fix(llm): stabilize Chat Completions cache boundaries 2026-09-23 00:32:20 +02:00
test_subagent_metadata_merge.py Hide the utility agent from profile selectors 2026-08-12 14:34:15 +02:00
test_subagent_profiles.py fix(delegation): preserve scoped subagent model presets 2026-09-23 15:37:50 +02:00
test_system_packages.py Fix Desktop and Office package installation 2026-09-08 12:17:41 +02:00
test_task_scheduler_timezone.py fix: tighten tool guidance and editor workflows 2026-05-11 11:51:58 +02:00
test_telegram_commands.py Extend slash commands coverage and menus in Telegram 2026-09-14 13:21:15 +02:00
test_telegram_error_ui.py Show friendly Telegram errors 2026-05-29 00:10:04 +05:30
test_telegram_heartbeat.py Add Telegram long-run status updates 2026-05-29 00:10:04 +05:30
test_telegram_intermediate_response.py Group Telegram tool streams by response 2026-05-29 00:10:04 +05:30
test_telegram_media_delivery.py Send Telegram media attachments natively 2026-05-29 00:10:04 +05:30
test_telegram_sessions_picker.py Add Telegram session picker 2026-05-29 00:10:04 +05:30
test_telegram_webhook_security.py Fix Telegram webhook authentication bypass 2026-09-09 10:14:39 +02:00
test_text_editor_context_patch.py Preserve file permissions and ownership when applying editor patches 2026-09-14 23:00:41 +02:00
test_text_editor_message_handler.py Add text_editor custom message handler and CSS 2026-09-03 15:08:59 +03:00
test_time_travel.py Ignore removed Time Travel workspaces 2026-07-09 17:26:39 +02:00
test_time_travel_retention.py feat: Time Travel shadow-repo retention (orphan cleanup, optional age-out, stale-lock repair) 2026-08-12 14:34:16 +02:00
test_timezone_regressions.py Split text editor and Office artifact ownership 2026-05-22 11:21:04 +02:00
test_tool_action_contracts.py Align remote execution and Computer Use tool contracts 2026-09-12 18:24:54 +02:00
test_tool_args_preference.py Fix raw-text fallback classification 2026-09-05 15:18:13 +03:00
test_tool_policy.py Keep browser runtime state out of the system prompt 2026-09-10 15:20:37 +03:00
test_tool_request_normalization.py Fix malformed native Responses tool output 2026-07-28 16:46:38 +02:00
test_tool_result_file_persistence.py Fix parallel worker chat log orphans 2026-06-19 08:11:38 +02:00
test_tunnel_remote_link.py Harden Tailscale Funnel remote control 2026-06-01 02:11:58 +02:00
test_ui_bundler.py Improve WebUI bundling, manifest and stop command 2026-07-29 19:49:07 +02:00
test_ui_control_visibility.py feat: make the canvas rail movable and customizable 2026-09-09 07:50:57 +02:00
test_unsecured_connection_banner.py Fix unsecured connection settings link 2026-06-23 18:47:10 +02:00
test_unusable_response_loop.py Count thoughts_fallback warning toward unusable-response limit 2026-09-04 11:18:17 +00:00
test_upload_atomic.py Make workspace HTTP transfers atomic 2026-07-27 10:15:02 +02:00
test_user_routes.py Support standalone user API and WebUI routes 2026-08-19 12:14:29 +02:00
test_vision_load_image_refs.py Hide empty vision skip summaries 2026-08-26 01:57:05 +02:00
test_webui_chat_deletion.py fix(sidebar): render workers beyond the first child level 2026-09-23 14:53:43 +02:00
test_webui_component_loader.py Fix file browser action menu clipping 2026-07-02 17:29:40 +02:00
test_webui_extension_surfaces.py refactor(sidebar): share rows across plugin list views 2026-09-22 08:55:56 +02:00
test_webui_icons.py Unify WebUI icons and fix message collapsing 2026-07-31 13:32:41 +00:00
test_webui_katex_assets.py Bundle KaTeX font assets 2026-07-14 15:57:54 +02:00
test_webui_latex_rendering.py Render standard TeX in chat messages 2026-07-14 15:57:54 +02:00
test_webui_message_ordering_static.py Add regression coverage and normalize prompt file endings 2026-09-04 00:20:07 +03:00
test_webui_message_window.py Fix flashing process groups during memory search 2026-09-16 16:17:37 +02:00
test_webui_offline_assets.py Unify WebUI icons and fix message collapsing 2026-07-31 13:32:41 +00:00
test_webui_overflow.py Add reusable overflow menus for chat controls 2026-09-23 06:24:49 +02:00
test_webui_plugin_process_types.py Fix process group IDs and standalone message boundaries 2026-09-16 16:36:23 +02:00
test_webui_service_worker.py Improve WebUI bundling, manifest and stop command 2026-07-29 19:49:07 +02:00
test_webui_startup_assets.py Add reusable overflow menus for chat controls 2026-09-23 06:24:49 +02:00
test_webui_tooltips.py Suppress tooltips on devices without hover support 2026-09-23 14:07:49 +02:00
test_welcome_composer_static.py Drop stale welcome background assertion 2026-09-04 00:23:53 +02:00
test_whats_new_static.py Disable What's New cards 2026-07-02 17:29:40 +02:00
test_whatsapp_bridge.mjs Extend slash command support to WhatsApp 2026-09-14 14:08:47 +02:00
test_whatsapp_bridge_manager.py Fix WhatsApp media path traversal and pre-download authorization 2026-09-09 08:38:46 +02:00
test_whatsapp_commands.py Extend slash command support to WhatsApp 2026-09-14 14:08:47 +02:00
test_whatsapp_config_store.mjs Simplify WhatsApp pairing to one QR-code action 2026-09-09 08:50:01 +02:00
test_whatsapp_number_utils.py Squashed commit of the following: 2026-03-31 09:47:25 +02:00
test_whatsapp_storage_paths.py Squashed commit of the following: 2026-03-31 09:47:25 +02:00
test_ws_client_api_surface.py Avoid replaying queued WebUI updates 2026-09-07 18:15:59 +02:00
test_ws_csrf.py Fix Tailscale Remote Control CSRF origins 2026-06-04 14:54:39 +02:00
test_ws_handlers.py Rebuild test suite & update documentation 2026-03-26 01:12:22 -07:00
test_ws_manager.py Harden Core connector transport 2026-07-27 10:14:52 +02:00
test_ws_security.py Rebuild test suite & update documentation 2026-03-26 01:12:22 -07:00