@comput/pi-intercom 0.6.1 → 0.9.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.
Files changed (47) hide show
  1. package/README.md +113 -8
  2. package/dist/config.d.ts +12 -0
  3. package/dist/config.js +94 -22
  4. package/dist/config.js.map +1 -1
  5. package/dist/core-monitor.d.ts +30 -0
  6. package/dist/core-monitor.js +528 -0
  7. package/dist/core-monitor.js.map +1 -0
  8. package/dist/core-pane-close.d.ts +34 -0
  9. package/dist/core-pane-close.js +335 -0
  10. package/dist/core-pane-close.js.map +1 -0
  11. package/dist/core-worker-layout.d.ts +50 -0
  12. package/dist/core-worker-layout.js +236 -0
  13. package/dist/core-worker-layout.js.map +1 -0
  14. package/dist/herdr-core.d.ts +53 -0
  15. package/dist/herdr-core.js +380 -0
  16. package/dist/herdr-core.js.map +1 -0
  17. package/dist/index.js +60 -14
  18. package/dist/index.js.map +1 -1
  19. package/dist/launcher.d.ts +2 -0
  20. package/dist/launcher.js +59 -3
  21. package/dist/launcher.js.map +1 -1
  22. package/dist/monitor-launcher.d.ts +8 -0
  23. package/dist/monitor-launcher.js +111 -25
  24. package/dist/monitor-launcher.js.map +1 -1
  25. package/dist/pane-close.js +3 -0
  26. package/dist/pane-close.js.map +1 -1
  27. package/dist/reminders.d.ts +28 -0
  28. package/dist/reminders.js +81 -0
  29. package/dist/reminders.js.map +1 -0
  30. package/dist/runtime.d.ts +28 -2
  31. package/dist/runtime.js +139 -11
  32. package/dist/runtime.js.map +1 -1
  33. package/package.json +14 -6
  34. package/references/herdr-core-migration.md +44 -0
  35. package/references/releasing.md +90 -0
  36. package/references/v1-specification.md +11 -8
  37. package/src/config.ts +69 -17
  38. package/src/core-monitor.ts +410 -0
  39. package/src/core-pane-close.ts +328 -0
  40. package/src/core-worker-layout.ts +240 -0
  41. package/src/herdr-core.ts +287 -0
  42. package/src/index.ts +55 -15
  43. package/src/launcher.ts +55 -3
  44. package/src/monitor-launcher.ts +95 -21
  45. package/src/pane-close.ts +2 -0
  46. package/src/reminders.ts +69 -0
  47. package/src/runtime.ts +122 -12
