## bytedance/deer-flow — v2.0-m1-rc3…v2.0.0-rc0

_46 commits._

### Features
- **feat(skill): add maintainer issue and PR workflow (#3554)** (d23eac2)
- **feat(community): add Brave Search web search tool (#3528)** (6e83934)
- **feat(telegram): stream agent replies by editing the placeholder message in place (#3534)** (839fa99)
- **feat(im): Add user-owned IM channel connections (#3487)** (aa01546)
- **feat(skill): add blocking-io-guard — SOP skill for blocking-IO triage and runtime anchors (#3503)** (dc2abab)
- **feat(community): add SearXNG and Browserless web search/fetch tools (#3451)** (330a2ff)
- **feat(memory): add memory.token_counting config to avoid tiktoken network dependency (#3429) (#3465)** (167ef45)

### Fixes
- **fix(frontend): cap deeply nested list indentation to prevent render crash (#3393) (#3570)** (25fbd25)
- **fix(frontend): reset active chat after deletion (#3519)** (34e126e)
- **fix(makefile):fix the per-commit hooks installation (#3569)** (ec520e6)
- **fix(doc):update the document for the docker configuration** (0fb2a75)
- **fix(security): mount host Docker socket only in aio (DooD) sandbox mode (#3517)** (5d61718)
- **fix(security): do not bind-mount host CLI auth dirs by default (#3521)** (474c89b)
- **fix(agents): sync agent_name across context/configurable and reject empty soul (#3549) (#3553)** (f43aa78)
- **fix(subagent): isolate subagent from parent run checkpointer (#3559)** (47e9570)
- **fix(channels): close Discord file handle after upload (#3561)** (1783da4)
- **fix(sandbox): merge idempotent sandbox state updates (#3518)** (8955b32)
- **fix(channels): surface WeCom WebSocket connection failures (#2000) (#3526)** (c91dacc)
- **fix(scripts):start with make start-daemon,can not stop next-server with make stop (#3498)** (cad6e89)
- **fix(history): strip base64 image data from REST endpoint responses (#3535)** (0942964)
- **fix(mcp): surface admin-required state on settings tools page (#3527) (#3533)** (a17d2ff)
- **fix(channels): offload blocking filesystem IO in inbound file ingestion (#3529)** (420a886)
- **perf(runtime): index messages in MemoryRunEventStore to avoid O(n) scans (#3531)** (579e416)
- **perf(runtime): index runs by thread_id to avoid O(n) scans in RunManager (#3499)** (0d3bfe0)
- **fix(frontend): render user messages as plain text and cap blockquote nesting (#3502)** (503eeac)
- **fix(skills): keep skill archive installation off the event loop (#3505)** (b8f5ed3)
- **fix(channels): reload config on channel restart, fixes #3497 (#3514)** (76136d2)
- **fix(frontend): prevent user message bubble overflow with long unbreakable strings (#3488)** (0367fe6)
- **fix(frontend): isolate new chat thread messages (#3508)** (c733d3c)
- **fix(frontend): keep workspace interactive when SSR auth probe cannot reach gateway (#3493) (#3495)** (b6fbf0d)
- **[codex] Fix stale AIO sandbox cache reuse (#3494)** (f401e7b)
- **fix(sandbox): persist lazily-acquired sandbox state via Command (#3464)** (919d8bc)
- **fix(frontend): paginate workspace chat list beyond 50 threads (#3482) (#3485)** (5819bd8)
- **fix(agents): require config.yaml in resolve_agent_dir to skip memory-only directories (#3390) (#3481)** (b3c2cc4)
- **fix(gateway): enforce thread ownership on stateless run endpoints (#3473)** (ba9cc5e)
- **fix(docker): default Gateway to a single worker to prevent multi-worker breakage (#3475)** (05ae446)
- **fix: align auth-disabled mode and mock history loading (#3471)** (2b79526)
- **fix runtime journal run lifecycle events (#3470)** (a57d05f)
- **fix(sandbox): make missing sandbox.mounts host_path a loud ERROR (#3244) (#3250)** (ae9e8bc)

### Backend
- **Update lint-check.yml with the job setting** (2d5f078)

### Docs
- **docs: document custom AIO sandbox images (#3548)** (554017a)
- **docs(config): add SearXNG and Browserless configuration examples (#3513)** (bbce6c0)

### Chore
- **chore(deps): bump starlette from 1.0.0 to 1.0.1 in /backend (#3546)** (3475f7c)
- **chore(deps): bump aiohttp from 3.13.5 to 3.14.0 in /backend (#3545)** (83bc2fb)
- **chore(todo): remove unused completion reminder counter (#3530)** (c002596)
- **chore(blocking-io): fail-loud repo-root resolution and shared detector CLI shim (#3512)** (a838546)

_Recap by [Repo Wrapped](https://repowrapped.com/gh/bytedance/deer-flow?utm_source=github-action)._