Files
DATA 6de0bf9f5b Initial commit: hardened DeerFlow factory
Vendored deer-flow upstream (bytedance/deer-flow) plus prompt-injection
hardening:

- New deerflow.security package: content_delimiter, html_cleaner,
  sanitizer (8 layers — invisible chars, control chars, symbols, NFC,
  PUA, tag chars, horizontal whitespace collapse with newline/tab
  preservation, length cap)
- New deerflow.community.searx package: web_search, web_fetch,
  image_search backed by a private SearX instance, every external
  string sanitized and wrapped in <<<EXTERNAL_UNTRUSTED_CONTENT>>>
  delimiters
- All native community web providers (ddg_search, tavily, exa,
  firecrawl, jina_ai, infoquest, image_search) replaced with hard-fail
  stubs that raise NativeWebToolDisabledError at import time, so a
  misconfigured tool.use path fails loud rather than silently falling
  back to unsanitized output
- Native client back-doors (jina_client.py, infoquest_client.py)
  stubbed too
- Native-tool tests quarantined under tests/_disabled_native/
  (collect_ignore_glob via local conftest.py)
- Sanitizer Layer 7 fix: only collapse horizontal whitespace, preserve
  newlines and tabs so list/table structure survives
- Hardened runtime config.yaml references only the searx-backed tools
- Factory overlay (backend/) kept in sync with deer-flow tree as a
  reference / source

See HARDENING.md for the full audit trail and verification steps.
2026-04-12 14:23:57 +02:00

4.6 KiB

DeerFlow Smoke Test Report

Test Date: {{test_date}}
Test Environment: {{test_environment}}
Deployment Mode: Local
Test Version: {{git_commit}}


Execution Summary

Metric Status
Total Test Phases 6
Passed Phases {{passed_stages}}
Failed Phases {{failed_stages}}
Overall Conclusion {{overall_status}}

Key Test Cases

Case Result Details
Code update check {{case_code_update}} {{case_code_update_details}}
Environment check {{case_env_check}} {{case_env_check_details}}
Configuration preparation {{case_config_prep}} {{case_config_prep_details}}
Deployment {{case_deploy}} {{case_deploy_details}}
Health check {{case_health_check}} {{case_health_check_details}}
Frontend routes {{case_frontend_routes_overall}} {{case_frontend_routes_details}}

Detailed Test Results

Phase 1: Code Update Check

  • Confirm current directory - {{status_dir_check}}
  • Check Git status - {{status_git_status}}
  • Pull latest code - {{status_git_pull}}
  • Confirm code update - {{status_git_verify}}

Phase Status: {{stage1_status}}


Phase 2: Local Environment Check

  • Node.js version - {{status_node_version}}
  • pnpm - {{status_pnpm}}
  • uv - {{status_uv}}
  • nginx - {{status_nginx}}
  • Port check - {{status_port_check}}

Phase Status: {{stage2_status}}


Phase 3: Configuration Preparation

  • config.yaml - {{status_config_yaml}}
  • .env file - {{status_env_file}}
  • Model configuration - {{status_model_config}}

Phase Status: {{stage3_status}}


Phase 4: Local Deployment

  • make check - {{status_make_check}}
  • make install - {{status_make_install}}
  • make dev-daemon / make dev - {{status_local_start}}
  • Service startup wait - {{status_wait_startup}}

Phase Status: {{stage4_status}}


Phase 5: Service Health Check

  • Process status - {{status_processes}}
  • Frontend service - {{status_frontend}}
  • API Gateway - {{status_api_gateway}}
  • LangGraph service - {{status_langgraph}}

Phase Status: {{stage5_status}}


Frontend Routes Smoke Results

Route Status Details
Landing / {{landing_status}} {{landing_details}}
Workspace redirect /workspace {{workspace_redirect_status}} target {{workspace_redirect_target}}
New chat /workspace/chats/new {{new_chat_status}} {{new_chat_details}}
Chats list /workspace/chats {{chats_list_status}} {{chats_list_details}}
Agents gallery /workspace/agents {{agents_gallery_status}} {{agents_gallery_details}}
Docs {{docs_path}} {{docs_status}} {{docs_details}}

Summary: {{frontend_routes_summary}}


Phase 6: Test Report Generation

  • Result summary - {{status_summary}}
  • Issue log - {{status_issues}}
  • Report generation - {{status_report}}

Phase Status: {{stage6_status}}


Issue Log

Issue 1

Description: {{issue1_description}}
Severity: {{issue1_severity}}
Solution: {{issue1_solution}}


Environment Information

Local Dependency Versions

Node.js: {{node_version_output}}
pnpm: {{pnpm_version_output}}
uv: {{uv_version_output}}
nginx: {{nginx_version_output}}

Git Information

Repository: {{git_repo}}
Branch: {{git_branch}}
Commit: {{git_commit}}
Commit Message: {{git_commit_message}}

Configuration Summary

  • config.yaml exists: {{config_exists}}
  • .env file exists: {{env_exists}}
  • Number of configured models: {{model_count}}

Local Service Status

Service Status Endpoint
Nginx {{nginx_status}} {{nginx_endpoint}}
Frontend {{frontend_status}} {{frontend_endpoint}}
Gateway {{gateway_status}} {{gateway_endpoint}}
LangGraph {{langgraph_status}} {{langgraph_endpoint}}

Recommendations and Next Steps

If the Test Passes

  1. Visit http://localhost:2026 to start using DeerFlow
  2. Configure your preferred model if it is not configured yet
  3. Explore available skills
  4. Refer to the documentation to learn more features

If the Test Fails

  1. Review references/troubleshooting.md for common solutions
  2. Check local logs: logs/{langgraph,gateway,frontend,nginx}.log
  3. Verify configuration file format and content
  4. If needed, fully reset the environment: make stop && make clean && make install && make dev-daemon

Appendix

Full Logs

{{full_logs}}

Tester

{{tester_name}}


Report generated at: {{report_time}}