@@ -0,0 +1,81 @@
1
+ export const REMINDER_INTERVAL_MS = 5 * 60 * 1000;
2
+ export const REMINDER_TEXT = 'Intercom reminder: Review outstanding delegated work and worker reports. If follow-up is needed, take the next appropriate action. Do not assume workers have finished or stopped.\n\nIf there is genuinely nothing to follow up on, call intercom_stop_reminders. Otherwise, reminders continue every five minutes; a new worker call resets the timer.\n\nThis reminder does not authorize new work, retries, worker closure, or publication.';
3
+ const clock = {
4
+ schedule(callback, milliseconds) {
5
+ const timer = setTimeout(callback, milliseconds);
6
+ timer.unref();
7
+ return () => clearTimeout(timer);
8
+ },
9
+ };
10
+ /** Ephemeral reminder only: never worker actions, network retries or a backlog. */
11
+ export class CoordinatorReminders {
12
+ host;
13
+ timer;
14
+ generation = 0;
15
+ tick = 0;
16
+ checking = false;
17
+ disposed = false;
18
+ cancel;
19
+ detachOwner;
20
+ constructor(host, timer = clock) {
21
+ this.host = host;
22
+ this.timer = timer;
23
+ }
24
+ arm(signal) {
25
+ if (this.disposed || signal?.aborted)
26
+ return;
27
+ this.stop();
28
+ const generation = this.generation;
29
+ if (signal) {
30
+ const abort = () => { if (this.generation === generation)
31
+ this.stop(); };
32
+ signal.addEventListener('abort', abort, { once: true });
33
+ this.detachOwner = () => signal.removeEventListener('abort', abort);
34
+ }
35
+ this.schedule(generation);
36
+ }
37
+ stop() {
38
+ this.generation++;
39
+ this.tick++;
40
+ this.cancel?.();
41
+ this.cancel = undefined;
42
+ this.detachOwner?.();
43
+ this.detachOwner = undefined;
44
+ }
45
+ dispose() { this.stop(); this.disposed = true; }
46
+ current(generation, tick) {
47
+ return !this.disposed && this.generation === generation && this.tick === tick;
48
+ }
49
+ schedule(generation) {
50
+ this.cancel = this.timer.schedule(() => {
51
+ if (this.disposed || generation !== this.generation)
52
+ return;
53
+ this.cancel = undefined;
54
+ const tick = ++this.tick;
55
+ this.schedule(generation);
56
+ // A slow role read never creates concurrent reads or a queued reminder.
57
+ // Advancing tick also invalidates any read from the preceding interval.
58
+ if (this.checking)
59
+ return;
60
+ this.checking = true;
61
+ void (async () => {
62
+ try {
63
+ const coordinator = await this.host.isCoordinator();
64
+ if (!this.current(generation, tick))
65
+ return;
66
+ if (!coordinator) {
67
+ this.stop();
68
+ return;
69
+ }
70
+ if (!this.host.busy())
71
+ this.host.deliver(REMINDER_TEXT);
72
+ }
73
+ catch { /* Unknown role/read/delivery outcome: no blind immediate replay. */ }
74
+ finally {
75
+ this.checking = false;
76
+ }
77
+ })();
78
+ }, REMINDER_INTERVAL_MS);
79
+ }
80
+ }
81
+ //# sourceMappingURL=reminders.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reminders.js","sourceRoot":"","sources":["../src/reminders.ts"],"names":[],"mappings":"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"}
package/dist/runtime.d.ts CHANGED
@@ -1,8 +1,9 @@
1
1
  import { type Observer, type EventType, type EventMetadata } from './observability.js';
2
- import { ConfigStore, type Agent, type Config } from './config.js';
2
+ import { ConfigStore, type MonitorSettings, type Agent, type Config } from './config.js';
3
3
  import { listen, send, type Endpoint, type Envelope, type Kind } from './transport.js';
4
4
  import { probeWorker } from './connections.js';
5
5
  import { type CloseProvider } from './handoff.js';
6
+ import { type ReminderClock } from './reminders.js';
6
7
  export declare const UNSUPPORTED_CANCELLATION = "Unsupported Pi host: stop_worker and legacy graceful-close control are disabled. Pi 0.84.4 extension abort does not cancel retry backoff/continuations; graceful shutdown cannot guarantee no queued work restarts. No cancellation or shutdown was performed. close_worker uses a separate supported-provider owned-pane closure contract, not graceful cancellation. See references/implementation-blocker.md. A verified supported host API is required for graceful cancellation (no version-only override).";
7
8
  export interface Host {
8
9
  sessionId(): string;
@@ -15,8 +16,20 @@ export interface Host {
15
16
  export interface LaunchRequest {
16
17
  multiplexer: 'herdr' | 'none';
17
18
  cwd: string;
19
+ workspaceRoot: string;
18
20
  sessionId?: string;
19
21
  }
22
+ export interface MonitorRequest {
23
+ root: string;
24
+ sessionId: string;
25
+ assertCurrent(): void;
26
+ }
27
+ export interface MonitorOperations {
28
+ open(request: MonitorRequest & {
29
+ placement: MonitorSettings['placement'];
30
+ }): Promise<unknown>;
31
+ close(request: MonitorRequest): Promise<unknown>;
32
+ }
20
33
  export interface RuntimeOptions {
21
34
  launch(request: LaunchRequest): Promise<unknown>;
22
35
  listen?: typeof listen;
@@ -27,6 +40,10 @@ export interface RuntimeOptions {
27
40
  closeProvider?: CloseProvider;
28
41
  /** Test seam; production defaults to 120 seconds, values above that are capped. */
29
42
  closeTimeoutMs?: number;
43
+ reminderClock?: ReminderClock;
44
+ monitor?: MonitorOperations;
45
+ /** Explicit launcher-provided root must equal canonical cwd; no parent-root exception. */
46
+ workspaceRoot?: string;
30
47
  }
31
48
  export declare class Intercom {
32
49
  readonly host: Host;
@@ -36,6 +53,8 @@ export declare class Intercom {
36
53
  private active;
37
54
  private generation;
38
55
  private initialId;
56
+ private configuredRoot?;
57
+ private configuredFile?;
39
58
  responsibility?: Agent;
40
59
  private observer?;
41
60
  private closing?;
@@ -44,6 +63,9 @@ export declare class Intercom {
44
63
  private probeController;
45
64
  private resumeFences;
46
65
  private handoff?;
66
+ private reminders?;
67
+ private reminderRevision;
68
+ private reminderInvocation;
47
69
  workerStarted(): void;
48
70
  workerSettled(successfulToolCallIds: ReadonlySet<string>): void;
49
71
  private captureObserver;
@@ -58,6 +80,10 @@ export declare class Intercom {
58
80
  config: Config;
59
81
  me?: Agent;
60
82
  }>;
83
+ getMonitorSettings(): Promise<MonitorSettings>;
84
+ /** Automatic admission is internal: explicit open remains allowed with disabled auto-open or no workers. */
85
+ autoOpenMonitor(assertAdmission?: () => void): Promise<unknown>;
86
+ private operateMonitor;
61
87
  /** Accept old configs, but retire the removed browser dashboard's discovery metadata. */
62
88
  retireDashboardMetadata(): Promise<void>;
63
89
  reload(): Promise<void>;
@@ -65,6 +91,6 @@ export declare class Intercom {
65
91
  report(): Promise<void>;
66
92
  receive(message: Envelope): Promise<void>;
67
93
  private handleReceive;
68
- tool(operation: string, args: Record<string, unknown>, toolCallId?: string): Promise<unknown>;
94
+ tool(operation: string, args: Record<string, unknown>, toolCallId?: string, reminderSignal?: AbortSignal): Promise<unknown>;
69
95
  private launchObserved;
70
96
  }
package/dist/runtime.js CHANGED
@@ -1,13 +1,15 @@
1
1
  import path from 'node:path';
2
2
  import { randomUUID } from 'node:crypto';
3
+ import { realpath } from 'node:fs/promises';
3
4
  import { LocalObserver, LOG_LIMITS, observationError } from './observability.js';
4
- import { ConfigStore, coordinator, directory, fail, named, requireCoordinator } from './config.js';
5
+ import { ConfigStore, coordinator, directory, fail, named, requireCoordinator, text, validateConfig, monitorSettings, validateMonitorSettings } from './config.js';
5
6
  import { listen, send, reportPayload } from './transport.js';
6
7
  import { saveWorkerReport } from './reports.js';
7
8
  import { readObservationSnapshot } from './snapshot.js';
8
9
  import { workerStatusPage } from './worker-status.js';
9
10
  import { probeWorker, probeWorkers } from './connections.js';
10
11
  import { HandoffWorkflow, HANDOFF_KINDS, fencedClose } from './handoff.js';
12
+ import { CoordinatorReminders } from './reminders.js';
11
13
  export const UNSUPPORTED_CANCELLATION = 'Unsupported Pi host: stop_worker and legacy graceful-close control are disabled. Pi 0.84.4 extension abort does not cancel retry backoff/continuations; graceful shutdown cannot guarantee no queued work restarts. No cancellation or shutdown was performed. close_worker uses a separate supported-provider owned-pane closure contract, not graceful cancellation. See references/implementation-blocker.md. A verified supported host API is required for graceful cancellation (no version-only override).';
12
14
  export class Intercom {
13
15
  host;
@@ -17,6 +19,8 @@ export class Intercom {
17
19
  active = false;
18
20
  generation = 0;
19
21
  initialId = '';
22
+ configuredRoot;
23
+ configuredFile;
20
24
  responsibility;
21
25
  observer;
22
26
  closing;
@@ -25,6 +29,9 @@ export class Intercom {
25
29
  probeController = new AbortController();
26
30
  resumeFences = new Map();
27
31
  handoff;
32
+ reminders;
33
+ reminderRevision = 0;
34
+ reminderInvocation = 0;
28
35
  workerStarted() { this.handoff?.workerStarted(); }
29
36
  workerSettled(successfulToolCallIds) { this.handoff?.workerSettled(successfulToolCallIds); }
30
37
  captureObserver() {
@@ -45,6 +52,8 @@ export class Intercom {
45
52
  const id = this.host.sessionId();
46
53
  if (!this.active || id !== this.initialId)
47
54
  fail('session is inactive or replaced');
55
+ if (this.configuredRoot !== undefined && (this.store.root !== this.configuredRoot || this.store.file !== this.configuredFile))
56
+ fail('config store boundary changed');
48
57
  return id;
49
58
  }
50
59
  validity() {
@@ -63,22 +72,34 @@ export class Intercom {
63
72
  fail('runtime already active');
64
73
  this.initialId = this.host.sessionId();
65
74
  this.active = true;
75
+ this.configuredRoot = undefined;
76
+ this.configuredFile = undefined;
66
77
  this.probeController = new AbortController();
67
78
  this.resumeFences.clear();
68
79
  const generation = ++this.generation, assertValid = this.validity();
69
80
  let record = this.captureObserver();
70
81
  try {
71
- const discovered = await ConfigStore.discover(this.host.cwd);
82
+ const discovered = this.options.workspaceRoot !== undefined
83
+ ? await ConfigStore.workspace(this.host.cwd, this.options.workspaceRoot)
84
+ : await ConfigStore.discover(this.host.cwd);
85
+ assertValid();
86
+ const root = discovered?.root ?? await realpath(this.host.cwd);
87
+ assertValid();
88
+ this.store = this.options.store?.(root) ?? discovered ?? new ConfigStore(root);
89
+ if (this.store.root !== root || this.store.file !== path.join(root, '.pi-intercom', 'config.json'))
90
+ fail('config store must retain validated session root');
91
+ this.configuredRoot = root;
92
+ this.configuredFile = this.store.file;
93
+ await this.store.validateRoot(root);
94
+ assertValid();
95
+ const previous = discovered ? await this.store.read() : undefined;
72
96
  assertValid();
73
- this.store = this.options.store?.(discovered?.root ?? this.host.cwd) ?? discovered ?? new ConfigStore(this.host.cwd);
74
97
  try {
75
98
  this.observer = this.options.observe ? this.options.observe(this.store.root, this.initialId) : new LocalObserver(this.store.root, this.initialId);
76
99
  }
77
100
  catch { /* Logging is optional on failure. */ }
78
101
  record = this.captureObserver();
79
102
  record('runtime.starting');
80
- const previous = discovered ? await this.store.read() : undefined;
81
- assertValid();
82
103
  const own = previous?.agents.find(a => a.sessionId === this.id());
83
104
  const endpoint = await (this.options.listen ?? listen)(own?.port, m => { assertValid(); return this.receive(m); }, () => {
84
105
  assertValid();
@@ -100,6 +121,11 @@ export class Intercom {
100
121
  const config = await this.store.read();
101
122
  assertValid();
102
123
  const me = config.agents.find(a => a.sessionId === this.id());
124
+ this.reminders = new CoordinatorReminders({
125
+ isCoordinator: async () => { const fresh = await this.state(); assertValid(); return fresh.me?.coordinator === true; },
126
+ busy: () => this.host.busy(),
127
+ deliver: message => { assertValid(); this.host.deliver(message, false); },
128
+ }, this.options.reminderClock);
103
129
  this.handoff = new HandoffWorkflow({
104
130
  state: () => this.state(), assertCurrent: assertValid,
105
131
  update: async (mutate, guard) => {
@@ -185,6 +211,9 @@ export class Intercom {
185
211
  this.probeController.abort();
186
212
  this.handoff?.dispose();
187
213
  this.handoff = undefined;
214
+ this.reminderRevision = ++this.reminderInvocation;
215
+ this.reminders?.dispose();
216
+ this.reminders = undefined;
188
217
  const endpoint = this.endpoint;
189
218
  this.endpoint = undefined;
190
219
  this.responsibility = undefined;
@@ -225,6 +254,41 @@ export class Intercom {
225
254
  assertValid();
226
255
  return { id, config, me: config.agents.find(a => a.sessionId === id) };
227
256
  }
257
+ async getMonitorSettings() {
258
+ const assertValid = this.validity();
259
+ const { id, config } = await this.state();
260
+ assertValid();
261
+ requireCoordinator(config, id);
262
+ return monitorSettings(config);
263
+ }
264
+ /** Automatic admission is internal: explicit open remains allowed with disabled auto-open or no workers. */
265
+ async autoOpenMonitor(assertAdmission = () => { }) { return this.operateMonitor('open_monitor', {}, true, assertAdmission); }
266
+ async operateMonitor(operation, args, automatic = false, assertAdmission = () => { }) {
267
+ const lifecycle = this.validity();
268
+ const assertValid = () => { lifecycle(); assertAdmission(); };
269
+ assertValid();
270
+ if (Object.keys(args).some(key => operation === 'close_monitor' || key !== 'placement'))
271
+ fail('invalid monitor operation arguments');
272
+ if (operation === 'open_monitor' && !automatic && !['coordinator-tab', 'new-tab'].includes(args.placement))
273
+ fail('explicit monitor placement is required; ask the user if unknown');
274
+ const fresh = await this.state();
275
+ assertValid();
276
+ requireCoordinator(fresh.config, fresh.id);
277
+ const settings = monitorSettings(fresh.config);
278
+ if (automatic && (!settings.autoOpen || !fresh.config.agents.some(agent => !agent.coordinator)))
279
+ return { outcome: 'automatic monitor skipped' };
280
+ if (!this.options.monitor)
281
+ fail('monitor adapter unavailable; no pane action attempted');
282
+ const request = { root: this.store.root, sessionId: fresh.id, assertCurrent: assertValid };
283
+ const result = operation === 'open_monitor'
284
+ ? await this.options.monitor.open({ ...request, placement: (automatic ? settings.placement : args.placement) })
285
+ : await this.options.monitor.close(request);
286
+ assertValid();
287
+ const after = await this.state();
288
+ assertValid();
289
+ requireCoordinator(after.config, fresh.id);
290
+ return result;
291
+ }
228
292
  /** Accept old configs, but retire the removed browser dashboard's discovery metadata. */
229
293
  async retireDashboardMetadata() {
230
294
  const record = this.captureObserver(), assertValid = this.validity();
@@ -425,7 +489,17 @@ export class Intercom {
425
489
  }
426
490
  fail('unsupported control');
427
491
  }
428
- async tool(operation, args, toolCallId) {
492
+ async tool(operation, args, toolCallId, reminderSignal) {
493
+ // Reserve invocation order before state/directory awaits, but only VALID
494
+ // reminder actions advance the accepted revision. Invalid/nonworker calls
495
+ // must not supersede a pending stop or suppress an older valid preflight.
496
+ const invocation = ++this.reminderInvocation;
497
+ const armReminder = () => {
498
+ if (invocation >= this.reminderRevision && !reminderSignal?.aborted) {
499
+ this.reminderRevision = invocation;
500
+ this.reminders?.arm(reminderSignal);
501
+ }
502
+ };
429
503
  const record = this.captureObserver();
430
504
  const assertValid = this.validity();
431
505
  const { id, config, me } = await this.state();
@@ -471,12 +545,38 @@ export class Intercom {
471
545
  if (!me || !this.responsibility)
472
546
  fail('anonymous/unloaded worker cannot send agent messages (permissions TODO)');
473
547
  const recipient = named(config, args.to);
548
+ text(args.message, 'message', 48000);
474
549
  if (this.handoff?.workerClosing || fencedClose(me.closeJob) || this.handoff?.isClosing(recipient.sessionId) || fencedClose(recipient.closeJob))
475
550
  fail('worker close is active or uncertain; new Intercom work is fenced');
551
+ if (me.coordinator && !recipient.coordinator)
552
+ armReminder();
476
553
  await this.transmit(args.to, 'message', { message: args.message });
477
554
  return { accepted: true, completion: 'not awaited' };
478
555
  }
479
556
  requireCoordinator(config, id);
557
+ if (operation === 'configure_monitor') {
558
+ const keys = Object.keys(args);
559
+ if (!keys.length || keys.some(key => !['autoOpen', 'placement'].includes(key)))
560
+ fail('configure_monitor requires autoOpen and/or placement only');
561
+ validateMonitorSettings({ ...monitorSettings(config), ...args });
562
+ const updated = await this.store.update(id, current => {
563
+ current.monitor = { ...monitorSettings(current), ...args };
564
+ validateMonitorSettings(current.monitor);
565
+ }, assertValid);
566
+ assertValid();
567
+ return { written: true, monitor: monitorSettings(updated), paneEffects: false };
568
+ }
569
+ if (operation === 'open_monitor' || operation === 'close_monitor') {
570
+ return this.operateMonitor(operation, args);
571
+ }
572
+ if (operation === 'stop_reminders') {
573
+ const current = invocation >= this.reminderRevision;
574
+ if (current) {
575
+ this.reminderRevision = invocation;
576
+ this.reminders?.stop();
577
+ }
578
+ return { stopped: current };
579
+ }
480
580
  if (operation === 'stop_worker')
481
581
  fail(UNSUPPORTED_CANCELLATION);
482
582
  if (operation === 'configure_worker') {
@@ -486,6 +586,19 @@ export class Intercom {
486
586
  fail('worker lifecycle operation is in flight; configuration is fenced');
487
587
  };
488
588
  assertConfigurable();
589
+ // Validate the candidate without writing, so invalid input never arms a
590
+ // reminder; persistence failures after valid initiation still do.
591
+ const relative = await directory(this.store.root, args.projectDirectory);
592
+ assertConfigurable();
593
+ const candidate = { sessionId: args.sessionId, name: args.name, description: args.description,
594
+ port: args.port, projectDirectory: relative, coordinator: false };
595
+ if (candidate.sessionId === id)
596
+ fail('cannot configure coordinator as worker');
597
+ const previous = config.agents.find(a => a.sessionId === candidate.sessionId);
598
+ if (fencedClose(previous?.closeJob))
599
+ fail('worker close is active or uncertain; configuration is fenced');
600
+ validateConfig({ ...config, agents: [...config.agents.filter(a => a.sessionId !== candidate.sessionId), candidate] });
601
+ armReminder();
489
602
  await this.store.configure(id, args, assertConfigurable);
490
603
  record('config.changed', { operation: 'configure_worker', peerSessionId: args.sessionId, peerName: args.name, outcome: 'written' });
491
604
  return { written: true, reloaded: false };
@@ -498,7 +611,10 @@ export class Intercom {
498
611
  if (operation === 'create_worker') {
499
612
  const relative = await directory(this.store.root, args.projectDirectory ?? '.');
500
613
  assertValid();
501
- return this.launchObserved({ multiplexer: config.multiplexer, cwd: path.resolve(this.store.root, relative) });
614
+ if (relative !== '.')
615
+ fail('worker working directory must equal the config root; subdirectory launches would read a forbidden parent config');
616
+ armReminder();
617
+ return this.launchObserved({ multiplexer: config.multiplexer, cwd: path.resolve(this.store.root, relative), workspaceRoot: this.store.root });
502
618
  }
503
619
  const target = named(config, args.to);
504
620
  if (target.coordinator)
@@ -508,11 +624,15 @@ export class Intercom {
508
624
  fail('Owned-pane close requires supported Linux Herdr provider; no closure attempted');
509
625
  if (this.resumeFences.has(target.sessionId))
510
626
  fail('resume is in flight; close is fenced');
627
+ if (fencedClose(target.closeJob) && !this.handoff.isClosing(target.sessionId))
628
+ fail('worker close is active or uncertain; close is fenced');
629
+ armReminder();
511
630
  return { job: await this.handoff.request(target), completion: 'not awaited', contract: 'best-effort owned-pane closure; not all-child-process termination' };
512
631
  }
513
632
  if (['reload_worker', 'resume_worker', 'remove_worker'].includes(operation) && (this.handoff?.isClosing(target.sessionId) || fencedClose(target.closeJob)))
514
633
  fail('worker close is active or uncertain; operation is fenced');
515
634
  if (operation === 'reload_worker' || operation === 'request_status') {
635
+ armReminder();
516
636
  await this.transmit(target.name, operation === 'reload_worker' ? 'reload' : 'request_status');
517
637
  return { accepted: true, completion: 'not awaited' };
518
638
  }
@@ -521,17 +641,25 @@ export class Intercom {
521
641
  fail('Resume requires explicit user confirmation that the previous worker session is closed (confirmClosed:true). Disconnected alone is not proof of closure.');
522
642
  if (this.resumeFences.has(target.sessionId))
523
643
  fail('Resume already in flight or awaiting worker status; outcome may be uncertain. Inspect the worker before any retry; no automatic relaunch.');
644
+ const relative = await directory(this.store.root, target.projectDirectory);
645
+ assertValid();
646
+ if (relative !== '.')
647
+ fail('worker working directory must equal the config root; subdirectory resumes would read a forbidden parent config');
648
+ const cwd = path.resolve(this.store.root, relative);
649
+ // Directory validation is read-only; recheck admission after that await.
650
+ if (this.resumeFences.has(target.sessionId))
651
+ fail('Resume already in flight or awaiting worker status; outcome may be uncertain. Inspect the worker before any retry; no automatic relaunch.');
652
+ if (this.handoff?.isClosing(target.sessionId))
653
+ fail('worker close is active or uncertain; resume is fenced');
524
654
  const fence = { inFlight: true, submitted: false, announced: false };
525
655
  this.resumeFences.set(target.sessionId, fence);
656
+ armReminder();
526
657
  let completed = false;
527
658
  try {
528
659
  const connection = await (this.options.probe ?? probeWorker)(target, { signal: this.probeController.signal });
529
660
  assertValid();
530
661
  if (connection.state === 'connected')
531
662
  fail('Worker endpoint is still connected; refusing to resume the same session twice.');
532
- const relative = await directory(this.store.root, target.projectDirectory);
533
- assertValid();
534
- const cwd = path.resolve(this.store.root, relative);
535
663
  const fresh = await this.state();
536
664
  assertValid();
537
665
  requireCoordinator(fresh.config, id);
@@ -541,7 +669,7 @@ export class Intercom {
541
669
  if (this.handoff?.isClosing(target.sessionId) || fencedClose(current.closeJob))
542
670
  fail('worker close is active or uncertain; resume is fenced');
543
671
  fence.submitted = true;
544
- const result = await this.launchObserved({ multiplexer: fresh.config.multiplexer, cwd, sessionId: current.sessionId });
672
+ const result = await this.launchObserved({ multiplexer: fresh.config.multiplexer, cwd, workspaceRoot: this.store.root, sessionId: current.sessionId });
545
673
  completed = true;
546
674
  return result;
547
675
  }
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}