instar 1.3.1073 → 1.3.1074
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.
- package/dist/core/ProjectRoundExecution.d.ts.map +1 -1
- package/dist/core/ProjectRoundExecution.js +79 -3
- package/dist/core/ProjectRoundExecution.js.map +1 -1
- package/dist/data/standards-registry.meta.json +1 -1
- package/package.json +1 -1
- package/src/data/builtin-manifest.json +2 -2
- package/src/data/standards-registry.meta.json +1 -1
- package/upgrades/1.3.1074.md +61 -0
- package/upgrades/side-effects/project-round-spawn-guard.md +113 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProjectRoundExecution.d.ts","sourceRoot":"","sources":["../../src/core/ProjectRoundExecution.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAIH,OAAO,KAAK,EAAc,iBAAiB,EAAe,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"ProjectRoundExecution.d.ts","sourceRoot":"","sources":["../../src/core/ProjectRoundExecution.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAIH,OAAO,KAAK,EAAc,iBAAiB,EAAe,MAAM,wBAAwB,CAAC;AAOzF,sEAAsE;AACtE,eAAO,MAAM,wBAAwB,QAAS,CAAC;AAC/C,eAAO,MAAM,wBAAwB,OAAQ,CAAC;AAC9C,gDAAgD;AAChD,eAAO,MAAM,2BAA2B,IAAI,CAAC;AAE7C,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,iBAAiB,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,cAAc,EAAE,MAAM,CAAC;IAEvB;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;;;;;;;OASG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IAErB,qCAAqC;IACrC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,6CAA6C;IAC7C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gEAAgE;IAChE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;;;;;;;;;;;;;;;;;OAkBG;IACH,iBAAiB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAE9E;;;;;OAKG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;GAIG;AACH,MAAM,MAAM,YAAY,GACpB,UAAU,GACV,oBAAoB,GACpB,QAAQ,GACR,QAAQ,GACR,cAAc,CAAC;AAEnB,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,YAAY,CAAC;IACtB,+BAA+B;IAC/B,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,oFAAoF;IACpF,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,mFAAmF;IACnF,aAAa,EAAE,MAAM,CAAC;IACtB,yEAAyE;IACzE,cAAc,EAAE,MAAM,CAAC;IACvB,mEAAmE;IACnE,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,wBAAsB,QAAQ,CAAC,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC,CA2OhG;AAgPD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CA2ChE;AAED;;;;;GAKG;AACH,MAAM,WAAW,wBAAwB;IACvC,oDAAoD;IACpD,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACtB,gEAAgE;IAChE,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACvB,gFAAgF;IAChF,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAsB,uBAAuB,CAC3C,cAAc,EAAE,MAAM,EACtB,QAAQ,EAAE,MAAM,EAAE,EAClB,OAAO,EAAE,iBAAiB;AAC1B;mFACmF;AACnF,eAAe,GAAE,MAAsB,GACtC,OAAO,CAAC,wBAAwB,CAAC,CAmCnC"}
|
|
@@ -36,6 +36,7 @@
|
|
|
36
36
|
import { spawn, execFileSync } from 'node:child_process';
|
|
37
37
|
import { ProjectRoundLock } from './ProjectRoundLock.js';
|
|
38
38
|
import { ProjectRoundWorktrees } from './ProjectRoundWorktrees.js';
|
|
39
|
+
import { detectClaudePath } from './Config.js';
|
|
39
40
|
import { SafeGitExecutor } from './SafeGitExecutor.js';
|
|
40
41
|
import { withSyncOp } from './InFlightSyncOpMarker.js';
|
|
41
42
|
/** Per-spec defaults. Tests dial both down to keep the suite fast. */
|
|
@@ -183,6 +184,22 @@ export async function runRound(input, deps) {
|
|
|
183
184
|
unmergedItemIds = [...lastItemIds];
|
|
184
185
|
break;
|
|
185
186
|
}
|
|
187
|
+
// The child never started. Record it as a round failure that NAMES the
|
|
188
|
+
// cause, and do NOT spend a resume attempt: a binary that cannot be
|
|
189
|
+
// resolved or executed will not resolve on a retry, so relaunching would
|
|
190
|
+
// burn the attempt budget and report the wrong reason ("attempts
|
|
191
|
+
// exhausted") for a condition that is not about attempts at all.
|
|
192
|
+
// "Could not start" and "started and failed" are different facts and the
|
|
193
|
+
// round record must not render them the same.
|
|
194
|
+
if (exit.kind === 'spawn-failed') {
|
|
195
|
+
outcome = 'failed';
|
|
196
|
+
// Node's spawn errors already name the binary ("spawn claude ENOENT"),
|
|
197
|
+
// so the message alone is enough to diagnose without plumbing the
|
|
198
|
+
// resolved path — which would risk leaking an absolute home path.
|
|
199
|
+
reason = `could not start the autonomous child: ${exit.spawnError ?? 'unknown spawn error'}`;
|
|
200
|
+
unmergedItemIds = [...lastItemIds];
|
|
201
|
+
break;
|
|
202
|
+
}
|
|
186
203
|
// Natural exit.
|
|
187
204
|
if (exit.kind === 'exited' && exit.code === 0) {
|
|
188
205
|
// Step 6: verify per-item artifacts.
|
|
@@ -283,8 +300,36 @@ async function recordOutcome(tracker, projectId, roundIndex, outcome) {
|
|
|
283
300
|
// OCC race — caller (or next reconcile) will retry.
|
|
284
301
|
}
|
|
285
302
|
}
|
|
303
|
+
/**
|
|
304
|
+
* Spawn errors captured at the spawn site.
|
|
305
|
+
*
|
|
306
|
+
* `child_process.spawn` reports a failure to START (ENOENT, EACCES) by
|
|
307
|
+
* emitting `'error'` — NOT by emitting `'exit'`. Two consequences, and the
|
|
308
|
+
* second is the one that bites:
|
|
309
|
+
*
|
|
310
|
+
* 1. An unhandled `'error'` becomes a process-level uncaught exception.
|
|
311
|
+
* `uncaughtExceptionPolicy` crashes by default on anything it does not
|
|
312
|
+
* recognise — correctly, since an unknown exception is not safe to
|
|
313
|
+
* swallow. So an unstartable child took the WHOLE agent server down.
|
|
314
|
+
* 2. Even with the crash averted, `'exit'` never fires, so a waiter that
|
|
315
|
+
* listens only for `'exit'` waits forever for an event that cannot come.
|
|
316
|
+
*
|
|
317
|
+
* Capturing here — at the spawn site, in the same tick as the spawn — means
|
|
318
|
+
* the "a spawn failure never crashes the process" property does not depend on
|
|
319
|
+
* any caller remembering to attach a listener. The waiter separately consumes
|
|
320
|
+
* the error to turn it into a recorded round failure.
|
|
321
|
+
*/
|
|
322
|
+
const spawnFailures = new WeakMap();
|
|
286
323
|
function spawnAutonomousChild(input, itemIds) {
|
|
287
|
-
|
|
324
|
+
// Resolve the binary rather than trusting the server's PATH. The server runs
|
|
325
|
+
// under launchd, whose PATH routinely excludes the nvm/asdf/npm-global bin dir
|
|
326
|
+
// that actually holds `claude` — so a bare 'claude' resolves in the operator's
|
|
327
|
+
// terminal and ENOENTs in the server. `detectFrameworkBinary` already scans
|
|
328
|
+
// exactly those locations (its own comment records the 2026-05-31 session-spawn
|
|
329
|
+
// crash from this same cause); this callsite simply was not using it.
|
|
330
|
+
// Falls back to the bare name so a host where detection legitimately finds
|
|
331
|
+
// nothing behaves as before rather than failing earlier than it used to.
|
|
332
|
+
const cmd = input.spawnCommand ?? detectClaudePath() ?? 'claude';
|
|
288
333
|
const args = input.spawnArgs ?? ['--skill', 'autonomous'];
|
|
289
334
|
const workdir = input.initialWorkdir ??
|
|
290
335
|
(itemIds.length > 0
|
|
@@ -307,6 +352,13 @@ function spawnAutonomousChild(input, itemIds) {
|
|
|
307
352
|
INSTAR_STOP_CONDITION: 'all-items-merged-on-main',
|
|
308
353
|
},
|
|
309
354
|
});
|
|
355
|
+
// Attach IMMEDIATELY — see spawnFailures above. Without a listener a failure
|
|
356
|
+
// to START is an unhandled 'error' event, which is a process-level uncaught
|
|
357
|
+
// exception, which kills the agent server. This listener exists so that
|
|
358
|
+
// property holds no matter what the caller does with the returned child.
|
|
359
|
+
child.on('error', (err) => {
|
|
360
|
+
spawnFailures.set(child, err);
|
|
361
|
+
});
|
|
310
362
|
return child;
|
|
311
363
|
}
|
|
312
364
|
async function waitForExitOrPollChange(child, tracker, projectId, roundIndex, initialItemIds, pollIntervalMs, sigtermGraceMs) {
|
|
@@ -321,9 +373,33 @@ async function waitForExitOrPollChange(child, tracker, projectId, roundIndex, in
|
|
|
321
373
|
resolve();
|
|
322
374
|
});
|
|
323
375
|
});
|
|
376
|
+
// A child that never STARTED emits 'error' and never emits 'exit', so the
|
|
377
|
+
// loop below would otherwise wait forever for an event that cannot arrive.
|
|
378
|
+
// Check the spawn-site capture first (the error may already have fired before
|
|
379
|
+
// this function attached anything), then listen for a later one.
|
|
380
|
+
// An error that ALREADY fired (captured at the spawn site) is answered before
|
|
381
|
+
// any waiting at all — read into its own local so the check below is not
|
|
382
|
+
// narrowed by this one.
|
|
383
|
+
const alreadyFailed = spawnFailures.get(child);
|
|
384
|
+
if (alreadyFailed) {
|
|
385
|
+
return { kind: 'spawn-failed', spawnError: alreadyFailed.message };
|
|
386
|
+
}
|
|
387
|
+
// Holder object rather than a bare `let`: the assignment happens inside a
|
|
388
|
+
// callback, which TypeScript's control-flow analysis cannot see.
|
|
389
|
+
const failure = {};
|
|
390
|
+
const spawnFailurePromise = new Promise((resolve) => {
|
|
391
|
+
child.once('error', (err) => {
|
|
392
|
+
failure.err = err;
|
|
393
|
+
resolve();
|
|
394
|
+
});
|
|
395
|
+
});
|
|
324
396
|
while (!exited) {
|
|
325
|
-
// Wait
|
|
326
|
-
await Promise.race([exitPromise, sleep(pollIntervalMs)]);
|
|
397
|
+
// Wait for exit, a spawn failure, OR the poll interval — whichever is first.
|
|
398
|
+
await Promise.race([exitPromise, spawnFailurePromise, sleep(pollIntervalMs)]);
|
|
399
|
+
const failedToStart = failure.err;
|
|
400
|
+
if (failedToStart) {
|
|
401
|
+
return { kind: 'spawn-failed', spawnError: failedToStart.message };
|
|
402
|
+
}
|
|
327
403
|
if (exited)
|
|
328
404
|
break;
|
|
329
405
|
// Halt check.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProjectRoundExecution.js","sourceRoot":"","sources":["../../src/core/ProjectRoundExecution.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ProjectRoundExecution.js","sourceRoot":"","sources":["../../src/core/ProjectRoundExecution.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "./builtin-manifest.schema.json",
|
|
3
3
|
"schemaVersion": 1,
|
|
4
|
-
"generatedAt": "2026-07-
|
|
5
|
-
"instarVersion": "1.3.
|
|
4
|
+
"generatedAt": "2026-07-30T15:28:54.803Z",
|
|
5
|
+
"instarVersion": "1.3.1074",
|
|
6
6
|
"entryCount": 202,
|
|
7
7
|
"entries": {
|
|
8
8
|
"hook:session-start": {
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# Upgrade Guide — vNEXT
|
|
2
|
+
|
|
3
|
+
<!-- assembled-by: assemble-next-md -->
|
|
4
|
+
<!-- bump: patch -->
|
|
5
|
+
|
|
6
|
+
## What Changed
|
|
7
|
+
|
|
8
|
+
Starting a project round could kill the whole agent server instead of failing the round.
|
|
9
|
+
|
|
10
|
+
The round launches a background `claude` session. The agent server is started at login, so
|
|
11
|
+
its search path excludes the directory where `claude` actually lives on nvm/asdf-managed
|
|
12
|
+
hosts. A launch that cannot find the binary reports an `'error'` event — never `'exit'` —
|
|
13
|
+
and nothing was listening, so Node escalated it to a process-level uncaught exception. The
|
|
14
|
+
server died and auto-restarted, leaving the round marked "not started" with nothing recorded
|
|
15
|
+
to explain it.
|
|
16
|
+
|
|
17
|
+
Two fixes at the one call site:
|
|
18
|
+
|
|
19
|
+
1. The binary is resolved via the existing `detectClaudePath()` / `detectFrameworkBinary`
|
|
20
|
+
helper, which already scans npm-global, Homebrew, nvm, asdf and PATH, and is already used
|
|
21
|
+
by five other files. This call site simply was not using it.
|
|
22
|
+
2. A failure to start is now handled and recorded as a round failure whose reason names the
|
|
23
|
+
cause. It deliberately does not consume a resume attempt — retrying a binary that is not
|
|
24
|
+
there cannot succeed, and "attempts exhausted" would be a true-sounding but wrong reason.
|
|
25
|
+
|
|
26
|
+
The process-level crash policy is unchanged and untouched. It is correct to crash on an
|
|
27
|
+
unrecognised exception; the defect was an unattended launch, not the backstop.
|
|
28
|
+
|
|
29
|
+
## What to Tell Your User
|
|
30
|
+
|
|
31
|
+
If a project round ever seemed to do nothing — the round stayed "not started" and your agent
|
|
32
|
+
appeared to restart itself around the same moment — this is why. The round was trying to
|
|
33
|
+
launch a background session, could not find the program, and that took the whole server down
|
|
34
|
+
instead of failing the round.
|
|
35
|
+
|
|
36
|
+
Two things are better now. The launch looks in the places the program is actually installed,
|
|
37
|
+
rather than only the short list a login-started service inherits. And if a launch still
|
|
38
|
+
cannot happen, you get a round marked failed with a reason that says so, instead of a silent
|
|
39
|
+
restart and a round that looks untouched.
|
|
40
|
+
|
|
41
|
+
Nothing is required of you and no setting changed.
|
|
42
|
+
|
|
43
|
+
## Summary of New Capabilities
|
|
44
|
+
|
|
45
|
+
No new capability. This removes a crash and replaces a silent non-event with a recorded,
|
|
46
|
+
readable failure reason.
|
|
47
|
+
|
|
48
|
+
## Evidence
|
|
49
|
+
|
|
50
|
+
Tests launch a genuinely nonexistent binary, so the ENOENT is real rather than mocked.
|
|
51
|
+
|
|
52
|
+
- Against the pre-change source: **3 failed / 9 passed**, and the run reports three
|
|
53
|
+
`Uncaught Exception: spawn … ENOENT` — the same crash observed twice in production on
|
|
54
|
+
2026-07-30.
|
|
55
|
+
- Against the fixed source: **12 passed / 12**.
|
|
56
|
+
- A fourth test (ordinary non-zero exit still exhausts resumes) passes on both revisions and
|
|
57
|
+
is labelled CONTROL rather than counted as evidence.
|
|
58
|
+
- Run duration fell 48s → 18s, because the unfixed version waited on exits that could never
|
|
59
|
+
arrive — the second, quieter half of the same defect.
|
|
60
|
+
|
|
61
|
+
`tsc` clean on both changed files.
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
# Side-effects review — project round spawn guard
|
|
2
|
+
|
|
3
|
+
Change: `ProjectRoundExecution` resolves the autonomous binary via the existing
|
|
4
|
+
`detectClaudePath()` and handles the `'error'` event a failed spawn emits, recording a
|
|
5
|
+
round failure instead of crashing the agent server.
|
|
6
|
+
|
|
7
|
+
Related prior art: **ACT-1269** (2026-07-25, still pending) — same ENOENT class in the same
|
|
8
|
+
subsystem, different binary (`gh`). **CMT-513** (delivered 2026-05-25) — an uncaught
|
|
9
|
+
exception that crashed the whole server, i.e. the class has history.
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## 1. Over-block — what legitimate inputs does this reject that it shouldn't?
|
|
14
|
+
|
|
15
|
+
**None identified, and the risk direction is checked.** The new branch fires only on a
|
|
16
|
+
`'error'` event from `spawn`, which is emitted exclusively when the child fails to START
|
|
17
|
+
(ENOENT, EACCES, EPERM). It cannot fire for a child that started and exited non-zero — that
|
|
18
|
+
path still runs the pre-existing resume logic, and a CONTROL test asserts it.
|
|
19
|
+
|
|
20
|
+
The binary resolution is `input.spawnCommand ?? detectClaudePath() ?? 'claude'`. An injected
|
|
21
|
+
`spawnCommand` (every test, and any future caller) is untouched, and the final fallback is
|
|
22
|
+
the previous literal, so a host where detection legitimately finds nothing behaves exactly
|
|
23
|
+
as before rather than failing earlier than it used to.
|
|
24
|
+
|
|
25
|
+
## 2. Under-block — what failure modes does this still miss?
|
|
26
|
+
|
|
27
|
+
**Named rather than glossed:**
|
|
28
|
+
- A child that starts successfully and then hangs forever is NOT covered here. The existing
|
|
29
|
+
poll loop handles halt/set-change, but there is no wall-clock ceiling on a running child.
|
|
30
|
+
Out of scope; not introduced by this change.
|
|
31
|
+
- A child that starts and immediately exits non-zero still consumes resume attempts, which
|
|
32
|
+
is correct — that IS a "started and failed" case.
|
|
33
|
+
- ACT-1269's `gh` ENOENT is a DIFFERENT call site in a different layer and is **not** fixed
|
|
34
|
+
here. This change does not close that action, and I am not claiming it does.
|
|
35
|
+
|
|
36
|
+
## 3. Level-of-abstraction fit
|
|
37
|
+
|
|
38
|
+
**Right layer, and I checked whether a higher one should own it.**
|
|
39
|
+
The obvious alternative was to add ENOENT to `uncaughtExceptionPolicy`'s survivable
|
|
40
|
+
allowlist. **Rejected on the module's own stated reasoning**: it crashes by default because
|
|
41
|
+
an unknown exception is not safe to swallow, keeps its list deliberately tight, and says in
|
|
42
|
+
place that it is *"the crash backstop, NOT a license to skip the catch — the first-seen-stack
|
|
43
|
+
logging still surfaces the un-guarded callsite so the real missing `.catch` gets fixed."*
|
|
44
|
+
Widening that allowlist would have degraded a deliberately-tight safety boundary to quiet one
|
|
45
|
+
callsite's bug. The policy is correct; the callsite was wrong.
|
|
46
|
+
|
|
47
|
+
Binary resolution likewise belongs in `Config.detectFrameworkBinary`, where it already lives
|
|
48
|
+
and is already used by five other files — not re-implemented here.
|
|
49
|
+
|
|
50
|
+
## 4. Signal vs authority compliance
|
|
51
|
+
|
|
52
|
+
Compliant. This adds no new blocking authority. It converts an unhandled process-level event
|
|
53
|
+
into a **recorded round outcome** — strictly more information, strictly less destructive. The
|
|
54
|
+
crash-vs-continue authority remains entirely with `uncaughtExceptionPolicy`, untouched.
|
|
55
|
+
|
|
56
|
+
## 5. Interactions — shadowing, double-fire, races
|
|
57
|
+
|
|
58
|
+
- **Two `'error'` listeners are attached deliberately** (one at the spawn site for the
|
|
59
|
+
never-crash guarantee, one in the waiter for control flow). Node invokes all listeners; the
|
|
60
|
+
first prevents the throw, the second drives the outcome. Not a double-fire: they have
|
|
61
|
+
different jobs and the outcome is produced once.
|
|
62
|
+
- **An error that fires BEFORE the waiter attaches** is covered — the waiter checks the
|
|
63
|
+
spawn-site capture first and returns immediately. Without that check there is a real
|
|
64
|
+
ordering window.
|
|
65
|
+
- **No interaction with the halt path**: a halted round returns before the spawn-failure
|
|
66
|
+
branch is reachable, and halt is checked first in the loop.
|
|
67
|
+
- **`killProcessGroup` is not called** on a spawn failure — correct, since there is no process
|
|
68
|
+
group to kill; calling it would be a no-op at best.
|
|
69
|
+
|
|
70
|
+
## 6. External surfaces
|
|
71
|
+
|
|
72
|
+
**One, and it is operator-visible: the round's recorded `reason` string changes** for this
|
|
73
|
+
failure mode, from (previously) nothing at all — because the server died before writing — to
|
|
74
|
+
a sentence naming the spawn error.
|
|
75
|
+
|
|
76
|
+
Node's spawn error text already embeds the binary name (`spawn claude ENOENT`), so the reason
|
|
77
|
+
is diagnostic without plumbing the resolved absolute path through — which would risk leaking
|
|
78
|
+
an absolute home directory into an operator-facing record. That was a deliberate choice, made
|
|
79
|
+
after writing the interpolation and removing it.
|
|
80
|
+
|
|
81
|
+
No API shape change, no new config key, no new route. No CLAUDE.md update proposed: this adds
|
|
82
|
+
no capability an agent should newly reach for — it removes a crash.
|
|
83
|
+
|
|
84
|
+
*(Explicitly checked, because my own 07-30 review of a different change answered this section
|
|
85
|
+
"None. no external surface" and was wrong — a deploy path was an external surface. Here the
|
|
86
|
+
question was asked as "what else consumes this?" rather than "does the other tool read it?")*
|
|
87
|
+
|
|
88
|
+
## 7. Multi-machine posture (Cross-Machine Coherence)
|
|
89
|
+
|
|
90
|
+
**Machine-local BY DESIGN, and the reason is intrinsic rather than an omission.** Binary
|
|
91
|
+
resolution answers "where is this program on THIS filesystem" — there is no coherent unified
|
|
92
|
+
value across machines, and a replicated answer would be actively wrong (the Mini resolves
|
|
93
|
+
`claude` under nvm; another host may use Homebrew or asdf). The existing
|
|
94
|
+
`detectFrameworkBinary` memo is per-process for the same reason.
|
|
95
|
+
|
|
96
|
+
The round outcome it produces is already per-project state written through
|
|
97
|
+
`InitiativeTracker`, whose replication posture this change does not alter.
|
|
98
|
+
|
|
99
|
+
## 8. Rollback cost
|
|
100
|
+
|
|
101
|
+
**Low, and the lever is real rather than assumed.** The change is two edits in one file plus
|
|
102
|
+
one import. Reverting the commit restores prior behaviour exactly; there is no migration, no
|
|
103
|
+
persisted new field, and no config key to unset.
|
|
104
|
+
|
|
105
|
+
A partial rollback is also available and safe: keeping the `'error'` handler while reverting
|
|
106
|
+
the resolution (or vice versa) leaves a coherent system, because the two halves are
|
|
107
|
+
independent — one prevents a crash, the other makes the launch more likely to succeed.
|
|
108
|
+
|
|
109
|
+
**Confidence stated honestly:** the crash and the hang are both reproduced by tests that fail
|
|
110
|
+
on the pre-change source, so the failure mode is verified rather than reasoned. What is NOT
|
|
111
|
+
verified is production behaviour on a host where detection returns a path that exists but is
|
|
112
|
+
not executable — the handler covers it by construction (EACCES is also an `'error'` event),
|
|
113
|
+
but no test exercises that specific errno.
|