zcode-acp-server 0.75.0 → 0.76.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-connectivity.js","sourceRoot":"","sources":["../../src/settings/model-connectivity.ts"],"names":[],"mappings":"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"}
@@ -93,18 +93,32 @@ export declare function readProviderConfig(): Promise<ProviderConfigFile>;
93
93
  export declare function encodeProviderConfig(doc: unknown): string;
94
94
  /** Structural self-check run before the bytes land. */
95
95
  export declare function validateProviderConfig(doc: Record<string, unknown>): boolean | string;
96
+ /** The API protocol types the runtime understands. */
97
+ export declare const PROVIDER_API_TYPES: readonly ["anthropic-messages", "openai-chat-completions", "openai-responses"];
96
98
  /**
97
- * Enable or disable a provider, and/or rename it.
99
+ * Enable or disable a provider, rename it, and/or edit its endpoint.
100
+ *
101
+ * `apiKey` is write-only: it is accepted here and NEVER returned by the read
102
+ * side (the settings snapshot reports only whether one is set). That is not
103
+ * just defence against a leaked response — the personal config file is
104
+ * world-readable on many setups, and a client that echoes it back would put
105
+ * the secret in a second place.
98
106
  *
99
107
  * @param patch.enabled `true`/`false` flips the rule's `enabled` flag; omit to
100
108
  * leave it alone.
101
109
  * @param patch.providerName renames the provider; omit to leave it alone.
110
+ * @param patch.baseUrl the endpoint URL; `null` clears it.
111
+ * @param patch.apiType one of {@link PROVIDER_API_TYPES}; `null` clears it.
112
+ * @param patch.apiKey the credential; `null` clears it. Omit to keep it.
102
113
  * @throws when the provider has no rule in this file (account-managed
103
- * providers and bundled ones cannot be toggled here).
114
+ * providers and bundled ones cannot be edited here).
104
115
  */
105
116
  export declare function updateProvider(providerId: string, patch: {
106
117
  enabled?: boolean;
107
118
  providerName?: string;
119
+ baseUrl?: string | null;
120
+ apiType?: string | null;
121
+ apiKey?: string | null;
108
122
  }): Promise<ProviderConfigFile>;
109
123
  /**
110
124
  * Add a model to an existing provider, or update an existing rule.
@@ -1 +1 @@
1
- {"version":3,"file":"provider-config.d.ts","sourceRoot":"","sources":["../../src/settings/provider-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAaH,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE;QAAE,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACxC,WAAW,CAAC,EAAE;QAAE,cAAc,CAAC,EAAE;YAAE,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;SAAE,CAAA;KAAE,CAAC;CAC1D;AAED,wDAAwD;AACxD,MAAM,WAAW,SAAS;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,mBAAmB,CAAC;CAC7B;AAED,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE;QACP,MAAM,CAAC,EAAE;YAAE,IAAI,CAAC,EAAE,MAAM,CAAC;YAAC,MAAM,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QAC5C,GAAG,CAAC,EAAE;YAAE,IAAI,CAAC,EAAE,MAAM,CAAC;YAAC,OAAO,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QAC1C,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;QAC5B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;QACtB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;CACH;AAED,MAAM,WAAW,kBAAkB;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE;QACN,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;QACzB,mBAAmB,EAAE;YAAE,aAAa,EAAE,YAAY,EAAE,CAAA;SAAE,CAAC;QACvD,gBAAgB,EAAE;YAChB,kBAAkB,EAAE,SAAS,EAAE,CAAC;YAChC,wBAAwB,EAAE,SAAS,EAAE,CAAC;SACvC,CAAC;QACF,qBAAqB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACjD,CAAC;CACH;AAED;;;;;;;GAOG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAKtE;AAmDD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAEzD;AAED,uDAAuD;AACvD,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,GAAG,MAAM,CAoCrF;AAsCD;;;;;;;;GAQG;AACH,wBAAsB,cAAc,CAClC,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,GAClD,OAAO,CAAC,kBAAkB,CAAC,CAc7B;AAED;;;;;;GAMG;AACH,wBAAsB,WAAW,CAC/B,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,mBAAmB,GACzB,OAAO,CAAC,kBAAkB,CAAC,CAiC7B;AAED,2CAA2C;AAC3C,wBAAsB,WAAW,CAC/B,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,kBAAkB,CAAC,CAiC7B;AAqCD,yEAAyE;AACzE,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAMpE;AAED,0DAA0D;AAC1D,wBAAgB,cAAc,CAAC,GAAG,EAAE,kBAAkB,GAAG,MAAM,CAE9D"}
1
+ {"version":3,"file":"provider-config.d.ts","sourceRoot":"","sources":["../../src/settings/provider-config.ts"],"names":[],"mappings":"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"}
@@ -173,17 +173,40 @@ async function saveProviderConfig(mutator) {
173
173
  });
174
174
  return normalize(doc);
175
175
  }
176
+ /** The API protocol types the runtime understands. */
177
+ export const PROVIDER_API_TYPES = [
178
+ "anthropic-messages",
179
+ "openai-chat-completions",
180
+ "openai-responses",
181
+ ];
176
182
  /**
177
- * Enable or disable a provider, and/or rename it.
183
+ * Enable or disable a provider, rename it, and/or edit its endpoint.
184
+ *
185
+ * `apiKey` is write-only: it is accepted here and NEVER returned by the read
186
+ * side (the settings snapshot reports only whether one is set). That is not
187
+ * just defence against a leaked response — the personal config file is
188
+ * world-readable on many setups, and a client that echoes it back would put
189
+ * the secret in a second place.
178
190
  *
179
191
  * @param patch.enabled `true`/`false` flips the rule's `enabled` flag; omit to
180
192
  * leave it alone.
181
193
  * @param patch.providerName renames the provider; omit to leave it alone.
194
+ * @param patch.baseUrl the endpoint URL; `null` clears it.
195
+ * @param patch.apiType one of {@link PROVIDER_API_TYPES}; `null` clears it.
196
+ * @param patch.apiKey the credential; `null` clears it. Omit to keep it.
182
197
  * @throws when the provider has no rule in this file (account-managed
183
- * providers and bundled ones cannot be toggled here).
198
+ * providers and bundled ones cannot be edited here).
184
199
  */
