You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
| Channels and IDE adapters |`packages/channels/`, `packages/vscode-ide-companion/src/services/daemonIdeConnection.ts`|[`15`](./15-channel-adapters.md), [`16`](./16-vscode-ide-adapter.md)|
101
+
82
102
## What is intentionally out of scope
83
103
84
104
-**Java / Python SDK daemon clients** - only the TypeScript SDK ships a daemon client today. Doc 13 is TypeScript-only.
@@ -88,7 +108,7 @@ Pick the path that matches your goal:
@@ -144,4 +164,4 @@ Pick the path that matches your goal:
144
164
145
165
## Version provenance
146
166
147
-
This doc set reflects the daemon mode surface after `daemon_mode_b_main` was merged into `main` through [#4412](https://github.com/QwenLM/qwen-code/pull/4412). It intentionally describes the current `main`behavior instead of the earlier F-series planning snapshots.
167
+
This doc set reflects the daemon mode surface currently merged into `main`, including the follow-up work from [#4412](https://github.com/QwenLM/qwen-code/pull/4412). It intentionally describes current behavior instead of earlier F-series planning snapshots.
Copy file name to clipboardExpand all lines: docs/developers/daemon/01-architecture.md
+6-2Lines changed: 6 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,7 +2,7 @@
2
2
3
3
## Overview
4
4
5
-
A `qwen serve` process is **one daemon = one workspace**. It hosts a single Express HTTP server, owns an `acp-bridge` instance, and spawns one ACP child process (`qwen --acp`) that runs the actual agent runtime. Multiple clients (CLI TUI, IDE companion, IM channel bots, web BFFs, custom scripts) connect over HTTP + SSE and either share one ACP session (`sessionScope: 'single'`, default) or split sessions by conversation thread (`sessionScope: 'thread'`).
5
+
A `qwen serve` process is **one daemon = one workspace**. It hosts a single Express HTTP server, owns an `@qwen-code/acp-bridge` instance, and spawns one ACP child process (`qwen --acp`) that runs the actual agent runtime. Multiple clients (CLI TUI, IDE companion, IM channel bots, web BFFs, custom scripts) connect over HTTP + SSE and either share one ACP session (`sessionScope: 'single'`, default) or split sessions by conversation thread (`sessionScope: 'thread'`).
6
6
7
7
Inside the ACP child, MCP servers are shared workspace-wide through `McpTransportPool` (F2): a single (server-name + config-fingerprint) tuple maps to one MCP transport, regardless of how many sessions discover it. The bridge's `MultiClientPermissionMediator` (F3) coordinates permission votes across all connected clients under one of four policies.
P-->>S: single result or {entries: RestartResult[]}
279
280
```
280
281
281
282
`releaseSession(sessionId)` uses the reverse `sessionToEntries` index to release every entry the session holds in O(refs). On daemon shutdown, `drainAll()` sets the `draining` flag (refusing new acquires) and waits for every entry to close under a configurable timeout.
282
283
284
+
The deep design reference for this state machine is
0 commit comments