instar 1.3.692 → 1.3.694

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.
@@ -1 +1 @@
1
- {"version":3,"file":"MessagingToneGate.d.ts","sourceRoot":"","sources":["../../src/core/MessagingToneGate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MessagingToneGate.d.ts","sourceRoot":"","sources":["../../src/core/MessagingToneGate.ts"],"names":[],"mappings":"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"}
@@ -21,6 +21,7 @@ import crypto from 'node:crypto';
21
21
  import { isCapacityUnavailable } from './SpawnCapIntelligenceProvider.js';
22
22
  import { detectGateSignals, GATE_SIGNAL_KIND_TO_RULE, } from './GateSignalDetectors.js';
23
23
  import { detectInternalIdLeak } from './internal-id-leak.js';
24
+ import { detectSelfStopShape } from './self-stop-floor.js';
24
25
  /**
25
26
  * The pure, synchronous deterministic leak floor used on the degraded path
26
27
  * (F4 graceful degradation). NO LLM, NO subprocess — just the B1–B7 artifact
@@ -63,6 +64,26 @@ export function buildDegradedToneResult(text, latencyMs, reason) {
63
64
  degradedToDeterministic: true,
64
65
  };
65
66
  }
67
+ // ux-is-the-product-hardening §2.1 — the behavioral self-stop guard (B15/B18)
68
+ // requires the LLM judge, so it vanishes on this degraded path. The
69
+ // deterministic self-stop floor backstops exactly that gap: HOLD (fail-CLOSED
70
+ // on suspicion) a clean-prose self-stop rather than wave a drift message
71
+ // through while the judge is offline. Narrow + high-precision (stop ACTION +
72
+ // self-protective REASON); inherits the failClosedOnExhaustion:false
73
+ // kill-switch automatically (when false, review() fails open and never reaches
74
+ // this function). The 2026-06-27 incident is the founding case.
75
+ const selfStop = detectSelfStopShape(text);
76
+ if (selfStop.detected) {
77
+ return {
78
+ pass: false,
79
+ rule: 'B15_CONTEXT_DEATH_STOP',
80
+ issue: `Outbound tone review degraded to the deterministic floor (${reason}) and caught a self-stop shape (action "${selfStop.actionMatch}" + self-protective reason "${selfStop.reasonMatch}") with the LLM judge unavailable.`,
81
+ suggestion: 'Held on the deterministic self-stop floor: the work is pre-approved and reversible — drop the pause/defer framing and continue, or restate an explicit legitimate-stop reason (a genuine operator decision, an external blocker, or true completion).',
82
+ latencyMs,
83
+ failedClosed: true,
84
+ degradedToDeterministic: true,
85
+ };
86
+ }
66
87
  return {
67
88
  pass: true,
68
89
  rule: '',
@@ -436,7 +457,7 @@ These rules only fire when the producer has explicitly marked the candidate as a
436
457
 
437
458
  When you BLOCK, the issue field must state WHICH intent you detected and WHY this candidate expresses it, in your OWN words (1–2 sentences) — not "matched phrase X". Inability to cleanly articulate is NOT a pass license: if a stop is proposed and the reason is agent-state, BLOCK and say so plainly.
438
459
 
439
- Examples of the KIND of framing (ILLUSTRATIVE, NOT a checklist, NOT a necessary condition — recognize any paraphrase): "fresh session", "pick this up later", "tail of this run", "remaining context", "fresh focus / with a clear head", "more runway left in my window", "I'm sharper earlier in a run", "to avoid muddy output".
460
+ Examples of the KIND of framing (ILLUSTRATIVE, NOT a checklist, NOT a necessary condition — recognize any paraphrase): "fresh session", "pick this up later", "tail of this run", "remaining context", "fresh focus / with a clear head", "more runway left in my window", "I'm sharper earlier in a run", "to avoid muddy output", "not as the tail of an already-huge work session", "do it as a clean, focused pass", "rather not risk a half-finished restart / deploying restarts the agent" (restart-disruption avoidance is the AGENT'S own convenience, not a legitimate stop — a restart is a minimal, recoverable disruption), and treating a SELF-FIXABLE local/environment/test/setup failure as a reason to PAUSE rather than a task to fix (fixing the local environment is the agent's own job; "the environment is broken so I'll stop" is an agent-state stop unless the failure is a GENUINE external blocker the agent has exhausted).
440
461
 
441
462
  Severity: HIGH. False-negatives (a real slip getting through) are worse than false-positives — the operator explicitly asked for this guard against a recurring failure mode. The reason-gate above is what keeps it from over-blocking honest status disclosure (step 1).
442
463
 
@@ -1 +1 @@
1
- {"version":3,"file":"MessagingToneGate.js","sourceRoot":"","sources":["../../src/core/MessagingToneGate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MessagingToneGate.js","sourceRoot":"","sources":["../../src/core/MessagingToneGate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Deterministic self-stop floor — the no-LLM backstop for the behavioral
3
+ * self-stop guard (B15/B18) on the DEGRADED tone-gate path.
4
+ *
5
+ * Spec: docs/specs/ux-is-the-product-hardening.md §2.1
6
+ *
7
+ * Why this exists (the 2026-06-27 incident): the behavioral self-stop rules
8
+ * (B15_CONTEXT_DEATH_STOP, B18_AUTONOMY_STOP) require the LLM judge. When the
9
+ * LLM backend is unavailable (provider throw → fail-open, or slow-budget-timeout
10
+ * → degrade to the leak-only floor) the self-stop guard SILENTLY VANISHES — which
11
+ * is exactly the flaky-backend condition under which an agent is most likely to
12
+ * be drifting. The leak floor (detectDeterministicLeak) keeps secrets/paths/
13
+ * commands from escaping during an outage, but it does NOT catch a clean-prose
14
+ * self-stop. This module fills that one gap: a deterministic recognizer for the
15
+ * self-stop SHAPE so the degraded path can HOLD (fail-CLOSED on suspicion) rather
16
+ * than wave a drift message through.
17
+ *
18
+ * Threat model: drift-correction, NOT a security boundary (same as the LLM gate).
19
+ * It is intentionally NARROW and high-precision (a stop/defer ACTION conjoined
20
+ * with a self-protective REASON), because it runs only on the degraded path where
21
+ * its verdict HOLDS a message. A genuine question to the operator or an external
22
+ * blocker report carries no self-protective reason and so is NOT held.
23
+ *
24
+ * Bias (degraded path only): favor false-POSITIVES — holding a borderline agent
25
+ * self-stop costs the agent a re-think; a false-NEGATIVE is the exact failure we
26
+ * are fixing. This is the inverse of B16/B17's bias because the cost asymmetry is
27
+ * inverted when the judge is offline.
28
+ */
29
+ export interface SelfStopFloorResult {
30
+ /** True when the text expresses the self-stop shape (stop/defer + self-protective reason). */
31
+ detected: boolean;
32
+ /** The action phrase that matched (for the audit issue), when detected. */
33
+ actionMatch?: string;
34
+ /** The self-protective reason phrase that matched (for the audit issue), when detected. */
35
+ reasonMatch?: string;
36
+ }
37
+ /**
38
+ * Detect the self-stop shape in an AGENT-OUTBOUND message. Detection requires
39
+ * BOTH a stop/defer ACTION marker AND a self-protective REASON marker, and NO
40
+ * strong legitimate-stop override. Pure and synchronous (no LLM, no subprocess).
41
+ */
42
+ export declare function detectSelfStopShape(text: string): SelfStopFloorResult;
43
+ //# sourceMappingURL=self-stop-floor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"self-stop-floor.d.ts","sourceRoot":"","sources":["../../src/core/self-stop-floor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,MAAM,WAAW,mBAAmB;IAClC,8FAA8F;IAC9F,QAAQ,EAAE,OAAO,CAAC;IAClB,2EAA2E;IAC3E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2FAA2F;IAC3F,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AA8ID;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,CAarE"}
@@ -0,0 +1,186 @@
1
+ /**
2
+ * Deterministic self-stop floor — the no-LLM backstop for the behavioral
3
+ * self-stop guard (B15/B18) on the DEGRADED tone-gate path.
4
+ *
5
+ * Spec: docs/specs/ux-is-the-product-hardening.md §2.1
6
+ *
7
+ * Why this exists (the 2026-06-27 incident): the behavioral self-stop rules
8
+ * (B15_CONTEXT_DEATH_STOP, B18_AUTONOMY_STOP) require the LLM judge. When the
9
+ * LLM backend is unavailable (provider throw → fail-open, or slow-budget-timeout
10
+ * → degrade to the leak-only floor) the self-stop guard SILENTLY VANISHES — which
11
+ * is exactly the flaky-backend condition under which an agent is most likely to
12
+ * be drifting. The leak floor (detectDeterministicLeak) keeps secrets/paths/
13
+ * commands from escaping during an outage, but it does NOT catch a clean-prose
14
+ * self-stop. This module fills that one gap: a deterministic recognizer for the
15
+ * self-stop SHAPE so the degraded path can HOLD (fail-CLOSED on suspicion) rather
16
+ * than wave a drift message through.
17
+ *
18
+ * Threat model: drift-correction, NOT a security boundary (same as the LLM gate).
19
+ * It is intentionally NARROW and high-precision (a stop/defer ACTION conjoined
20
+ * with a self-protective REASON), because it runs only on the degraded path where
21
+ * its verdict HOLDS a message. A genuine question to the operator or an external
22
+ * blocker report carries no self-protective reason and so is NOT held.
23
+ *
24
+ * Bias (degraded path only): favor false-POSITIVES — holding a borderline agent
25
+ * self-stop costs the agent a re-think; a false-NEGATIVE is the exact failure we
26
+ * are fixing. This is the inverse of B16/B17's bias because the cost asymmetry is
27
+ * inverted when the judge is offline.
28
+ */
29
+ /**
30
+ * (A) Stop / defer / hand-off ACTION markers — the agent proposing to halt or
31
+ * postpone in-flight work. ILLUSTRATIVE of the shape, matched case-insensitively
32
+ * as substrings. The list is deliberately broad on the ACTION axis because the
33
+ * REASON axis (B) is what makes a match high-precision.
34
+ */
35
+ const ACTION_MARKERS = [
36
+ 'pause here',
37
+ 'pausing here',
38
+ 'pausing rather than',
39
+ "i'm pausing",
40
+ 'im pausing',
41
+ 'going to pause',
42
+ 'will pause here',
43
+ 'let me pause',
44
+ 'stop here',
45
+ 'stopping here',
46
+ "i'll stop here",
47
+ 'let me stop here',
48
+ 'hold off on',
49
+ 'holding off on',
50
+ 'pick this up later',
51
+ 'pick it up later',
52
+ 'pick this back up later',
53
+ 'resume this later',
54
+ 'resume it later',
55
+ 'continue this later',
56
+ 'continue in a fresh',
57
+ 'continue in a new session',
58
+ 'leave it here for now',
59
+ 'leave this here for now',
60
+ 'wrap up here',
61
+ 'wrapping up here',
62
+ 'good stopping point',
63
+ 'natural stopping point',
64
+ 'natural off-ramp',
65
+ 'park this for',
66
+ 'parking this for',
67
+ 'hand this off',
68
+ 'handing this off',
69
+ 'handing it back',
70
+ 'hand it back',
71
+ ];
72
+ /**
73
+ * (B) Self-protective REASON markers — the agent's OWN operational state /
74
+ * convenience used to justify the stop, rather than a legitimate stop reason.
75
+ * Three families: context/fatigue, restart-avoidance, and environment-as-stop.
76
+ */
77
+ const REASON_MARKERS = [
78
+ // context / fatigue / volume / freshness — kept specific so an incidental
79
+ // mention of a data structure ("the tail of the array") or a UI ("compact
80
+ // layout") does NOT match (over-block fix, second-pass review 2026-06-28).
81
+ 'context window',
82
+ 'running low on context',
83
+ 'low on context',
84
+ 'out of context',
85
+ 'remaining context',
86
+ 'compact the conversation',
87
+ 'compact to continue',
88
+ 'fresh focus',
89
+ 'with a clear head',
90
+ 'clearer head',
91
+ "i'm sharper",
92
+ 'sharper earlier',
93
+ 'better fresh',
94
+ 'a clean, focused pass',
95
+ 'a clean focused pass',
96
+ 'clean focused pass',
97
+ 'half-finished',
98
+ 'half finished',
99
+ 'barreling ahead',
100
+ 'barrelling ahead',
101
+ 'huge work session',
102
+ 'already-huge',
103
+ 'already huge work',
104
+ 'tail of this run',
105
+ 'tail of this session',
106
+ 'tail of an already',
107
+ 'tail of a huge',
108
+ "i've done a lot already",
109
+ 'done a lot already',
110
+ "it's late",
111
+ 'it is late',
112
+ "i'm getting tired",
113
+ 'muddy output',
114
+ // restart / redeploy avoidance (the operator: a restart is a MINIMAL disruption)
115
+ 'restarts the agent',
116
+ 'restart the agent',
117
+ 'disruptive restart',
118
+ 'half-finished restart',
119
+ 'avoid a restart',
120
+ 'rather not restart',
121
+ 'risk a restart',
122
+ // environment-issue-as-stop — kept to the stop-specific phrasing only (the
123
+ // operator's directive: FIX the local environment; it's not a stop reason).
124
+ // The broad LLM-judge clause in B15 covers softer environment framings.
125
+ 'environment-only failures',
126
+ 'environment-only failure',
127
+ ];
128
+ /**
129
+ * Strong LEGITIMATE-stop overrides — when present, the stop's reason is NOT
130
+ * self-protective, so the floor does NOT hold. Kept narrow and high-confidence:
131
+ * an external dependency clearing on its own schedule, or an explicit
132
+ * operator-only/credential reason. (A bare "?" is intentionally NOT a legit
133
+ * override here — a self-stop dressed as a rhetorical question must still hold on
134
+ * the degraded path; the agent can re-send a genuine decision question without
135
+ * the self-stop framing.)
136
+ */
137
+ const LEGIT_OVERRIDES = [
138
+ 'rate limit',
139
+ 'rate-limit',
140
+ 'rate-limited',
141
+ 'rate limited',
142
+ 'once ci is green',
143
+ 'when ci is green',
144
+ 'until ci',
145
+ 'waiting on the deploy',
146
+ 'until the deploy',
147
+ 'api error',
148
+ 'returned 500',
149
+ 'returned a 500',
150
+ ' 503',
151
+ 'service is down',
152
+ 'service is unavailable',
153
+ 'waiting on you to',
154
+ 'need your password',
155
+ 'need a credential',
156
+ 'awaiting your approval',
157
+ 'pending your approval',
158
+ ];
159
+ function firstMatch(haystack, needles) {
160
+ for (const n of needles) {
161
+ if (haystack.includes(n))
162
+ return n;
163
+ }
164
+ return undefined;
165
+ }
166
+ /**
167
+ * Detect the self-stop shape in an AGENT-OUTBOUND message. Detection requires
168
+ * BOTH a stop/defer ACTION marker AND a self-protective REASON marker, and NO
169
+ * strong legitimate-stop override. Pure and synchronous (no LLM, no subprocess).
170
+ */
171
+ export function detectSelfStopShape(text) {
172
+ if (!text)
173
+ return { detected: false };
174
+ const hay = text.toLowerCase();
175
+ // A legitimate external/credential reason de-fangs the whole message.
176
+ if (firstMatch(hay, LEGIT_OVERRIDES))
177
+ return { detected: false };
178
+ const actionMatch = firstMatch(hay, ACTION_MARKERS);
179
+ if (!actionMatch)
180
+ return { detected: false };
181
+ const reasonMatch = firstMatch(hay, REASON_MARKERS);
182
+ if (!reasonMatch)
183
+ return { detected: false };
184
+ return { detected: true, actionMatch, reasonMatch };
185
+ }
186
+ //# sourceMappingURL=self-stop-floor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"self-stop-floor.js","sourceRoot":"","sources":["../../src/core/self-stop-floor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * MESH-SELF-HEAL G1 — the serve-progress watermark (MESH-SELF-HEAL-SPEC §3.1).
3
+ *
4
+ * `serveProgressedMonoMs` is the THIRD liveness signal — stamped when a fetched
5
+ * update is dispatched/served/durably-enqueued (proves end-to-end progress, closes
6
+ * the "fetched-and-dropped" gap, finding Adv-F4). It CANNOT share the lifeline's
7
+ * `lifeline-poll-active.json` (that record is the lifeline PROCESS's, atomically
8
+ * rewritten on every poll-state change with no serve field — a second-process write
9
+ * would clobber it). So it lives in its OWN single-writer record `state/serve-progress.json`,
10
+ * written by the dispatch seam and read cross-process by the relinquish evaluator
11
+ * (round-2 Int2-D / round-3 Les3-F1 — net-new, deliberately-acknowledged plumbing).
12
+ *
13
+ * THE LOAD-BEARING SAFETY: a **boot-epoch fence** (round-4 Adv4-B). Because this is a
14
+ * persisted file (one process can't read another's memory), a stamp written by a
15
+ * PRIOR incarnation must NEVER read as fresh after a crash/restart — else a
16
+ * crash-stale stamp would mask a non-serving new process (re-creating the zombie).
17
+ * The record carries a `bootId`; the reader discards any stamp whose `bootId` ≠ the
18
+ * current incarnation (a boot-epoch fence — NOT a raw monotonic compare, which
19
+ * across incarnations would be an invalid cross-domain subtraction). Within ONE
20
+ * incarnation the monotonic stamps share a clock domain, so the freshness compare is
21
+ * valid. The field is a single machine-global monotonic-MAX watermark (NOT per-topic
22
+ * state) — concurrent dispatch-seam writers are benign because it only ever advances
23
+ * (round-4 Adv4-A).
24
+ *
25
+ * Threat model + write posture mirror `pollIntent.ts`: local same-uid IPC, atomic
26
+ * tmp+rename so the reader never sees a torn record.
27
+ */
28
+ export interface ServeProgressRecord {
29
+ /** Monotonic stamp (writer's monotonic clock) at the last served/enqueued update. */
30
+ serveProgressedMonoMs: number;
31
+ /** Writer process incarnation marker — the boot-epoch fence. */
32
+ bootId: string;
33
+ /** Writer pid (parity with pollIntent; diagnostics only). */
34
+ serverPid: number;
35
+ /** Wall-clock of the write (diagnostics; freshness uses the monotonic stamp). */
36
+ ts: number;
37
+ }
38
+ export declare function serveProgressPath(stateDir: string): string;
39
+ export declare function readServeProgress(stateDir: string): ServeProgressRecord | null;
40
+ /**
41
+ * Stamp serve progress. Monotonic-MAX: only ever advances — a write with a
42
+ * `monoMs` not greater than the current record's (SAME incarnation) is dropped, so
43
+ * concurrent dispatch-seam writers never regress the watermark. A record from a
44
+ * different `bootId` is always overwritten (a new incarnation starts its own clock
45
+ * domain; the prior stamp must not survive as fresh — the boot-epoch fence).
46
+ */
47
+ export declare function writeServeProgress(stateDir: string, args: {
48
+ bootId: string;
49
+ serverPid: number;
50
+ monoMs: number;
51
+ }): void;
52
+ /**
53
+ * Is serve progress FRESH (the relinquish evaluator's read)? Boot-epoch-fenced:
54
+ * a stamp from a different incarnation (`bootId` mismatch) is treated as "no
55
+ * progress yet" (false) — so a crash-stale on-disk stamp can never mask a
56
+ * non-serving new process. Within the current incarnation the monotonic compare is
57
+ * a valid same-clock-domain subtraction. `currentBootId` + `currentMonoMs` are
58
+ * injected (the reader's own incarnation + monotonic now) so this is pure + testable.
59
+ */
60
+ export declare function serveProgressFresh(stateDir: string, currentBootId: string, currentMonoMs: number, thresholdMs: number): boolean;
61
+ //# sourceMappingURL=serveProgress.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serveProgress.d.ts","sourceRoot":"","sources":["../../src/core/serveProgress.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAOH,MAAM,WAAW,mBAAmB;IAClC,qFAAqF;IACrF,qBAAqB,EAAE,MAAM,CAAC;IAC9B,gEAAgE;IAChE,MAAM,EAAE,MAAM,CAAC;IACf,6DAA6D;IAC7D,SAAS,EAAE,MAAM,CAAC;IAClB,iFAAiF;IACjF,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,mBAAmB,GAAG,IAAI,CAmB9E;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC1D,IAAI,CAcN;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,MAAM,GAClB,OAAO,CAKT"}
@@ -0,0 +1,89 @@
1
+ /**
2
+ * MESH-SELF-HEAL G1 — the serve-progress watermark (MESH-SELF-HEAL-SPEC §3.1).
3
+ *
4
+ * `serveProgressedMonoMs` is the THIRD liveness signal — stamped when a fetched
5
+ * update is dispatched/served/durably-enqueued (proves end-to-end progress, closes
6
+ * the "fetched-and-dropped" gap, finding Adv-F4). It CANNOT share the lifeline's
7
+ * `lifeline-poll-active.json` (that record is the lifeline PROCESS's, atomically
8
+ * rewritten on every poll-state change with no serve field — a second-process write
9
+ * would clobber it). So it lives in its OWN single-writer record `state/serve-progress.json`,
10
+ * written by the dispatch seam and read cross-process by the relinquish evaluator
11
+ * (round-2 Int2-D / round-3 Les3-F1 — net-new, deliberately-acknowledged plumbing).
12
+ *
13
+ * THE LOAD-BEARING SAFETY: a **boot-epoch fence** (round-4 Adv4-B). Because this is a
14
+ * persisted file (one process can't read another's memory), a stamp written by a
15
+ * PRIOR incarnation must NEVER read as fresh after a crash/restart — else a
16
+ * crash-stale stamp would mask a non-serving new process (re-creating the zombie).
17
+ * The record carries a `bootId`; the reader discards any stamp whose `bootId` ≠ the
18
+ * current incarnation (a boot-epoch fence — NOT a raw monotonic compare, which
19
+ * across incarnations would be an invalid cross-domain subtraction). Within ONE
20
+ * incarnation the monotonic stamps share a clock domain, so the freshness compare is
21
+ * valid. The field is a single machine-global monotonic-MAX watermark (NOT per-topic
22
+ * state) — concurrent dispatch-seam writers are benign because it only ever advances
23
+ * (round-4 Adv4-A).
24
+ *
25
+ * Threat model + write posture mirror `pollIntent.ts`: local same-uid IPC, atomic
26
+ * tmp+rename so the reader never sees a torn record.
27
+ */
28
+ import { existsSync, readFileSync, renameSync, writeFileSync } from 'node:fs';
29
+ import { join } from 'node:path';
30
+ const SERVE_PROGRESS_FILE = 'serve-progress.json';
31
+ export function serveProgressPath(stateDir) {
32
+ return join(stateDir, SERVE_PROGRESS_FILE);
33
+ }
34
+ export function readServeProgress(stateDir) {
35
+ const p = serveProgressPath(stateDir);
36
+ if (!existsSync(p))
37
+ return null;
38
+ try {
39
+ const rec = JSON.parse(readFileSync(p, 'utf8'));
40
+ if (typeof rec?.serveProgressedMonoMs !== 'number' ||
41
+ typeof rec?.bootId !== 'string' ||
42
+ typeof rec?.ts !== 'number')
43
+ return null;
44
+ return rec;
45
+ }
46
+ catch {
47
+ // @silent-fallback-ok — a corrupt/unreadable serve-progress record reads as
48
+ // "no progress yet" (null → serveProgressFresh false), the SAFE direction: a
49
+ // holder that cannot read its own serve watermark is treated as possibly-non-
50
+ // serving (a relinquish candidate), NEVER masked as healthy. A DegradationReporter
51
+ // event per failed read of a best-effort liveness file would be noise.
52
+ return null;
53
+ }
54
+ }
55
+ /**
56
+ * Stamp serve progress. Monotonic-MAX: only ever advances — a write with a
57
+ * `monoMs` not greater than the current record's (SAME incarnation) is dropped, so
58
+ * concurrent dispatch-seam writers never regress the watermark. A record from a
59
+ * different `bootId` is always overwritten (a new incarnation starts its own clock
60
+ * domain; the prior stamp must not survive as fresh — the boot-epoch fence).
61
+ */
62
+ export function writeServeProgress(stateDir, args) {
63
+ const { bootId, serverPid, monoMs } = args;
64
+ const existing = readServeProgress(stateDir);
65
+ if (existing && existing.bootId === bootId && existing.serveProgressedMonoMs >= monoMs) {
66
+ return; // monotonic-MAX within the same incarnation — never regress
67
+ }
68
+ const p = serveProgressPath(stateDir);
69
+ const tmp = `${p}.tmp.${process.pid}`;
70
+ writeFileSync(tmp, JSON.stringify({ serveProgressedMonoMs: monoMs, bootId, serverPid, ts: Date.now() }), 'utf8');
71
+ renameSync(tmp, p);
72
+ }
73
+ /**
74
+ * Is serve progress FRESH (the relinquish evaluator's read)? Boot-epoch-fenced:
75
+ * a stamp from a different incarnation (`bootId` mismatch) is treated as "no
76
+ * progress yet" (false) — so a crash-stale on-disk stamp can never mask a
77
+ * non-serving new process. Within the current incarnation the monotonic compare is
78
+ * a valid same-clock-domain subtraction. `currentBootId` + `currentMonoMs` are
79
+ * injected (the reader's own incarnation + monotonic now) so this is pure + testable.
80
+ */
81
+ export function serveProgressFresh(stateDir, currentBootId, currentMonoMs, thresholdMs) {
82
+ const rec = readServeProgress(stateDir);
83
+ if (!rec)
84
+ return false;
85
+ if (rec.bootId !== currentBootId)
86
+ return false; // boot-epoch fence
87
+ return currentMonoMs - rec.serveProgressedMonoMs < thresholdMs;
88
+ }
89
+ //# sourceMappingURL=serveProgress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serveProgress.js","sourceRoot":"","sources":["../../src/core/serveProgress.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC9E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,MAAM,mBAAmB,GAAG,qBAAqB,CAAC;AAalD,MAAM,UAAU,iBAAiB,CAAC,QAAgB;IAChD,OAAO,IAAI,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,QAAgB;IAChD,MAAM,CAAC,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IACtC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAChC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,CAAwB,CAAC;QACvE,IACE,OAAO,GAAG,EAAE,qBAAqB,KAAK,QAAQ;YAC9C,OAAO,GAAG,EAAE,MAAM,KAAK,QAAQ;YAC/B,OAAO,GAAG,EAAE,EAAE,KAAK,QAAQ;YAC3B,OAAO,IAAI,CAAC;QACd,OAAO,GAAG,CAAC;IACb,CAAC;IAAC,MAAM,CAAC;QACP,4EAA4E;QAC5E,6EAA6E;QAC7E,8EAA8E;QAC9E,mFAAmF;QACnF,uEAAuE;QACvE,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAChC,QAAgB,EAChB,IAA2D;IAE3D,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC3C,MAAM,QAAQ,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAC7C,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,MAAM,IAAI,QAAQ,CAAC,qBAAqB,IAAI,MAAM,EAAE,CAAC;QACvF,OAAO,CAAC,4DAA4D;IACtE,CAAC;IACD,MAAM,CAAC,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IACtC,MAAM,GAAG,GAAG,GAAG,CAAC,QAAQ,OAAO,CAAC,GAAG,EAAE,CAAC;IACtC,aAAa,CACX,GAAG,EACH,IAAI,CAAC,SAAS,CAAC,EAAE,qBAAqB,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,EAAgC,CAAC,EAClH,MAAM,CACP,CAAC;IACF,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AACrB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAChC,QAAgB,EAChB,aAAqB,EACrB,aAAqB,EACrB,WAAmB;IAEnB,MAAM,GAAG,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IACxC,IAAI,CAAC,GAAG;QAAE,OAAO,KAAK,CAAC;IACvB,IAAI,GAAG,CAAC,MAAM,KAAK,aAAa;QAAE,OAAO,KAAK,CAAC,CAAC,mBAAmB;IACnE,OAAO,aAAa,GAAG,GAAG,CAAC,qBAAqB,GAAG,WAAW,CAAC;AACjE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "instar",
3
- "version": "1.3.692",
3
+ "version": "1.3.694",
4
4
  "description": "Coherence infrastructure for self-evolving AI agents — on the Claude Code or Codex subscription you already have.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "$schema": "./builtin-manifest.schema.json",
3
3
  "schemaVersion": 1,
4
- "generatedAt": "2026-06-28T10:05:54.303Z",
5
- "instarVersion": "1.3.692",
4
+ "generatedAt": "2026-06-28T10:37:09.930Z",
5
+ "instarVersion": "1.3.694",
6
6
  "entryCount": 202,
7
7
  "entries": {
8
8
  "hook:session-start": {
@@ -0,0 +1,45 @@
1
+ # Upgrade Guide — vNEXT
2
+
3
+ <!-- assembled-by: assemble-next-md -->
4
+ <!-- bump: patch -->
5
+
6
+ ## What Changed
7
+
8
+ The always-on outbound message gate has a behavioral check that blocks the agent from talking itself
9
+ out of finishing pre-approved work (the "let me pause and pick this up fresh later" / "good stopping
10
+ point" / "I'd rather not restart" bail-out habit). That check needs the LLM judge — and when the judge
11
+ was unreachable (a flaky backend), the gate quietly let the message through. The leak backup
12
+ (passwords / file paths / commands) still ran, but the behavioral self-stop check simply vanished
13
+ under outage — exactly when the agent is most likely to be drifting.
14
+
15
+ This adds a deterministic, no-LLM **self-stop floor** to the gate's existing degraded path
16
+ (`src/core/self-stop-floor.ts`, wired into `buildDegradedToneResult`). When the LLM judge is offline
17
+ and a message has the self-stop SHAPE — a stop/defer action conjoined with a self-protective reason
18
+ (volume/fatigue, restart-avoidance, or treating a fixable local issue as a reason to stop) — the
19
+ message is now HELD and surfaced back to the agent ("the work is pre-approved — continue") instead of
20
+ being waved through. A genuine decision question to the operator or an external-blocker wait carries
21
+ no self-protective reason and still sends. The LLM-judge B15 rule also got an illustrative clause for
22
+ these same framings. The existing `messaging.toneGate.failClosedOnExhaustion: false` kill-switch
23
+ covers the floor too.
24
+
25
+ ## What to Tell Your User
26
+
27
+ If your agent ever went quiet under load and then later admitted it had "paused to pick things up
28
+ fresh" — that gap is now closed on the degraded path. When the message-checking engine is briefly
29
+ offline, the agent can no longer quietly send itself a bail-out and stop; the message is held and the
30
+ agent is pushed to keep going on work you already approved. Nothing changes on normal sends, and your
31
+ existing override still works.
32
+
33
+ ## Summary of New Capabilities
34
+
35
+ - Deterministic self-stop backstop on the outbound gate's degraded path — the "don't talk yourself out
36
+ of finishing" guard no longer disappears when the LLM judge is unavailable.
37
+
38
+ ## Evidence
39
+
40
+ - Replay of the 2026-06-27 bail-out message through the live deployed gate: `pass=false
41
+ rule=B15_CONTEXT_DEATH_STOP` (the gate's logic was already correct; the defect was fail-open under
42
+ outage, confirmed by `/metrics/features` showing fired=0 across 394 real calls in 72h).
43
+ - tests/unit/self-stop-floor.test.ts (10 cases) + tests/unit/MessagingToneGate.test.ts (4 new
44
+ degraded-path cases): the slip HOLDs on a provider throw, a legit decision question SENDs, the
45
+ kill-switch fails open. 86 related tests green; `tsc --noEmit` clean.
@@ -0,0 +1,24 @@
1
+ # Upgrade Guide — vNEXT
2
+
3
+ <!-- assembled-by: assemble-next-md -->
4
+ <!-- bump: patch -->
5
+
6
+ ## What Changed
7
+
8
+ Mesh Self-Heal **G1 — serve-progress watermark** (wiring increment A, MESH-SELF-HEAL-SPEC §3.1). Adds `src/core/serveProgress.ts`: the third liveness signal (`serveProgressedMonoMs` — proof a fetched update was actually served end-to-end, closing the "fetched-and-dropped" gap), in its own single-writer record `state/serve-progress.json`.
9
+
10
+ The load-bearing safety is a **boot-epoch fence**: a stamp left on disk by a crashed/prior process incarnation always reads as NOT fresh, so a crash-stale stamp can never mask a non-serving new process (which would re-create the zombie). Monotonic-MAX (only ever advances → concurrent writers benign), atomic tmp+rename, local same-uid IPC — mirrors `pollIntent.ts`.
11
+
12
+ Pure plumbing, NOT yet wired — zero runtime effect until increment B (the dispatch-seam write + the relinquish evaluator) consumes it. This watermark is also the prerequisite that lets the G2 take-over flip use a real serve/poll-health signal instead of a liveness approximation.
13
+
14
+ ## What to Tell Your User
15
+
16
+ Nothing changes yet — this is inert internal plumbing for the deepest multi-machine self-heal piece (detecting a machine that holds the "in charge" badge but has stopped actually serving). No action needed.
17
+
18
+ ## Summary of New Capabilities
19
+
20
+ - None user-facing. New internal record `state/serve-progress.json` + helpers (`src/core/serveProgress.ts`), consumed by a later wiring increment; no route, config, or runtime surface yet.
21
+
22
+ ## Evidence
23
+
24
+ - `tests/unit/serveProgress.test.ts` — 6 unit tests: write/read roundtrip; missing→null/not-fresh; monotonic-MAX no-regress; new-incarnation overwrite; freshness within/past threshold; and the BOOT-EPOCH FENCE (a prior-incarnation stamp reads not-fresh even when recent). Typecheck clean.
@@ -0,0 +1,32 @@
1
+ # Side-Effects Review — Mesh Self-Heal G1 (serve-progress watermark)
2
+
3
+ **Change:** The serve-progress watermark record (MESH-SELF-HEAL-SPEC §3.1) — `src/core/serveProgress.ts` (`writeServeProgress` / `readServeProgress` / `serveProgressFresh`) + 6 unit tests. The THIRD G1 liveness signal (`serveProgressedMonoMs` — end-to-end serve progress), in its OWN single-writer record `state/serve-progress.json` (it cannot share the lifeline's poll-active record without clobbering it). This is G1-wiring increment A: the watermark plumbing only. NOT YET CALLED by any writer or reader — ZERO runtime effect until increment B (the dispatch-seam write + the relinquish evaluator) consumes it. It is also the named **G2-enforce-enable prerequisite #1** (`localPollSucceededFresh` graduates from a liveness approximation to this real watermark).
4
+
5
+ **Decision point?** No — pure file I/O (a watermark record). Safety hinges on the boot-epoch fence (Q1/Q7).
6
+
7
+ ## 1. Over-block
8
+ N/A — no gating. `serveProgressFresh` biases SAFE: missing record → false; bootId mismatch → false; only a same-incarnation in-threshold stamp → true.
9
+
10
+ ## 2. Under-block
11
+ The boot-epoch fence is the guard against under-blocking (a crash-stale stamp masking a non-serving process): a prior incarnation's stamp (`bootId` mismatch) always reads NOT fresh. Tested.
12
+
13
+ ## 3. Level-of-abstraction fit
14
+ Mirrors `pollIntent.ts` exactly (atomic tmp+rename, local same-uid IPC, integrity fields). Correct layer — a cross-process record + a pure freshness reader; the dispatch-seam wiring + the evaluator are increment B.
15
+
16
+ ## 4. Signal vs authority compliance
17
+ COMPLIANT — pure I/O, no authority. It produces a freshness SIGNAL the relinquish decision will read; it never gates or actuates.
18
+
19
+ ## 5. Interactions
20
+ Single-writer, monotonic-MAX → concurrent dispatch-seam writers are benign (only advances). Distinct file from `lifeline-poll-active.json` → no clobber of the lifeline's record. No reader/writer yet.
21
+
22
+ ## 6. External surfaces
23
+ New file `state/serve-progress.json` (local, same-uid, like pollIntent). No route, no config. Written/read only once increment B wires it.
24
+
25
+ ## 7. Multi-machine posture (Cross-Machine Coherence)
26
+ Machine-local, never replicated (Sca-F1) — read only by the owning machine for its OWN relinquish decision. The boot-epoch fence makes it survive-restart-safe (a prior incarnation's stamp can't mask the new one). No cross-machine surface.
27
+
28
+ ## 8. Rollback cost
29
+ Trivial — revert the commit. Unreferenced; removing it cannot affect a running agent. The on-disk file (if ever written) is inert observability.
30
+
31
+ ## Second-pass review
32
+ Not triggered (pure file-I/O building block, no live decision-point/authority/session-lifecycle touch). The Phase-5 second-pass IS required for increment B (it wires the dispatch-seam write + the relinquish evaluator into the lease holder branch + the F3 actuation).
@@ -0,0 +1,108 @@
1
+ # Side-Effects Review — Deterministic self-stop floor (degraded-path behavioral backstop)
2
+
3
+ **Spec:** docs/specs/ux-is-the-product-hardening.md (Tier 1 — staged ELI16 + this artifact; no converged spec). **ELI16:** docs/specs/ux-is-the-product-hardening.eli16.md
4
+ **Parent:** The User Experience Is the Product — Reachability/Responsiveness/Coherence Are Sacred; Structure > Willpower.
5
+ **Files:** src/core/self-stop-floor.ts (new), src/core/MessagingToneGate.ts (wire into buildDegradedToneResult + B15 illustrative clause), tests/unit/self-stop-floor.test.ts (new), tests/unit/MessagingToneGate.test.ts (4 new degraded-path cases).
6
+
7
+ ## What changed
8
+
9
+ 1. **self-stop-floor.ts (new):** a pure, synchronous `detectSelfStopShape(text)` — recognizes the
10
+ self-stop SHAPE = a stop/defer ACTION marker conjoined with a self-protective REASON marker
11
+ (context/fatigue/volume, restart-avoidance, environment-as-stop), with a strong legitimate-stop
12
+ override (external dependency clearing, credential/approval). No LLM, no subprocess.
13
+ 2. **MessagingToneGate.buildDegradedToneResult:** after the existing deterministic LEAK check, run
14
+ the self-stop floor; if it fires → HOLD (rule `B15_CONTEXT_DEATH_STOP`, `failedClosed:true`,
15
+ `degradedToDeterministic:true`). This is the shared degrade site, so BOTH degrade manifestations
16
+ (provider-throw inside review() AND slow-budget-timeout at the route seam) are covered identically.
17
+ 3. **B15 prompt:** one ILLUSTRATIVE clause added (restart-disruption avoidance, "tail of a huge work
18
+ session", environment-as-stop) — NOT a literal gate; the rule still judges by meaning.
19
+
20
+ ## Phase 1 — Principle check (signal vs authority)
21
+
22
+ This change DOES touch a decision point (it can HOLD an outbound message). Per
23
+ `docs/signal-vs-authority.md`: the detector is a SIGNAL producer (`detectSelfStopShape` returns a
24
+ boolean shape verdict); the AUTHORITY remains `buildDegradedToneResult` / the gate. The brittle
25
+ deterministic check is given blocking authority ONLY on the already-degraded path where the
26
+ alternative is a blind fail-open — i.e. it strictly improves on "no check at all". On the normal
27
+ (judge-available) path, the smart LLM authority is unchanged and owns the decision. So the brittle
28
+ detector never parallels or shadows the smart gate; it backstops it only when the smart gate is
29
+ absent. This is the sanctioned use of a brittle check (a floor under outage), not a brittle check
30
+ holding primary authority.
31
+
32
+ ## Side-effects review (the 8 questions)
33
+
34
+ 1. **Over-block** — Could hold a legitimate agent message that happens to pair a stop-word with a
35
+ self-protective-sounding word, ONLY while the LLM judge is down. Mitigated by: requiring BOTH an
36
+ action AND a reason marker (conjunction → high precision), the legitimate-stop override (external
37
+ blocker / credential), and the fact it only runs on the degraded path. A held message is surfaced
38
+ to the agent to revise, never dropped. Bias is intentionally toward over-hold here (the safe
39
+ direction under outage) per the operator's explicit "never let this slip again."
40
+ 2. **Under-block** — A self-stop phrased with NO word in either list (a wholly novel euphemism) still
41
+ slips on the degraded path. Accepted: the deterministic floor cannot match the full semantic space
42
+ — that is what the LLM judge is for, and the real fix for availability is the backend-reliability
43
+ work (pi/gemini fallback, already merged) so the judge is actually present. The floor reduces, it
44
+ does not eliminate, the degraded-path gap. No silent claim of completeness.
45
+ 3. **Level-of-abstraction fit** — Correct layer: it lives beside the existing deterministic leak floor
46
+ (`detectDeterministicLeak`) and wires into the same `buildDegradedToneResult`, so the slow and fast
47
+ degrade manifestations get it identically. It does NOT duplicate B15's LLM logic; it is explicitly
48
+ the degraded-path-only backstop. A higher layer (the LLM judge) already owns the normal path.
49
+ 4. **Signal vs authority compliance** — Compliant (see Phase 1). The detector is a signal; the gate is
50
+ the authority; the brittle check holds authority only where the smart authority is unavailable.
51
+ 5. **Interactions** — Runs AFTER the leak check in `buildDegradedToneResult` (a leak still HOLDs
52
+ first, with its own rule). It does NOT run on the normal path, so it cannot shadow or double-fire
53
+ with the LLM B15. It inherits the `failClosedOnExhaustion` three-valued knob automatically: when
54
+ `false`, review() fails open before reaching `buildDegradedToneResult`, so the floor is skipped
55
+ (proven by test); when `true`, review() pure-holds before reaching it; the floor only manifests on
56
+ the DEFAULT (unset) degrade disposition. No race with cleanup.
57
+ 6. **External surfaces** — Only changes what the user sees on the narrow degraded+self-stop case (they
58
+ now do NOT receive a bail-out message during an outage; the agent is told to continue). No new
59
+ route, no new config key, no cross-agent surface, no data model change. Depends on no timing or
60
+ runtime state beyond the text itself (pure function).
61
+ 7. **Multi-machine posture** — **Machine-local BY DESIGN, and correctly so.** The tone gate runs on
62
+ whichever machine is sending the message; the floor is a pure function of the message text with no
63
+ state. There is nothing to replicate or proxy — every machine that runs the gate runs the same
64
+ deterministic floor identically. No single-machine assumption, no durable state to strand, no URL.
65
+ 8. **Rollback cost** — Trivial. The whole degraded path is already gated by
66
+ `messaging.toneGate.failClosedOnExhaustion: false` (operator kill-switch → fail-open, skips the
67
+ floor). To fully revert: drop the `detectSelfStopShape` call in `buildDegradedToneResult` + the
68
+ new module. Additive, no migration, no state repair.
69
+
70
+ ## Tests
71
+
72
+ - tests/unit/self-stop-floor.test.ts (10): the 2026-06-27 slip detects; restart/context/environment
73
+ framings detect; legitimate operator-decision question, external-blocker wait, normal progress
74
+ report, action-without-reason, reason-without-action, and empty input do NOT detect.
75
+ - tests/unit/MessagingToneGate.test.ts (+4): on a provider throw — the slip HOLDs (B15), a legit
76
+ decision question SENDs, and the `failClosedOnExhaustion:false` kill-switch fails open (floor
77
+ skipped). 86 related tests green; `tsc --noEmit` clean.
78
+
79
+ ## Rollback
80
+
81
+ Set `messaging.toneGate.failClosedOnExhaustion: false` (existing operator knob) → the floor is skipped
82
+ (pure fail-open restored). Full revert: remove the `detectSelfStopShape` wiring + module. Additive
83
+ throughout; no data or state migration.
84
+
85
+ ## Phase 5 — Second-pass review (required: touches the message gate)
86
+
87
+ An independent reviewer subagent audited this change against the code (not the artifact's claims).
88
+ **Verdict: Concur with the review**, with one non-blocking over-block concern.
89
+
90
+ Verified independently: (1) signal-vs-authority — `detectSelfStopShape` has exactly one caller,
91
+ `buildDegradedToneResult`, reached only on the two degrade sites; the normal path returns before it.
92
+ (2) Kill-switch inheritance confirmed on BOTH degrade sites (`failClosedOnExhaustion===false` fails
93
+ open before the floor is reached in `review()`, and `budgetDegrade` is `undefined` unless the
94
+ disposition is unset at the route seam). (3) No double-fire/shadow with the leak floor (leak runs
95
+ first, self-stop only when leak is null). (4) Tests prove the claims (drive real `gate.review()` with
96
+ an error provider), not tautological.
97
+
98
+ **Concern raised (addressed in-change, NOT deferred):** several markers were over-broad substrings
99
+ that would hold legitimate degraded-path messages (e.g. "come back to this … the tail of the array",
100
+ "as a follow-up; a local environment concern", "wrap up here — the compact dashboard layout",
101
+ "handoff doc covering this long work session"). Fixed by tightening both marker lists: dropped the
102
+ generic action phrases ("come back to this", "as a follow-up", bare "handoff", bare "defer/park"),
103
+ dropped the generic reason substrings (bare "compact" → "compact the conversation"; bare "tail of" →
104
+ "tail of this run/session / an already / a huge"; dropped bare "long/big work session", "local
105
+ environment"/"environment issue"/"environment failures" → kept only "environment-only failures"). The
106
+ four flagged false positives + one extra are now locked in as passing regression tests
107
+ (`self-stop-floor.test.ts` → "over-block regressions"); the 2026-06-27 incident still detects. 55
108
+ tests green after the tightening, `tsc` clean.