deer-flow/backend/tests
AochenShen99 658c39ccf7
Some checks failed
Backend Blocking IO / backend-blocking-io (push) Waiting to run
Unit Tests / backend-unit-tests (push) Waiting to run
Frontend Unit Tests / frontend-unit-tests (push) Waiting to run
Lint Check / lint-backend (push) Waiting to run
Lint Check / lint-frontend (push) Waiting to run
Replay E2E (front-back contract) / Layer 1 — backend golden (no API key) (push) Waiting to run
Replay E2E (front-back contract) / Layer 2 — full-stack render (no API key) (push) Waiting to run
E2E Tests / e2e-tests (push) Has been cancelled
feat(skills): Add native SkillScan phase 1 for skills (#3033)
* Add phase 1 skill static scanning

* Rework SkillScan phase 1 as native scanner

* refactor(skillscan): align phase 1 with trimmed RFC contract

- SecurityFinding: 7 fields (rule_id, severity, file, line, message,
  remediation, evidence); category/analyzer derive from the rule_id
  prefix, confidence/column/fingerprint/metadata removed
- scan_archive_preflight()/scan_skill_dir() are pure functions: no
  ScanContext, no policy schema; CRITICAL-blocks is a code constant and
  skill_scan.enabled is applied by enforce_static_scan()/callers
- secret-* evidence is redacted before findings leave the scanner
- de-dup keys on (rule_id, file, line) so repeated occurrences keep
  distinct locations for agent self-correction
- cloud-metadata detection consolidated into network-cloud-metadata
- nested zip members get a one-level stdlib magic-byte peek; an
  executable member escalates package-nested-archive to CRITICAL
- install metadata sidecar removed (Phase 7 decides if it is needed)
- rule specs moved next to their analyzers; skillscan/rules/ removed
- tests updated + new anchors: redaction, dedup lines, nested-zip
  escalation, single cloud-metadata rule, bundled-skill zero-CRITICAL

* fix(skillscan): tighten reverse-shell/secret/archive scan rules from review

Address PR #3033 review feedback on the native SkillScan analyzers:

- Reverse-shell false positives: split shell detection by signal strength
  (/dev/tcp/, nc -e stay CRITICAL; bash -i, mkfifo -> new HIGH
  shell-reverse-shell-heuristic, warn->LLM). The Python check is now
  AST-anchored on real socket.socket/os.dup2/subprocess call sites instead
  of raw-text substring matching, so prose/docstrings no longer hard-block.
- Secret evidence: _redact_secret_evidence returns [redacted] with no secret
  bytes (was value[:6], which leaked 2 real token bytes past the prefix).
- Archive DoS: cap outer archive member count (_MAX_ARCHIVE_MEMBERS=4096);
  scan_archive_preflight early-aborts with a package-too-many-members CRITICAL
  finding (routes through the existing blocked->400 fail-closed path).
- shell-destructive-command: broaden the rm -rf matcher to sensitive system
  roots (/home, /usr, /*, --no-preserve-root /) while leaving safe subpaths
  unflagged.
- Dead code: collapse _decode_text_for_analysis to a single decode path and
  drop the unused _TEXT_SUFFIXES set and _has_text_shebang helper.
- local_skill_storage: document why the host_path branch keeps app_config
  possibly-None (lazy kill-switch resolution; avoids eager get_app_config in
  config-free environments such as CI).

Tests: new negative/positive coverage in test_skillscan_native.py. Full
backend suite 6616 passed, 26 skipped.
2026-07-07 21:44:28 +08:00
..
blocking_io feat(skills): Add native SkillScan phase 1 for skills (#3033) 2026-07-07 21:44:28 +08:00
fixtures/replay feat: preserve durable context across summarization (#3887) 2026-07-01 22:49:17 +08:00
support fix(gateway): offload gateway upload file IO (#3935) 2026-07-04 21:31:01 +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
_replay_fixture.py fix(title): avoid default LLM call before stream end (#3885) 2026-06-30 18:58:02 +08:00
_router_auth_helpers.py fix the lint error in backend 2026-04-26 15:09:25 +08:00
_run_message_pagination_helpers.py fix: load paginated run history messages (#3305) 2026-06-01 15:50:39 +08:00
conftest.py fix(provisioner): keep k8s calls off event loop (#3941) 2026-07-05 08:45:27 +08:00
replay_provider.py fix(security): inject system context as SystemMessage for role isolation (#3630) (#3661) 2026-06-21 20:56:42 +08:00
seed_runs_router.py test(e2e): deterministic record/replay front-back contract verification (#3365) 2026-06-08 12:35:03 +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_additional_channel_connections.py fix(channels): make channel connect flow deterministic (#3582) 2026-06-18 10:15:31 +08:00
test_aio_sandbox.py fix(sandbox): fail fast when the AIO image lacks bash.exec for env injection (#3922) 2026-07-03 21:52:31 +08:00
test_aio_sandbox_local_backend.py [codex] Fix stale AIO sandbox cache reuse (#3494) 2026-06-11 17:53:37 +08:00
test_aio_sandbox_provider.py feat(sandbox): warm pool for boxlite (#3951) 2026-07-06 07:21:12 +08:00
test_aio_sandbox_readiness.py fix(sandbox): avoid blocking sandbox readiness polling (#2822) 2026-05-21 14:44:34 +08:00
test_app_config_name_indexes.py perf(config): index AppConfig.get_*_config by name (O(n) -> O(1)) (#3688) 2026-06-23 10:39:40 +08:00
test_app_config_reload.py fix(config): coerce null object config sections to their defaults (#3573) 2026-06-21 22:16:00 +08:00
test_artifacts_router.py fix(gateway): cap skill artifact preview size (#2963) 2026-05-15 22:15:58 +08:00
test_assistant_payload_replay.py refactor(provider): share assistant payload replay matching (#3307) 2026-05-29 23:05:59 +08:00
test_auth.py feat(auth): add OIDC SSO support (#3506) 2026-06-21 15:47:53 +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 fix: add MCP tools cache reset endpoint (#3602) 2026-06-16 23:20:20 +08:00
test_auth_type_system.py fix(auth): persist csrf_token cookie for the access_token lifetime (#3872) 2026-07-02 08:28:29 +08:00
test_base_to_dict.py feat(persistence): wire alembic migrations, bootstrap schema on startup (#3706) 2026-06-24 13:57:12 +08:00
test_boxlite_provider.py feat(sandbox): warm pool for boxlite (#3951) 2026-07-06 07:21:12 +08:00
test_brave_tools.py feat(community): add Brave image search community tool (#3866) 2026-07-02 11:00:49 +08:00
test_browserless_client.py fix(web_fetch): add SSRF guard for self-hosted providers (#3942) 2026-07-05 09:54:55 +08:00
test_cancel_run_idempotent.py fix(runtime): make RunManager.cancel() idempotent for already-interrupted runs (#3055) (#3058) 2026-05-20 16:37:36 +08:00
test_channel_connections_config.py fix(channels): require bound identity for user-owned IM messages (#3578) 2026-06-16 23:04:39 +08:00
test_channel_connections_repository.py fix(channels): make channel connect flow deterministic (#3582) 2026-06-18 10:15:31 +08:00
test_channel_connections_router.py fix(channels): add operational guardrails (#3584) 2026-06-18 10:09:46 +08:00
test_channel_file_attachments.py [security] fix(upload): reject symlinked upload destinations (#2623) 2026-05-02 15:19:28 +08:00
test_channel_user_id_env.py feat(channels): expose IM channel_user_id to sandbox commands as DEERFLOW_CHANNEL_USER_ID (#3926) 2026-07-04 21:18:11 +08:00
test_channels.py feat(channels): add GitHub as a webhook-driven channel (#3754) 2026-07-04 22:56:24 +08:00
test_channels_router.py fix(channels): harden runtime credential management APIs (#3581) 2026-06-18 10:45:33 +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.py feat(skills): deferred skill discovery via describe_skill tool (#3775) 2026-07-04 23:09:29 +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_clarification_middleware.py feat(frontend):enhance the ask_clarification interaction with visualized card (#3956) 2026-07-06 22:34:41 +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.py feat(memory): add staleness review to prune silently-outdated facts (#3860) 2026-07-06 15:09:56 +08:00
test_client_e2e.py feat(skills): per-user custom skill isolation with sandbox mounting (#3889) 2026-07-04 13:54:04 +08:00
test_client_langfuse_metadata.py feat(observability): add trace-id correlation and enhanced logging (#3902) 2026-07-03 08:01:46 +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_codex_provider.py chroe(2585): keep polishing the code of codex token usage (#2689) 2026-05-02 15:04:11 +08:00
test_compose_default_workers.py fix(docker): default Gateway to a single worker to prevent multi-worker breakage (#3475) 2026-06-10 21:36:25 +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_console_router.py fix(unittest): fix the unit test error TestConsoleUsage with date time setting (#3946) 2026-07-05 09:40:16 +08:00
test_context_compaction.py feat: add manual context compaction (#3969) 2026-07-07 19:55:33 +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_crawl4ai_tools.py fix(web_fetch): add SSRF guard for self-hosted providers (#3942) 2026-07-05 09:54:55 +08:00
test_create_deerflow_agent.py feat: emit structured runtime metadata (follow-up#3887) (#3906) 2026-07-04 11:27:19 +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_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(im): Add user-owned IM channel connections (#3487) 2026-06-12 15:24:58 +08:00
test_custom_agent.py feat(channels): add GitHub as a webhook-driven channel (#3754) 2026-07-04 22:56:24 +08:00
test_dangling_tool_call_middleware.py fix(runtime): guide malformed write_file recovery (#3040) 2026-05-29 17:46:24 +08:00
test_ddg_search_tools.py fix(search): fix DDGS Wikipedia region handling (#3423) 2026-06-08 07:59:50 +08:00
test_deferred_catalog.py refactor(tool-search): consolidate MCP metadata tag and harden deferred-tool setup (#3370) 2026-06-05 15:21:41 +08:00
test_deferred_filter_middleware.py fix(tool-search): reliably hide deferred MCP schemas by removing the ContextVar (closures + graph state) (#3342) 2026-06-02 22:43:22 +08:00
test_deferred_promotion_integration.py refactor(tool-search): consolidate MCP metadata tag and harden deferred-tool setup (#3370) 2026-06-05 15:21:41 +08:00
test_deferred_setup.py refactor(tool-search): consolidate MCP metadata tag and harden deferred-tool setup (#3370) 2026-06-05 15:21:41 +08:00
test_deferred_tool_crosscontext.py feat(skills): deferred skill discovery via describe_skill tool (#3775) 2026-07-04 23:09:29 +08:00
test_deferred_tool_promotion_real_llm.py fix(tool-search): reliably hide deferred MCP schemas by removing the ContextVar (closures + graph state) (#3342) 2026-06-02 22:43:22 +08:00
test_delegation_ledger.py fix(subagents): surface turn-budget cap as MAX_TURNS_REACHED with partial result (#3875 Phase 2) (#3949) 2026-07-06 07:55:32 +08:00
test_delegation_ledger_live.py feat: preserve durable context across summarization (#3887) 2026-07-01 22:49:17 +08:00
test_deploy_uv_extras.py feat(gateway): add redis stream bridge (#3191) 2026-07-04 09:21:19 +08:00
test_detect_blocking_io_static.py Add static blocking IO inventory (#3208) 2026-05-26 23:30:24 +08:00
test_detect_thread_boundaries.py fix(gateway): offload gateway upload file IO (#3935) 2026-07-04 21:31:01 +08:00
test_detect_uv_extras.py feat(gateway): add redis stream bridge (#3191) 2026-07-04 09:21:19 +08:00
test_detector_repo_root.py chore(blocking-io): fail-loud repo-root resolution and shared detector CLI shim (#3512) 2026-06-12 17:16:01 +08:00
test_dev_entrypoint.py fix(dev): create backend/sandbox before uvicorn reload-exclude (#3459) (#3460) 2026-06-09 15:29:40 +08:00
test_dingtalk_channel.py fix(channels): make channel connect flow deterministic (#3582) 2026-06-18 10:15:31 +08:00
test_discord_channel.py fix(channels): close Discord file handle after upload (#3561) 2026-06-13 23:27:17 +08:00
test_discord_channel_connections.py feat(im): Add user-owned IM channel connections (#3487) 2026-06-12 15:24:58 +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(community): add Brave image search community tool (#3866) 2026-07-02 11:00:49 +08:00
test_durable_context_middleware.py feat: emit structured runtime metadata (follow-up#3887) (#3906) 2026-07-04 11:27:19 +08:00
test_dynamic_context_middleware.py feat: preserve durable context across summarization (#3887) 2026-07-01 22:49:17 +08:00
test_e2b_sandbox_provider.py feat(channels): add GitHub as a webhook-driven channel (#3754) 2026-07-04 22:56:24 +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_fastcrw_tools.py fix(web_fetch): add SSRF guard for self-hosted providers (#3942) 2026-07-05 09:54:55 +08:00
test_features_router.py feat(agents): feature-gate the agents UI behind the agents_api flag (#3757) (#3769) 2026-07-02 11:33:32 +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 fix: batch Feishu file messages into one thread (#3753) 2026-07-04 23:06:28 +08:00
test_file_conversion.py fix: don't flag outline as truncated at exactly MAX_OUTLINE_ENTRIES headings (#3856) 2026-07-02 08:24:15 +08:00
test_file_io.py fix(gateway): offload gateway upload file IO (#3935) 2026-07-04 21:31:01 +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_config_freshness.py fix(stability): resolve P0 blockers from v2.0-m1-rc1 stability audit (#3107) (#3131) 2026-05-21 21:18:10 +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_imports.py feat: emit structured runtime metadata (follow-up#3887) (#3906) 2026-07-04 11:27:19 +08:00
test_gateway_lifespan_shutdown.py feat(runtime): implement goal continuations (#3858) 2026-07-03 08:49:33 +08:00
test_gateway_run_drain_shutdown.py fix(gateway): drain in-flight runs before closing checkpointer on shutdown (#3381) 2026-06-07 11:24:30 +08:00
test_gateway_run_recovery.py fix(redis): stream retention recovery (#3933) 2026-07-04 16:07:42 +08:00
test_gateway_runtime_cleanup.py fix(docker): keep config mounts stable across host saves (#3954) 2026-07-06 08:00:49 +08:00
test_gateway_services.py fix(guardrails): propagate internal owner attribution to guardrail context (#3839) 2026-07-07 08:05:26 +08:00
test_github_agents_config.py feat(channels): add GitHub as a webhook-driven channel (#3754) 2026-07-04 22:56:24 +08:00
test_github_app_auth.py feat(channels): add GitHub as a webhook-driven channel (#3754) 2026-07-04 22:56:24 +08:00
test_github_channel.py feat(channels): add GitHub as a webhook-driven channel (#3754) 2026-07-04 22:56:24 +08:00
test_github_dispatcher.py feat(channels): add GitHub as a webhook-driven channel (#3754) 2026-07-04 22:56:24 +08:00
test_github_identity.py feat(channels): add GitHub as a webhook-driven channel (#3754) 2026-07-04 22:56:24 +08:00
test_github_prompts.py feat(channels): add GitHub as a webhook-driven channel (#3754) 2026-07-04 22:56:24 +08:00
test_github_registry.py feat(channels): add GitHub as a webhook-driven channel (#3754) 2026-07-04 22:56:24 +08:00
test_github_token_plumbing.py feat(channels): add GitHub as a webhook-driven channel (#3754) 2026-07-04 22:56:24 +08:00
test_github_triggers.py feat(channels): add GitHub as a webhook-driven channel (#3754) 2026-07-04 22:56:24 +08:00
test_github_webhooks.py feat(channels): add GitHub as a webhook-driven channel (#3754) 2026-07-04 22:56:24 +08:00
test_goal_runtime.py feat(runtime): implement goal continuations (#3858) 2026-07-03 08:49:33 +08:00
test_goal_worker.py feat(runtime): implement goal continuations (#3858) 2026-07-03 08:49:33 +08:00
test_groundroute_tools.py feat(community): add GroundRoute web search + fetch engine (#3675) 2026-06-21 15:55:10 +08:00
test_guardrail_middleware.py feat(guardrails): persist security interventions as run events (#3837) 2026-07-03 16:08:41 +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_harness_packaging.py feat(sandbox): warm pool for boxlite (#3951) 2026-07-06 07:21:12 +08:00
test_human_input.py feat(frontend):enhance the ask_clarification interaction with visualized card (#3956) 2026-07-06 22:34:41 +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 setup redirects (#3844) 2026-06-28 16:10:44 +08:00
test_input_sanitization_middleware.py feat(frontend):enhance the ask_clarification interaction with visualized card (#3956) 2026-07-06 22:34:41 +08:00
test_internal_auth.py feat(skills): per-user custom skill isolation with sandbox mounting (#3889) 2026-07-04 13:54:04 +08:00
test_interrupt_serialization.py fix(serialization): stop stripping __interrupt__ from channel values (#3595) (#3605) 2026-06-17 15:29:22 +08:00
test_invoke_acp_agent_tool.py fix(harness): wrap all async-only tools for sync clients (#2935) 2026-05-19 22:11:46 +08:00
test_jina_client.py fix(web_fetch): support proxy for Jina reader in restricted networks (#3418) (#3430) 2026-06-08 23:25:29 +08:00
test_jsonl_event_store_async_io.py fix(runtime): harden JSONL async I/O and DB put_batch thread validation (#3084) 2026-05-29 09:27:53 +08:00
test_langgraph_auth.py fix: align auth-disabled mode and mock history loading (#3471) 2026-06-10 16:11:00 +08:00
test_lead_agent_model_resolution.py feat: add manual context compaction (#3969) 2026-07-07 19:55:33 +08:00
test_lead_agent_prompt.py feat(skills): deferred skill discovery via describe_skill tool (#3775) 2026-07-04 23:09:29 +08:00
test_lead_agent_skills.py feat(skills): deferred skill discovery via describe_skill tool (#3775) 2026-07-04 23:09:29 +08:00
test_llm_error_handling_middleware.py feat(channels): add GitHub as a webhook-driven channel (#3754) 2026-07-04 22:56:24 +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_command_timeout.py feat(skills): request-scoped secrets for skills (closes #3861) (#3871) 2026-07-03 07:51:22 +08:00
test_local_sandbox_encoding.py feat(skills): request-scoped secrets for skills (closes #3861) (#3871) 2026-07-03 07:51:22 +08:00
test_local_sandbox_path_regex_cache.py perf(sandbox): cache LocalSandbox path-rewrite regexes per instance (#3647) (#3648) 2026-06-19 21:50:03 +08:00
test_local_sandbox_provider_mounts.py feat(skills): per-user custom skill isolation with sandbox mounting (#3889) 2026-07-04 13:54:04 +08:00
test_local_sandbox_virtual_path_contract.py fix: align sandbox artifact mounts with channel user (#3729) 2026-06-23 23:13:12 +08:00
test_local_skill_storage_write.py feat(skills): per-user custom skill isolation with sandbox mounting (#3889) 2026-07-04 13:54:04 +08:00
test_logging_config.py feat(observability): add trace-id correlation and enhanced logging (#3902) 2026-07-03 08:01:46 +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): defer warning injection (#2752) 2026-05-21 14:36:07 +08:00
test_mcp_client_config.py feat(mcp): add per-server tool_call_timeout for MCP tool calls (#3843) 2026-07-03 15:39:12 +08:00
test_mcp_config_secrets.py fix(channels): harden runtime credential management APIs (#3581) 2026-06-18 10:45:33 +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_file_migration.py feat(skills): per-user custom skill isolation with sandbox mounting (#3889) 2026-07-04 13:54:04 +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_session_pool.py fix(mcp): route tools by source server, not name prefix (#3812) 2026-07-04 09:40:05 +08:00
test_mcp_sync_wrapper.py fix(mcp): isolate tool discovery failures (#3772) 2026-06-25 22:57:00 +08:00
test_memory_prompt_injection.py feat(memory): add guaranteed injection for correction facts with graceful fallback (#3592) 2026-06-23 08:10:12 +08:00
test_memory_queue.py feat(observability): add trace-id correlation and enhanced logging (#3902) 2026-07-03 08:01:46 +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_router.py fix(channels): scope IM files and helper commands to owner (#3579) 2026-06-18 11:45:35 +08:00
test_memory_staleness_review.py feat(memory): add staleness review to prune silently-outdated facts (#3860) 2026-07-06 15:09:56 +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_storage_user_isolation.py fix the lint error in backend 2026-04-26 15:09:25 +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.py feat(observability): add trace-id correlation and enhanced logging (#3902) 2026-07-03 08:01:46 +08:00
test_memory_updater_user_isolation.py fix the lint error in backend 2026-04-26 15:09:25 +08:00
test_memory_upload_filtering.py feat(frontend):enhance the ask_clarification interaction with visualized card (#3956) 2026-07-06 22:34:41 +08:00
test_migration_user_isolation.py feat(skills): per-user custom skill isolation with sandbox mounting (#3889) 2026-07-04 13:54:04 +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 fix(models): normalize api_base->base_url for ChatOpenAI + warn on unknown config keys (#3790) 2026-07-05 10:17:25 +08:00
test_multi_worker_postgres_gate.py feat(gateway): refuse multi-worker startup on non-Postgres backends (#3960) 2026-07-06 15:20:27 +08:00
test_multiturn_message_stream_graph_integration.py test(agents): multi-turn message-stream invariants (graph integration) (#3708) 2026-06-22 18:55:20 +08:00
test_oidc_auth.py feat(auth): add OIDC SSO support (#3506) 2026-06-21 15:47:53 +08:00
test_openapi_operation_ids.py fix(gateway): split stream_existing_run into per-method routes for unique OpenAPI operationIds (#3228) 2026-05-28 08:20:52 +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(wizard): update DeepSeek provider models to v4 (#3939) 2026-07-04 21:44:22 +08:00
test_patched_mimo.py feat(provider) Add patched MiMo reasoning content support (#3298) 2026-05-28 18:24:32 +08:00
test_patched_minimax.py feat: MiniMax provider for image/video/podcast skills + new music-generation skill (#3437) 2026-06-08 22:04:38 +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_patched_stepfun.py feat(models): add StepFun reasoning model adapter (#3461) 2026-06-09 18:01:43 +08:00
test_paths_user_isolation.py feat(im): Add user-owned IM channel connections (#3487) 2026-06-12 15:24:58 +08:00
test_persistence_autogen_script.py feat(persistence): wire alembic migrations, bootstrap schema on startup (#3706) 2026-06-24 13:57:12 +08:00
test_persistence_bootstrap.py feat: add scheduled tasks MVP (#3898) 2026-07-04 21:51:57 +08:00
test_persistence_bootstrap_concurrency.py feat: add scheduled tasks MVP (#3898) 2026-07-04 21:51:57 +08:00
test_persistence_bootstrap_pg_lock.py feat(persistence): wire alembic migrations, bootstrap schema on startup (#3706) 2026-06-24 13:57:12 +08:00
test_persistence_bootstrap_regression.py feat: add scheduled tasks MVP (#3898) 2026-07-04 21:51:57 +08:00
test_persistence_bootstrap_sqlite_lock.py feat(persistence): wire alembic migrations, bootstrap schema on startup (#3706) 2026-06-24 13:57:12 +08:00
test_persistence_bootstrap_url.py feat(persistence): wire alembic migrations, bootstrap schema on startup (#3706) 2026-06-24 13:57:12 +08:00
test_persistence_migrations_env.py feat(persistence): wire alembic migrations, bootstrap schema on startup (#3706) 2026-06-24 13:57:12 +08:00
test_persistence_scaffold.py perf(runtime): index MemoryRunStore by thread_id to avoid O(n) scans (#3562) 2026-06-24 10:57:45 +08:00
test_persistence_timezone.py fix(persistence): emit tz-aware timestamps from SQLite-backed stores (#3130) 2026-05-21 16:22:09 +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_provisioner_request_threading.py fix(provisioner): keep k8s calls off event loop (#3941) 2026-07-05 08:45:27 +08:00
test_read_before_write_middleware.py feat(middleware): add structured tool result meta and tool-progress state machine (#3601) 2026-07-06 20:57:41 +08:00
test_read_file_tool_binary.py fix(sandbox): return actionable hint when read_file hits a binary file (#3624) 2026-06-17 21:11:44 +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_reload_boundary.py feat(observability): add trace-id correlation and enhanced logging (#3902) 2026-07-03 08:01:46 +08:00
test_remote_sandbox_backend.py fix: align sandbox artifact mounts with channel user (#3729) 2026-06-23 23:13:12 +08:00
test_replay_golden.py fix(replay-e2e): match by conversation, not the living system prompt (#3436) 2026-06-08 17:32:41 +08:00
test_replay_provider.py fix(replay-e2e): key fixtures by caller and conversation (#3453) 2026-06-09 21:58:31 +08:00
test_run_event_store.py perf(runtime): index messages in MemoryRunEventStore to avoid O(n) scans (#3531) 2026-06-12 22:58:30 +08:00
test_run_event_store_by_run_index.py perf(runtime): index MemoryRunEventStore events by run_id to avoid O(n) scans (#3686) 2026-06-24 17:47:04 +08:00
test_run_event_store_filter.py feat(subagents): persist and display subagent step history (#3779) (#3845) 2026-07-02 07:43:09 +08:00
test_run_event_store_pagination.py fix the lint error in backend 2026-04-26 15:09:25 +08:00
test_run_events_endpoint.py feat(subagents): persist and display subagent step history (#3779) (#3845) 2026-07-02 07:43:09 +08:00
test_run_journal.py Fix/card tool message bug (#3976) 2026-07-07 14:39:04 +08:00
test_run_manager.py perf(runtime): index runs by thread_id to avoid O(n) scans in RunManager (#3499) 2026-06-12 16:48:47 +08:00
test_run_naming.py feat(trace):LangGraph -> lead_agent and set custom agent_name to run_name (#3101) 2026-05-21 14:48:28 +08:00
test_run_repository.py fix(gateway): attribute token usage to actual models (#3658) 2026-06-19 21:42:42 +08:00
test_run_worker_rollback.py feat(channels): add GitHub as a webhook-driven channel (#3754) 2026-07-04 22:56:24 +08:00
test_runs_api_endpoints.py fix: load paginated run history messages (#3305) 2026-06-01 15:50:39 +08:00
test_runtime_channel_config_merge.py fix(channels): let UI runtime channel config win over config.yaml (#3674) 2026-06-24 10:24:36 +08:00
test_runtime_lifecycle_e2e.py fix(store): honor unified database configuration (#3904) 2026-07-03 07:46:04 +08:00
test_runtime_paths.py fix(harness): restore legacy skills path fallback (#2694) (#2696) 2026-05-03 23:40:59 +08:00
test_safety_finish_reason_graph_integration.py fix(runtime): suppress tool execution when provider safety-terminates with tool_calls (#3035) 2026-05-22 21:20:28 +08:00
test_safety_finish_reason_middleware.py fix(runtime): suppress tool execution when provider safety-terminates with tool_calls (#3035) 2026-05-22 21:20:28 +08:00
test_safety_termination_detectors.py fix(runtime): suppress tool execution when provider safety-terminates with tool_calls (#3035) 2026-05-22 21:20:28 +08:00
test_sandbox_audit_middleware.py fix: allow valid heredoc commands in sandbox audit (#3786) 2026-06-25 22:43:28 +08:00
test_sandbox_memory_profile_script.py chore: add sandbox memory profiling tools (#3249) 2026-06-03 22:02:27 +08:00
test_sandbox_middleware.py feat(skills): request-scoped secrets for skills (closes #3861) (#3871) 2026-07-03 07:51:22 +08:00
test_sandbox_orphan_reconciliation.py fix: align sandbox artifact mounts with channel user (#3729) 2026-06-23 23:13:12 +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_provider_lifecycle.py fix(sandbox): synchronize sandbox provider singleton lifecycle (+ concurrency regression tests) (#3730) 2026-06-25 08:06:17 +08:00
test_sandbox_search_tools.py feat(skills): per-user custom skill isolation with sandbox mounting (#3889) 2026-07-04 13:54:04 +08:00
test_sandbox_tools_security.py feat(skills): per-user custom skill isolation with sandbox mounting (#3889) 2026-07-04 13:54:04 +08:00
test_sandbox_windows_path_normalization.py feat(skills): per-user custom skill isolation with sandbox mounting (#3889) 2026-07-04 13:54:04 +08:00
test_scan_changed_blocking_io.py feat(skill): add blocking-io-guard — SOP skill for blocking-IO triage and runtime anchors (#3503) 2026-06-12 10:20:38 +08:00
test_scheduled_task_claims.py feat: add scheduled tasks MVP (#3898) 2026-07-04 21:51:57 +08:00
test_scheduled_task_lifecycle.py feat: add scheduled tasks MVP (#3898) 2026-07-04 21:51:57 +08:00
test_scheduled_task_models.py feat: add scheduled tasks MVP (#3898) 2026-07-04 21:51:57 +08:00
test_scheduled_task_repository.py feat: add scheduled tasks MVP (#3898) 2026-07-04 21:51:57 +08:00
test_scheduled_task_router.py feat: add scheduled tasks MVP (#3898) 2026-07-04 21:51:57 +08:00
test_scheduled_task_router_behavior.py feat: add scheduled tasks MVP (#3898) 2026-07-04 21:51:57 +08:00
test_scheduled_task_schedules.py feat: add scheduled tasks MVP (#3898) 2026-07-04 21:51:57 +08:00
test_scheduled_task_service.py feat: add scheduled tasks MVP (#3898) 2026-07-04 21:51:57 +08:00
test_searxng_client.py feat(community): add SearXNG and Browserless web search/fetch tools (#3451) 2026-06-12 09:45:26 +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 fix(serialization): strip base64 image data from streamed values events (#3631) 2026-06-19 11:23:07 +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 Google Images provider for image_search (#3575) 2026-06-18 07:36:35 +08:00
test_serve_nginx_stop.py fix: reap macOS nginx processes on stop (#3828) 2026-06-27 23:30:54 +08:00
test_setup_agent_e2e_user_isolation.py feat(guardrails): expose authenticated runtime context in GuardrailRequest (#3665) 2026-06-21 16:08:25 +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(agents): sync agent_name across context/configurable and reject empty soul (#3549) (#3553) 2026-06-14 10:40:16 +08:00
test_setup_wizard.py feat(setup): ask whether OpenAI-compatible gateway models support thinking (#3428) 2026-07-05 19:55:39 +08:00
test_should_ignore_name.py perf(sandbox): speed up should_ignore_name in glob/grep walks (#3657) 2026-06-19 21:57:03 +08:00
test_skill_catalog.py feat(skills): deferred skill discovery via describe_skill tool (#3775) 2026-07-04 23:09:29 +08:00
test_skill_container_path_defaults.py feat: emit structured runtime metadata (follow-up#3887) (#3906) 2026-07-04 11:27:19 +08:00
test_skill_context.py feat: emit structured runtime metadata (follow-up#3887) (#3906) 2026-07-04 11:27:19 +08:00
test_skill_describe.py feat(skills): deferred skill discovery via describe_skill tool (#3775) 2026-07-04 23:09:29 +08:00
test_skill_manage_tool.py feat(skills): Add native SkillScan phase 1 for skills (#3033) 2026-07-07 21:44:28 +08:00
test_skill_permissions.py Fix custom skill install permissions (#3241) 2026-05-28 15:48:32 +08:00
test_skill_request_scoped_secrets.py feat(skills): bind request-scoped secrets for autonomously-invoked skills (A+) (#3938) 2026-07-04 23:34:32 +08:00
test_skill_storage_lifecycle.py feat(skills): per-user custom skill isolation with sandbox mounting (#3889) 2026-07-04 13:54:04 +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 feat(skills): Add native SkillScan phase 1 for skills (#3033) 2026-07-07 21:44:28 +08:00
test_skills_installer.py feat(skills): Add native SkillScan phase 1 for skills (#3033) 2026-07-07 21:44:28 +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 feat(skills): deferred skill discovery via describe_skill tool (#3775) 2026-07-04 23:09:29 +08:00
test_skills_router_authz.py feat(skills): per-user custom skill isolation with sandbox mounting (#3889) 2026-07-04 13:54:04 +08:00
test_skills_validation.py fix(skills): enforce allowed-tools metadata (#2626) 2026-05-07 08:34:43 +08:00
test_skillscan_native.py feat(skills): Add native SkillScan phase 1 for skills (#3033) 2026-07-07 21:44:28 +08:00
test_slack_channel_connections.py fix(channels): add operational guardrails (#3584) 2026-06-18 10:09:46 +08:00
test_slash_skills.py feat(skills): deferred skill discovery via describe_skill tool (#3775) 2026-07-04 23:09:29 +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_stateless_runs_owner_isolation.py feat(im): Add user-owned IM channel connections (#3487) 2026-06-12 15:24:58 +08:00
test_stream_bridge.py fix(redis): stream retention recovery (#3933) 2026-07-04 16:07:42 +08:00
test_subagent_checkpointer_isolation.py fix(subagent): isolate subagent from parent run checkpointer (#3559) 2026-06-14 10:30:45 +08:00
test_subagent_deferred_promotion_integration.py feat(subagents): extend deferred MCP tool loading to subagents (#3432) 2026-06-08 23:17:22 +08:00
test_subagent_executor.py fix(subagents): surface turn-budget cap as MAX_TURNS_REACHED with partial result (#3875 Phase 2) (#3949) 2026-07-06 07:55:32 +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_status_contract.py fix(subagents): surface turn-budget cap as MAX_TURNS_REACHED with partial result (#3875 Phase 2) (#3949) 2026-07-06 07:55:32 +08:00
test_subagent_step_events.py feat(subagents): persist and display subagent step history (#3779) (#3845) 2026-07-02 07:43:09 +08:00
test_subagent_timeout_config.py fix(subagents): raise general-purpose max_turns to 150 and default timeout to 30min (#3610) 2026-06-16 19:55:04 +08:00
test_subagent_token_collector.py fix(gateway): attribute token usage to actual models (#3658) 2026-06-19 21:42:42 +08:00
test_suggestions_router.py feat(observability): add trace-id correlation and enhanced logging (#3902) 2026-07-03 08:01:46 +08:00
test_summarization_middleware.py feat: preserve durable context across summarization (#3887) 2026-07-01 22:49:17 +08:00
test_summarization_summary_text.py feat: add manual context compaction (#3969) 2026-07-07 19:55:33 +08:00
test_support_bundle.py feat(scripts): add redacted community support bundle generator (#3886) 2026-07-01 22:30:55 +08:00
test_system_message_coalescing_middleware.py fix(agents): coalesce SystemMessages before LLM request (#3711) 2026-06-24 07:28:17 +08:00
test_task_tool_core_logic.py fix(subagents): surface turn-budget cap as MAX_TURNS_REACHED with partial result (#3875 Phase 2) (#3949) 2026-07-06 07:55:32 +08:00
test_task_tool_usage_recorder.py fix(stability): resolve P0 blockers from v2.0-m1-rc1 stability audit (#3107) (#3131) 2026-05-21 21:18:10 +08:00
test_telegram_channel_connections.py fix(channels): make channel connect flow deterministic (#3582) 2026-06-18 10:15:31 +08:00
test_thread_data_middleware.py Fix Windows backend test compatibility (#1384) 2026-03-26 17:39:16 +08:00
test_thread_messages_feedback.py fix the unit test error after merging #3651 2026-06-21 21:43:43 +08:00
test_thread_meta_repo.py feat(im): Add user-owned IM channel connections (#3487) 2026-06-12 15:24:58 +08:00
test_thread_regenerate_prepare.py feat: support regenerating latest answer (#3637) 2026-06-20 18:59:42 +08:00
test_thread_run_messages_pagination.py feat(gateway): add redis stream bridge (#3191) 2026-07-04 09:21:19 +08:00
test_thread_state_promoted.py fix(tool-search): reliably hide deferred MCP schemas by removing the ContextVar (closures + graph state) (#3342) 2026-06-02 22:43:22 +08:00
test_thread_state_reducers.py feat(runtime): implement goal continuations (#3858) 2026-07-03 08:49:33 +08:00
test_thread_token_usage.py fix(runs): expose active progress counters (#3148) 2026-05-22 21:42:14 +08:00
test_threads_router.py feat: add branching support for assistant turns (#3950) 2026-07-06 07:40:41 +08:00
test_tiktoken_cache_and_count_tokens.py feat(memory): add memory.token_counting config to avoid tiktoken network dependency (#3429) (#3465) 2026-06-10 23:26:15 +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 fix: generate fallback title for interrupted first-turn runs (#3874) 2026-07-02 00:13:01 +08:00
test_todo_middleware.py chore(todo): remove unused completion reminder counter (#3530) 2026-06-12 22:48:47 +08:00
test_token_budget_middleware.py feat(middleware): add TokenBudgetMiddleware for per-run token budget e… (#3412) 2026-06-21 22:25:15 +08:00
test_token_usage.py feat(harness): integration ACP agent tool (#1344) 2026-03-26 14:20:18 +08:00
test_token_usage_by_model.py feat(gateway): cache-aware cost accounting (#3920) 2026-07-04 23:14:46 +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 fix(middleware): fix positional fallback consuming unrelated todo when same-content list is exhausted (#3709) 2026-06-23 23:37:41 +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(harness): wrap all async-only tools for sync clients (#2935) 2026-05-19 22:11:46 +08:00
test_tool_error_handling_middleware.py feat(middleware): add structured tool result meta and tool-progress state machine (#3601) 2026-07-06 20:57:41 +08:00
test_tool_error_handling_subagent_stamp.py feat: emit structured runtime metadata (follow-up#3887) (#3906) 2026-07-04 11:27:19 +08:00
test_tool_output_budget_middleware.py feat(skills): request-scoped secrets for skills (closes #3861) (#3871) 2026-07-03 07:51:22 +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_progress_middleware.py feat(middleware): add structured tool result meta and tool-progress state machine (#3601) 2026-07-06 20:57:41 +08:00
test_tool_result_meta.py feat(middleware): add structured tool result meta and tool-progress state machine (#3601) 2026-07-06 20:57:41 +08:00
test_tool_search.py feat(subagents): extend deferred MCP tool loading to subagents (#3432) 2026-06-08 23:17:22 +08:00
test_trace_context.py feat(observability): add trace-id correlation and enhanced logging (#3902) 2026-07-03 08:01:46 +08:00
test_trace_middleware.py feat(observability): add trace-id correlation and enhanced logging (#3902) 2026-07-03 08:01:46 +08:00
test_tracing_config.py fix(tracing): propagate session_id and user_id into Langfuse traces (#2944) 2026-05-21 16:49:31 +08:00
test_tracing_factory.py fix(tracing): propagate session_id and user_id into Langfuse traces (#2944) 2026-05-21 16:49:31 +08:00
test_tracing_metadata.py feat(observability): add trace-id correlation and enhanced logging (#3902) 2026-07-03 08:01:46 +08:00
test_tui_app.py feat(runtime): implement goal continuations (#3858) 2026-07-03 08:49:33 +08:00
test_tui_cli.py feat(tui): Hermes-like terminal workbench (deerflow) backed by DeerFlowClient (#3760) 2026-06-25 20:10:49 +08:00
test_tui_cli_main.py feat(tui): Hermes-like terminal workbench (deerflow) backed by DeerFlowClient (#3760) 2026-06-25 20:10:49 +08:00
test_tui_command_registry.py feat(runtime): implement goal continuations (#3858) 2026-07-03 08:49:33 +08:00
test_tui_composer.py feat(tui): Hermes-like terminal workbench (deerflow) backed by DeerFlowClient (#3760) 2026-06-25 20:10:49 +08:00
test_tui_input_history.py feat(tui): Hermes-like terminal workbench (deerflow) backed by DeerFlowClient (#3760) 2026-06-25 20:10:49 +08:00
test_tui_message_format.py feat(tui): Hermes-like terminal workbench (deerflow) backed by DeerFlowClient (#3760) 2026-06-25 20:10:49 +08:00
test_tui_overlays.py feat(tui): Hermes-like terminal workbench (deerflow) backed by DeerFlowClient (#3760) 2026-06-25 20:10:49 +08:00
test_tui_palette.py feat(tui): Hermes-like terminal workbench (deerflow) backed by DeerFlowClient (#3760) 2026-06-25 20:10:49 +08:00
test_tui_palette_render.py feat(tui): Hermes-like terminal workbench (deerflow) backed by DeerFlowClient (#3760) 2026-06-25 20:10:49 +08:00
test_tui_persistence.py feat(tui): Hermes-like terminal workbench (deerflow) backed by DeerFlowClient (#3760) 2026-06-25 20:10:49 +08:00
test_tui_render.py feat(tui): Hermes-like terminal workbench (deerflow) backed by DeerFlowClient (#3760) 2026-06-25 20:10:49 +08:00
test_tui_runtime.py feat(tui): Hermes-like terminal workbench (deerflow) backed by DeerFlowClient (#3760) 2026-06-25 20:10:49 +08:00
test_tui_session.py feat(tui): Hermes-like terminal workbench (deerflow) backed by DeerFlowClient (#3760) 2026-06-25 20:10:49 +08:00
test_tui_view_state.py feat(tui): Hermes-like terminal workbench (deerflow) backed by DeerFlowClient (#3760) 2026-06-25 20:10:49 +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(channels): add GitHub as a webhook-driven channel (#3754) 2026-07-04 22:56:24 +08:00
test_uploads_manager.py fix(gateway): fix oversized upload replacements deleting existing files (#3822) 2026-07-01 16:43:56 +08:00
test_uploads_middleware_core_logic.py fix(backend): limit uploaded file context manifest (#3917) 2026-07-04 08:58:12 +08:00
test_uploads_router.py fix(gateway): offload gateway upload file IO (#3935) 2026-07-04 21:31:01 +08:00
test_user_context.py fix the lint error in backend 2026-04-26 15:09:25 +08:00
test_user_scoped_skill_storage.py feat(skills): per-user custom skill isolation with sandbox mounting (#3889) 2026-07-04 13:54:04 +08:00
test_utils_messages.py refactor: share one message->text helper for journal + thread messages (#3747) 2026-06-24 09:28:43 +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_uvicorn_reload_exclude.py fix(dev): create backend/sandbox before uvicorn reload-exclude (#3459) (#3460) 2026-06-09 15:29:40 +08:00
test_view_image_middleware.py feat: MiniMax provider for image/video/podcast skills + new music-generation skill (#3437) 2026-06-08 22:04:38 +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_wait_disconnect_handling.py feat(gateway): add redis stream bridge (#3191) 2026-07-04 09:21:19 +08:00
test_warm_pool_lifecycle.py feat(sandbox): warm pool for boxlite (#3951) 2026-07-06 07:21:12 +08:00
test_wechat_channel.py fix(channels): offload blocking filesystem IO in Wechat channel (#3925) 2026-07-04 21:35:05 +08:00
test_worker_langfuse_metadata.py fix(langfuse): resolve trace user from runtime context (#3794) 2026-07-05 00:07:27 +08:00
test_worker_subagent_persistence.py feat(subagents): persist and display subagent step history (#3779) (#3845) 2026-07-02 07:43:09 +08:00
test_workspace_changes.py fix(backend): stop classifying UTF-16 markdown files as binary (#3966) 2026-07-06 22:24:14 +08:00
test_write_file_tool_size_guard.py fix(#3189): prevent write_file streaming timeout on long reports (#3195) 2026-06-07 17:47:11 +08:00