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
ref(runtime): Simplify daemon routing and normalize manifests
Remove legacy daemon routing knobs and CLI daemon flags so routing is
driven by tool statefulness plus the explicit xcode-ide special case.
Add idle shutdown with an activity lease registry so long-running tools
signal lifecycle activity without hardcoded daemon imports.
Clean manifest files by removing values that match schema defaults and
regenerate generated tool documentation.
Co-Authored-By: Claude <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: CHANGELOG.md
+5Lines changed: 5 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,6 +7,11 @@
7
7
8
8
### Changed
9
9
- Hide `xcode_tools_bridge_{status,sync,disconnect}` unless `debug: true` is enabled (these are troubleshooting tools).
10
+
- Simplified CLI daemon routing: stateless tools now always execute directly, stateful tools route through daemon with auto-start, and dynamic `xcode-ide` bridge tools remain an explicit daemon-backed special-case.
11
+
- Removed manifest daemon routing knobs `availability.daemon` and `routing.daemonAffinity`; manifests now use `availability.{mcp,cli}` plus optional `routing.stateful`.
12
+
- Removed hidden CLI daemon-routing flags; stateful routing is now automatic and only hidden `--socket` remains for advanced socket override workflows.
13
+
- Added daemon idle shutdown in CLI mode: per-workspace daemons now auto-exit after 10 minutes of inactivity when no active stateful sessions exist.
14
+
- Inverted idle activity tracking to a generic daemon activity registry so long-running tools report lifecycle activity without hardcoded daemon imports.
| Session state | Per-workspace daemon | In-process |
132
+
| Session state | Stateless direct + daemon for stateful tools | In-process |
132
133
| Use case | Scripts, CI, manual | AI-assisted development |
133
134
| Configuration | Same config.yaml | Same config.yaml |
134
135
135
136
Both share the same underlying tool implementations.
136
137
137
138
## Per-Workspace Daemon
138
139
139
-
The CLI uses a per-workspace daemon architecture for stateful operations (log capture, video recording, debugging). Each workspace gets its own daemon instance.
140
+
The CLI uses a per-workspace daemon architecture only when needed:
141
+
142
+
- Stateless tools run directly in the CLI process.
143
+
- Stateful tools route through the daemon (auto-started as needed).
144
+
- Dynamic `xcode-ide` bridge tools are a special-case daemon-backed path for persistent bridge sessions.
140
145
141
146
### How It Works
142
147
143
148
- **Workspace identity**: The workspace root is determined by the location of `.xcodebuildmcp/config.yaml`, or falls back to the current directory.
144
149
- **Socket location**: Each daemon runs on a Unix socket at `~/.xcodebuildmcp/daemons/<workspace-key>/daemon.sock`
145
150
- **Auto-start**: The daemon starts automatically when you invoke a stateful tool - no manual setup required.
151
+
- **Auto-shutdown**: The daemon exits after 10 minutes of inactivity, but only when there are no active stateful sessions (log capture, debugging, video capture, background swift-package processes).
146
152
147
153
### Daemon Commands
148
154
@@ -198,16 +204,6 @@ Daemons:
198
204
Total: 2 (1 running, 1 stale)
199
205
```
200
206
201
-
### Opting Out of Daemon
202
-
203
-
If you want to disable daemon auto-start (stateful tools will error):
0 commit comments