@dzhechkov/harness-core 0.3.54 → 0.3.56

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/setup.d.ts CHANGED
@@ -48,7 +48,7 @@ export interface SetupStep {
48
48
  * `dz-writer-version` stamp is older, WITHOUT requiring `--force` (audit gap G4: generated code
49
49
  * must not fossilize outside the package lifecycle).
50
50
  */
51
- export declare const AGENTDB_WRITER_VERSION = 3;
51
+ export declare const AGENTDB_WRITER_VERSION = 4;
52
52
  /**
53
53
  * Generate the `.dz/agentdb-writer.mjs` helper invoked by the session hooks.
54
54
  *
@@ -1 +1 @@
1
- {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAMH,2BAA2B;AAC3B,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,SAAS,CAAC;AAEhD,qBAAqB;AACrB,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,MAAM,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IAC5C,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC1C,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACrC,0EAA0E;IAC1E,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC9C;AAED,oBAAoB;AACpB,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,KAAK,EAAE,SAAS,SAAS,EAAE,CAAC;IACrC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,2BAA2B;AAC3B,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;IAC9C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAOD;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,IAAI,CAAC;AAExC;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAqEjE;AAED,0FAA0F;AAC1F,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAGvD;AAED,kEAAkE;AAClE;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,EAAE,CAInD;AAED,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,MAAM,CA+BvF;AA0ND,wBAAgB,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,WAAW,CAsQxD"}
1
+ {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAMH,2BAA2B;AAC3B,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,SAAS,CAAC;AAEhD,qBAAqB;AACrB,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,MAAM,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IAC5C,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC1C,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACrC,0EAA0E;IAC1E,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC9C;AAED,oBAAoB;AACpB,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,KAAK,EAAE,SAAS,SAAS,EAAE,CAAC;IACrC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,2BAA2B;AAC3B,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;IAC9C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAgBD;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,IAAI,CAAC;AAExC;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAuFjE;AAED,0FAA0F;AAC1F,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAGvD;AAED,kEAAkE;AAClE;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,EAAE,CAInD;AAED,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,MAAM,CAwCvF;AA0ND,wBAAgB,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,WAAW,CAsQxD"}
package/dist/setup.js CHANGED
@@ -21,13 +21,21 @@ import { execSync } from 'node:child_process';
21
21
  function agentdbStorePath(projectRoot) {
22
22
  return join(projectRoot, '.dz', 'agentdb.db');
23
23
  }
24
+ /**
25
+ * Absolute path to the throttle marker holding the epoch-ms timestamp of the last consolidate the
26
+ * writer spawned. Read before every SessionEnd/PreCompact consolidate: within THROTTLE_MS the spawn
27
+ * is skipped so rapid compactions of a long session don't repeatedly load the embedding model.
28
+ */
29
+ function consolidateMarkerPath(projectRoot) {
30
+ return join(projectRoot, '.dz', '.last-consolidate');
31
+ }
24
32
  /**
25
33
  * Version of the generated `.dz/agentdb-writer.mjs`. Bump on ANY change to
26
34
  * {@link generateAgentdbWriter}'s output — setup regenerates deployed writers whose
27
35
  * `dz-writer-version` stamp is older, WITHOUT requiring `--force` (audit gap G4: generated code
28
36
  * must not fossilize outside the package lifecycle).
29
37
  */
30
- export const AGENTDB_WRITER_VERSION = 3;
38
+ export const AGENTDB_WRITER_VERSION = 4;
31
39
  /**
32
40
  * Generate the `.dz/agentdb-writer.mjs` helper invoked by the session hooks.
33
41
  *
@@ -46,6 +54,7 @@ export const AGENTDB_WRITER_VERSION = 3;
46
54
  export function generateAgentdbWriter(projectRoot) {
47
55
  const dbPath = agentdbStorePath(projectRoot);
48
56
  const sessionsPath = join(projectRoot, '.dz', 'sessions.jsonl');
57
+ const markerPath = consolidateMarkerPath(projectRoot);
49
58
  return `#!/usr/bin/env node
50
59
  // dz-writer-version: ${AGENTDB_WRITER_VERSION}
51
60
  // Auto-generated by \`dz setup --memory agentdb\`. Do not edit — re-run \`dz setup\` to upgrade
@@ -53,20 +62,27 @@ export function generateAgentdbWriter(projectRoot) {
53
62
  // Writes a metadata-only session-event row into the shared AgentDB store (.dz/agentdb.db — the
54
63
  // same file the agentdb MCP server is pinned to via AGENTDB_PATH). Real learnings go into the
55
64
  // vector index via the agentdb_* MCP tools; this is deliberately non-semantic telemetry.
56
- // On SessionEnd it ALSO fires a detached \`dz consolidate\` (Option C, ADR-003): harvest this
57
- // session's learnings into the lexical store and mirror them — with real embeddings — into the
58
- // shared AgentDB vector index. Detached + unref'd: the hook returns immediately; the model-load
59
- // cost happens off the session's critical path.
65
+ // On SessionEnd AND PreCompact it ALSO fires a detached \`dz consolidate\` (Option C, ADR-003):
66
+ // harvest this session's learnings into the lexical store and mirror them — with real embeddings —
67
+ // into the shared AgentDB vector index. PreCompact is the RELIABLE periodic trigger: it fires on
68
+ // every compaction (manual /compact and auto-compact), so long/compacted/abnormally-terminated
69
+ // sessions — where SessionEnd frequently never fires — still consolidate. A .dz/.last-consolidate
70
+ // epoch-ms marker THROTTLES it (THROTTLE_MS): within the window the spawn is skipped so rapid
71
+ // compactions don't thrash the ~90 MB embedding-model load. Detached + unref'd: the hook returns
72
+ // immediately; the model-load cost happens off the session's critical path.
60
73
  // Best-effort: on ANY error it appends a .dz/sessions.jsonl marker and exits 0 — never throws,
61
74
  // never blocks the session.
62
- import { appendFileSync } from 'node:fs';
75
+ import { appendFileSync, readFileSync, writeFileSync } from 'node:fs';
63
76
  import { spawn } from 'node:child_process';
64
77
 
65
- const event = process.argv[2] === 'end' ? 'end' : 'start';
78
+ const arg = process.argv[2];
79
+ const event = arg === 'end' ? 'end' : arg === 'precompact' ? 'precompact' : 'start';
66
80
  const ts = new Date().toISOString();
67
81
  const DB = process.env.AGENTDB_PATH || ${JSON.stringify(dbPath)};
68
82
  const SESSIONS = ${JSON.stringify(sessionsPath)};
69
83
  const ROOT = ${JSON.stringify(projectRoot)};
84
+ const CONSOLIDATE_MARKER = ${JSON.stringify(markerPath)};
85
+ const THROTTLE_MS = 15 * 60 * 1000; // 15 min — rapid compactions must not re-load the embed model
70
86
 
71
87
  function note(extra) {
72
88
  try {
@@ -80,6 +96,7 @@ function fallback(err) {
80
96
  try {
81
97
  // Native better-sqlite3 ONLY (prebuilt; synchronous; WAL). Never the sql.js fallback — its
82
98
  // whole-file-in-memory persistence is unsafe against a concurrently-writing MCP server.
99
+ // Records start/end AND the lightweight precompact row via the SAME insert path.
83
100
  const { default: Database } = await import('better-sqlite3');
84
101
  const db = new Database(DB);
85
102
  db.pragma('journal_mode = WAL');
@@ -91,24 +108,33 @@ try {
91
108
  fallback(err);
92
109
  }
93
110
 
94
- if (event === 'end') {
111
+ if (event === 'end' || event === 'precompact') {
95
112
  // Option C: harvest learnings + mirror to the vector index, DETACHED (fire-and-forget) so the
96
- // hook never waits on transcript parsing or the embedding model. Uses the globally-installed
97
- // \`dz\` from PATH. NO shell on posix: spawn's args-array + shell:true silently word-splits a
98
- // ROOT containing spaces AND is Node's documented command-injection hazard (QE P1+P2); a plain
99
- // spawn searches PATH itself and quotes nothing. Windows needs a shell for the .cmd shim, so
100
- // there we pass ONE pre-quoted string (") quotes are illegal in Windows paths, so wrapping
101
- // is sufficient. Failure is detected via BOTH the error event (posix ENOENT) and a non-zero
102
- // exit code (shell-mediated "not found"), each leaving an honest note.
103
- try {
104
- const child = process.platform === 'win32'
105
- ? spawn('dz consolidate --project "' + ROOT + '"', { detached: true, stdio: 'ignore', shell: true, cwd: ROOT })
106
- : spawn('dz', ['consolidate', '--project', ROOT], { detached: true, stdio: 'ignore', cwd: ROOT });
107
- child.on('error', (err) => note({ consolidate: 'skipped', error: String((err && err.message) || err) }));
108
- child.on('exit', (code) => { if (code !== null && code !== 0) note({ consolidate: 'skipped', error: 'dz exited ' + code + ' (not on PATH?)' }); });
109
- child.unref();
110
- } catch (err) {
111
- note({ consolidate: 'skipped', error: String((err && err.message) || err) });
113
+ // hook never waits on transcript parsing or the embedding model. Fires on BOTH SessionEnd and
114
+ // PreCompact (the reliable trigger for long sessions) THROTTLED via .dz/.last-consolidate so
115
+ // rapid back-to-back compactions don't repeatedly pay the model-load cost.
116
+ let last = 0;
117
+ try { last = parseInt(String(readFileSync(CONSOLIDATE_MARKER, 'utf-8')).trim(), 10) || 0; } catch { last = 0; }
118
+ if (Date.now() - last < THROTTLE_MS) {
119
+ note({ consolidate: 'skipped-throttled' });
120
+ } else {
121
+ try { writeFileSync(CONSOLIDATE_MARKER, String(Date.now())); } catch { /* best-effort marker */ }
122
+ // Uses the globally-installed \`dz\` from PATH. NO shell on posix: spawn's args-array +
123
+ // shell:true silently word-splits a ROOT containing spaces AND is Node's documented
124
+ // command-injection hazard (QE P1+P2); a plain spawn searches PATH itself and quotes nothing.
125
+ // Windows needs a shell for the .cmd shim, so there we pass ONE pre-quoted string (") quotes
126
+ // are illegal in Windows paths, so wrapping is sufficient. Failure is detected via BOTH the
127
+ // error event (posix ENOENT) and a non-zero exit code (shell-mediated "not found").
128
+ try {
129
+ const child = process.platform === 'win32'
130
+ ? spawn('dz consolidate --project "' + ROOT + '"', { detached: true, stdio: 'ignore', shell: true, cwd: ROOT })
131
+ : spawn('dz', ['consolidate', '--project', ROOT], { detached: true, stdio: 'ignore', cwd: ROOT });
132
+ child.on('error', (err) => note({ consolidate: 'skipped', error: String((err && err.message) || err) }));
133
+ child.on('exit', (code) => { if (code !== null && code !== 0) note({ consolidate: 'skipped', error: 'dz exited ' + code + ' (not on PATH?)' }); });
134
+ child.unref();
135
+ } catch (err) {
136
+ note({ consolidate: 'skipped', error: String((err && err.message) || err) });
137
+ }
112
138
  }
113
139
  }
114
140
  `;
@@ -140,10 +166,16 @@ export function generateHooksConfig(projectRoot, backend) {
140
166
  // Claude Code's hooks schema requires MATCHER-GROUP entries: `[{ hooks: [{type, command}] }]`.
141
167
  // A flat `[{type, command}]` is silently ignored by Claude Code (QE find: writer hooks never
142
168
  // fired), so wrap every entry. Session events take no matcher.
169
+ // PreCompact is MATCHER-LESS (matcher-group entry that omits the optional matcher field) and fires before EVERY
170
+ // compaction — the reliable periodic trigger for long/compacted/abnormally-terminated sessions
171
+ // where SessionEnd frequently never fires. runInBackground so it never blocks compaction; the
172
+ // writer itself throttles + detaches the consolidate. SessionEnd stays as a belt-and-suspenders
173
+ // trigger for clean exits.
143
174
  return JSON.stringify({
144
175
  hooks: {
145
176
  SessionStart: [{ hooks: [{ type: 'command', command: `node ${JSON.stringify(writer)} start` }] }],
146
177
  SessionEnd: [{ hooks: [{ type: 'command', command: `node ${JSON.stringify(writer)} end` }] }],
178
+ PreCompact: [{ hooks: [{ type: 'command', command: `node ${JSON.stringify(writer)} precompact`, runInBackground: true }] }],
147
179
  },
148
180
  }, null, 2);
149
181
  }
@@ -152,10 +184,13 @@ export function generateHooksConfig(projectRoot, backend) {
152
184
  // ${dzDir} into a single-quoted JS literal inside shell double-quotes breaks on Windows backslash
153
185
  // paths (\U, \b…) and on any path containing a quote. `.dz/sessions.jsonl` sidesteps all of it.
154
186
  const jsonlCmd = (event) => `node -e "const fs=require('fs');const d=new Date().toISOString();fs.appendFileSync('.dz/sessions.jsonl',JSON.stringify({event:'${event}',ts:d,backend:'jsonl'})+'\\n')"`;
187
+ // Matcher-less PreCompact mirrors the agentdb backend so long-session bookkeeping stays reliable
188
+ // even without a vector store (jsonl has no consolidator — this is just an honest marker row).
155
189
  return JSON.stringify({
156
190
  hooks: {
157
191
  SessionStart: [{ hooks: [{ type: 'command', command: jsonlCmd('start') }] }],
158
192
  SessionEnd: [{ hooks: [{ type: 'command', command: jsonlCmd('end') }] }],
193
+ PreCompact: [{ hooks: [{ type: 'command', command: jsonlCmd('precompact'), runInBackground: true }] }],
159
194
  },
160
195
  }, null, 2);
161
196
  }
@@ -586,9 +621,9 @@ export function runSetup(opts) {
586
621
  problems.push('deps missing (npm i agentdb better-sqlite3)');
587
622
  try {
588
623
  const settings = JSON.parse(readFileSync(join(opts.projectRoot, '.claude', 'settings.json'), 'utf-8'));
589
- const refs = ['SessionStart', 'SessionEnd'].every((ev) => (settings.hooks?.[ev] ?? []).some((h) => commandsOf(h).some((cmd) => cmd.includes('agentdb-writer.mjs'))));
624
+ const refs = ['SessionStart', 'SessionEnd', 'PreCompact'].every((ev) => (settings.hooks?.[ev] ?? []).some((h) => commandsOf(h).some((cmd) => cmd.includes('agentdb-writer.mjs'))));
590
625
  if (!refs)
591
- problems.push('hooks do not invoke the writer');
626
+ problems.push('hooks do not invoke the writer (SessionStart/SessionEnd/PreCompact)');
592
627
  }
593
628
  catch {
594
629
  problems.push('settings.json unreadable');
package/dist/setup.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dzhechkov/harness-core",
3
- "version": "0.3.54",
3
+ "version": "0.3.56",
4
4
  "description": "Shared harness logic - skill loading, additive apply, and the init/sync/verify/doctor operations.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -30,9 +30,9 @@
30
30
  "@dzhechkov/adapter-openclaude": "^0.1.0",
31
31
  "@dzhechkov/adapter-opencode": "^0.2.0",
32
32
  "yaml": "^2.0.0",
33
- "@dzhechkov/adapter-copilot": "0.1.1",
34
33
  "@dzhechkov/core": "0.2.4",
35
- "@dzhechkov/memory": "0.2.7"
34
+ "@dzhechkov/memory": "0.2.7",
35
+ "@dzhechkov/adapter-copilot": "0.1.1"
36
36
  },
37
37
  "devDependencies": {
38
38
  "@types/node": "^25.6.0",
package/src/setup.ts CHANGED
@@ -56,13 +56,22 @@ function agentdbStorePath(projectRoot: string): string {
56
56
  return join(projectRoot, '.dz', 'agentdb.db');
57
57
  }
58
58
 
59
+ /**
60
+ * Absolute path to the throttle marker holding the epoch-ms timestamp of the last consolidate the
61
+ * writer spawned. Read before every SessionEnd/PreCompact consolidate: within THROTTLE_MS the spawn
62
+ * is skipped so rapid compactions of a long session don't repeatedly load the embedding model.
63
+ */
64
+ function consolidateMarkerPath(projectRoot: string): string {
65
+ return join(projectRoot, '.dz', '.last-consolidate');
66
+ }
67
+
59
68
  /**
60
69
  * Version of the generated `.dz/agentdb-writer.mjs`. Bump on ANY change to
61
70
  * {@link generateAgentdbWriter}'s output — setup regenerates deployed writers whose
62
71
  * `dz-writer-version` stamp is older, WITHOUT requiring `--force` (audit gap G4: generated code
63
72
  * must not fossilize outside the package lifecycle).
64
73
  */
65
- export const AGENTDB_WRITER_VERSION = 3;
74
+ export const AGENTDB_WRITER_VERSION = 4;
66
75
 
67
76
  /**
68
77
  * Generate the `.dz/agentdb-writer.mjs` helper invoked by the session hooks.
@@ -82,6 +91,7 @@ export const AGENTDB_WRITER_VERSION = 3;
82
91
  export function generateAgentdbWriter(projectRoot: string): string {
83
92
  const dbPath = agentdbStorePath(projectRoot);
84
93
  const sessionsPath = join(projectRoot, '.dz', 'sessions.jsonl');
94
+ const markerPath = consolidateMarkerPath(projectRoot);
85
95
  return `#!/usr/bin/env node
86
96
  // dz-writer-version: ${AGENTDB_WRITER_VERSION}
87
97
  // Auto-generated by \`dz setup --memory agentdb\`. Do not edit — re-run \`dz setup\` to upgrade
@@ -89,20 +99,27 @@ export function generateAgentdbWriter(projectRoot: string): string {
89
99
  // Writes a metadata-only session-event row into the shared AgentDB store (.dz/agentdb.db — the
90
100
  // same file the agentdb MCP server is pinned to via AGENTDB_PATH). Real learnings go into the
91
101
  // vector index via the agentdb_* MCP tools; this is deliberately non-semantic telemetry.
92
- // On SessionEnd it ALSO fires a detached \`dz consolidate\` (Option C, ADR-003): harvest this
93
- // session's learnings into the lexical store and mirror them — with real embeddings — into the
94
- // shared AgentDB vector index. Detached + unref'd: the hook returns immediately; the model-load
95
- // cost happens off the session's critical path.
102
+ // On SessionEnd AND PreCompact it ALSO fires a detached \`dz consolidate\` (Option C, ADR-003):
103
+ // harvest this session's learnings into the lexical store and mirror them — with real embeddings —
104
+ // into the shared AgentDB vector index. PreCompact is the RELIABLE periodic trigger: it fires on
105
+ // every compaction (manual /compact and auto-compact), so long/compacted/abnormally-terminated
106
+ // sessions — where SessionEnd frequently never fires — still consolidate. A .dz/.last-consolidate
107
+ // epoch-ms marker THROTTLES it (THROTTLE_MS): within the window the spawn is skipped so rapid
108
+ // compactions don't thrash the ~90 MB embedding-model load. Detached + unref'd: the hook returns
109
+ // immediately; the model-load cost happens off the session's critical path.
96
110
  // Best-effort: on ANY error it appends a .dz/sessions.jsonl marker and exits 0 — never throws,
97
111
  // never blocks the session.
98
- import { appendFileSync } from 'node:fs';
112
+ import { appendFileSync, readFileSync, writeFileSync } from 'node:fs';
99
113
  import { spawn } from 'node:child_process';
100
114
 
101
- const event = process.argv[2] === 'end' ? 'end' : 'start';
115
+ const arg = process.argv[2];
116
+ const event = arg === 'end' ? 'end' : arg === 'precompact' ? 'precompact' : 'start';
102
117
  const ts = new Date().toISOString();
103
118
  const DB = process.env.AGENTDB_PATH || ${JSON.stringify(dbPath)};
104
119
  const SESSIONS = ${JSON.stringify(sessionsPath)};
105
120
  const ROOT = ${JSON.stringify(projectRoot)};
121
+ const CONSOLIDATE_MARKER = ${JSON.stringify(markerPath)};
122
+ const THROTTLE_MS = 15 * 60 * 1000; // 15 min — rapid compactions must not re-load the embed model
106
123
 
107
124
  function note(extra) {
108
125
  try {
@@ -116,6 +133,7 @@ function fallback(err) {
116
133
  try {
117
134
  // Native better-sqlite3 ONLY (prebuilt; synchronous; WAL). Never the sql.js fallback — its
118
135
  // whole-file-in-memory persistence is unsafe against a concurrently-writing MCP server.
136
+ // Records start/end AND the lightweight precompact row via the SAME insert path.
119
137
  const { default: Database } = await import('better-sqlite3');
120
138
  const db = new Database(DB);
121
139
  db.pragma('journal_mode = WAL');
@@ -127,24 +145,33 @@ try {
127
145
  fallback(err);
128
146
  }
129
147
 
130
- if (event === 'end') {
148
+ if (event === 'end' || event === 'precompact') {
131
149
  // Option C: harvest learnings + mirror to the vector index, DETACHED (fire-and-forget) so the
132
- // hook never waits on transcript parsing or the embedding model. Uses the globally-installed
133
- // \`dz\` from PATH. NO shell on posix: spawn's args-array + shell:true silently word-splits a
134
- // ROOT containing spaces AND is Node's documented command-injection hazard (QE P1+P2); a plain
135
- // spawn searches PATH itself and quotes nothing. Windows needs a shell for the .cmd shim, so
136
- // there we pass ONE pre-quoted string (") quotes are illegal in Windows paths, so wrapping
137
- // is sufficient. Failure is detected via BOTH the error event (posix ENOENT) and a non-zero
138
- // exit code (shell-mediated "not found"), each leaving an honest note.
139
- try {
140
- const child = process.platform === 'win32'
141
- ? spawn('dz consolidate --project "' + ROOT + '"', { detached: true, stdio: 'ignore', shell: true, cwd: ROOT })
142
- : spawn('dz', ['consolidate', '--project', ROOT], { detached: true, stdio: 'ignore', cwd: ROOT });
143
- child.on('error', (err) => note({ consolidate: 'skipped', error: String((err && err.message) || err) }));
144
- child.on('exit', (code) => { if (code !== null && code !== 0) note({ consolidate: 'skipped', error: 'dz exited ' + code + ' (not on PATH?)' }); });
145
- child.unref();
146
- } catch (err) {
147
- note({ consolidate: 'skipped', error: String((err && err.message) || err) });
150
+ // hook never waits on transcript parsing or the embedding model. Fires on BOTH SessionEnd and
151
+ // PreCompact (the reliable trigger for long sessions) THROTTLED via .dz/.last-consolidate so
152
+ // rapid back-to-back compactions don't repeatedly pay the model-load cost.
153
+ let last = 0;
154
+ try { last = parseInt(String(readFileSync(CONSOLIDATE_MARKER, 'utf-8')).trim(), 10) || 0; } catch { last = 0; }
155
+ if (Date.now() - last < THROTTLE_MS) {
156
+ note({ consolidate: 'skipped-throttled' });
157
+ } else {
158
+ try { writeFileSync(CONSOLIDATE_MARKER, String(Date.now())); } catch { /* best-effort marker */ }
159
+ // Uses the globally-installed \`dz\` from PATH. NO shell on posix: spawn's args-array +
160
+ // shell:true silently word-splits a ROOT containing spaces AND is Node's documented
161
+ // command-injection hazard (QE P1+P2); a plain spawn searches PATH itself and quotes nothing.
162
+ // Windows needs a shell for the .cmd shim, so there we pass ONE pre-quoted string (") quotes
163
+ // are illegal in Windows paths, so wrapping is sufficient. Failure is detected via BOTH the
164
+ // error event (posix ENOENT) and a non-zero exit code (shell-mediated "not found").
165
+ try {
166
+ const child = process.platform === 'win32'
167
+ ? spawn('dz consolidate --project "' + ROOT + '"', { detached: true, stdio: 'ignore', shell: true, cwd: ROOT })
168
+ : spawn('dz', ['consolidate', '--project', ROOT], { detached: true, stdio: 'ignore', cwd: ROOT });
169
+ child.on('error', (err) => note({ consolidate: 'skipped', error: String((err && err.message) || err) }));
170
+ child.on('exit', (code) => { if (code !== null && code !== 0) note({ consolidate: 'skipped', error: 'dz exited ' + code + ' (not on PATH?)' }); });
171
+ child.unref();
172
+ } catch (err) {
173
+ note({ consolidate: 'skipped', error: String((err && err.message) || err) });
174
+ }
148
175
  }
149
176
  }
150
177
  `;
@@ -179,10 +206,16 @@ export function generateHooksConfig(projectRoot: string, backend: MemoryBackend)
179
206
  // Claude Code's hooks schema requires MATCHER-GROUP entries: `[{ hooks: [{type, command}] }]`.
180
207
  // A flat `[{type, command}]` is silently ignored by Claude Code (QE find: writer hooks never
181
208
  // fired), so wrap every entry. Session events take no matcher.
209
+ // PreCompact is MATCHER-LESS (matcher-group entry that omits the optional matcher field) and fires before EVERY
210
+ // compaction — the reliable periodic trigger for long/compacted/abnormally-terminated sessions
211
+ // where SessionEnd frequently never fires. runInBackground so it never blocks compaction; the
212
+ // writer itself throttles + detaches the consolidate. SessionEnd stays as a belt-and-suspenders
213
+ // trigger for clean exits.
182
214
  return JSON.stringify({
183
215
  hooks: {
184
216
  SessionStart: [{ hooks: [{ type: 'command', command: `node ${JSON.stringify(writer)} start` }] }],
185
217
  SessionEnd: [{ hooks: [{ type: 'command', command: `node ${JSON.stringify(writer)} end` }] }],
218
+ PreCompact: [{ hooks: [{ type: 'command', command: `node ${JSON.stringify(writer)} precompact`, runInBackground: true }] }],
186
219
  },
187
220
  }, null, 2);
188
221
  }
@@ -191,12 +224,15 @@ export function generateHooksConfig(projectRoot: string, backend: MemoryBackend)
191
224
  // Use a RELATIVE path (Claude Code runs hooks from the project root): interpolating the absolute
192
225
  // ${dzDir} into a single-quoted JS literal inside shell double-quotes breaks on Windows backslash
193
226
  // paths (\U, \b…) and on any path containing a quote. `.dz/sessions.jsonl` sidesteps all of it.
194
- const jsonlCmd = (event: 'start' | 'end'): string =>
227
+ const jsonlCmd = (event: 'start' | 'end' | 'precompact'): string =>
195
228
  `node -e "const fs=require('fs');const d=new Date().toISOString();fs.appendFileSync('.dz/sessions.jsonl',JSON.stringify({event:'${event}',ts:d,backend:'jsonl'})+'\\n')"`;
229
+ // Matcher-less PreCompact mirrors the agentdb backend so long-session bookkeeping stays reliable
230
+ // even without a vector store (jsonl has no consolidator — this is just an honest marker row).
196
231
  return JSON.stringify({
197
232
  hooks: {
198
233
  SessionStart: [{ hooks: [{ type: 'command', command: jsonlCmd('start') }] }],
199
234
  SessionEnd: [{ hooks: [{ type: 'command', command: jsonlCmd('end') }] }],
235
+ PreCompact: [{ hooks: [{ type: 'command', command: jsonlCmd('precompact'), runInBackground: true }] }],
200
236
  },
201
237
  }, null, 2);
202
238
  }
@@ -514,7 +550,7 @@ export function runSetup(opts: SetupOptions): SetupResult {
514
550
  const settingsDir = join(opts.projectRoot, '.claude');
515
551
  const settingsPath = join(settingsDir, 'settings.json');
516
552
  const generated = JSON.parse(generateHooksConfig(opts.projectRoot, backend)) as {
517
- hooks: Record<string, { hooks: { type: string; command: string }[] }[]>;
553
+ hooks: Record<string, { hooks: { type: string; command: string; runInBackground?: boolean }[] }[]>;
518
554
  };
519
555
 
520
556
  if (!existsSync(settingsPath)) {
@@ -624,9 +660,9 @@ export function runSetup(opts: SetupOptions): SetupResult {
624
660
  const settings = JSON.parse(readFileSync(join(opts.projectRoot, '.claude', 'settings.json'), 'utf-8')) as {
625
661
  hooks?: Record<string, unknown[]>;
626
662
  };
627
- const refs = ['SessionStart', 'SessionEnd'].every((ev) =>
663
+ const refs = ['SessionStart', 'SessionEnd', 'PreCompact'].every((ev) =>
628
664
  (settings.hooks?.[ev] ?? []).some((h) => commandsOf(h).some((cmd) => cmd.includes('agentdb-writer.mjs'))));
629
- if (!refs) problems.push('hooks do not invoke the writer');
665
+ if (!refs) problems.push('hooks do not invoke the writer (SessionStart/SessionEnd/PreCompact)');
630
666
  } catch {
631
667
  problems.push('settings.json unreadable');
632
668
  }