deerflow2/backend/tests
Willem Jiang b5108e3520
fix(auth): replace setup-status 429 rate limit with cached response (#2915)
* fix(auth): replace setup-status 429 rate limit with cached response

  The /api/v1/auth/setup-status endpoint had a 60-second cooldown that
  returned HTTP 429 for all but the first request per IP. When the service
  restarted with multiple browser tabs open, all tabs hit this endpoint
  simultaneously from the same source IP, causing a storm of 429 errors
  that blocked the login flow.

  Replace the cooldown-with-429 model with a per-IP response cache that
  returns the previously computed result within the TTL. The database
  query (count_admin_users) still only runs once per IP per 60 seconds,
  preserving the original performance goal while eliminating spurious
  429 errors on multi-tab reconnection.

  Fixes #2902

* fix(auth): address setup-status cache review issues

Agent-Logs-Url: https://github.com/bytedance/deer-flow/sessions/439a0e8c-8b64-41d4-a3cd-fe9a00eec534

Co-authored-by: WillemJiang <219644+WillemJiang@users.noreply.github.com>

* test(auth): improve readability of setup-status concurrency assertion

Agent-Logs-Url: https://github.com/bytedance/deer-flow/sessions/439a0e8c-8b64-41d4-a3cd-fe9a00eec534

Co-authored-by: WillemJiang <219644+WillemJiang@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: Copilot Autofix powered by AI <223894421+github-code-quality[bot]@users.noreply.github.com>

* fix the unit test error

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <223894421+github-code-quality[bot]@users.noreply.github.com>
2026-05-18 22:07:01 +08:00
..
support test: add blocking IO detector (#2924) 2026-05-13 23:56:06 +08:00
_agent_e2e_helpers.py fix(agents): make update_agent honor runtime.context user_id like setup_agent (#2867) 2026-05-12 23:18:54 +08:00
_router_auth_helpers.py fix the lint error in backend 2026-04-26 15:09:25 +08:00
conftest.py test: add blocking IO detector (#2924) 2026-05-13 23:56:06 +08:00
test_acp_config.py feat(acp): add env field to ACPAgentConfig for subprocess env injection (#1447) 2026-03-27 20:03:30 +08:00
test_aio_sandbox_local_backend.py [security] fix(sandbox): bind local Docker ports to loopback (#2633) 2026-04-30 11:40:28 +08:00
test_aio_sandbox_provider.py fix(sandbox): scope provisioner PVC data by user (#2973) 2026-05-17 15:23:42 +08:00
test_aio_sandbox.py fix(sandbox): pass no_change_timeout to exec_command to prevent 120s premature termination (#2685) 2026-05-01 22:27:02 +08:00
test_app_config_reload.py fix(config): reset config-backed singletons on hot reload (#2588) 2026-05-06 10:17:55 +08:00
test_artifacts_router.py fix(gateway): cap skill artifact preview size (#2963) 2026-05-15 22:15:58 +08:00
test_auth_config.py fix(auth): persist auto-generated JWT secret to survive restarts (#2933) 2026-05-16 09:24:40 +08:00
test_auth_errors.py feat(auth): release-validation pass for 2.0-rc — 12 blockers + simplify follow-ups (#2008) 2026-04-26 11:08:11 +08:00
test_auth_middleware.py feat: implement process-local internal authentication for Gateway and enhance CSRF handling 2026-04-26 22:20:57 +08:00
test_auth_type_system.py feat(auth): release-validation pass for 2.0-rc — 12 blockers + simplify follow-ups (#2008) 2026-04-26 11:08:11 +08:00
test_auth.py fix(security): harden auth system and fix run journal logic bug (#2593) 2026-04-28 11:34:07 +08:00
test_blocking_io_detector.py test: add blocking IO detector (#2924) 2026-05-13 23:56:06 +08:00
test_blocking_io_probe_integration.py test: add blocking IO detector (#2924) 2026-05-13 23:56:06 +08:00
test_channel_file_attachments.py [security] fix(upload): reject symlinked upload destinations (#2623) 2026-05-02 15:19:28 +08:00
test_channels.py feat(channels): enhance Discord with mention-only mode, thread routing, and typing indicators (#2842) 2026-05-15 22:30:05 +08:00
test_check_script.py fix(check): windows pnpm version detection in check script (#2189) 2026-04-14 10:29:44 +08:00
test_checkpointer_none_fix.py feat(persistence):Unified persistence layer with event store, feedback, and rebase cleanup (#2134) 2026-04-26 11:09:55 +08:00
test_checkpointer.py fix(packaging): add postgres extra for store/checkpointer supportFix postgres extra install guidance (#2584) 2026-05-09 09:49:08 +08:00
test_clarification_middleware.py fix(backend): make clarification messages idempotent (#2350) (#2351) 2026-04-19 22:00:58 +08:00
test_claude_provider_oauth_billing.py fix(oauth): Harden Claude OAuth cache-control handling (#1583) 2026-03-30 07:41:18 +08:00
test_claude_provider_prompt_caching.py fix: cap prompt caching breakpoints at 4 to prevent API 400 errors (#2449) 2026-04-25 19:40:06 +08:00
test_cli_auth_providers.py fix(provider): preserve streamed Codex output when response.completed.output is empty (#1928) 2026-04-07 18:21:22 +08:00
test_client_e2e.py fix(harness): resolve runtime paths from project root (#2642) 2026-05-01 22:19:50 +08:00
test_client_live.py [Security] Address critical host-shell escape in LocalSandboxProvider (#1547) 2026-03-29 21:03:58 +08:00
test_client_message_serialization.py feat: refine token usage display modes (#2329) 2026-05-04 09:56:16 +08:00
test_client.py feat: refine token usage display modes (#2329) 2026-05-04 09:56:16 +08:00
test_codex_provider.py chroe(2585): keep polishing the code of codex token usage (#2689) 2026-05-02 15:04:11 +08:00
test_config_version.py refactor: split backend into harness (deerflow.*) and app (app.*) (#1131) 2026-03-14 22:55:52 +08:00
test_converters.py feat(persistence): add unified persistence layer with event store, token tracking, and feedback (#1930) 2026-04-26 11:05:47 +08:00
test_create_deerflow_agent_live.py feat: add create_deerflow_agent SDK entry point (Phase 1) (#1203) 2026-03-29 15:31:18 +08:00
test_create_deerflow_agent.py feat(loop-detection): make loop detection configurable with per-tool frequency overrides (#2711) 2026-05-07 16:15:15 +08:00
test_credential_loader.py feat(loop-detection): make loop detection configurable with per-tool frequency overrides (#2711) 2026-05-07 16:15:15 +08:00
test_csrf_middleware.py feat: static system prompt with DynamicContextMiddleware for prefix-cache optimization (#2801) 2026-05-09 09:27:02 +08:00
test_custom_agent.py feat(agent): add custom-agent self-updates with user isolation (#2713) 2026-05-05 23:17:42 +08:00
test_dangling_tool_call_middleware.py fix(middleware): normalize tool result adjacency before model calls (#2939) 2026-05-15 22:09:04 +08:00
test_deferred_tool_promotion_real_llm.py fix(tools): preserve tool_search promotions across re-entrant get_available_tools (#2885) 2026-05-13 23:45:47 +08:00
test_deferred_tool_registry_promotion.py fix(tools): preserve tool_search promotions across re-entrant get_available_tools (#2885) 2026-05-13 23:45:47 +08:00
test_detect_uv_extras.py fix(scripts): preserve uv extras across make dev restarts (#2754) (#2767) 2026-05-10 22:28:29 +08:00
test_dev_entrypoint.py fix(scripts): preserve uv extras across make dev restarts (#2754) (#2767) 2026-05-10 22:28:29 +08:00
test_dingtalk_channel.py feat(channels): add DingTalk channel integration (#2628) 2026-04-30 11:25:33 +08:00
test_discord_channel.py feat(channels): add Discord channel integration (#1806) 2026-04-11 17:48:04 +08:00
test_docker_sandbox_mode_detection.py fix Windows Docker sandbox path mounting (#1634) 2026-03-31 22:19:27 +08:00
test_doctor.py feat(dx): Setup Wizard + doctor command — closes #2030 (#2034) 2026-04-10 17:43:39 +08:00
test_dynamic_context_middleware.py fix(harness): preserve dynamic context across summarization (#2823) 2026-05-09 19:39:36 +08:00
test_ensure_admin.py refactor: Remove init_token handling from admin initialization logic and related tests 2026-04-26 11:09:56 +08:00
test_exa_tools.py feat(community): add Exa search as community tool provider (#1357) 2026-04-08 17:13:39 +08:00
test_feedback.py feat(persistence):Unified persistence layer with event store, feedback, and rebase cleanup (#2134) 2026-04-26 11:09:55 +08:00
test_feishu_parser.py Feature/feishu receive file (#1608) 2026-04-06 22:14:12 +08:00
test_file_conversion.py [security] fix(uploads): require explicit opt-in for host-side document conversion (#2332) 2026-04-18 22:47:42 +08:00
test_firecrawl_tools.py feat(dx): Setup Wizard + doctor command — closes #2030 (#2034) 2026-04-10 17:43:39 +08:00
test_gateway_deps_config.py refactor: root release config in gateway runtime (#2611) 2026-04-28 00:13:04 +08:00
test_gateway_docs_toggle.py fix(nginx): defer CORS to gateway allowlist (#2861) 2026-05-11 17:38:37 +08:00
test_gateway_lifespan_shutdown.py fix(gateway): bound lifespan shutdown hooks to prevent worker hang under uvicorn reload (#2331) 2026-04-23 19:41:26 +08:00
test_gateway_runtime_cleanup.py fix(nginx): defer CORS to gateway allowlist (#2861) 2026-05-11 17:38:37 +08:00
test_gateway_services.py fix: keep new agent bootstrap in user scope (#2784) 2026-05-09 19:43:50 +08:00
test_guardrail_middleware.py feat(guardrails): add pre-tool-call authorization middleware with pluggable providers (#1240) 2026-03-23 18:07:33 +08:00
test_harness_boundary.py refactor: split backend into harness (deerflow.*) and app (app.*) (#1131) 2026-03-14 22:55:52 +08:00
test_infoquest_client.py feat(harness): integration ACP agent tool (#1344) 2026-03-26 14:20:18 +08:00
test_initialize_admin.py fix(auth): replace setup-status 429 rate limit with cached response (#2915) 2026-05-18 22:07:01 +08:00
test_invoke_acp_agent_tool.py refactor: thread app_config through lead and subagent task path (#2666) 2026-05-02 06:37:49 +08:00
test_jina_client.py fix(jina): log transient failures at WARNING without traceback (#2484) (#2485) 2026-04-24 16:00:14 +08:00
test_langgraph_auth.py fix(security): harden auth system and fix run journal logic bug (#2593) 2026-04-28 11:34:07 +08:00
test_lead_agent_model_resolution.py feat(loop-detection): make loop detection configurable with per-tool frequency overrides (#2711) 2026-05-07 16:15:15 +08:00
test_lead_agent_prompt.py fix(skills): enforce allowed-tools metadata (#2626) 2026-05-07 08:34:43 +08:00
test_lead_agent_skills.py fix(skills): enforce allowed-tools metadata (#2626) 2026-05-07 08:34:43 +08:00
test_llm_error_handling_middleware.py refactor: thread app_config through middleware factories (#2652) 2026-04-30 12:41:09 +08:00
test_local_bash_tool_loading.py fix(sandbox): improve sandbox security and preserve multimodal content (#2114) 2026-04-11 16:52:10 +08:00
test_local_sandbox_encoding.py fix(sandbox): disable msys path conversion (#2766) 2026-05-08 10:13:11 +08:00
test_local_sandbox_provider_mounts.py fix(harness): reset local sandbox singleton with provider lifecycle (#2834) 2026-05-11 07:42:15 +08:00
test_local_sandbox_virtual_path_contract.py fix(sandbox): uphold /mnt/user-data contract at Sandbox API boundary (#2873) (#2881) 2026-05-17 08:26:04 +08:00
test_local_skill_storage_write.py refactor(skills): Unified skill storage capability (#2613) 2026-05-01 13:23:26 +08:00
test_logging_level_from_config.py fix(config): unify log_level from config.yaml across Gateway and debug entry points (#2601) 2026-04-30 22:27:14 +08:00
test_loop_detection_config.py feat(loop-detection): make loop detection configurable with per-tool frequency overrides (#2711) 2026-05-07 16:15:15 +08:00
test_loop_detection_middleware.py feat(loop-detection): make loop detection configurable with per-tool frequency overrides (#2711) 2026-05-07 16:15:15 +08:00
test_mcp_client_config.py refactor: split backend into harness (deerflow.*) and app (app.*) (#1131) 2026-03-14 22:55:52 +08:00
test_mcp_custom_interceptors.py feat(mcp): support custom tool interceptors via extensions_config.json (#2451) 2026-04-25 09:18:13 +08:00
test_mcp_oauth.py refactor: split backend into harness (deerflow.*) and app (app.*) (#1131) 2026-03-14 22:55:52 +08:00
test_mcp_sync_wrapper.py fix(harness): wrap async-only config tools for sync client execution (#2878) 2026-05-11 22:14:13 +08:00
test_memory_prompt_injection.py fix: inject longTermBackground into memory prompt (#1734) 2026-04-03 11:21:58 +08:00
test_memory_queue_user_isolation.py fix(memory): isolate queued memory updates by agent (#2941) 2026-05-15 10:26:35 +08:00
test_memory_queue.py fix(memory): isolate queued memory updates by agent (#2941) 2026-05-15 10:26:35 +08:00
test_memory_router.py feat(persistence): per-user filesystem isolation, run-scoped APIs, and state/history simplification (#2153) 2026-04-26 11:13:01 +08:00
test_memory_storage_user_isolation.py fix the lint error in backend 2026-04-26 15:09:25 +08:00
test_memory_storage.py fix: Memory update system has cache corruption, data loss, and thread-safety bugs (#2251) 2026-04-17 12:00:31 +08:00
test_memory_thread_meta_isolation.py feat(persistence):Unified persistence layer with event store, feedback, and rebase cleanup (#2134) 2026-04-26 11:09:55 +08:00
test_memory_updater_user_isolation.py fix the lint error in backend 2026-04-26 15:09:25 +08:00
test_memory_updater.py fix(memory): replace short-lived asyncio.run() with persistent event loop (#2627) 2026-04-30 17:59:57 +08:00
test_memory_upload_filtering.py feat: flush memory before summarization (#2176) 2026-04-14 15:01:06 +08:00
test_migration_user_isolation.py feat(agent): add custom-agent self-updates with user isolation (#2713) 2026-05-05 23:17:42 +08:00
test_mindie_provider.py feat(channels): enhance Discord with mention-only mode, thread routing, and typing indicators (#2842) 2026-05-15 22:30:05 +08:00
test_model_config.py feat(codex): support explicit OpenAI Responses API config (#1235) 2026-03-22 20:39:26 +08:00
test_model_factory.py feat(persistence): add unified persistence layer with event store, token tracking, and feedback (#1930) 2026-04-26 11:05:47 +08:00
test_owner_isolation.py feat(persistence):Unified persistence layer with event store, feedback, and rebase cleanup (#2134) 2026-04-26 11:09:55 +08:00
test_patched_deepseek.py fix: resolve missing serialized kwargs in PatchedChatDeepSeek (#2025) 2026-04-09 16:07:16 +08:00
test_patched_minimax.py fix: improve MiniMax code plan integration (#1169) 2026-03-20 17:18:59 +08:00
test_patched_openai.py fix(LLM): fixing Gemini thinking + tool calls via OpenAI gateway (#1180) (#1205) 2026-03-26 15:07:05 +08:00
test_paths_user_isolation.py feat(agent): add custom-agent self-updates with user isolation (#2713) 2026-05-05 23:17:42 +08:00
test_persistence_scaffold.py fix(packaging): add postgres extra for store/checkpointer supportFix postgres extra install guidance (#2584) 2026-05-09 09:49:08 +08:00
test_present_file_tool_core_logic.py feat(persistence): per-user filesystem isolation, run-scoped APIs, and state/history simplification (#2153) 2026-04-26 11:13:01 +08:00
test_provisioner_kubeconfig.py feat(provisioner): add optional PVC support for sandbox volumes (#2020) 2026-04-10 20:40:30 +08:00
test_provisioner_pvc_volumes.py fix(sandbox): scope provisioner PVC data by user (#2973) 2026-05-17 15:23:42 +08:00
test_readability.py refactor: split backend into harness (deerflow.*) and app (app.*) (#1131) 2026-03-14 22:55:52 +08:00
test_reflection_resolvers.py refactor: split backend into harness (deerflow.*) and app (app.*) (#1131) 2026-03-14 22:55:52 +08:00
test_remote_sandbox_backend.py fix(sandbox): scope provisioner PVC data by user (#2973) 2026-05-17 15:23:42 +08:00
test_run_event_store_pagination.py fix the lint error in backend 2026-04-26 15:09:25 +08:00
test_run_event_store.py fix(runtime): avoid postgres aggregate row lock (#2962) 2026-05-15 10:32:09 +08:00
test_run_journal.py fix(runtime): persist run message summaries (#2850) 2026-05-11 19:54:00 +08:00
test_run_manager.py fix(runs): restore historical runs from persistent store after gateway restart (#2989) 2026-05-17 20:03:21 +08:00
test_run_repository.py fix(persistence): reuse token usage model grouping expression (#2910) 2026-05-13 15:49:34 +08:00
test_run_worker_rollback.py fix(runtime): make rollback restore checkpoint supersede newer checkpoints (#2582) 2026-05-02 11:25:45 +08:00
test_runs_api_endpoints.py fix the lint error in backend 2026-04-26 15:09:25 +08:00
test_runtime_paths.py fix(harness): restore legacy skills path fallback (#2694) (#2696) 2026-05-03 23:40:59 +08:00
test_sandbox_audit_middleware.py feat(sandbox): strengthen bash command auditing with compound splitting and expanded patterns (#1881) 2026-04-07 17:15:24 +08:00
test_sandbox_orphan_reconciliation_e2e.py fix(sandbox): add startup reconciliation to prevent orphaned container leaks (#1976) 2026-04-09 17:21:23 +08:00
test_sandbox_orphan_reconciliation.py fix(sandbox): add startup reconciliation to prevent orphaned container leaks (#1976) 2026-04-09 17:21:23 +08:00
test_sandbox_search_tools.py fix(sandbox): add missing path masking in ls_tool output (#2317) 2026-04-18 08:46:59 +08:00
test_sandbox_tools_security.py fix(sandbox): block host bash traversal escapes (#2560) 2026-04-28 12:18:41 +08:00
test_security_scanner.py fix(skills): make security scanner JSON parsing robust for LLM output variations (#2987) 2026-05-17 08:59:42 +08:00
test_serialization.py feat(gateway): implement LangGraph Platform API in Gateway, replace langgraph-cli (#1403) 2026-03-30 16:02:23 +08:00
test_serialize_message_content.py feat(harness): integration ACP agent tool (#1344) 2026-03-26 14:20:18 +08:00
test_serper_tools.py feat(community): add Serper web search provider (#2630) 2026-05-02 16:22:35 +08:00
test_setup_agent_e2e_user_isolation.py fix(agents): make update_agent honor runtime.context user_id like setup_agent (#2867) 2026-05-12 23:18:54 +08:00
test_setup_agent_http_e2e_real_server.py fix(agents): make update_agent honor runtime.context user_id like setup_agent (#2867) 2026-05-12 23:18:54 +08:00
test_setup_agent_tool.py fix: keep new agent bootstrap in user scope (#2784) 2026-05-09 19:43:50 +08:00
test_setup_wizard.py enable token usage by default (#2841) 2026-05-10 22:00:57 +08:00
test_skill_manage_tool.py refactor(skills): Unified skill storage capability (#2613) 2026-05-01 13:23:26 +08:00
test_skills_archive_root.py refactor: extract shared skill installer and upload manager to harness (#1202) 2026-03-25 16:28:33 +08:00
test_skills_bundled.py fix(skills): validate bundled SKILL.md front-matter in CI (fixes #2443) (#2457) 2026-04-23 14:06:14 +08:00
test_skills_custom_router.py refactor(skills): Unified skill storage capability (#2613) 2026-05-01 13:23:26 +08:00
test_skills_installer.py refactor(skills): Unified skill storage capability (#2613) 2026-05-01 13:23:26 +08:00
test_skills_loader.py fix(harness): restore legacy skills path fallback (#2694) (#2696) 2026-05-03 23:40:59 +08:00
test_skills_parser.py fix(skills): enforce allowed-tools metadata (#2626) 2026-05-07 08:34:43 +08:00
test_skills_validation.py fix(skills): enforce allowed-tools metadata (#2626) 2026-05-07 08:34:43 +08:00
test_sse_format.py feat(gateway): implement LangGraph Platform API in Gateway, replace langgraph-cli (#1403) 2026-03-30 16:02:23 +08:00
test_stream_bridge.py Fix(#1702): stream resume run (#1858) 2026-04-06 14:51:10 +08:00
test_subagent_executor.py fix(subagents): consolidate system_prompt and skills into single SystemMessage (#2701) 2026-05-11 09:59:06 +08:00
test_subagent_limit_middleware.py fix(middleware): sync raw tool call metadata (#2757) 2026-05-08 10:08:53 +08:00
test_subagent_prompt_security.py feat(subagents): support per-subagent skill loading and custom subagent types (#2253) 2026-04-23 23:59:47 +08:00
test_subagent_skills_config.py refactor: thread app_config through lead and subagent task path (#2666) 2026-05-02 06:37:49 +08:00
test_subagent_timeout_config.py feat(subagents): allow model override per subagent in config.yaml (#2064) 2026-04-12 16:40:21 +08:00
test_subagent_token_collector.py fix: bucket subagent token usage into parent run totals (#2838) 2026-05-10 22:47:30 +08:00
test_suggestions_router.py refactor: thread release config through lead path (#2612) 2026-04-28 14:53:18 +08:00
test_summarization_middleware.py fix(memory): isolate queued memory updates by agent (#2941) 2026-05-15 10:26:35 +08:00
test_task_tool_core_logic.py feat: stream subagent token usage to header via terminal task events (#2882) 2026-05-13 23:52:19 +08:00
test_thread_data_middleware.py Fix Windows backend test compatibility (#1384) 2026-03-26 17:39:16 +08:00
test_thread_meta_repo.py perf(harness): push thread metadata filters into SQL (#2865) 2026-05-12 23:21:22 +08:00
test_thread_run_messages_pagination.py fix the lint error in backend 2026-04-26 15:09:25 +08:00
test_thread_token_usage.py fix: use backend thread token usage for header total (#2800) 2026-05-09 19:40:32 +08:00
test_threads_router.py perf(harness): push thread metadata filters into SQL (#2865) 2026-05-12 23:21:22 +08:00
test_title_generation.py refactor: split backend into harness (deerflow.*) and app (app.*) (#1131) 2026-03-14 22:55:52 +08:00
test_title_middleware_core_logic.py feat(channels): enhance Discord with mention-only mode, thread routing, and typing indicators (#2842) 2026-05-15 22:30:05 +08:00
test_todo_middleware.py fix(middleware): Prevent todo completion reminder IMMessage leak (#2907) 2026-05-15 22:12:37 +08:00
test_token_usage_config.py enable token usage by default (#2841) 2026-05-10 22:00:57 +08:00
test_token_usage_middleware.py feat: stream subagent token usage to header via terminal task events (#2882) 2026-05-13 23:52:19 +08:00
test_token_usage.py feat(harness): integration ACP agent tool (#1344) 2026-03-26 14:20:18 +08:00
test_tool_args_schema_no_pydantic_warning.py fix(tools): make write_file append discoverable in model-facing schema (#2843) 2026-05-10 23:09:03 +08:00
test_tool_deduplication.py fix(tools): preserve tool_search promotions across re-entrant get_available_tools (#2885) 2026-05-13 23:45:47 +08:00
test_tool_error_handling_middleware.py fix(subagents): use model override for tools and middleware (#2641) 2026-05-01 22:21:10 +08:00
test_tool_output_truncation.py fix: add output truncation to ls_tool to prevent context window overflow (#1896) 2026-04-06 15:09:57 +08:00
test_tool_search.py fix: gate deferred MCP tool execution (#2513) 2026-04-24 22:45:41 +08:00
test_tracing_config.py feat(tracing): add optional Langfuse support (#1717) 2026-04-02 13:06:10 +08:00
test_tracing_factory.py feat(tracing): add optional Langfuse support (#1717) 2026-04-02 13:06:10 +08:00
test_update_agent_e2e_user_isolation.py fix(agents): make update_agent honor runtime.context user_id like setup_agent (#2867) 2026-05-12 23:18:54 +08:00
test_update_agent_tool.py feat(agent): add custom-agent self-updates with user isolation (#2713) 2026-05-05 23:17:42 +08:00
test_uploads_manager.py fix(uploads): add Windows support for safe symlink-protected uploads (#2794) 2026-05-09 18:21:54 +08:00
test_uploads_middleware_core_logic.py feat(persistence): per-user filesystem isolation, run-scoped APIs, and state/history simplification (#2153) 2026-04-26 11:13:01 +08:00
test_uploads_router.py Fix duplicate gateway upload filenames (#2789) 2026-05-09 18:02:40 +08:00
test_user_context.py fix the lint error in backend 2026-04-26 15:09:25 +08:00
test_utils_time.py fix(gateway): return ISO 8601 timestamps from threads endpoints (#2599) 2026-05-02 15:16:16 +08:00
test_view_image_middleware.py test: add unit tests for ViewImageMiddleware (#2256) 2026-04-15 23:54:30 +08:00
test_view_image_tool.py fix(harness): constrain view_image to thread data paths (#2557) 2026-04-28 11:13:17 +08:00
test_vllm_provider.py feat(models): add vLLM provider support (#1860) 2026-04-06 15:18:34 +08:00
test_wechat_channel.py feat: add WeChat channel integration (#1869) 2026-04-10 20:49:28 +08:00