185
200
  export async function updateProvider(providerId, patch) {
186
201
  assertNotAccountProvider(providerId);
202
+ if (patch.apiType !== undefined && patch.apiType !== null) {
203
+ if (!PROVIDER_API_TYPES.includes(patch.apiType)) {
204
+ throw new Error(`apiType must be one of ${PROVIDER_API_TYPES.join(", ")}`);
205
+ }
206
+ }
207
+ if (patch.baseUrl !== undefined && patch.baseUrl !== null) {
208
+ validateBaseUrl(patch.baseUrl);
209
+ }
187
210
  return saveProviderConfig((current) => {
188
211
  const rule = current.config.providerConfigRules.providerRules.find((r) => r.providerId === providerId);
189
212
  if (!rule) {
@@ -193,8 +216,51 @@ export async function updateProvider(providerId, patch) {
193
216
  rule.enabled = patch.enabled;
194
217
  if (patch.providerName !== undefined)
195
218
  rule.providerName = patch.providerName;
219
+ const config = { ...(rule.config ?? {}) };
220
+ if (patch.baseUrl !== undefined || patch.apiType !== undefined) {
221
+ const api = { ...(config.api ?? {}) };
222
+ if (patch.baseUrl !== undefined) {
223
+ if (patch.baseUrl === null || patch.baseUrl === "")
224
+ delete api.baseUrl;
225
+ else
226
+ api.baseUrl = patch.baseUrl;
227
+ }
228
+ if (patch.apiType !== undefined) {
229
+ if (patch.apiType === null || patch.apiType === "")
230
+ delete api.type;
231
+ else
232
+ api.type = patch.apiType;
233
+ }
234
+ config.api = api;
235
+ }
236
+ if (patch.apiKey !== undefined) {
237
+ const access = { ...(config.access ?? {}) };
238
+ if (patch.apiKey === null || patch.apiKey === "")
239
+ delete access.apiKey;
240
+ else {
241
+ access.apiKey = patch.apiKey;
242
+ // A key means key-based access; leaving a stale type here (say
243
+ // `zhipu-account`) would make the registry ignore the key.
244
+ access.type = "api-key";
245
+ }
246
+ config.access = access;
247
+ }
248
+ rule.config = config;
196
249
  });
197
250
  }
251
+ /** A base URL the runtime can actually dial. */
252
+ function validateBaseUrl(value) {
253
+ let parsed;
254
+ try {
255
+ parsed = new URL(value);
256
+ }
257
+ catch {
258
+ throw new Error("baseUrl must be an absolute http(s) URL");
259
+ }
260
+ if (parsed.protocol !== "http:" && parsed.protocol !== "https:") {
261
+ throw new Error("baseUrl must be an absolute http(s) URL");
262
+ }
263
+ }
198
264
  /**
199
265
  * Add a model to an existing provider, or update an existing rule.
200
266
  *
@@ -1 +1 @@
1
- {"version":3,"file":"provider-config.js","sourceRoot":"","sources":["../../src/settings/provider-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provider-config.js","sourceRoot":"","sources":["../../src/settings/provider-config.ts"],"names":[],"mappings":"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"}
package/docs/BACKLOG.md CHANGED
@@ -142,6 +142,24 @@ only the ordinary selection; execution bundles stay in-memory) — internal v4
142
142
  queue mechanics, the v4 stop path is untouched. Model-selection persistence
143
143
  semantics unchanged (`ensureSessionPersisted` / `restorePersistedModelSelection`;
144
144
  `turn-model.ts` adds Highspeed/off-peak capture, not persistence).
145
+ **3.16.2 follow-up sync (2026-10-20, commit `3c5b2276` — re-audited, no
146
+ bridge action)**: 263 files, web/desktop tests + architecture snapshots
147
+ dominate. Protocol schema ZERO diff; the only Gotchas-file change is 10
148
+ lines in `server-operations.ts` generalizing the listSessions parent-chain
149
+ ownership check from `subagent_child` to the auxiliary-session-kind set
150
+ (`isAuxiliarySessionKind` / `isReadonlyAgentSessionKind`) — same family as
151
+ the 3.16.1 listSessions rewrite, still irrelevant to the bridge (it never
152
+ sends `sessionIds` explicit queries). CLI stays `0.17.0`.
153
+ Postscript (2026-10-20): the machine's desktop moved 3.14.5 → 3.15.3 without a
154
+ per-version audit (no source-sync commits exist for 3.15.2/3.15.3 — the
155
+ sync bot snapshots, so their changes are folded into the 3.16.1 cumulative
156
+ diff already audited above). Bundle dated the 3.15.3 install by marker
157
+ strings: every 3.16-era protocol token (`toolSearchMode`, `refreshRegistry`,
158
+ `additionalDirectories`, `alwaysLoad`, `historyFirst`) is ABSENT from its
159
+ `zcode.cjs` while the 3.15-era tokens (`guarded` mode, `dynamicWorkflowMode`)
160
+ and the pre-3.16 `includeArchived` are present — the running backend's
161
+ protocol surface is exactly the 3.15.1-audited one, and the bridge has been
162
+ running it without incident.
145
163
 
146
164
  **3.14.0 audit (2026-09-20, app-server 0.16.9 — live-probed end to end)**: the
147
165
  dynamic-workflow family (ten model tools led by `CreateWorkflow`) is OFF by
@@ -215,6 +215,21 @@ POST {hub}/api/instances body {"workspacePath":"/Users/me/proj"}
215
215
  spawn instead of racing a duplicate. A client that wants a HEADLESS attach
216
216
  should not POST at all — attach to the instance id the history listing
217
217
  already returns.
218
+ - **Desktop Presence** (ADR-0016 amendment; app ADR-0010): while the ZCode
219
+ ACP desktop app is present, no window opens for anyone — create AND resume,
220
+ from the app, the phone, or the web alike — because the desktop app is the
221
+ presenting surface. The hub sees presence three ways: a proxied ACP
222
+ connection whose `initialize` carries `clientInfo.name:
223
+ "zcode-acp-remote-desktop"`; an HTTP call stamped `x-zcode-client:
224
+ zcode-acp-remote-desktop` (every desktop hub call is); or such a stamped
225
+ call within the last 45s — the app polls `GET /api/instances` every 15s
226
+ for its whole lifetime, so an idle app with no open tab (and therefore no
227
+ proxied connection) still counts. Under presence the reuse rule flips
228
+ back: a create or resume answers with the workspace's live serve-origin
229
+ instance (`reused: true`, nothing spawned) — a resume with the instance
230
+ already holding that session live, whatever its origin — and only a
231
+ workspace without one spawns, headless. Attach and `session/new` /
232
+ `session/load` exactly as after a headless fallback.
218
233
  - Lifetime depends on the surface: a terminal-TUI instance lives while its
219
234
  window lives (the owner closing it retires the bridge — re-create on
220
235
  demand); the headless fallback exists for remote interest only and exits
@@ -332,7 +347,9 @@ POST {hub}/api/instances body {"workspacePath":"/Users/me/proj",
332
347
  CLI (Martty never sets a terminal title itself, so the name sticks).
333
348
  Resuming the same session
334
349
  twice pops two windows; only identical concurrent requests share one
335
- incubation.
350
+ incubation. Desktop Presence changes both rules — no window opens, and the
351
+ live bridge that already holds (or can host) the session answers instead
352
+ (see the Desktop Presence bullet under session-create).
336
353
  - `sessionId` here is the backend store id (`sess_…`), which `session/load`
337
354
  accepts as-is (pass-through resume). The same conversation may also appear
338
355
  in discovery under a different (ACP) id — treat discovery as the
@@ -519,27 +536,28 @@ a `providerId` and a network read, so fetch them from
519
536
 
520
537
  ### Write endpoints
521
538
 
522
- | Endpoint | Effect | Purpose |
523
- | ----------------------------------------- | --------------- | ------------------------------------------- |
524
- | `PUT /settings/providers/{id}` | `immediate` | Enable/disable, rename |
525
- | `POST /settings/models` | `immediate` | Add a model to an existing provider |
526
- | `DELETE /settings/models/{pid}/{mid}` | `immediate` | Remove a model |
527
- | `POST /settings/skills/enable` | `immediate` | `{path, enable}` |
528
- | `DELETE /settings/skills/{path}` | `immediate` | Delete a skill directory |
529
- | `POST /settings/skills/copy-to-user` | `immediate` | Copy a workspace skill to `~/.zcode/skills` |
530
- | `PUT /settings/mcp/{name}` | `needs-restart` | Create or update an MCP server |
531
- | `DELETE /settings/mcp/{name}` | `needs-restart` | Remove an MCP server |
532
- | `POST /settings/mcp/enable` | `needs-restart` | `{name, enable}` |
533
- | `PUT /settings/hooks/{event}/{index}` | `needs-restart` | Edit one existing hook entry |
534
- | `POST /settings/hooks/enabled` | `needs-restart` | `{enabled}` — the whole hooks tree |
535
- | `PUT /settings/agents/{id}` | `needs-restart` | Create or update a subagent |
536
- | `DELETE /settings/agents/{id}` | `needs-restart` | Delete a subagent |
537
- | `POST /settings/agents/{id}/enable` | `needs-restart` | `{enable}` |
538
- | `POST /settings/reset-cards/use` | — | Consume a reset card (see below) |
539
- | `POST /settings/reset-cards/opportunity` | — | Request an opportunity (see below) |
540
- | `POST /settings/reset-cards/history-read` | — | Mark the reset history read |
541
- | `POST /settings/backups/restore` | per file | Restore a backup |
542
- | `POST /settings/app-update/install` | — | Download and stage a new app build |
539
+ | Endpoint | Effect | Purpose |
540
+ | ----------------------------------------- | --------------- | ------------------------------------------------------------- |
541
+ | `PUT /settings/providers/{id}` | `immediate` | Enable/disable, rename, edit `baseUrl` / `apiType` / `apiKey` |
542
+ | `POST /settings/models` | `immediate` | Add a model to an existing provider |
543
+ | `POST /settings/models/test` | — | `{providerId, modelId}` → one minimal probe request |
544
+ | `DELETE /settings/models/{pid}/{mid}` | `immediate` | Remove a model |
545
+ | `POST /settings/skills/enable` | `immediate` | `{path, enable}` |
546
+ | `DELETE /settings/skills/{path}` | `immediate` | Delete a skill directory |
547
+ | `POST /settings/skills/copy-to-user` | `immediate` | Copy a workspace skill to `~/.zcode/skills` |
548
+ | `PUT /settings/mcp/{name}` | `needs-restart` | Create or update an MCP server |
549
+ | `DELETE /settings/mcp/{name}` | `needs-restart` | Remove an MCP server |
550
+ | `POST /settings/mcp/enable` | `needs-restart` | `{name, enable}` |
551
+ | `PUT /settings/hooks/{event}/{index}` | `needs-restart` | Edit one existing hook entry |
552
+ | `POST /settings/hooks/enabled` | `needs-restart` | `{enabled}` — the whole hooks tree |
553
+ | `PUT /settings/agents/{id}` | `needs-restart` | Create or update a subagent |
554
+ | `DELETE /settings/agents/{id}` | `needs-restart` | Delete a subagent |
555
+ | `POST /settings/agents/{id}/enable` | `needs-restart` | `{enable}` |
556
+ | `POST /settings/reset-cards/use` | — | Consume a reset card (see below) |
557
+ | `POST /settings/reset-cards/opportunity` | — | Request an opportunity (see below) |
558
+ | `POST /settings/reset-cards/history-read` | — | Mark the reset history read |
559
+ | `POST /settings/backups/restore` | per file | Restore a backup |
560
+ | `POST /settings/app-update/install` | — | Download and stage a new app build |
543
561
 
544
562
  Notes that clients must honor:
545
563
 
@@ -547,8 +565,23 @@ Notes that clients must honor:
547
565
  four (`GET, POST, PUT, DELETE, OPTIONS`) — a browser-based client can issue
548
566
  them without a plugin fetch shim.
549
567
  - **Providers cannot be created or deleted** through this API — only enabled
550
- state, display name, and the models inside an existing provider. Adding a
551
- brand-new provider stays a desktop-app (or hand-edit) operation.
568
+ state, display name, the endpoint fields, and the models inside an existing
569
+ provider. Adding a brand-new provider stays a desktop-app (or hand-edit)
570
+ operation. Endpoint edits are presence-driven: send `baseUrl` (absolute
571
+ http(s) URL), `apiType` (`anthropic-messages` | `openai-chat-completions` |
572
+ `openai-responses`) and/or `apiKey`; `null` clears a field, an omitted key is
573
+ left alone. The models payload never echoes a key back — each provider
574
+ carries `hasApiKey` (presence only), because the payload crosses the hub
575
+ WebSocket and the client only needs to know whether the field is filled.
576
+ - **`POST /settings/models/test` is a probe, not a prompt**: one request with
577
+ `max_tokens: 1` (`max_output_tokens: 16` for `openai-responses`) spelled for
578
+ the provider's `apiType`, 20s timeout, resolved from the personal provider
579
+ config's own `baseUrl` + `apiKey`. The answer is always `200 {ok, result}`
580
+ — `result.success:false` with the provider's `status` / truncated `message`
581
+ is a normal outcome the UI renders inline, and `result.reason`
582
+ (`no_key` | `no_base_url` | `unknown_provider`) means the probe could not
583
+ run at all. A green probe proves the endpoint accepts the model id with
584
+ that key; it does not prove quota, tool support or context length.
552
585
  - **MCP writes are type-checked**: `type` / `url` / `command` must be strings,
553
586
  `args` an array of strings, `env` / `headers` objects of strings, `enabled` a
554
587
  boolean — anything else is a `400`. Unknown keys still pass through, but a
@@ -561,9 +594,14 @@ Notes that clients must honor:
561
594
  and writes may only modify an existing entry's `command` / `timeoutMs` /
562
595
  `enabled`. Adding or removing events, matchers, or hook entries is not
563
596
  supported. Unknown keys on a hook object are preserved verbatim.
564
- - **Subagents**: `name`, `description`, `color`, `model`, `thoughtLevel` are
565
- editable; the system-prompt body is not. Built-in agents (`general-purpose`,
566
- `Explore`) cannot be edited or deleted — only their model override can change.
597
+ - **Subagents**: `name`, `description`, `color`, `model`, `thoughtLevel`, the
598
+ `systemPrompt` body and the advanced frontmatter the runtime reads (`tools`,
599
+ `disallowedTools`, `skills` as string arrays; `permissionMode` from the
600
+ runtime's enum; `maxTurns` a positive integer; `background` /
601
+ `injectAgentsMd` booleans) are editable on custom agents. Presence decides:
602
+ an omitted key is left alone, `null` clears it (the app's "inherit" choice;
603
+ an empty list clears too). Built-in agents (`general-purpose`, `Explore`)
604
+ cannot be edited or deleted — only their model override can change.
567
605
  Send `{"providerId": null, "modelId": null}` on a built-in agent to CLEAR its
568
606
  override and return it to the workspace default.
569
607
  - **Reset cards are irreversible.** `POST /settings/reset-cards/use` requires
package/docs/REMOTE.md CHANGED
@@ -135,7 +135,13 @@ open_file). Hyper stays unsupported (no programmatic command execution,
135
135
  vercel/hyper#3677).
136
136
  Create NEVER reuses a live serve-origin instance (ADR-0016 as amended) —
137
137
  every create incubates its own window, and identical concurrent requests
138
- join the same in-flight spawn. A
138
+ join the same in-flight spawn. Desktop Presence (app ADR-0010) inverts this
139
+ while the ZCode ACP desktop app is present — a proxied connection initialized
140
+ as `zcode-acp-remote-desktop`, an HTTP call stamped `x-zcode-client`, or such
141
+ a call within the last 45s (the app's 15s discovery poll): no window opens
142
+ for any client, create and resume answer with the workspace's live
143
+ serve-origin instance (`reused: true`), and only a workspace without one
144
+ spawns, headless. A
139
145
  terminal-TUI instance lives while its window lives; the headless fallback
140
146
  exits ~10 minutes after the last client detaches and the last turn
141
147
  finishes. Session roots are pinned to the project cwd in both surfaces
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zcode-acp-server",
3
- "version": "0.75.0",
3
+ "version": "0.76.1",
4
4
  "description": "Agent Client Protocol (ACP) server bridging headless ZCode to editors like Zed and JetBrains.",
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",