@sentropic/h2a-runtime 0.90.2 → 0.90.3

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.
@@ -30,6 +30,8 @@ export type HostModal = {
30
30
  readonly reason: string;
31
31
  readonly hint: string;
32
32
  };
33
+ export declare const CLAUDE_LONG_CONTEXT_CONFIRM_REASON = "Claude is waiting for the exact stale-session summary confirmation";
34
+ export declare function isClaudeLongContextConfirm(capture: string): boolean;
33
35
  /**
34
36
  * Is the pane sitting on a host modal that consumes the brief? Returns the
35
37
  * exact reason so the launch can FAIL LOUDLY instead of waiting forever.
@@ -81,6 +83,13 @@ export declare function countOccurrences(capture: string, probe: string): number
81
83
  * "the composer holds my brief" from "the terminal echoed my keystrokes".
82
84
  */
83
85
  export declare function paneHasDrawnUi(capture: string, minLines?: number): boolean;
86
+ /**
87
+ * A drawn composer is not necessarily ready: after stale-session confirmation
88
+ * Claude renders a composer while summary compaction is still running, and a
89
+ * submitted prompt is only queued. That work must never count as the resumed
90
+ * objective's activity proof.
91
+ */
92
+ export declare function paneHasBlockingActivity(capture: string): boolean;
84
93
  export type PromptDeliveryDeps = {
85
94
  /** Visible text of the pane, or undefined when tmux cannot be read. */
86
95
  readonly capturePane: (pane: string) => string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-delivery.d.ts","sourceRoot":"","sources":["../src/prompt-delivery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prompt-delivery.d.ts","sourceRoot":"","sources":["../src/prompt-delivery.ts"],"names":[],"mappings":"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"}
@@ -31,9 +31,26 @@
31
31
  * wordings would only ever list the ones that already bit us. What they share is
32
32
  * the shape — `› 1.` choices plus an explicit "press enter to …".
33
33
  */
34
- const MODAL_CHOICE = /(^|\n)\s*[›>]?\s*1\.\s+\S/;
35
- const MODAL_CONFIRM = /press (?:enter|return) to (?:continue|confirm|select)/i;
34
+ const MODAL_CHOICE = /(^|\n)\s*[›>❯]?\s*1\.\s+\S/;
35
+ const MODAL_CONFIRM = /(?:press\s+)?(?:enter|return) to (?:continue|confirm|select)/i;
36
+ /**
37
+ * Claude Code's stale-session resume gate. This is deliberately narrower than
38
+ * the generic modal detector: relaunch may auto-confirm this one safe choice,
39
+ * but must leave every other host decision to a human.
40
+ */
41
+ const CLAUDE_LONG_CONTEXT_CONFIRM = /this session is\s+\d+(?:d|h)(?:\s+\d+(?:h|m))?\s+old and\s+\d+(?:\.\d+)?[kmg]?\s+tokens\.[\s\S]*?resuming the full session will consume a substantial portion of your usage limits\.\s+we recommend resuming from a summary\.[\s\S]*?❯\s*1\.\s*resume from summary\s*\(recommended\)[\s\S]*?2\.\s*resume full session as-is[\s\S]*?3\.\s*don't ask me again[\s\S]*?enter to confirm/i;
42
+ export const CLAUDE_LONG_CONTEXT_CONFIRM_REASON = "Claude is waiting for the exact stale-session summary confirmation";
43
+ export function isClaudeLongContextConfirm(capture) {
44
+ return CLAUDE_LONG_CONTEXT_CONFIRM.test(capture);
45
+ }
36
46
  const NAMED_MODALS = [
47
+ {
48
+ match: CLAUDE_LONG_CONTEXT_CONFIRM,
49
+ modal: {
50
+ reason: CLAUDE_LONG_CONTEXT_CONFIRM_REASON,
51
+ hint: "h2a relaunch may confirm this exact summary-resume choice once before re-injecting the continuation objective",
52
+ },
53
+ },
37
54
  {
38
55
  // Recorded per repository root, so a workspace outside an approved repo
39
56
  // blocks here — and nobody will ever answer it in a background lane.
@@ -164,6 +181,15 @@ export function paneHasDrawnUi(capture, minLines = 3) {
164
181
  return (capture.split("\n").filter((line) => line.trim().length > 0).length >=
165
182
  minLines);
166
183
  }
184
+ /**
185
+ * A drawn composer is not necessarily ready: after stale-session confirmation
186
+ * Claude renders a composer while summary compaction is still running, and a
187
+ * submitted prompt is only queued. That work must never count as the resumed
188
+ * objective's activity proof.
189
+ */
190
+ export function paneHasBlockingActivity(capture) {
191
+ return /compacting conversation|press up to edit queued messages/i.test(capture);
192
+ }
167
193
  const DEFAULTS = {
168
194
  timeoutMs: 90_000,
169
195
  pollMs: 750,
@@ -227,7 +253,8 @@ function waitUntilReady(pane, deps, options) {
227
253
  if (unreadable >= 3)
228
254
  return { ok: false, unreadable: true };
229
255
  }
230
- else if (paneHasDrawnUi(capture)) {
256
+ else if (paneHasDrawnUi(capture) &&
257
+ !paneHasBlockingActivity(capture)) {
231
258
  unreadable = 0;
232
259
  const before = deps.cpuMs(pane);
233
260
  const startedAt = deps.now();
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-delivery.js","sourceRoot":"","sources":["../src/prompt-delivery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prompt-delivery.js","sourceRoot":"","sources":["../src/prompt-delivery.ts"],"names":[],"mappings":"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"}
@@ -10,20 +10,33 @@
10
10
  * convId (from the registry), never "most recent", so the N sessions that share
11
11
  * a cwd never collide on one .jsonl.
12
12
  */
13
+ import { type PromptDeliveryResult } from "./prompt-delivery.js";
13
14
  export type ResumeLaunch = {
14
15
  command: string;
15
16
  args: string[];
16
17
  display: string;
17
18
  };
18
19
  export type RelaunchSafety = {
19
- /** True only when the pane is a shell with no live worker descendant. */
20
- idle: boolean;
21
- /** The hard floor: true also covers indeterminate liveness. */
20
+ /** True only when the shell has no live CLI worker descendant. */
21
+ dead: boolean;
22
+ /** A live worker is present, whether parked or actively working. Never kill it. */
23
+ activatable: boolean;
24
+ /** Missing or changing evidence is never permission to kill. */
25
+ indeterminate: boolean;
26
+ /** The hard floor: true while a live worker crosses the CPU threshold. */
22
27
  activelyWorking: boolean;
23
28
  reason: string;
24
29
  rateMsPerSecond?: number;
30
+ /** Present only for a proven-dead pane that can be compare-and-swapped before kill. */
31
+ identity?: RelaunchKillIdentity;
32
+ };
33
+ /** The tmux pane generation observed while proving a session has no worker. */
34
+ export type RelaunchKillIdentity = {
35
+ pane: string;
36
+ panePid: number;
25
37
  };
26
38
  export type RelaunchSafetySample = {
39
+ pane?: string | undefined;
27
40
  paneCommand?: string | undefined;
28
41
  panePid?: number | undefined;
29
42
  firstWorkerPid?: number | undefined;
@@ -42,6 +55,47 @@ export type RelaunchSafetySample = {
42
55
  * receives the hard working floor.
43
56
  */
44
57
  export declare function decideRelaunchSafety(sample: RelaunchSafetySample): RelaunchSafety;
58
+ export declare const RELAUNCH_CONTINUATION_PROMPT = "Continue working autonomously on the standing objective in this resumed conversation. Re-read the latest user request, identify the next incomplete step, and act on it now. Do not stop at the input prompt or wait for another nudge.";
59
+ /**
60
+ * Prefer a durable delegated task when the registry has one; otherwise the
61
+ * resumed conversation remains the authority for its standing objective.
62
+ */
63
+ export declare function relaunchContinuationPrompt(task?: string): string;
64
+ export type RelaunchWakeDeps = {
65
+ /** The existing paste/submit/activity proof, bound to the relaunched pane. */
66
+ deliverContinuation: (prompt: string) => PromptDeliveryResult;
67
+ /** One Enter key event; called only after the exact Claude prompt was seen. */
68
+ submitConfirmation: () => boolean;
69
+ /** Full visible pane used to prove that the confirmation actually cleared. */
70
+ capturePane: () => string | undefined;
71
+ sleep: (ms: number) => void;
72
+ now: () => number;
73
+ };
74
+ export type RelaunchWakeResult = {
75
+ state: "working";
76
+ confirmation: "not-present" | "auto-passed";
77
+ delivery: Extract<PromptDeliveryResult, {
78
+ state: "working";
79
+ }>;
80
+ } | {
81
+ state: "failed";
82
+ confirmation: "not-present" | "auto-passed" | "send-failed";
83
+ reason: string;
84
+ capture: string;
85
+ delivery?: Exclude<PromptDeliveryResult, {
86
+ state: "working";
87
+ }>;
88
+ };
89
+ export type RelaunchWakeOptions = {
90
+ confirmationClearMs?: number;
91
+ pollMs?: number;
92
+ };
93
+ /**
94
+ * Turn a resumed TUI into proved work. The first delivery attempt doubles as a
95
+ * settled-host/modal observation. Only Claude's exact stale-session prompt may
96
+ * consume an automatic Enter, exactly once; every other modal fails closed.
97
+ */
98
+ export declare function wakeRelaunchedSession(prompt: string, deps: RelaunchWakeDeps, options?: RelaunchWakeOptions): RelaunchWakeResult;
45
99
  /** Structured argv for resuming a conversation, safe to hand to a new tmux session. */
46
100
  export declare function resumeLaunchFor(profile: string, convId: string): ResumeLaunch | undefined;
47
101
  /** The shell command that resumes `convId` for `profile`, or undefined if the */
@@ -53,9 +107,13 @@ export type RelaunchCandidate = {
53
107
  /** full tmux session name, e.g. `h2a-sentropic#2` */
54
108
  name: string;
55
109
  profile: string;
56
- /** true when the shell has no working worker (dead or parked) */
57
- idle: boolean;
58
- /** Hard safety floor. Indeterminate probes must set this true. */
110
+ /** True only when the shell has no live CLI worker descendant. */
111
+ dead: boolean;
112
+ /** A live worker exists and can be woken, but must never be force-killed. */
113
+ activatable: boolean;
114
+ /** Missing or ambiguous liveness evidence; fail closed toward alive. */
115
+ indeterminate: boolean;
116
+ /** Hard safety floor while a worker is actively using CPU. */
59
117
  activelyWorking: boolean;
60
118
  /** Diagnostic reason for the hard floor or liveness projection. */
61
119
  livenessReason?: string;
@@ -84,16 +142,22 @@ export type RelaunchPlan = {
84
142
  skipped: RelaunchSkip[];
85
143
  };
86
144
  export type PlanRelaunchOptions = {
87
- /** A forced restart may replace a CLI that is still running. */
145
+ /** A forced restart kill/recreates an eligible dead session. */
88
146
  force?: boolean;
89
147
  /** Bulk operations must leave human-facing agent CLIs alone unless opted in. */
90
148
  excludeInteractiveAgents?: boolean;
91
149
  };
92
150
  export declare function isInteractiveAgentProfile(profile: string): boolean;
93
151
  /**
94
- * Decide what to relaunch. Pure: takes fully-resolved candidates (idle flag +
95
- * convId already gathered) so it is unit-testable without tmux/registry I/O.
96
- * Skips running sessions (never disturb a live CLI), sessions with no known
152
+ * A kill is permitted only after proving that the shell has no live worker.
153
+ * Every other state, including a parked worker or incomplete evidence, is
154
+ * preserved as alive.
155
+ */
156
+ export declare function isRelaunchKillable(safety: Pick<RelaunchSafety, "dead" | "activatable" | "indeterminate" | "activelyWorking">): boolean;
157
+ /**
158
+ * Decide what to relaunch. Pure: takes fully-resolved liveness candidates +
159
+ * convId already gathered, so it is unit-testable without tmux/registry I/O.
160
+ * Skips every live or indeterminate session, sessions with no known
97
161
  * convId (relaunch by hand rather than guess and risk a collision), and
98
162
  * profiles with no resume form. Also refuses to point two sessions at the SAME
99
163
  * convId (defensive: the registry should already be 1:1).
@@ -1 +1 @@
1
- {"version":3,"file":"relaunch.d.ts","sourceRoot":"","sources":["../src/relaunch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAQH,MAAM,MAAM,YAAY,GAAG;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,yEAAyE;IACzE,IAAI,EAAE,OAAO,CAAC;IACd,+DAA+D;IAC/D,eAAe,EAAE,OAAO,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAChC,CAAC;AAIF;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,oBAAoB,GAC3B,cAAc,CAkFhB;AAED,uFAAuF;AACvF,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GACb,YAAY,GAAG,SAAS,CAU1B;AAED,iFAAiF;AACjF,+CAA+C;AAC/C,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GACb,MAAM,GAAG,SAAS,CAEpB;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,qCAAqC;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,qDAAqD;IACrD,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,iEAAiE;IACjE,IAAI,EAAE,OAAO,CAAC;IACd,kEAAkE;IAClE,eAAe,EAAE,OAAO,CAAC;IACzB,mEAAmE;IACnE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,4DAA4D;IAC5D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uEAAuE;IACvE,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,sEAAsE;IACtE,GAAG,EAAE,MAAM,CAAC;IACZ,uEAAuE;IACvE,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAE5D,MAAM,MAAM,YAAY,GAAG;IACzB,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,OAAO,EAAE,YAAY,EAAE,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,gEAAgE;IAChE,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,gFAAgF;IAChF,wBAAwB,CAAC,EAAE,OAAO,CAAC;CACpC,CAAC;AAEF,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAIlE;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAC1B,UAAU,EAAE,aAAa,CAAC,iBAAiB,CAAC,EAC5C,OAAO,GAAE,mBAAwB,GAChC,YAAY,CA8Ed"}
1
+ {"version":3,"file":"relaunch.d.ts","sourceRoot":"","sources":["../src/relaunch.ts"],"names":[],"mappings":"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"}
package/dist/relaunch.js CHANGED
@@ -12,6 +12,7 @@
12
12
  */
13
13
  import { isCliProfile, resolveProfile, resumeArgsFor } from "./profiles.js";
14
14
  import { cpuRateMsPerSecond, DEFAULT_WORKING_CPU_MS_PER_SECOND, } from "./session-lease.js";
15
+ import { CLAUDE_LONG_CONTEXT_CONFIRM_REASON, isClaudeLongContextConfirm, } from "./prompt-delivery.js";
15
16
  const SHELL_COMMANDS = new Set(["bash", "sh"]);
16
17
  /**
17
18
  * Pure relaunch liveness projection.
@@ -25,7 +26,9 @@ const SHELL_COMMANDS = new Set(["bash", "sh"]);
25
26
  export function decideRelaunchSafety(sample) {
26
27
  if (!SHELL_COMMANDS.has(sample.paneCommand ?? "")) {
27
28
  return {
28
- idle: false,
29
+ dead: false,
30
+ activatable: false,
31
+ indeterminate: true,
29
32
  activelyWorking: true,
30
33
  reason: "liveness indeterminate: pane command is not a readable shell",
31
34
  };
@@ -45,7 +48,9 @@ export function decideRelaunchSafety(sample) {
45
48
  !Number.isFinite(sample.elapsedMs) ||
46
49
  sample.elapsedMs <= 0) {
47
50
  return {
48
- idle: false,
51
+ dead: false,
52
+ activatable: false,
53
+ indeterminate: true,
49
54
  activelyWorking: true,
50
55
  reason: "liveness indeterminate: pane, worker, or CPU sample unreadable",
51
56
  };
@@ -54,18 +59,26 @@ export function decideRelaunchSafety(sample) {
54
59
  // is not evidence of idleness. The safe outcome is to leave the session.
55
60
  if (sample.firstWorkerPid !== sample.secondWorkerPid) {
56
61
  return {
57
- idle: false,
62
+ dead: false,
63
+ activatable: false,
64
+ indeterminate: true,
58
65
  activelyWorking: true,
59
66
  reason: "liveness indeterminate: worker identity changed during sample",
60
67
  };
61
68
  }
62
69
  // busiestDescendant returns the pane root when the wrapper has no live
63
- // descendant. This is the only shape that proves a dead/parked shell.
70
+ // descendant. This is the only shape that proves a dead shell.
64
71
  if (sample.firstWorkerPid === sample.panePid) {
72
+ const identity = typeof sample.pane === "string" && sample.pane.length > 0
73
+ ? { pane: sample.pane, panePid: sample.panePid }
74
+ : undefined;
65
75
  return {
66
- idle: true,
76
+ dead: true,
77
+ activatable: false,
78
+ indeterminate: false,
67
79
  activelyWorking: false,
68
80
  reason: "no live CLI worker descendant",
81
+ ...(identity ? { identity } : {}),
69
82
  };
70
83
  }
71
84
  const rateMsPerSecond = cpuRateMsPerSecond({
@@ -76,24 +89,104 @@ export function decideRelaunchSafety(sample) {
76
89
  }, sample.secondCpuMs, new Date(sample.elapsedMs).toISOString());
77
90
  if (rateMsPerSecond === undefined) {
78
91
  return {
79
- idle: false,
92
+ dead: false,
93
+ activatable: false,
94
+ indeterminate: true,
80
95
  activelyWorking: true,
81
96
  reason: "liveness indeterminate: CPU rate could not be computed",
82
97
  };
83
98
  }
84
99
  if (rateMsPerSecond >= DEFAULT_WORKING_CPU_MS_PER_SECOND) {
85
100
  return {
86
- idle: false,
101
+ dead: false,
102
+ activatable: true,
103
+ indeterminate: false,
87
104
  activelyWorking: true,
88
105
  rateMsPerSecond,
89
106
  reason: "live working CLI — never killed (even with --force)",
90
107
  };
91
108
  }
92
109
  return {
93
- idle: true,
110
+ dead: false,
111
+ activatable: true,
112
+ indeterminate: false,
94
113
  activelyWorking: false,
95
114
  rateMsPerSecond,
96
- reason: "live CLI worker is parked below the working CPU threshold",
115
+ reason: "live parked CLI worker is activatable — never force-killed",
116
+ };
117
+ }
118
+ export const RELAUNCH_CONTINUATION_PROMPT = "Continue working autonomously on the standing objective in this resumed conversation. Re-read the latest user request, identify the next incomplete step, and act on it now. Do not stop at the input prompt or wait for another nudge.";
119
+ /**
120
+ * Prefer a durable delegated task when the registry has one; otherwise the
121
+ * resumed conversation remains the authority for its standing objective.
122
+ */
123
+ export function relaunchContinuationPrompt(task) {
124
+ const objective = task?.trim();
125
+ return objective
126
+ ? `Continue working autonomously on this registered objective:\n\n${objective}\n\nResume the next incomplete step now; do not stop at the input prompt or wait for another nudge.`
127
+ : RELAUNCH_CONTINUATION_PROMPT;
128
+ }
129
+ /**
130
+ * Turn a resumed TUI into proved work. The first delivery attempt doubles as a
131
+ * settled-host/modal observation. Only Claude's exact stale-session prompt may
132
+ * consume an automatic Enter, exactly once; every other modal fails closed.
133
+ */
134
+ export function wakeRelaunchedSession(prompt, deps, options = {}) {
135
+ let delivery = deps.deliverContinuation(prompt);
136
+ if (delivery.state === "working") {
137
+ return { state: "working", confirmation: "not-present", delivery };
138
+ }
139
+ if (delivery.state !== "host-modal" ||
140
+ delivery.reason !== CLAUDE_LONG_CONTEXT_CONFIRM_REASON) {
141
+ return {
142
+ state: "failed",
143
+ confirmation: "not-present",
144
+ reason: delivery.state === "submitted-idle"
145
+ ? "the continuation objective was submitted but the agent stayed idle"
146
+ : delivery.reason,
147
+ capture: "capture" in delivery ? delivery.capture : "",
148
+ delivery,
149
+ };
150
+ }
151
+ if (!deps.submitConfirmation()) {
152
+ return {
153
+ state: "failed",
154
+ confirmation: "send-failed",
155
+ reason: "tmux could not submit Claude's stale-session summary confirmation",
156
+ capture: delivery.capture,
157
+ delivery,
158
+ };
159
+ }
160
+ const deadline = deps.now() + (options.confirmationClearMs ?? 10_000);
161
+ const pollMs = options.pollMs ?? 250;
162
+ let capture = delivery.capture;
163
+ for (;;) {
164
+ deps.sleep(pollMs);
165
+ capture = deps.capturePane() ?? capture;
166
+ if (!isClaudeLongContextConfirm(capture))
167
+ break;
168
+ if (deps.now() >= deadline) {
169
+ return {
170
+ state: "failed",
171
+ confirmation: "auto-passed",
172
+ reason: "Claude's stale-session confirmation did not clear after one Enter",
173
+ capture,
174
+ delivery,
175
+ };
176
+ }
177
+ }
178
+ delivery = deps.deliverContinuation(prompt);
179
+ if (delivery.state === "working") {
180
+ return { state: "working", confirmation: "auto-passed", delivery };
181
+ }
182
+ return {
183
+ state: "failed",
184
+ confirmation: "auto-passed",
185
+ reason: delivery.state === "submitted-idle"
186
+ ? "the continuation objective was submitted but the agent stayed idle"
187
+ : delivery.reason,
188
+ capture: "capture" in delivery ? delivery.capture : capture,
189
+ delivery,
97
190
  };
98
191
  }
99
192
  /** Structured argv for resuming a conversation, safe to hand to a new tmux session. */
@@ -119,9 +212,20 @@ export function isInteractiveAgentProfile(profile) {
119
212
  return ["claude", "claude-code", "codex", "agy", "antigravity"].includes(profile);
120
213
  }
121
214
  /**
122
- * Decide what to relaunch. Pure: takes fully-resolved candidates (idle flag +
123
- * convId already gathered) so it is unit-testable without tmux/registry I/O.
124
- * Skips running sessions (never disturb a live CLI), sessions with no known
215
+ * A kill is permitted only after proving that the shell has no live worker.
216
+ * Every other state, including a parked worker or incomplete evidence, is
217
+ * preserved as alive.
218
+ */
219
+ export function isRelaunchKillable(safety) {
220
+ return (safety.dead &&
221
+ !safety.activatable &&
222
+ safety.activelyWorking === false &&
223
+ safety.indeterminate === false);
224
+ }
225
+ /**
226
+ * Decide what to relaunch. Pure: takes fully-resolved liveness candidates +
227
+ * convId already gathered, so it is unit-testable without tmux/registry I/O.
228
+ * Skips every live or indeterminate session, sessions with no known
125
229
  * convId (relaunch by hand rather than guess and risk a collision), and
126
230
  * profiles with no resume form. Also refuses to point two sessions at the SAME
127
231
  * convId (defensive: the registry should already be 1:1).
@@ -153,18 +257,16 @@ export function planRelaunch(candidates, options = {}) {
153
257
  });
154
258
  continue;
155
259
  }
156
- if (c.activelyWorking !== false) {
260
+ if (!isRelaunchKillable(c)) {
157
261
  skipped.push({
158
262
  slug: c.slug,
159
263
  reason: c.livenessReason ??
160
- "liveness indeterminate — left alone (never kill on unknown)",
264
+ (c.activatable
265
+ ? "live worker is activatable — never force-killed"
266
+ : "liveness is not proven dead — left alone (never kill on unknown)"),
161
267
  });
162
268
  continue;
163
269
  }
164
- if (!options.force && !c.idle) {
165
- skipped.push({ slug: c.slug, reason: "CLI is running — left alone" });
166
- continue;
167
- }
168
270
  if (!c.convId) {
169
271
  skipped.push({
170
272
  slug: c.slug,
@@ -1 +1 @@
1
- {"version":3,"file":"relaunch.js","sourceRoot":"","sources":["../src/relaunch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"relaunch.js","sourceRoot":"","sources":["../src/relaunch.ts"],"names":[],"mappings":"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"}
package/dist/restore.d.ts CHANGED
@@ -9,6 +9,7 @@
9
9
  import { type LayoutConfig } from "./config.js";
10
10
  import { type RegistryEntry } from "./registry.js";
11
11
  import { type LocalSession } from "./tmux.js";
12
+ import type { SessionClass } from "./session-class.js";
12
13
  export type DiscoveredSession = {
13
14
  project: string;
14
15
  mtimeMs: number;
@@ -52,28 +53,22 @@ export type RemoteTab = {
52
53
  };
53
54
  /** Discover claude + codex sessions under ~/src/* newer than maxAgeMs. */
54
55
  export declare function discoverSessions(maxAgeMs: number, home?: string): DiscoveredSession[];
56
+ /** Out-of-registry facts allowed to classify a legacy session as human. */
57
+ export type LegacySessionEvidence = {
58
+ readonly home: string;
59
+ readonly liveTmuxSessions: ReadonlyArray<Pick<LocalSession, "name" | "path" | "profile">>;
60
+ /** A caller that obtained an explicit human confirmation may name its entry. */
61
+ readonly humanConfirmedIds?: ReadonlySet<string>;
62
+ };
63
+ /** Snapshot the external evidence once, rather than trusting a registry default. */
64
+ export declare function legacySessionEvidence(home?: string, liveTmuxSessions?: ReadonlyArray<Pick<LocalSession, "name" | "path" | "profile">>): LegacySessionEvidence;
55
65
  /**
56
- * Restore gate: may this registry record become a dev tab?
57
- *
58
- * An ended record never can. A record carrying an explicit class is judged on
59
- * that class — which is the whole point of stamping it, and keeps a background
60
- * launch or a delegated job out.
61
- *
62
- * A record with NO class is a LEGACY record, and this is where the gate has to
63
- * be careful in both directions. Enrollment has required a class since the
64
- * classification landed (registry.ts refuses an enrollment without one), so an
65
- * unclassified record can only predate it. Judging those closed took out every
66
- * session enrolled before that day: measured, restore returned an EMPTY list for
67
- * three live named sessions of one repo, which is exactly what the owner
68
- * observed as "restore does not restore my multi-session projects" — the filter
69
- * was tightened to opt-in while nothing back-filled the class.
70
- *
71
- * So legacy records fall back to the discriminator that existed when they were
72
- * written: a delegated job is never human, anything else was a session someone
73
- * launched. That is narrower than it looks — it cannot readmit a NEW background
74
- * session, because a new record always carries its class.
66
+ * Classify a legacy registry record from evidence held outside the registry.
67
+ * Absence is not proof of a human: anything inconclusive is background.
75
68
  */
76
- export declare function isHumanFacingSession(e: Pick<RegistryEntry, "sessionClass" | "endedAt" | "role">): boolean;
69
+ export declare function deriveLegacySessionClass(e: RegistryEntry, evidence: LegacySessionEvidence): SessionClass;
70
+ /** Restore gate: only explicit or externally proven human sessions are restorable. */
71
+ export declare function isHumanFacingSession(e: RegistryEntry, evidence?: LegacySessionEvidence): boolean;
77
72
  /**
78
73
  * Last `customTitle` recorded in a claude conversation transcript — i.e. the
79
74
  * human-facing session name the SessionStart hook could NOT capture (the hook
@@ -125,7 +120,7 @@ export type ConvIdResolution = {
125
120
  * `readConversationCustomTitle`; tests pass a stub map), so the whole join is
126
121
  * unit-testable with plain registry entries.
127
122
  */
128
- export declare function reconcileRunConvIds(entries: readonly RegistryEntry[], customTitleFor: (cwd: string, convId: string) => string | undefined): ConvIdResolution;
123
+ export declare function reconcileRunConvIds(entries: readonly RegistryEntry[], customTitleFor: (cwd: string, convId: string) => string | undefined, evidence?: LegacySessionEvidence): ConvIdResolution;
129
124
  /**
130
125
  * REGISTRY-FIRST discovery: durable registry entries (local kinds) mapped to
131
126
  * discovered sessions. label/cwd/convId come straight from enrolment, no
@@ -137,7 +132,7 @@ export declare function reconcileRunConvIds(entries: readonly RegistryEntry[], c
137
132
  * dedups the `hook` twin of a conversation already represented by a run session.
138
133
  * Omitted (the plain 2-arg call) → legacy behaviour, one session per entry.
139
134
  */
140
- export declare function registrySessions(home?: string, entries?: RegistryEntry[], resolution?: ConvIdResolution): DiscoveredSession[];
135
+ export declare function registrySessions(home?: string, entries?: RegistryEntry[], resolution?: ConvIdResolution, evidence?: LegacySessionEvidence): DiscoveredSession[];
141
136
  /**
142
137
  * Merge discovery sources by session identity, never by project. One live
143
138
  * registry row must not make every other conversation under that project vanish.