greprag 5.42.0 → 5.42.2
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/commands/pipe-wrap.d.ts +22 -0
- package/dist/commands/pipe-wrap.js +72 -3
- package/dist/commands/pipe-wrap.js.map +1 -1
- package/dist/commands/watcher-registry.d.ts +41 -21
- package/dist/commands/watcher-registry.js +60 -62
- package/dist/commands/watcher-registry.js.map +1 -1
- package/package.json +1 -1
- package/skill/greprag/docs/inbox-watch.md +1 -1
- package/skill/templates/chip-spawn.md +3 -3
|
@@ -35,6 +35,28 @@ export interface WrapDecision {
|
|
|
35
35
|
* single quotes). Appending a suffix to a command with unbalanced quotes
|
|
36
36
|
* would land the suffix inside a string literal. */
|
|
37
37
|
export declare function quotesBalanced(cmd: string): boolean;
|
|
38
|
+
/** Detect a TERMINAL pure-truncation stage — `| tail -3`, `| head -n 20`,
|
|
39
|
+
* `| tail`, `| head --lines=5` — and return the command without it, or null
|
|
40
|
+
* when there is no such stage.
|
|
41
|
+
*
|
|
42
|
+
* Rationale: agents habitually pre-truncate noisy output by hand
|
|
43
|
+
* (`npm test | tail -3`), which is LOSSY (an error above the window is gone)
|
|
44
|
+
* and used to defeat the wrap entirely (pipes are structurally unsafe to
|
|
45
|
+
* append to). A terminal line-truncation stage carries no semantics worth
|
|
46
|
+
* preserving over crush — the agent asked for "less of this output," and
|
|
47
|
+
* crush answers that strictly better (keeps all errors + summary, original
|
|
48
|
+
* recoverable). So we strip it and let the BASE command classify; the
|
|
49
|
+
* rewrite then replaces hand-truncation with crush. The base must still
|
|
50
|
+
* pass every structural gate and positively classify — `git log | head -5`
|
|
51
|
+
* survives untouched because `git log` is not a crushable type.
|
|
52
|
+
*
|
|
53
|
+
* Default-deny within the stage itself: ONLY line-count forms qualify.
|
|
54
|
+
* `-f`/`-F`/`--follow` (follow), `-n +N` (skip-from — different semantics),
|
|
55
|
+
* `-c`/`--bytes` (byte counts), `--pid`, filenames, or any unrecognized
|
|
56
|
+
* token disqualify the stage and the command stays untouched. A non-terminal
|
|
57
|
+
* truncation (`| tail -3 | wc`) never matches — the stage must end the
|
|
58
|
+
* command. */
|
|
59
|
+
export declare function stripTrailingTruncation(command: string): string | null;
|
|
38
60
|
/** First non-flag token = the search pattern, sanitized into a crush
|
|
39
61
|
* `--query` hint: strip quotes, keep word chars/space/dot/dash only
|
|
40
62
|
* (safe inside double quotes), collapse whitespace, cap at 80 chars. */
|
|
@@ -60,6 +60,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
60
60
|
})();
|
|
61
61
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
62
62
|
exports.quotesBalanced = quotesBalanced;
|
|
63
|
+
exports.stripTrailingTruncation = stripTrailingTruncation;
|
|
63
64
|
exports.extractSearchQuery = extractSearchQuery;
|
|
64
65
|
exports.classifyCommand = classifyCommand;
|
|
65
66
|
exports.rewriteCommand = rewriteCommand;
|
|
@@ -115,6 +116,54 @@ function structurallySafe(cmd) {
|
|
|
115
116
|
return false;
|
|
116
117
|
return true;
|
|
117
118
|
}
|
|
119
|
+
// ---------- Truncation-pipe stripper (pure) ----------------------------------
|
|
120
|
+
/** Detect a TERMINAL pure-truncation stage — `| tail -3`, `| head -n 20`,
|
|
121
|
+
* `| tail`, `| head --lines=5` — and return the command without it, or null
|
|
122
|
+
* when there is no such stage.
|
|
123
|
+
*
|
|
124
|
+
* Rationale: agents habitually pre-truncate noisy output by hand
|
|
125
|
+
* (`npm test | tail -3`), which is LOSSY (an error above the window is gone)
|
|
126
|
+
* and used to defeat the wrap entirely (pipes are structurally unsafe to
|
|
127
|
+
* append to). A terminal line-truncation stage carries no semantics worth
|
|
128
|
+
* preserving over crush — the agent asked for "less of this output," and
|
|
129
|
+
* crush answers that strictly better (keeps all errors + summary, original
|
|
130
|
+
* recoverable). So we strip it and let the BASE command classify; the
|
|
131
|
+
* rewrite then replaces hand-truncation with crush. The base must still
|
|
132
|
+
* pass every structural gate and positively classify — `git log | head -5`
|
|
133
|
+
* survives untouched because `git log` is not a crushable type.
|
|
134
|
+
*
|
|
135
|
+
* Default-deny within the stage itself: ONLY line-count forms qualify.
|
|
136
|
+
* `-f`/`-F`/`--follow` (follow), `-n +N` (skip-from — different semantics),
|
|
137
|
+
* `-c`/`--bytes` (byte counts), `--pid`, filenames, or any unrecognized
|
|
138
|
+
* token disqualify the stage and the command stays untouched. A non-terminal
|
|
139
|
+
* truncation (`| tail -3 | wc`) never matches — the stage must end the
|
|
140
|
+
* command. */
|
|
141
|
+
function stripTrailingTruncation(command) {
|
|
142
|
+
const m = command.match(/^(.*?)\|\s*(head|tail)\b([^|]*)$/);
|
|
143
|
+
if (!m)
|
|
144
|
+
return null;
|
|
145
|
+
const [, base, , rawArgs] = m;
|
|
146
|
+
// Validate every token of the truncation stage; line-count forms only.
|
|
147
|
+
const tokens = rawArgs.trim() === '' ? [] : rawArgs.trim().split(/\s+/);
|
|
148
|
+
for (let i = 0; i < tokens.length; i++) {
|
|
149
|
+
const tok = tokens[i];
|
|
150
|
+
if (/^-\d+$/.test(tok))
|
|
151
|
+
continue; // -3
|
|
152
|
+
if (/^-n\d+$/.test(tok))
|
|
153
|
+
continue; // -n3
|
|
154
|
+
if (tok === '-n' || tok === '--lines') { // -n 3 / --lines 3
|
|
155
|
+
const next = tokens[++i];
|
|
156
|
+
if (next === undefined || !/^\d+$/.test(next))
|
|
157
|
+
return null;
|
|
158
|
+
continue;
|
|
159
|
+
}
|
|
160
|
+
if (/^--lines=\d+$/.test(tok))
|
|
161
|
+
continue; // --lines=3
|
|
162
|
+
return null; // anything else: -f, -c, +N, files, flags we don't know
|
|
163
|
+
}
|
|
164
|
+
const trimmed = base.trim();
|
|
165
|
+
return trimmed === '' ? null : trimmed;
|
|
166
|
+
}
|
|
118
167
|
// ---------- Classifier (pure) ------------------------------------------------
|
|
119
168
|
/** grep/rg/ag flag clusters that switch output away from match lines
|
|
120
169
|
* (file lists, counts, JSON events, bare matches). */
|
|
@@ -207,7 +256,9 @@ function classifyCommand(command) {
|
|
|
207
256
|
* (`greprag retrieve <hash>`); --stats feeds ~/.greprag/crush-stats.jsonl
|
|
208
257
|
* so `greprag crush stats` can validate real savings. */
|
|
209
258
|
function rewriteCommand(command, decision) {
|
|
210
|
-
|
|
259
|
+
// A stripped-truncation base may already end in `2>&1` — don't double it.
|
|
260
|
+
const redirect = /2>&1\s*$/.test(command) ? '' : ' 2>&1';
|
|
261
|
+
let suffix = `${redirect} | greprag crush --type ${decision.type} --ccr --stats`;
|
|
211
262
|
if (decision.query)
|
|
212
263
|
suffix += ` --query "${decision.query}"`;
|
|
213
264
|
return command + suffix;
|
|
@@ -242,13 +293,31 @@ function runPipeWrap(input) {
|
|
|
242
293
|
return null;
|
|
243
294
|
if (!readPipeWrapConfig(input.cwd || process.cwd()).enabled)
|
|
244
295
|
return null;
|
|
245
|
-
|
|
296
|
+
// Plain path: the command itself qualifies.
|
|
297
|
+
let target = command;
|
|
298
|
+
let decision = classifyCommand(command);
|
|
299
|
+
// Truncation path: `<crushable> | tail -N` — strip the hand-truncation and
|
|
300
|
+
// wrap the base instead (crush replaces tail/head as the truncator). The
|
|
301
|
+
// base must independently clear EVERY gate (structure, recursion, nocrush)
|
|
302
|
+
// via classifyCommand; non-crushable bases (`git log | head -5`) fall
|
|
303
|
+
// through untouched. The nocrush hatch is honored on the ORIGINAL too,
|
|
304
|
+
// since stripping can drop a trailing comment.
|
|
305
|
+
if (!decision && !command.includes('# nocrush')) {
|
|
306
|
+
const base = stripTrailingTruncation(command);
|
|
307
|
+
if (base) {
|
|
308
|
+
const baseDecision = classifyCommand(base);
|
|
309
|
+
if (baseDecision) {
|
|
310
|
+
target = base;
|
|
311
|
+
decision = baseDecision;
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
}
|
|
246
315
|
if (!decision)
|
|
247
316
|
return null;
|
|
248
317
|
return {
|
|
249
318
|
hookSpecificOutput: {
|
|
250
319
|
hookEventName: 'PreToolUse',
|
|
251
|
-
updatedInput: { command: rewriteCommand(
|
|
320
|
+
updatedInput: { command: rewriteCommand(target, decision) },
|
|
252
321
|
},
|
|
253
322
|
};
|
|
254
323
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipe-wrap.js","sourceRoot":"","sources":["../../src/commands/pipe-wrap.ts"],"names":[],"mappings":";AAAA,6BAA6B;AAC7B;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoBH,wCAUC;
|
|
1
|
+
{"version":3,"file":"pipe-wrap.js","sourceRoot":"","sources":["../../src/commands/pipe-wrap.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** Local watcher process registry +
|
|
1
|
+
/** Local watcher process registry + owner-pid orphan reaper.
|
|
2
2
|
*
|
|
3
3
|
* The architectural correction the whole monitor-resilience saga circled but
|
|
4
4
|
* never landed (see adr/monitor-resilience.md 2026-05-28 "severed-ancestry =
|
|
@@ -16,14 +16,15 @@
|
|
|
16
16
|
* breaks exits and removes its own pidfile), a live pidfile means a live,
|
|
17
17
|
* *consumed* watcher.
|
|
18
18
|
*
|
|
19
|
-
* 2. **
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
19
|
+
* 2. **owner-pid reap** — `reapOrphanWatchers` kills any `inbox watch` process
|
|
20
|
+
* whose stamped `--owner-pid` names a `claude.exe` that is no longer alive.
|
|
21
|
+
* Backstop for the case EPIPE can't catch (a consumer hard-killed without
|
|
22
|
+
* closing the pipe). A watcher with NO `--owner-pid` is KEPT, never killed:
|
|
23
|
+
* the old ancestry-walk fallback PROVED to false-kill live backgrounded
|
|
24
|
+
* watchers (2026-06-05a / 2026-06-13) and was retired. SAFE BY CONSTRUCTION:
|
|
25
|
+
* the kill set is intersected with "cmdline contains `inbox watch`", so it
|
|
26
|
+
* can only ever terminate greprag watchers — never claude.exe, an editor, or
|
|
27
|
+
* an unrelated node server.
|
|
27
28
|
*
|
|
28
29
|
* adr: adr/monitor-resilience.md */
|
|
29
30
|
export interface WatcherPidRecord {
|
|
@@ -75,13 +76,32 @@ export interface ProcRow {
|
|
|
75
76
|
* time). The hook stamps the result into the watch command (`--owner-pid`) so
|
|
76
77
|
* the reaper can later ask "is that exact claude.exe still alive?" instead of
|
|
77
78
|
* re-walking a chain that no longer exists. Returns null if no claude.exe
|
|
78
|
-
* ancestor is found (caller omits the flag →
|
|
79
|
+
* ancestor is found (caller omits the flag → the watcher is flagless → the reaper
|
|
80
|
+
* KEEPS it, since the ancestry fallback that used to reap it was a false-kill).
|
|
79
81
|
* adr: adr/monitor-resilience.md */
|
|
80
82
|
export declare function resolveClaudeOwnerPid(cacheShort?: string): number | null;
|
|
81
|
-
/** Decide whether a watcher candidate is a severed orphan, and why.
|
|
82
|
-
*
|
|
83
|
-
*
|
|
84
|
-
*
|
|
83
|
+
/** Decide whether a watcher candidate is a severed orphan, and why. The ONLY
|
|
84
|
+
* reap signal is the stamped owner PID: a watcher is severed iff its
|
|
85
|
+
* `--owner-pid` names a claude.exe that is no longer alive. A watcher with NO
|
|
86
|
+
* `--owner-pid` is KEPT — never ancestry-walked.
|
|
87
|
+
*
|
|
88
|
+
* Why the ancestry fallback was retired (2026-06-13): the walk "is a live
|
|
89
|
+
* claude.exe still my ancestor?" PROVED to false-kill LIVE backgrounded watchers
|
|
90
|
+
* (adr 2026-06-05a) — a Monitor-armed watcher's launcher shell exits by design,
|
|
91
|
+
* so within seconds of a healthy arm its chain to claude.exe is already severed,
|
|
92
|
+
* indistinguishable from a real orphan. It was the dominant false-kill on
|
|
93
|
+
* flagless watchers, and flagless is not rare: the bare arm form is taught by the
|
|
94
|
+
* skill docs AND emitted by the hook itself whenever resolveClaudeOwnerPid
|
|
95
|
+
* returns null on a snapshot miss (so `--owner-pid` cannot be guaranteed at the
|
|
96
|
+
* arm site). The only safe verdict for a flagless watcher is therefore KEEP.
|
|
97
|
+
* Genuine death of a flagless watcher is still caught at the right layer: its
|
|
98
|
+
* consumer pipe breaks on session reload/end → EPIPE-terminal (consumer-gone)
|
|
99
|
+
* tears it down, and `sweepDeadPidfiles` collects a dead-PID pidfile. The
|
|
100
|
+
* residual — a flagless watcher orphaned by a TaskStop while claude.exe stays
|
|
101
|
+
* alive (no pipe break, no owner to die) — is one idle process, the exact blind
|
|
102
|
+
* spot the 2026-06-11 revert already knowingly left open. This also retires the
|
|
103
|
+
* GREPRAG_REAP_BY_OWNER escape hatch, whose only effect was to re-enable the
|
|
104
|
+
* proven-bad pure-ancestry walk. adr: adr/monitor-resilience.md */
|
|
85
105
|
export declare function severedVerdict(w: ProcRow, byPid: Map<number, ProcRow>): {
|
|
86
106
|
severed: boolean;
|
|
87
107
|
reason: string;
|
|
@@ -91,11 +111,11 @@ export interface ReapResult {
|
|
|
91
111
|
orphans: number;
|
|
92
112
|
killed: number[];
|
|
93
113
|
}
|
|
94
|
-
/** Kill every `inbox watch` process whose
|
|
95
|
-
* claude.exe (
|
|
96
|
-
* summary. Best-effort and bounded: a
|
|
97
|
-
* the kill set is guaranteed (by
|
|
98
|
-
*
|
|
99
|
-
*
|
|
100
|
-
*
|
|
114
|
+
/** Kill every `inbox watch` process whose stamped `--owner-pid` names a dead
|
|
115
|
+
* claude.exe (= orphan), plus sweep dead-PID pidfiles. Flagless watchers are
|
|
116
|
+
* kept (see severedVerdict). Returns a summary. Best-effort and bounded: a
|
|
117
|
+
* snapshot failure yields a zero result; the kill set is guaranteed (by
|
|
118
|
+
* `WATCHER_CMD_RE`) to contain only greprag watchers. Intended to run at
|
|
119
|
+
* SessionStart, before this session arms — at that moment a watcher with a dead
|
|
120
|
+
* owner belongs to a PRIOR incarnation, so reaping it is correct. */
|
|
101
121
|
export declare function reapOrphanWatchers(): ReapResult;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
/** Local watcher process registry +
|
|
2
|
+
/** Local watcher process registry + owner-pid orphan reaper.
|
|
3
3
|
*
|
|
4
4
|
* The architectural correction the whole monitor-resilience saga circled but
|
|
5
5
|
* never landed (see adr/monitor-resilience.md 2026-05-28 "severed-ancestry =
|
|
@@ -17,14 +17,15 @@
|
|
|
17
17
|
* breaks exits and removes its own pidfile), a live pidfile means a live,
|
|
18
18
|
* *consumed* watcher.
|
|
19
19
|
*
|
|
20
|
-
* 2. **
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
20
|
+
* 2. **owner-pid reap** — `reapOrphanWatchers` kills any `inbox watch` process
|
|
21
|
+
* whose stamped `--owner-pid` names a `claude.exe` that is no longer alive.
|
|
22
|
+
* Backstop for the case EPIPE can't catch (a consumer hard-killed without
|
|
23
|
+
* closing the pipe). A watcher with NO `--owner-pid` is KEPT, never killed:
|
|
24
|
+
* the old ancestry-walk fallback PROVED to false-kill live backgrounded
|
|
25
|
+
* watchers (2026-06-05a / 2026-06-13) and was retired. SAFE BY CONSTRUCTION:
|
|
26
|
+
* the kill set is intersected with "cmdline contains `inbox watch`", so it
|
|
27
|
+
* can only ever terminate greprag watchers — never claude.exe, an editor, or
|
|
28
|
+
* an unrelated node server.
|
|
28
29
|
*
|
|
29
30
|
* adr: adr/monitor-resilience.md */
|
|
30
31
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
@@ -97,12 +98,10 @@ const OWNER_PID_RE = /--owner-pid[=\s]+(\d+)/;
|
|
|
97
98
|
// arm-line bash, not the persistent Monitor task, so a dead stamp under a live
|
|
98
99
|
// owner false-flagged live watchers as orphans. Owner-pid liveness is the test.
|
|
99
100
|
// adr: adr/monitor-resilience.md
|
|
100
|
-
//
|
|
101
|
-
//
|
|
102
|
-
//
|
|
103
|
-
//
|
|
104
|
-
// single process can exercise both modes. adr: adr/monitor-resilience.md
|
|
105
|
-
function reapByOwner() { return process.env.GREPRAG_REAP_BY_OWNER !== '0'; }
|
|
101
|
+
// The ancestry-walk fallback (and its GREPRAG_REAP_BY_OWNER escape hatch) was
|
|
102
|
+
// RETIRED 2026-06-13: it false-killed live backgrounded watchers (see
|
|
103
|
+
// severedVerdict). Owner-pid liveness is now the ONLY reap signal; a flagless
|
|
104
|
+
// watcher is kept. adr: adr/monitor-resilience.md
|
|
106
105
|
function grepragHome() {
|
|
107
106
|
const home = process.env.HOME || process.env.USERPROFILE || '';
|
|
108
107
|
return home ? path.join(home, '.greprag') : null;
|
|
@@ -312,27 +311,6 @@ function snapshotProcs() {
|
|
|
312
311
|
return [];
|
|
313
312
|
}
|
|
314
313
|
}
|
|
315
|
-
/** Walk `start`'s parent chain in the snapshot; true iff a live `claude.exe`
|
|
316
|
-
* appears as an ancestor. A healthy watcher is launched (via the Monitor task)
|
|
317
|
-
* under the live claude.exe, so its chain reaches it; an orphan's owning
|
|
318
|
-
* claude.exe died on reload, so its chain is severed (a parent PID absent from
|
|
319
|
-
* the live snapshot) before any claude.exe. Depth- and cycle-guarded. */
|
|
320
|
-
function hasLiveClaudeAncestor(start, byPid) {
|
|
321
|
-
let cur = start;
|
|
322
|
-
const seen = new Set();
|
|
323
|
-
for (let depth = 0; cur && depth < 32; depth++) {
|
|
324
|
-
if (seen.has(cur.pid))
|
|
325
|
-
break; // cycle guard
|
|
326
|
-
seen.add(cur.pid);
|
|
327
|
-
if (CLAUDE_PROC_RE.test(cur.name))
|
|
328
|
-
return true; // start/ancestor IS claude
|
|
329
|
-
const parent = byPid.get(cur.ppid);
|
|
330
|
-
if (!parent)
|
|
331
|
-
return false; // severed — parent not in the live table
|
|
332
|
-
cur = parent;
|
|
333
|
-
}
|
|
334
|
-
return false;
|
|
335
|
-
}
|
|
336
314
|
/** Owning claude.exe PID parsed from a watcher's command line (`--owner-pid N`),
|
|
337
315
|
* or null if absent (a legacy watcher armed before this flag existed). */
|
|
338
316
|
function ownerPidFromCmd(cmd) {
|
|
@@ -347,7 +325,8 @@ function ownerPidFromCmd(cmd) {
|
|
|
347
325
|
* time). The hook stamps the result into the watch command (`--owner-pid`) so
|
|
348
326
|
* the reaper can later ask "is that exact claude.exe still alive?" instead of
|
|
349
327
|
* re-walking a chain that no longer exists. Returns null if no claude.exe
|
|
350
|
-
* ancestor is found (caller omits the flag →
|
|
328
|
+
* ancestor is found (caller omits the flag → the watcher is flagless → the reaper
|
|
329
|
+
* KEEPS it, since the ancestry fallback that used to reap it was a false-kill).
|
|
351
330
|
* adr: adr/monitor-resilience.md */
|
|
352
331
|
function resolveClaudeOwnerPid(cacheShort) {
|
|
353
332
|
// Cache hit: the owning claude.exe is still alive (stable for the session) —
|
|
@@ -391,28 +370,43 @@ function isLiveClaude(pid, byPid) {
|
|
|
391
370
|
const p = byPid.get(pid);
|
|
392
371
|
return !!p && CLAUDE_PROC_RE.test(p.name);
|
|
393
372
|
}
|
|
394
|
-
/** Decide whether a watcher candidate is a severed orphan, and why.
|
|
395
|
-
*
|
|
396
|
-
*
|
|
397
|
-
*
|
|
373
|
+
/** Decide whether a watcher candidate is a severed orphan, and why. The ONLY
|
|
374
|
+
* reap signal is the stamped owner PID: a watcher is severed iff its
|
|
375
|
+
* `--owner-pid` names a claude.exe that is no longer alive. A watcher with NO
|
|
376
|
+
* `--owner-pid` is KEPT — never ancestry-walked.
|
|
377
|
+
*
|
|
378
|
+
* Why the ancestry fallback was retired (2026-06-13): the walk "is a live
|
|
379
|
+
* claude.exe still my ancestor?" PROVED to false-kill LIVE backgrounded watchers
|
|
380
|
+
* (adr 2026-06-05a) — a Monitor-armed watcher's launcher shell exits by design,
|
|
381
|
+
* so within seconds of a healthy arm its chain to claude.exe is already severed,
|
|
382
|
+
* indistinguishable from a real orphan. It was the dominant false-kill on
|
|
383
|
+
* flagless watchers, and flagless is not rare: the bare arm form is taught by the
|
|
384
|
+
* skill docs AND emitted by the hook itself whenever resolveClaudeOwnerPid
|
|
385
|
+
* returns null on a snapshot miss (so `--owner-pid` cannot be guaranteed at the
|
|
386
|
+
* arm site). The only safe verdict for a flagless watcher is therefore KEEP.
|
|
387
|
+
* Genuine death of a flagless watcher is still caught at the right layer: its
|
|
388
|
+
* consumer pipe breaks on session reload/end → EPIPE-terminal (consumer-gone)
|
|
389
|
+
* tears it down, and `sweepDeadPidfiles` collects a dead-PID pidfile. The
|
|
390
|
+
* residual — a flagless watcher orphaned by a TaskStop while claude.exe stays
|
|
391
|
+
* alive (no pipe break, no owner to die) — is one idle process, the exact blind
|
|
392
|
+
* spot the 2026-06-11 revert already knowingly left open. This also retires the
|
|
393
|
+
* GREPRAG_REAP_BY_OWNER escape hatch, whose only effect was to re-enable the
|
|
394
|
+
* proven-bad pure-ancestry walk. adr: adr/monitor-resilience.md */
|
|
398
395
|
function severedVerdict(w, byPid) {
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
const live = isLiveClaude(owner, byPid);
|
|
403
|
-
return { severed: !live, reason: `owner=${owner}:${live ? 'live-claude' : 'dead'}` };
|
|
404
|
-
}
|
|
405
|
-
return { severed: !hasLiveClaudeAncestor(w, byPid), reason: 'no-owner-flag→ancestry' };
|
|
396
|
+
const owner = ownerPidFromCmd(w.cmd);
|
|
397
|
+
if (owner === null) {
|
|
398
|
+
return { severed: false, reason: 'no-owner-flag→keep (ancestry retired)' };
|
|
406
399
|
}
|
|
407
|
-
|
|
400
|
+
const live = isLiveClaude(owner, byPid);
|
|
401
|
+
return { severed: !live, reason: `owner=${owner}:${live ? 'live-claude' : 'dead'}` };
|
|
408
402
|
}
|
|
409
|
-
/** Kill every `inbox watch` process whose
|
|
410
|
-
* claude.exe (
|
|
411
|
-
* summary. Best-effort and bounded: a
|
|
412
|
-
* the kill set is guaranteed (by
|
|
413
|
-
*
|
|
414
|
-
*
|
|
415
|
-
*
|
|
403
|
+
/** Kill every `inbox watch` process whose stamped `--owner-pid` names a dead
|
|
404
|
+
* claude.exe (= orphan), plus sweep dead-PID pidfiles. Flagless watchers are
|
|
405
|
+
* kept (see severedVerdict). Returns a summary. Best-effort and bounded: a
|
|
406
|
+
* snapshot failure yields a zero result; the kill set is guaranteed (by
|
|
407
|
+
* `WATCHER_CMD_RE`) to contain only greprag watchers. Intended to run at
|
|
408
|
+
* SessionStart, before this session arms — at that moment a watcher with a dead
|
|
409
|
+
* owner belongs to a PRIOR incarnation, so reaping it is correct. */
|
|
416
410
|
function reapOrphanWatchers() {
|
|
417
411
|
sweepDeadPidfiles();
|
|
418
412
|
// Demand-gate the snapshot. The process-table photograph (a spawned
|
|
@@ -424,13 +418,17 @@ function reapOrphanWatchers() {
|
|
|
424
418
|
// which there is anything to reap. If no pidfile reports a dead owner, there is
|
|
425
419
|
// nothing severed → skip the snapshot entirely. The snapshot now runs ONLY when
|
|
426
420
|
// a real orphan exists (where its cost is justified), and still performs the
|
|
427
|
-
// full cmdline-verified, recycle-safe kill below.
|
|
428
|
-
// ownerPid force
|
|
429
|
-
//
|
|
421
|
+
// full cmdline-verified, recycle-safe kill below. Flagless/legacy pidfiles (no
|
|
422
|
+
// ownerPid) NO LONGER force a snapshot: severedVerdict now KEEPS flagless
|
|
423
|
+
// watchers (the ancestry walk that used to "collect" them was a false-kill), so
|
|
424
|
+
// there is nothing to reap for them, and a dead-PID pidfile is already collected
|
|
425
|
+
// by sweepDeadPidfiles above. Dropping the legacy force-snapshot removes the
|
|
426
|
+
// bare-pidfile self-trigger that fired a conhost-leaking process snapshot on
|
|
427
|
+
// every SessionStart (the very leak the demand-gate exists to prevent — a single
|
|
428
|
+
// bare watcher re-armed it). adr: adr/monitor-resilience.md
|
|
430
429
|
const pidfiles = readAllPidfiles();
|
|
431
430
|
const severedByOwner = pidfiles.some(r => typeof r.ownerPid === 'number' && !pidAlive(r.ownerPid));
|
|
432
|
-
|
|
433
|
-
if (!severedByOwner && !hasLegacy) {
|
|
431
|
+
if (!severedByOwner) {
|
|
434
432
|
watcherAuditLog(`reap-summary gated no-severed-owner pidfiles=${pidfiles.length} (snapshot skipped)`);
|
|
435
433
|
return { scanned: 0, orphans: 0, killed: [] };
|
|
436
434
|
}
|
|
@@ -457,7 +455,7 @@ function reapOrphanWatchers() {
|
|
|
457
455
|
if (killProcessTree(p.pid))
|
|
458
456
|
killed.push(p.pid);
|
|
459
457
|
}
|
|
460
|
-
watcherAuditLog(`reap-summary mode
|
|
458
|
+
watcherAuditLog(`reap-summary mode=owner-pid scanned=${watchers.length} severed=${severed.length} killed=[${killed.join(',')}]`);
|
|
461
459
|
return { scanned: watchers.length, orphans: severed.length, killed };
|
|
462
460
|
}
|
|
463
461
|
/** Force-kill a process and its descendants. `taskkill /T` reaps the tree in one
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"watcher-registry.js","sourceRoot":"","sources":["../../src/commands/watcher-registry.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"watcher-registry.js","sourceRoot":"","sources":["../../src/commands/watcher-registry.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -33,7 +33,7 @@ It does **not** respawn on: clean exit (code 0), Ctrl-C / `TaskStop` (SIGINT/SIG
|
|
|
33
33
|
|
|
34
34
|
**Scope is within-session only.** The supervisor makes the watcher rock-solid while the session stays open. It cannot survive session reload / `--resume` / `/compact` — the Monitor task that pipes the watcher's stdout into chat is a harness construct destroyed on reload, by design (see `adr/monitor-resilience.md`, 2026-06-02). Reload-survival is structurally impossible at the process layer and is not what this fixes.
|
|
35
35
|
|
|
36
|
-
**The watcher dies with its consumer (2026-06-04).** When the Monitor task goes away (session reload/end), the watcher's stdout/stderr pipe breaks; it detects that (EPIPE, or a periodic stderr probe while idle) and exits terminal — the supervisor does **not** respawn it. So a watcher lives the whole session and then dies cleanly, leaving no orphan. A SessionStart reaper (`greprag inbox reap`, run automatically) sweeps any watcher a hard-kill left behind
|
|
36
|
+
**The watcher dies with its consumer (2026-06-04).** When the Monitor task goes away (session reload/end), the watcher's stdout/stderr pipe breaks; it detects that (EPIPE, or a periodic stderr probe while idle) and exits terminal — the supervisor does **not** respawn it. So a watcher lives the whole session and then dies cleanly, leaving no orphan. A SessionStart reaper (`greprag inbox reap`, run automatically) sweeps any watcher a hard-kill left behind, keyed on the `--owner-pid` the arm hook stamps: it kills a watcher only when that stamped claude.exe is dead. The "bare" arm forms below carry no `--owner-pid` and are **kept, never false-killed** — the old ancestry-walk fallback that reaped flagless watchers was retired 2026-06-13 (it false-killed live backgrounded watchers; see `adr/monitor-resilience.md`). The hook's printed arm command does stamp `--owner-pid`, so prefer pasting that verbatim where you want a hard-killed orphan to also be reapable. ("Bare" here means **no `while … sleep` wrapper** — see below — not "no flags".)
|
|
37
37
|
|
|
38
38
|
`--no-supervise` runs the SSE loop directly in-process (tests, SDK, debugging). A present programmatic `signal` (AbortSignal) implies the same direct mode.
|
|
39
39
|
|
|
@@ -66,13 +66,13 @@ Substitute `<own-session-id>` from your SessionStart hook output.
|
|
|
66
66
|
|
|
67
67
|
The chip reports back to **your** session id via `greprag send`. Nothing else reliably arms you to receive it: the SessionStart arm-directive and the turn-2 UserPromptSubmit fallback are agent-choice and may not fire, and a report that lands in an unwatched inbox sits silently until someone runs `greprag inbox` by hand. So **immediately after `spawn_task` returns, arm your own watcher** — unless you already have one running this session (one watcher covers every chip you spawn; never double-arm):
|
|
68
68
|
|
|
69
|
-
Use the **registered** form — the exact command the SessionStart / UserPromptSubmit arm hook prints
|
|
69
|
+
Use the **registered** form — copy the exact command the SessionStart / UserPromptSubmit arm hook prints **verbatim**. It already carries `--owner-pid <claude-pid>`, which only the hook can resolve (the hook is a live descendant of claude.exe; your shell is not):
|
|
70
70
|
|
|
71
71
|
```
|
|
72
|
-
Monitor (persistent:true): `
|
|
72
|
+
Monitor (persistent:true): `greprag inbox watch --session <your-8hex> --json --owner-pid <pid>`
|
|
73
73
|
```
|
|
74
74
|
|
|
75
|
-
`<your-8hex>` = your own session id (from SessionStart)
|
|
75
|
+
`<your-8hex>` = your own session id (from SessionStart). **Do NOT hand-fill `--owner-pid` from a shell PID** — the reaper reads `--owner-pid` as "the claude.exe that owns me," so a non-claude PID there reads as a dead owner and the watch is reaped. **Do NOT add `--monitor-pid` / `read … /proc/$$/winpid`** — that form was reverted 2026-06-11 (it stamped the transient arm-line bash, not the Monitor task, and false-killed live watchers); the flag is dead code now. **Do NOT use a bare `while true; greprag inbox watch …` loop** — it never registers in the desk-line, so the arm-probe reports you "NOT armed" and other sessions can't see you as live-reachable. Simplest and correct: **paste the arm hook's printed command verbatim** — its `--owner-pid` is the only one the reaper trusts. (A watch armed with no `--owner-pid` at all is fine too — it is kept, never false-killed — it just isn't owner-pid-reapable if hard-killed.) Arming is what makes the chip's "done" report surface live instead of being lost — the spawn is only half the loop.
|
|
76
76
|
|
|
77
77
|
**Launch state:** the Block 1 `IN-FLIGHT` ping is your only signal the operator actually clicked the chip card. No ping = assume the card is still unpressed — don't wait on results from a chip that was never launched.
|
|
78
78
|
|