@cstart/coldstart 2.2.1 → 2.2.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.
@@ -61,6 +61,16 @@ export declare class IndexManager {
61
61
  private refreshingKb;
62
62
  private kbRefreshQueued;
63
63
  private refreshKbNotesIndex;
64
+ /**
65
+ * Keep an already-generated notebook `index.html` current. `kb view` is
66
+ * opt-in (generate-and-open); once the user has opened it, the browser tab
67
+ * otherwise shows a frozen snapshot until they re-run the command. When the
68
+ * file exists we re-render it on every notes refresh so a plain tab reload
69
+ * shows the latest notes — no command re-run. We never CREATE the file (that
70
+ * stays the user's explicit `kb view`), and this is best-effort: a render
71
+ * failure must never wedge the keeper.
72
+ */
73
+ private regenerateKbViewIfPresent;
64
74
  private handleBatch;
65
75
  /** Best-effort observability writers (skipped under --no-cache). Stamps are
66
76
  * serialized through one promise chain: updateKeeperState is read-merge-
@@ -1 +1 @@
1
- {"version":3,"file":"index-manager.d.ts","sourceRoot":"","sources":["../src/index-manager.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAYhD,MAAM,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC,CAAC;AAErD,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,aAAa,CAAC;IACrB,sFAAsF;IACtF,YAAY,EAAE,OAAO,CAAC;CACvB;AAED;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,YAAY;IAerB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,KAAK;IAjBxB,OAAO,CAAC,WAAW,CAAgB;IACnC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,aAAa,CAA6B;IAClD,OAAO,CAAC,kBAAkB,CAA6B;IACvD,OAAO,CAAC,gBAAgB,CAA8C;IAEtE;;;OAGG;IACH,OAAO,CAAC,oBAAoB,CAAqB;gBAG/C,YAAY,EAAE,aAAa,EACV,OAAO,EAAE,SAAS,EAClB,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,OAAO;IAKjC,4EAA4E;IAC5E,UAAU,IAAI,YAAY;IAI1B,wDAAwD;IACxD,aAAa,IAAI,IAAI;IAgBrB,8CAA8C;IAC9C,YAAY,IAAI,IAAI;IAapB,OAAO,CAAC,GAAG;IAIX;;;;;OAKG;IACH,OAAO,CAAC,sBAAsB;IAe9B;;;;;;OAMG;IACH,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,eAAe,CAAS;YAClB,mBAAmB;YAoBnB,WAAW;IAuCzB;;kFAE8E;IAC9E,OAAO,CAAC,UAAU,CAAoC;YACxC,KAAK;YAQL,MAAM;YAKN,cAAc;IA4B5B;;;;OAIG;IACH,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,iBAAiB,CAA8C;IACvE,OAAO,CAAC,oBAAoB;IAgB5B;;;;;OAKG;IACH,OAAO,CAAC,WAAW,CAAK;YACV,iBAAiB;IAsB/B,iFAAiF;IACjF,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,iBAAiB;IAwBzB;;;;;;;;;OASG;IACH,OAAO,CAAC,iBAAiB;CAwC1B"}
1
+ {"version":3,"file":"index-manager.d.ts","sourceRoot":"","sources":["../src/index-manager.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAchD,MAAM,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC,CAAC;AAErD,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,aAAa,CAAC;IACrB,sFAAsF;IACtF,YAAY,EAAE,OAAO,CAAC;CACvB;AAED;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,YAAY;IAerB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,KAAK;IAjBxB,OAAO,CAAC,WAAW,CAAgB;IACnC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,aAAa,CAA6B;IAClD,OAAO,CAAC,kBAAkB,CAA6B;IACvD,OAAO,CAAC,gBAAgB,CAA8C;IAEtE;;;OAGG;IACH,OAAO,CAAC,oBAAoB,CAAqB;gBAG/C,YAAY,EAAE,aAAa,EACV,OAAO,EAAE,SAAS,EAClB,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,OAAO;IAKjC,4EAA4E;IAC5E,UAAU,IAAI,YAAY;IAI1B,wDAAwD;IACxD,aAAa,IAAI,IAAI;IAgBrB,8CAA8C;IAC9C,YAAY,IAAI,IAAI;IAapB,OAAO,CAAC,GAAG;IAIX;;;;;OAKG;IACH,OAAO,CAAC,sBAAsB;IAe9B;;;;;;OAMG;IACH,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,eAAe,CAAS;YAClB,mBAAmB;IAqBjC;;;;;;;;OAQG;IACH,OAAO,CAAC,yBAAyB;YAUnB,WAAW;IAuCzB;;kFAE8E;IAC9E,OAAO,CAAC,UAAU,CAAoC;YACxC,KAAK;YAQL,MAAM;YAKN,cAAc;IA4B5B;;;;OAIG;IACH,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,iBAAiB,CAA8C;IACvE,OAAO,CAAC,oBAAoB;IAgB5B;;;;;OAKG;IACH,OAAO,CAAC,WAAW,CAAK;YACV,iBAAiB;IAsB/B,iFAAiF;IACjF,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,iBAAiB;IAwBzB;;;;;;;;;OASG;IACH,OAAO,CAAC,iBAAiB;CAwC1B"}
@@ -3,8 +3,10 @@ import { existsSync } from 'node:fs';
3
3
  import { stat } from 'node:fs/promises';
4
4
  import { join, basename } from 'node:path';
5
5
  import { startWatcher } from './watcher.js';
6
- import { renderIds, notebookExists } from './kb/store.js';
6
+ import { renderIds, notebookExists, notebookDir } from './kb/store.js';
7
7
  import { buildKbNotesIndex, saveKbNotesIndex } from './kb/notes-index.js';
8
+ import { kbView } from './kb/view.js';
9
+ import { VIEW_TEMPLATE } from './kb/view-template.js';
8
10
  import { patchIndex } from './indexer/patch.js';
9
11
  import { getGitHead } from './indexer/git.js';
10
12
  import { lintIndexInvariants } from './indexer/invariants.js';
@@ -126,6 +128,7 @@ export class IndexManager {
126
128
  const kb = await buildKbNotesIndex(this.activeIndex, this.activeIndex.rootDir);
127
129
  await saveKbNotesIndex(this.activeIndex.rootDir, kb, this.cacheDir);
128
130
  this.log(`[coldstart] KB notes index refreshed (${Object.keys(kb.anchors).length} anchors, ${Object.keys(kb.absence).length} absence stamps, ${Object.keys(kb.renames).length} renames)`);
131
+ this.regenerateKbViewIfPresent();
129
132
  }
130
133
  catch (err) {
131
134
  this.log(`[coldstart] KB notes index refresh failed: ${err}`);
@@ -138,6 +141,26 @@ export class IndexManager {
138
141
  }
139
142
  }
140
143
  }
144
+ /**
145
+ * Keep an already-generated notebook `index.html` current. `kb view` is
146
+ * opt-in (generate-and-open); once the user has opened it, the browser tab
147
+ * otherwise shows a frozen snapshot until they re-run the command. When the
148
+ * file exists we re-render it on every notes refresh so a plain tab reload
149
+ * shows the latest notes — no command re-run. We never CREATE the file (that
150
+ * stays the user's explicit `kb view`), and this is best-effort: a render
151
+ * failure must never wedge the keeper.
152
+ */
153
+ regenerateKbViewIfPresent() {
154
+ const root = this.activeIndex.rootDir;
155
+ try {
156
+ if (!existsSync(join(notebookDir(root), 'index.html')))
157
+ return;
158
+ kbView(root, VIEW_TEMPLATE, { open: false, generated: new Date().toISOString().slice(0, 10) });
159
+ }
160
+ catch (err) {
161
+ this.log(`[coldstart] KB view regen skipped: ${err}`);
162
+ }
163
+ }
141
164
  async handleBatch(batch) {
142
165
  if (batch.size === 0)
143
166
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"index-manager.js","sourceRoot":"","sources":["../src/index-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index-manager.js","sourceRoot":"","sources":["../src/index-manager.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../src/status.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAyEH,wBAAsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CA2F/C"}
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../src/status.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AA6FH,wBAAsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAwH/C"}
package/dist/status.js CHANGED
@@ -9,8 +9,9 @@
9
9
  * Output is simple grep-friendly stdout text.
10
10
  */
11
11
  import { existsSync, statSync, readFileSync } from 'node:fs';
12
- import { join } from 'node:path';
13
- import { daemonDir, daemonLogPath, isDaemonAlive, listDaemonLocks, } from './daemon-lock.js';
12
+ import { join, dirname } from 'node:path';
13
+ import { fileURLToPath } from 'node:url';
14
+ import { daemonDir, daemonLogPath, isDaemonAlive, listDaemonLocks, getCurrentVersion, } from './daemon-lock.js';
14
15
  import { getCacheDir } from './cache/disk-cache.js';
15
16
  import { readKeeperState, readRepairTail } from './keeper-state.js';
16
17
  function fileSize(path) {
@@ -40,6 +41,25 @@ function relativeAge(ms) {
40
41
  return `${h}h ago`;
41
42
  return `${Math.round(h / 24)}d ago`;
42
43
  }
44
+ /**
45
+ * Absolute coldstart hook script paths wired into a repo's Claude settings.
46
+ * Scanned as raw text (structure-agnostic across settings shapes): every
47
+ * `/…/hooks/<name>.mjs` referenced in a hook command. Used only to flag a path
48
+ * a global-install move (node/nvm/prefix change) left dangling.
49
+ */
50
+ function wiredHookPaths(rootDir) {
51
+ const settings = join(rootDir, '.claude', 'settings.json');
52
+ if (!existsSync(settings))
53
+ return [];
54
+ try {
55
+ const raw = readFileSync(settings, 'utf-8');
56
+ const re = /(\/[^\s"']+\/hooks\/(?:kb-elicit|kb-recall|find-nudge|find-preguard)\.mjs)/g;
57
+ return [...new Set(Array.from(raw.matchAll(re), (m) => m[1]))];
58
+ }
59
+ catch {
60
+ return [];
61
+ }
62
+ }
43
63
  /** Freshness of a root's on-disk index, derived from the cache meta.json. */
44
64
  function indexFreshness(rootDir) {
45
65
  if (!rootDir)
@@ -149,6 +169,31 @@ export async function runStatus() {
149
169
  if (detailLines.length > 0) {
150
170
  process.stdout.write('\n' + detailLines.join('\n') + '\n');
151
171
  }
172
+ // Install health: the #1 cause of "the update didn't take" is a keeper still
173
+ // running old code, or hooks wired to a global path a node/prefix change left
174
+ // behind. Surface both so it's diagnosed, not guessed.
175
+ const installed = getCurrentVersion();
176
+ // status.js runs from <installRoot>/dist/, so the package root is two up.
177
+ const thisInstallRoot = dirname(dirname(fileURLToPath(import.meta.url)));
178
+ const healthLines = [`\nInstalled: ${installed} (${thisInstallRoot})`];
179
+ for (const r of rows) {
180
+ if (r.version !== '-' && r.version !== installed) {
181
+ healthLines.push(` ⚠ keeper on ${r.root} runs ${r.version} but ${installed} is installed — ` +
182
+ `run \`coldstart restart\` to pick up the update`);
183
+ }
184
+ }
185
+ for (const l of listings) {
186
+ if (!l.lock.rootDir)
187
+ continue;
188
+ for (const w of wiredHookPaths(l.lock.rootDir)) {
189
+ if (!existsSync(w)) {
190
+ healthLines.push(` ⚠ wired hook path missing: ${w}\n` +
191
+ ` (global install moved — likely a node/nvm or npm-prefix change) — ` +
192
+ `run \`coldstart init\` in that repo to re-point the hooks`);
193
+ }
194
+ }
195
+ }
196
+ process.stdout.write(healthLines.join('\n') + '\n');
152
197
  if (rows.some(r => r.status !== 'alive')) {
153
198
  process.stdout.write(`\nA dead keeper means a stale lockfile. \`coldstart restart\` clears it; ` +
154
199
  `the next \`coldstart find\` respawns a fresh keeper.\n`);
@@ -1 +1 @@
1
- {"version":3,"file":"status.js","sourceRoot":"","sources":["../src/status.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../src/status.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@
5
5
  *
6
6
  * HOST CONSTRAINT: Codex's Stop does NOT fire per turn — in the TUI it fires
7
7
  * once at session EXIT, and `codex exec` is one Stop by construction
8
- * (confirmed live 2026-07-13). A multi-stop trigger (arm/descent/surge) has
8
+ * (confirmed live 2026-07-13). A multi-stop trigger (arm/descent) has
9
9
  * nothing to time against here, and a pending-file handoff has no next prompt
10
10
  * to ride. So Codex capture is ONE-SHOT: at the session's single Stop, build
11
11
  * the v5 worklist and deliver it BLOCKING ({decision:"block"} re-prompts the
@@ -10,7 +10,7 @@
10
10
  * .coldstartignore'd files never count) and advances trigger.mjs. Most stops
11
11
  * exit silently. Fires:
12
12
  *
13
- * descent/surge → NON-BLOCKING: payload → pending file; cursor-kb-recall
13
+ * descent → NON-BLOCKING: payload → pending file; cursor-kb-recall
14
14
  * (beforeSubmitPrompt) delivers it with the user's next prompt via
15
15
  * additional_context.
16
16
  * cap → also non-blocking (same rationale as the Claude hook: replay showed
@@ -25,7 +25,7 @@ import { join } from "node:path";
25
25
  import { tmpdir } from "node:os";
26
26
  import { fileURLToPath } from "node:url";
27
27
  import { cursorRoot } from "./cursor-input.mjs";
28
- // Pending-capture delivery (v5 trigger): a descent/surge/cap fire at a previous
28
+ // Pending-capture delivery (v5 trigger): a descent/cap fire at a previous
29
29
  // stop wrote its worklist payload to a pending file instead of blocking; it
30
30
  // rides this same next-prompt channel — capture first, then the user's request.
31
31
  import { takePendingCapture } from "./elicit-core.mjs";
@@ -98,7 +98,7 @@ export function logCaptureEvent(root, event) {
98
98
  }
99
99
 
100
100
  // --- Pending-capture handoff ---------------------------------------------------
101
- // A descent/surge fire writes its worklist payload here instead of blocking the
101
+ // A descent fire writes its worklist payload here instead of blocking the
102
102
  // stop; the host's next-prompt recall hook consumes it (capture first, then the
103
103
  // user's request). One file per session id — a second fire before delivery
104
104
  // overwrites (the later worklist supersedes). Same path scheme across hosts;
@@ -5,10 +5,10 @@
5
5
  * v5 (2026-07-17): the always-fire gate is gone. Every Stop updates per-file
6
6
  * EVIDENCE RECORDS (hooks/evidence.mjs — edit/read/gs tiers; mentions and
7
7
  * .coldstartignore'd files never count) and advances the TRIGGER state machine
8
- * (hooks/trigger.mjs — score/arm, fire on descent/surge, cap, .git HEAD
8
+ * (hooks/trigger.mjs — score/arm, fire on descent, cap, .git HEAD
9
9
  * drift). Most stops exit silently. When the trigger fires:
10
10
  *
11
- * descent/surge → NON-BLOCKING: the capture payload is written to a pending
11
+ * descent → NON-BLOCKING: the capture payload is written to a pending
12
12
  * file; kb-recall.mjs (UserPromptSubmit) delivers it with the user's next
13
13
  * prompt. The stop itself is never blocked — no more answer-then-homework
14
14
  * agitation (upstream #76721 sidestepped).
@@ -31,7 +31,7 @@
31
31
  import { tmpdir } from "node:os";
32
32
  import { join } from "node:path";
33
33
  import { fileURLToPath } from "node:url";
34
- import { existsSync, writeFileSync, appendFileSync, readFileSync } from "node:fs";
34
+ import { existsSync, writeFileSync, appendFileSync, readFileSync, readdirSync } from "node:fs";
35
35
 
36
36
  import { extractEvidence, segmentStats } from "./evidence.mjs";
37
37
  import { initialState, step } from "./trigger.mjs";
@@ -51,6 +51,37 @@ function log(msg) {
51
51
  try { appendFileSync(LOG_FILE, `[${new Date().toISOString()}] elicit: ${msg}\n`); } catch { /* never fail logging */ }
52
52
  }
53
53
 
54
+ // --- Subagent transcript resolution ------------------------------------------
55
+ /**
56
+ * Resolve a subagent's transcript, supporting both flat and nested layouts.
57
+ * - Flat: stem/subagents/agent-id.jsonl
58
+ * - Nested (parallel/batched): stem/subagents/workflows/wf_id/agent-id.jsonl
59
+ * Returns "" if the subagents dir is absent or no match is found.
60
+ */
61
+ function resolveSubagentTranscript(parentTranscriptPath, agentId) {
62
+ const stem = parentTranscriptPath.replace(/\.jsonl$/, "");
63
+ const flatPath = join(stem, "subagents", `agent-${agentId}.jsonl`);
64
+
65
+ // First try flat path.
66
+ if (existsSync(flatPath)) return flatPath;
67
+
68
+ // Recursive search for nested layout.
69
+ const filename = `agent-${agentId}.jsonl`;
70
+ const subagentsDir = join(stem, "subagents");
71
+ try {
72
+ if (!existsSync(subagentsDir)) return "";
73
+ // Use recursive option to walk all depths.
74
+ const entries = readdirSync(subagentsDir, { recursive: true, withFileTypes: false });
75
+ for (const entry of entries) {
76
+ if (typeof entry === "string" && entry.endsWith(filename)) {
77
+ const fullPath = join(subagentsDir, entry);
78
+ if (existsSync(fullPath)) return fullPath;
79
+ }
80
+ }
81
+ } catch { /* permission/read error: return empty */ }
82
+ return "";
83
+ }
84
+
54
85
  // --- stdin ---------------------------------------------------------------------
55
86
  function readStdin() {
56
87
  return new Promise((res) => {
@@ -92,14 +123,20 @@ process.on("unhandledRejection", (e) => { log(`unhandled ${e?.stack || e}`); pro
92
123
  const aid = String(input.agent_id || "main").replace(/[^A-Za-z0-9_-]/g, "") || "main";
93
124
  const isSubagent = input.hook_event_name === "SubagentStop";
94
125
 
126
+ // Guard: compaction subagents read transcripts, not code—skip silently.
127
+ if (isSubagent && aid.startsWith("acompact")) {
128
+ log(`SKIP compaction-agent session=${sid} agent=${aid}`);
129
+ process.exit(0);
130
+ }
131
+
95
132
  // On SubagentStop, transcript_path is the PARENT's transcript (confirmed:
96
- // claude-code#11396); the sub's own lives at
97
- // <parent-transcript-stem>/subagents/agent-<agent_id>.jsonl.
133
+ // claude-code#11396); the sub's own lives at stem/subagents/agent-id.jsonl
134
+ // (flat) or stem/subagents/workflows/wf_id/agent-id.jsonl (nested).
98
135
  let transcriptPath = String(input.transcript_path || "");
99
136
  if (isSubagent) {
100
137
  const own = String(input.agent_transcript_path || "") ||
101
138
  (aid !== "main" && transcriptPath
102
- ? join(transcriptPath.replace(/\.jsonl$/, ""), "subagents", `agent-${aid}.jsonl`)
139
+ ? resolveSubagentTranscript(transcriptPath, aid)
103
140
  : "");
104
141
  if (!own || !existsSync(own)) {
105
142
  log(`SKIP subagent-transcript-missing session=${sid} agent=${aid} tried=${own || "n/a"}`);
@@ -116,17 +153,44 @@ process.on("unhandledRejection", (e) => { log(`unhandled ${e?.stack || e}`); pro
116
153
  const parsed = JSON.parse(readFileSync(marker, "utf8"));
117
154
  if (parsed && parsed.v === 2) state = parsed;
118
155
  } catch { /* first Stop of this session (or a pre-v5 marker: start fresh) */ }
156
+ const freshMarker = !state; // no valid prior marker: we're attaching, not resuming our own place
119
157
  if (!state) state = initialState();
120
158
 
121
159
  // This stop's transcript slice (everything since the last processed line).
122
160
  const text = readFileSync(transcriptPath, "utf8");
123
161
  const lines = text.split("\n");
162
+ // A newline-terminated transcript splits to a phantom trailing "" — counting
163
+ // it as a consumed line would push the offset one past the last real line and
164
+ // silently skip the FIRST line appended next stop (dropping a tool_use → its
165
+ // file's evidence). Trim it so the offset tracks real lines only.
166
+ if (lines.length && lines[lines.length - 1] === "") lines.pop();
124
167
  // A transcript SHORTER than our stored offset was replaced out from under us
125
168
  // — Claude Code's /compact rewrites it far shorter (also log rotation). The
126
169
  // offset now points past the end, so slice() would return an empty segment
127
170
  // and silently drop this turn's (and every later turn's) evidence until the
128
171
  // line count grows back. Reset to reprocess the new transcript from its start.
129
172
  if (state.lineCount > lines.length) state.lineCount = 0;
173
+
174
+ // Fresh attach to an ALREADY-LARGE transcript → baseline, fire NOTHING.
175
+ // When the OS clears the tmp marker between days, the next Stop starts fresh
176
+ // but the on-disk transcript still holds the WHOLE session. Reprocessing it
177
+ // from line 0 treats all of history as this turn's work and dumps the entire
178
+ // file set into one cap "blob" (the stop=1 cap fires we saw on resumed
179
+ // sessions). A genuine first Stop, by contrast, has a tiny transcript (this
180
+ // turn only) and must still be processed so its evidence can build toward
181
+ // arming. So baseline ONLY when a fresh marker meets a large transcript:
182
+ // snapshot the offset + HEAD and start watching from here. Subagents keep
183
+ // their own one-shot path below (a fresh aid-marker is normal — never baseline).
184
+ const RESUMED_ATTACH_LINES = 400; // a first turn is tens of lines; a resume is thousands
185
+ if (freshMarker && !isSubagent && lines.length > RESUMED_ATTACH_LINES) {
186
+ state.lineCount = lines.length;
187
+ state.head = gitHead(root) || state.head;
188
+ writeFileSync(marker, JSON.stringify(state));
189
+ logCaptureEvent(root, { event: "baseline", session: sid, lines: lines.length });
190
+ log(`BASELINE fresh-marker-large-transcript session=${sid} lines=${lines.length}`);
191
+ process.exit(0);
192
+ }
193
+
130
194
  const segment = lines.slice(state.lineCount).join("\n");
131
195
  state.lineCount = lines.length;
132
196
 
@@ -28,7 +28,7 @@ import { join } from "node:path";
28
28
  import { tmpdir } from "node:os";
29
29
  import { fileURLToPath } from "node:url";
30
30
 
31
- // Pending-capture delivery (v5 trigger): a descent/surge fire at the previous
31
+ // Pending-capture delivery (v5 trigger): a descent fire at the previous
32
32
  // Stop wrote its worklist payload to a pending file instead of blocking the
33
33
  // stop. It rides the SAME next-prompt channel as recall — capture first, then
34
34
  // the user's request. Consumed (deleted) on delivery; stale pendings (>24h,
package/hooks/trigger.mjs CHANGED
@@ -3,20 +3,22 @@
3
3
  * clock, no client specifics. The hook feeds it one stop's observations and
4
4
  * it returns the updated state + a fire decision.
5
5
  *
6
- * FROZEN SPEC (2026-07-15, replay + wave-lab validated):
6
+ * FROZEN SPEC (2026-07-15, replay + wave-lab validated; 2026-07-21 descent/synthesis update):
7
7
  * score = uncaptured contentRead files ×1
8
8
  * + settled edited files ×2 (settled = 3 active stops w/o re-edit)
9
- * + active stops since last fire (synthesis turns count as active)
9
+ * + active stops since last fire (new files or edits only; synthesis no longer counts as active)
10
10
  * fresh-noted files contribute NOTHING — genuinely new knowledge drives firing.
11
11
  * arm at score ≥ T(10), requiring ≥2 active stops AND ≥2 uncaptured files.
12
- * fire armed + descent (2 quiet stops) → non-blocking (inject)
13
- * armed + surge (≥2 new files after a quiet) → non-blocking (inject)
14
- * score ≥ CAP(20) → non-blocking (backlog
12
+ * fire armed + descent (1 quiet stop) → non-blocking (inject)
13
+ * score CAP(20) → non-blocking (backlog
15
14
  * rescue — replay showed dense sessions starve descent and hit cap
16
15
  * repeatedly; blocking each cap re-created the v4 agitation)
17
- * .git/HEAD drift, ≥2 uncaptured files → BLOCKING (instant —
16
+ * .git/HEAD drift, ≥2 uncaptured files → BLOCKING (instant —
18
17
  * the one boundary where waiting for a next prompt loses the moment)
19
18
  * NEVER: first-stop fire, wall-clock, gap/resume, conversation classification.
19
+ * (surge removed 2026-07-21: with descent=1 a quiet stop fires descent before
20
+ * surge could ever apply — the two were redundant. cap + head-drift remain the
21
+ * safety nets, so no armed state escapes a fire.)
20
22
  *
21
23
  * State lives in the session marker (JSON-serializable, owned by the caller).
22
24
  * Files enter state ONLY if they passed the ignore filter and have contentRead
@@ -26,8 +28,7 @@
26
28
  export const T_ARM = 10;
27
29
  export const T_CAP = 20;
28
30
  export const SETTLE_ACTIVE_STOPS = 3;
29
- export const DESCENT_QUIET = 2;
30
- export const SURGE_NEW_FILES = 2;
31
+ export const DESCENT_QUIET = 1;
31
32
  export const MIN_FILES = 2;
32
33
 
33
34
  export function initialState() {
@@ -36,11 +37,12 @@ export function initialState() {
36
37
  stop: 0, // stops processed
37
38
  activeStops: 0, // ACTIVE stops since last fire
38
39
  quietRun: 0, // consecutive quiet stops
39
- wasQuiet: false, // previous stop was quiet (surge detection)
40
40
  armed: false,
41
41
  fires: 0,
42
42
  lineCount: 0, // transcript lines already consumed (caller-owned)
43
43
  head: "", // .git/HEAD fingerprint at last stop (caller-owned)
44
+ // (surge removed 2026-07-21 — descent=1 subsumes it; old markers may still
45
+ // carry a wasQuiet field, which is simply ignored.)
44
46
  files: {}, // rel → { reads, edits, gs, firstStop, lastStop,
45
47
  // lastEditActive, retouches, captured, fresh }
46
48
  };
@@ -55,7 +57,7 @@ export function initialState() {
55
57
  * freshNoted: Set<rel> (files whose note is currently fresh),
56
58
  * headDrift: bool (.git/HEAD changed since last stop — manual commits too),
57
59
  * }
58
- * decision = null | { fire: "descent"|"surge"|"cap"|"head-drift",
60
+ * decision = null | { fire: "descent"|"cap"|"head-drift",
59
61
  * mode: "inject"|"block", files: [rel…] }
60
62
  */
61
63
  export function step(state, obs) {
@@ -92,7 +94,10 @@ export function step(state, obs) {
92
94
  }
93
95
 
94
96
  // ---- active vs quiet --------------------------------------------------------
95
- const active = newFiles > 0 || editsThisStop > 0 || obs.synthesis === true;
97
+ // Active = new files or edits only. Synthesis (prose-heavy, tool-light turns)
98
+ // is the agent settling/explaining — exactly the wind-down signal descent should fire on —
99
+ // so it counts as quiet, not active.
100
+ const active = newFiles > 0 || editsThisStop > 0;
96
101
  if (active) { s.activeStops++; s.quietRun = 0; } else { s.quietRun++; }
97
102
  for (const f of Object.values(s.files)) {
98
103
  if (f.lastEditActive === -2) f.lastEditActive = s.activeStops; // edit stamped at current active count
@@ -118,10 +123,7 @@ export function step(state, obs) {
118
123
  fire = { fire: "cap", mode: "inject" };
119
124
  } else if (s.armed && s.quietRun >= DESCENT_QUIET) {
120
125
  fire = { fire: "descent", mode: "inject" };
121
- } else if (s.armed && s.wasQuiet && newFiles >= SURGE_NEW_FILES) {
122
- fire = { fire: "surge", mode: "inject" };
123
126
  }
124
- s.wasQuiet = !active;
125
127
 
126
128
  let decision = null;
127
129
  if (fire) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cstart/coldstart",
3
- "version": "2.2.1",
3
+ "version": "2.2.2",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },