zcode-acp-server 0.33.0 → 0.35.0

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.
@@ -11,6 +11,7 @@
11
11
  * so attached editors and phones update live.
12
12
  */
13
13
  import { sendSessionUpdate } from "../handlers/io.js";
14
+ import { refreshTerminalTabTitle } from "../terminal-title.js";
14
15
  import { renameSessionTask } from "../tasks-index.js";
15
16
  import { log, warn } from "../utils.js";
16
17
  const MAX_BODY_BYTES = 4096;
@@ -70,6 +71,7 @@ async function handleRename(server, req, res, sessionId) {
70
71
  .slice(0, 80);
71
72
  server.sessionTitles.set(sessionId, title);
72
73
  server.touchSessionSummary(sessionId, title);
74
+ refreshTerminalTabTitle(server, sessionId);
73
75
  const zcodeSid = server.resolveSid(sessionId);
74
76
  if (zcodeSid) {
75
77
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"session-rename-endpoint.js","sourceRoot":"","sources":["../../src/remote/session-rename-endpoint.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-rename-endpoint.js","sourceRoot":"","sources":["../../src/remote/session-rename-endpoint.ts"],"names":[],"mappings":"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"}
package/dist/server.d.ts CHANGED
@@ -110,6 +110,18 @@ export declare class ZcodeAcpServer {
110
110
  * are deleted on first use.
111
111
  */
112
112
  readonly sessionCwds: Map<string, string>;
113
+ /**
114
+ * In-flight `session/resume` single-flight, keyed by backend session id
115
+ * (ADR-0017 first-entry race): the hub answers the App's incubation request
116
+ * as soon as the TUI's bridge REGISTERS — before the TUI's boot-resume
117
+ * finishes — so the App's `session/load` for the SAME backend session can
118
+ * run concurrently and both would send `session/resume`. Concurrent callers
119
+ * instead join the first flight (see resumePreservingModel); the loser's
120
+ * `session/messages` query then lands AFTER hydration, not mid-restore
121
+ * (a mid-restore query returns a prefix and the first-entry replay "ends
122
+ * in the middle").
123
+ */
124
+ readonly resumeInFlight: Map<string, Promise<unknown>>;
113
125
  /**
114
126
  * Sandbox dynamic-allow state (ADR-0011): realpaths granted for this
115
127
  * bridge lifetime ("仅此一次" answers) — folded into the Seatbelt profile
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
package/dist/server.js CHANGED
@@ -56,6 +56,18 @@ export class ZcodeAcpServer {
56
56
  * are deleted on first use.
57
57
  */
58
58
  sessionCwds = new Map();
59
+ /**
60
+ * In-flight `session/resume` single-flight, keyed by backend session id
61
+ * (ADR-0017 first-entry race): the hub answers the App's incubation request
62
+ * as soon as the TUI's bridge REGISTERS — before the TUI's boot-resume
63
+ * finishes — so the App's `session/load` for the SAME backend session can
64
+ * run concurrently and both would send `session/resume`. Concurrent callers
65
+ * instead join the first flight (see resumePreservingModel); the loser's
66
+ * `session/messages` query then lands AFTER hydration, not mid-restore
67
+ * (a mid-restore query returns a prefix and the first-entry replay "ends
68
+ * in the middle").
69
+ */
70
+ resumeInFlight = new Map();
59
71
  /**
60
72
  * Sandbox dynamic-allow state (ADR-0011): realpaths granted for this
61
73
  * bridge lifetime ("仅此一次" answers) — folded into the Seatbelt profile
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Terminal tab/window titles for TUI-hosted bridges (martty).
3
+ *
4
+ * martty never emits a terminal title, so a CLI-launched or hub-incubated
5
+ * window keeps whatever the shell last set — usually the command name — and a
6
+ * user with several windows cannot tell conversations apart. The bridge runs
7
+ * under martty in the same process group, so it shares the terminal's
8
+ * controlling tty and can name the tab itself with an OSC 0 sequence (the
9
+ * same escape the hub's TUI script prints at incubation time; this module
10
+ * keeps it live as the session gains a real title).
11
+ *
12
+ * Gated on `marttyClientSeen`: only a bridge spawned by a martty may write.
13
+ * A Zed extension host CAN have a controlling tty (Zed launched from a
14
+ * shell) — writing there would hijack an unrelated terminal's title, so
15
+ * non-martty bridges never write. Writes are rare (title lifecycle events,
16
+ * ~40 bytes) and OSC output is terminal chrome, not screen content, so they
17
+ * cannot corrupt martty's drawing beyond a single self-healing frame.
18
+ */
19
+ import type { ZcodeAcpServer } from "./server.js";
20
+ /**
21
+ * Strip everything a terminal title must not carry: C0/C1 controls and DEL
22
+ * (an embedded ESC or BEL could inject escape sequences; BEL also terminates
23
+ * the OSC string early), collapse whitespace runs, trim, cap.
24
+ */
25
+ export declare function sanitizeTitle(raw: string): string;
26
+ /** Injection seam for tests: write the OSC 0 sequence somewhere. */
27
+ export interface TitleIo {
28
+ write(sequence: string): boolean;
29
+ }
30
+ /**
31
+ * The production writer: /dev/tty is the controlling terminal regardless of
32
+ * where stdout/stderr point (both are pipes to martty). Never throws — any
33
+ * failure means "no title support here" and is silently ignored. Also a hard
34
+ * no-op under vitest: a developer's test run shares their real terminal, and
35
+ * titles flashing by during `pnpm test` would be obnoxious.
36
+ */
37
+ export declare const ttyTitleIo: TitleIo;
38
+ /**
39
+ * The tab title for a session: `<project> · <topic>` once a conversation
40
+ * title is known (auto-title, adopted stored title, or rename), else the
41
+ * project directory name alone. The project is the folder basename, capped at
42
+ * PROJECT_MAX chars (ellipsis on cut) so an unwieldy dir name cannot crowd
43
+ * out the topic; when the combined title would exceed TITLE_MAX the TOPIC is
44
+ * trimmed to fit — the project anchors which window this is, the topic is
45
+ * the freshest information. The hub's incubation script builds the same
46
+ * string (ZCODE_ACP_TAB_TITLE), so the title never churns when the bridge
47
+ * takes over from the script's initial printf.
48
+ */
49
+ export declare function sessionTabTitle(title: string | undefined, cwd: string | undefined): string;
50
+ /**
51
+ * Push the current session title to the terminal tab (martty-hosted bridges
52
+ * only — see the module doc for why the gate is mandatory).
53
+ */
54
+ export declare function refreshTerminalTabTitle(server: ZcodeAcpServer, acpSid: string, io?: TitleIo): boolean;
55
+ //# sourceMappingURL=terminal-title.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal-title.d.ts","sourceRoot":"","sources":["../src/terminal-title.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAQlD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAOjD;AAED,oEAAoE;AACpE,MAAM,WAAW,OAAO;IACtB,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;CAClC;AAED;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,EAAE,OAoBxB,CAAC;AAEF;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAe1F;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,MAAM,EACd,EAAE,GAAE,OAAoB,GACvB,OAAO,CAMT"}
@@ -0,0 +1,114 @@
1
+ /**
2
+ * Terminal tab/window titles for TUI-hosted bridges (martty).
3
+ *
4
+ * martty never emits a terminal title, so a CLI-launched or hub-incubated
5
+ * window keeps whatever the shell last set — usually the command name — and a
6
+ * user with several windows cannot tell conversations apart. The bridge runs
7
+ * under martty in the same process group, so it shares the terminal's
8
+ * controlling tty and can name the tab itself with an OSC 0 sequence (the
9
+ * same escape the hub's TUI script prints at incubation time; this module
10
+ * keeps it live as the session gains a real title).
11
+ *
12
+ * Gated on `marttyClientSeen`: only a bridge spawned by a martty may write.
13
+ * A Zed extension host CAN have a controlling tty (Zed launched from a
14
+ * shell) — writing there would hijack an unrelated terminal's title, so
15
+ * non-martty bridges never write. Writes are rare (title lifecycle events,
16
+ * ~40 bytes) and OSC output is terminal chrome, not screen content, so they
17
+ * cannot corrupt martty's drawing beyond a single self-healing frame.
18
+ */
19
+ import { closeSync, openSync, writeSync } from "node:fs";
20
+ import path from "node:path";
21
+ import { log } from "./utils.js";
22
+ /** Longest total title we ship; tab bars truncate visually anyway. */
23
+ const TITLE_MAX = 100;
24
+ /** Longest project (dir name) segment — the topic is the part worth reading. */
25
+ const PROJECT_MAX = 24;
26
+ /**
27
+ * Strip everything a terminal title must not carry: C0/C1 controls and DEL
28
+ * (an embedded ESC or BEL could inject escape sequences; BEL also terminates
29
+ * the OSC string early), collapse whitespace runs, trim, cap.
30
+ */
31
+ export function sanitizeTitle(raw) {
32
+ const collapsed = raw
33
+ // eslint-disable-next-line no-control-regex
34
+ .replace(/[\u0000-\u001f\u007f-\u009f]+/g, " ")
35
+ .replace(/\s+/g, " ")
36
+ .trim();
37
+ return collapsed.length > TITLE_MAX ? collapsed.slice(0, TITLE_MAX - 1) + "…" : collapsed;
38
+ }
39
+ /**
40
+ * The production writer: /dev/tty is the controlling terminal regardless of
41
+ * where stdout/stderr point (both are pipes to martty). Never throws — any
42
+ * failure means "no title support here" and is silently ignored. Also a hard
43
+ * no-op under vitest: a developer's test run shares their real terminal, and
44
+ * titles flashing by during `pnpm test` would be obnoxious.
45
+ */
46
+ export const ttyTitleIo = {
47
+ write(sequence) {
48
+ if (process.env.VITEST)
49
+ return false;
50
+ let fd;
51
+ try {
52
+ fd = openSync("/dev/tty", "w");
53
+ writeSync(fd, sequence);
54
+ return true;
55
+ }
56
+ catch {
57
+ return false;
58
+ }
59
+ finally {
60
+ if (fd !== undefined) {
61
+ try {
62
+ closeSync(fd);
63
+ }
64
+ catch {
65
+ // best-effort close
66
+ }
67
+ }
68
+ }
69
+ },
70
+ };
71
+ /**
72
+ * The tab title for a session: `<project> · <topic>` once a conversation
73
+ * title is known (auto-title, adopted stored title, or rename), else the
74
+ * project directory name alone. The project is the folder basename, capped at
75
+ * PROJECT_MAX chars (ellipsis on cut) so an unwieldy dir name cannot crowd
76
+ * out the topic; when the combined title would exceed TITLE_MAX the TOPIC is
77
+ * trimmed to fit — the project anchors which window this is, the topic is
78
+ * the freshest information. The hub's incubation script builds the same
79
+ * string (ZCODE_ACP_TAB_TITLE), so the title never churns when the bridge
80
+ * takes over from the script's initial printf.
81
+ */
82
+ export function sessionTabTitle(title, cwd) {
83
+ const cwdTrimmed = (cwd ?? "").trim();
84
+ // Both segments are sanitized: the cwd is CLIENT-supplied (a remote client
85
+ // controls its session/new cwd), and a dirname containing ESC/BEL would
86
+ // otherwise flow raw into the OSC payload (arbitrary OSC injection, e.g.
87
+ // clipboard writes). sanitizeTitle also collapses the length cap below.
88
+ let project = cwdTrimmed ? sanitizeTitle(path.basename(cwdTrimmed)) : "";
89
+ if (project.length > PROJECT_MAX)
90
+ project = project.slice(0, PROJECT_MAX - 1) + "…";
91
+ if (!project)
92
+ project = "zcode";
93
+ const topic = sanitizeTitle(title ?? "");
94
+ if (!topic)
95
+ return project;
96
+ // PROJECT_MAX keeps this comfortably positive (100 - 24 - 3).
97
+ const budget = TITLE_MAX - project.length - 3;
98
+ const fitTopic = topic.length > budget ? topic.slice(0, budget - 1) + "…" : topic;
99
+ return `${project} · ${fitTopic}`;
100
+ }
101
+ /**
102
+ * Push the current session title to the terminal tab (martty-hosted bridges
103
+ * only — see the module doc for why the gate is mandatory).
104
+ */
105
+ export function refreshTerminalTabTitle(server, acpSid, io = ttyTitleIo) {
106
+ if (!server.marttyClientSeen)
107
+ return false;
108
+ const title = sessionTabTitle(server.sessionTitles.get(acpSid), server.sessionCwds.get(acpSid));
109
+ const ok = io.write(`\x1b]0;${title}\x07`);
110
+ if (!ok)
111
+ log(`terminal title not written (no tty or unsupported)`);
112
+ return ok;
113
+ }
114
+ //# sourceMappingURL=terminal-title.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal-title.js","sourceRoot":"","sources":["../src/terminal-title.ts"],"names":[],"mappings":"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"}
package/docs/PROTOCOL.md CHANGED
@@ -638,12 +638,14 @@ that question without cancelling the form.
638
638
  }
639
639
  ```
640
640
 
641
- **ExitPlanMode elicitation form** — single `feedback` text field; no
642
- approve/reject dropdown. The client's own submit button is the approve action;
643
- typing into the field is the reject action. Submitting with the field empty
644
- approves the plan; submitting with text rejects it and returns the text to
645
- zcode as the decline `reason` (so the agent sees the redirection when it
646
- re-plans). The cancel/decline button is a plain reject with no reason.
641
+ **ExitPlanMode elicitation form** — sent only to clients that advertised
642
+ elicitation form support; everyone else gets `session/request_permission` with
643
+ the plan in `toolCall.content`. The form carries the COMPLETE plan markdown as
644
+ the `approval` field's `description` (markdown-capable clients render it in a
645
+ scrollable detail pane); the decision itself is a required approve/reject enum.
646
+ An `accept` whose `content.approval` is `"approve"` maps to the zcode accept
647
+ (`answer_0: "approve"`); a `reject`/`cancel` action, or `"reject"` in the
648
+ field, maps to a plain decline.
647
649
 
648
650
  ```json
649
651
  {
@@ -651,22 +653,32 @@ re-plans). The cancel/decline button is a plain reject with no reason.
651
653
  "params": {
652
654
  "mode": "form",
653
655
  "sessionId": "sess_abc123",
654
- "message": "Ready to code?\n\n1. Implement login\n2. Implement signup\n\nLeave the box empty and submit to approve; type feedback to reject and redirect.",
656
+ "message": "Exit plan mode",
655
657
  "requestedSchema": {
656
658
  "type": "object",
657
659
  "properties": {
658
- "feedback": {
660
+ "approval": {
659
661
  "type": "string",
660
- "title": "Feedback",
661
- "description": "Empty = approve the plan. Anything typed = reject and use this text as the redirection."
662
+ "title": "Review the plan, then choose an action",
663
+ "description": "1. Implement login\n2. Implement signup",
664
+ "oneOf": [
665
+ { "const": "approve", "title": "Approve — exit plan mode" },
666
+ { "const": "reject", "title": "Reject — keep planning" }
667
+ ]
662
668
  }
663
669
  },
664
- "required": []
670
+ "required": ["approval"]
665
671
  }
666
672
  }
667
673
  }
668
674
  ```
669
675
 
676
+ If the form request fails outright (no form-capable client attached any more —
677
+ capability flags are merged across clients at initialize — or a timeout), the
678
+ bridge falls back once to `session/request_permission` so the plan can still
679
+ be approved by a plain permission popup; only when that also fails does the
680
+ plan decline.
681
+
670
682
  ## Extension Methods (0.14.8+)
671
683
 
672
684
  ### `session/fork`
@@ -67,13 +67,13 @@ a hardcoded version string — read the message text to identify the root cause.
67
67
 
68
68
  **Common causes:**
69
69
 
70
- | Message fragment | Cause |
71
- | -------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
72
- | `reader exited (backend dead)` | The zcode subprocess crashed/exited. Restart the editor session. |
73
- | `timeout` | The per-attempt 5s subscribe deadline elapsed. The bridge retries transient timeouts once (2 attempts total, ~10.5s worst case); if both fail, the backend was unresponsive for that window. |
74
- | `pipe broken` | The stdin pipe to the zcode subprocess broke (process died mid-write). |
75
- | `method not found (code -32601)` | The CLI genuinely is too old (< 0.14.8). Upgrade. |
76
- | `Session is not active` (-32004) | The backend evicted the session's resident runtime (idle ~10min, or its LRU cap). The bridge self-heals via `session/resume` (see below). |
70
+ | Message fragment | Cause |
71
+ | -------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
72
+ | `reader exited (backend dead)` | The zcode subprocess crashed/exited. Restart the editor session. |
73
+ | `timeout` | The per-attempt 5s subscribe deadline elapsed. The bridge retries transient timeouts once (2 attempts total, ~10.5s worst case); if both fail, the backend was unresponsive for that window. |
74
+ | `pipe broken` | The stdin pipe to the zcode subprocess broke (process died mid-write). |
75
+ | `method not found (code -32601)` | The CLI genuinely is too old (< 0.14.8). Upgrade. |
76
+ | `Session is not active` (-32004) | The backend evicted the session's resident runtime (idle ~10min, or its LRU cap). The bridge self-heals via `session/resume` (see below). |
77
77
 
78
78
  **`Session is not active` (code -32004) in detail:**
79
79
 
@@ -382,6 +382,26 @@ re-registered from the durable store without a resume (or left behind by a
382
382
  failed one) therefore replayed nothing. Fixed by explicit backend-loaded
383
383
  tracking; the backend also logs a warning now when `session/messages` errors.
384
384
 
385
+ ### Remote access: a conversation replays only PARTLY on first entry
386
+
387
+ **Symptom:** entering a resumed conversation the FIRST time shows history
388
+ that ends in the middle; leaving and re-entering shows the full conversation.
389
+ Happens often (but not always) with large sessions.
390
+
391
+ **Cause:** the hub answers the resume request as soon as the incubated
392
+ terminal bridge registers — before the terminal's boot-resume finishes — so
393
+ the App's `session/load` raced the boot-resume for the SAME backend session.
394
+ Both sent `session/resume` concurrently, and `session/messages` reflects only
395
+ what the backend has hydrated so far: a query landing mid-restore returns a
396
+ PREFIX, which was replayed as if it were the whole conversation. Fixed by
397
+ single-flighting `session/resume` TOGETHER WITH its hydration settle per
398
+ backend session id (a concurrent load joins the in-flight flight and shares
399
+ its settled history snapshot; the settle requires two consecutive
400
+ non-growing reads, capped). The bridge log line
401
+ `session/load: replayed N messages (total M)` now prints the total
402
+ unconditionally — a first-entry total below the session's real size was the
403
+ signature of this bug.
404
+
385
405
  ### Start Plan (zcode-plan) providers fail headless — 1113 / signing errors
386
406
 
387
407
  **Symptom:** every turn fails with HTTP 429 error `1113` ("Insufficient
@@ -433,6 +453,38 @@ tool output contains `Operation not permitted` — that warning is your signal
433
453
  to suspect the sandbox. Path grants for legitimate writes go in
434
454
  `.zcode/acp/sandbox.json`.
435
455
 
456
+ ### UNRESOLVED: CLI (martty) freezes at an old state while the mobile app keeps updating
457
+
458
+ **Symptom (observed once, 2026-09, no live instance preserved):** a CLI window
459
+ attached to a conversation stops receiving everything — messages, model
460
+ dropdown, thought-level updates — while the mobile app on the same
461
+ conversation keeps receiving and interacting normally. The CLI stays frozen at
462
+ a state noticeably older than the conversation.
463
+
464
+ **Working hypotheses (in rough likelihood order), none confirmed:**
465
+
466
+ 1. **Session-alias divergence** — the interaction moved to an ACP session id
467
+ the martty connection never adopted (e.g. a phone-side `session/new` racing
468
+ the window's binding). martty drops every update addressed to a session id
469
+ it does not know (same failure shape as the 2026-09-06 boot-create
470
+ diagnosis in AGENTS.md). Everything stalling at once — config updates
471
+ included — fits a sessionId mismatch, since all of them are session-scoped.
472
+ 2. **Two different bridge processes** — the phone attached to the hub's serve
473
+ bridge while the CLI runs its own bridge: live events do not cross
474
+ processes by design (only session listings do). The CLI then only ever
475
+ updates for its own turns.
476
+ 3. **martty stdio wedge** — the TUI's own input thread stalls; the bridge's
477
+ notifies buffer into the pipe and the mobile (WS path) is unaffected.
478
+ Bridge-side nothing is wrong; typing in the frozen CLI would also be dead.
479
+
480
+ **If it recurs, capture before closing anything:** whether typing still works
481
+ in the frozen CLI (separates hypothesis 3 from 1/2); the bridge's stderr with
482
+ `ZCODE_ACP_DEBUG=1` (do `session/update` notifies still leave?); the hub's
483
+ instance listing (`GET /api/instances`) — which bridge id the phone's
484
+ conversation is on vs the CLI's; and both ends' session ids (CLI transcript vs
485
+ phone). See also the resume-race diagnosis in the same period: a partial
486
+ first-entry replay is a different bug (history prefix), do not conflate.
487
+
436
488
  ## Log Debugging
437
489
 
438
490
  ### Enable verbose logging
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zcode-acp-server",
3
- "version": "0.33.0",
3
+ "version": "0.35.0",
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",
@@ -50,7 +50,7 @@
50
50
  },
51
51
  "dependencies": {
52
52
  "@agentclientprotocol/sdk": "^1.3.0",
53
- "martty": "^0.2.34",
53
+ "martty": "^0.2.36",
54
54
  "ws": "^8.21.3"
55
55
  },
56
56
  "peerDependencies": {