cli-jaw 2.17.46 → 2.17.47

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.
Files changed (169) hide show
  1. package/README.md +4 -0
  2. package/dist/bin/commands/browser-web-ai.js +29 -10
  3. package/dist/bin/commands/browser-web-ai.js.map +1 -1
  4. package/dist/server.js +2 -2
  5. package/dist/server.js.map +1 -1
  6. package/dist/src/agent/claude-runtime-run.js +2 -1
  7. package/dist/src/agent/claude-runtime-run.js.map +1 -1
  8. package/dist/src/agent/lifecycle-handler.js +15 -4
  9. package/dist/src/agent/lifecycle-handler.js.map +1 -1
  10. package/dist/src/agent/pi-runtime.js +103 -86
  11. package/dist/src/agent/pi-runtime.js.map +1 -1
  12. package/dist/src/agent/spawn/exit-settle.js +74 -0
  13. package/dist/src/agent/spawn/exit-settle.js.map +1 -0
  14. package/dist/src/agent/spawn/kill-reason.js +38 -0
  15. package/dist/src/agent/spawn/kill-reason.js.map +1 -0
  16. package/dist/src/agent/spawn/queue.js +8 -0
  17. package/dist/src/agent/spawn/queue.js.map +1 -1
  18. package/dist/src/agent/spawn/steer-event.js +33 -0
  19. package/dist/src/agent/spawn/steer-event.js.map +1 -0
  20. package/dist/src/agent/spawn.js +157 -173
  21. package/dist/src/agent/spawn.js.map +1 -1
  22. package/dist/src/agent/watchdog.js +9 -4
  23. package/dist/src/agent/watchdog.js.map +1 -1
  24. package/dist/src/browser/adaptive-fetch/browser-escalation.js +18 -1
  25. package/dist/src/browser/adaptive-fetch/browser-escalation.js.map +1 -1
  26. package/dist/src/browser/adaptive-fetch/browser-flow.js +36 -9
  27. package/dist/src/browser/adaptive-fetch/browser-flow.js.map +1 -1
  28. package/dist/src/browser/adaptive-fetch/browser-session.js +10 -1
  29. package/dist/src/browser/adaptive-fetch/browser-session.js.map +1 -1
  30. package/dist/src/browser/adaptive-fetch/camoufox-session.js +16 -1
  31. package/dist/src/browser/adaptive-fetch/camoufox-session.js.map +1 -1
  32. package/dist/src/browser/adaptive-fetch/defuddle-provenance.js +49 -0
  33. package/dist/src/browser/adaptive-fetch/defuddle-provenance.js.map +1 -0
  34. package/dist/src/browser/adaptive-fetch/endpoint-resolvers.js +61 -31
  35. package/dist/src/browser/adaptive-fetch/endpoint-resolvers.js.map +1 -1
  36. package/dist/src/browser/adaptive-fetch/fetcher.js +12 -1
  37. package/dist/src/browser/adaptive-fetch/fetcher.js.map +1 -1
  38. package/dist/src/browser/adaptive-fetch/live-smoke-manifest.js +12 -18
  39. package/dist/src/browser/adaptive-fetch/live-smoke-manifest.js.map +1 -1
  40. package/dist/src/browser/adaptive-fetch/public-endpoint-normalizers.js +85 -1
  41. package/dist/src/browser/adaptive-fetch/public-endpoint-normalizers.js.map +1 -1
  42. package/dist/src/browser/adaptive-fetch/safety.js +5 -3
  43. package/dist/src/browser/adaptive-fetch/safety.js.map +1 -1
  44. package/dist/src/browser/adaptive-fetch/scheduler.js +34 -5
  45. package/dist/src/browser/adaptive-fetch/scheduler.js.map +1 -1
  46. package/dist/src/browser/adaptive-fetch/tls-fetch.js +54 -33
  47. package/dist/src/browser/adaptive-fetch/tls-fetch.js.map +1 -1
  48. package/dist/src/browser/adaptive-fetch/vendor/README.md +33 -1
  49. package/dist/src/browser/adaptive-fetch/ytdlp-reader.js +54 -9
  50. package/dist/src/browser/adaptive-fetch/ytdlp-reader.js.map +1 -1
  51. package/dist/src/browser/web-ai/capability-observation-presets.js +12 -10
  52. package/dist/src/browser/web-ai/capability-observation-presets.js.map +1 -1
  53. package/dist/src/browser/web-ai/chatgpt-model.js +80 -7
  54. package/dist/src/browser/web-ai/chatgpt-model.js.map +1 -1
  55. package/dist/src/browser/web-ai/gemini-model.js +18 -0
  56. package/dist/src/browser/web-ai/gemini-model.js.map +1 -1
  57. package/dist/src/browser/web-ai/grok-model.js +64 -15
  58. package/dist/src/browser/web-ai/grok-model.js.map +1 -1
  59. package/dist/src/code-mode/providers/codex-app.js +83 -0
  60. package/dist/src/code-mode/providers/codex-app.js.map +1 -1
  61. package/dist/src/core/config.js +77 -73
  62. package/dist/src/core/config.js.map +1 -1
  63. package/dist/src/core/db.js +227 -151
  64. package/dist/src/core/db.js.map +1 -1
  65. package/dist/src/core/settings-merge.js +78 -102
  66. package/dist/src/core/settings-merge.js.map +1 -1
  67. package/dist/src/discord/bot.js +37 -54
  68. package/dist/src/discord/bot.js.map +1 -1
  69. package/dist/src/discord/discord-file.js +29 -3
  70. package/dist/src/discord/discord-file.js.map +1 -1
  71. package/dist/src/discord/send-only-client.js +56 -8
  72. package/dist/src/discord/send-only-client.js.map +1 -1
  73. package/dist/src/manager/routes/telegram-hub.js +8 -1
  74. package/dist/src/manager/routes/telegram-hub.js.map +1 -1
  75. package/dist/src/manager/telegram-hub/hub-bot.js +7 -1
  76. package/dist/src/manager/telegram-hub/hub-bot.js.map +1 -1
  77. package/dist/src/messaging/delivery-outcome.js +30 -0
  78. package/dist/src/messaging/delivery-outcome.js.map +1 -1
  79. package/dist/src/messaging/file-receipt.js +49 -0
  80. package/dist/src/messaging/file-receipt.js.map +1 -0
  81. package/dist/src/messaging/native-body.js +31 -0
  82. package/dist/src/messaging/native-body.js.map +1 -0
  83. package/dist/src/messaging/queue-notice-record.js +48 -0
  84. package/dist/src/messaging/queue-notice-record.js.map +1 -0
  85. package/dist/src/messaging/send.js +13 -2
  86. package/dist/src/messaging/send.js.map +1 -1
  87. package/dist/src/messaging/target-reply-guard.js +66 -0
  88. package/dist/src/messaging/target-reply-guard.js.map +1 -0
  89. package/dist/src/orchestrator/collect.js +18 -3
  90. package/dist/src/orchestrator/collect.js.map +1 -1
  91. package/dist/src/orchestrator/gateway.js +3 -1
  92. package/dist/src/orchestrator/gateway.js.map +1 -1
  93. package/dist/src/orchestrator/pipeline.js +7 -1
  94. package/dist/src/orchestrator/pipeline.js.map +1 -1
  95. package/dist/src/orchestrator/session-lanes.js +2 -2
  96. package/dist/src/orchestrator/session-lanes.js.map +1 -1
  97. package/dist/src/prompt/builder.js +2 -2
  98. package/dist/src/prompt/builder.js.map +1 -1
  99. package/dist/src/routes/i18n.js +9 -4
  100. package/dist/src/routes/i18n.js.map +1 -1
  101. package/dist/src/routes/instance.js +8 -4
  102. package/dist/src/routes/instance.js.map +1 -1
  103. package/dist/src/routes/jaw-memory.js +5 -5
  104. package/dist/src/routes/jaw-memory.js.map +1 -1
  105. package/dist/src/routes/link-preview.js +5 -1
  106. package/dist/src/routes/link-preview.js.map +1 -1
  107. package/dist/src/routes/memory.js +9 -7
  108. package/dist/src/routes/memory.js.map +1 -1
  109. package/dist/src/routes/messaging.js +21 -10
  110. package/dist/src/routes/messaging.js.map +1 -1
  111. package/dist/src/routes/orchestrate.js +127 -118
  112. package/dist/src/routes/orchestrate.js.map +1 -1
  113. package/dist/src/routes/settings.js +7 -7
  114. package/dist/src/routes/settings.js.map +1 -1
  115. package/dist/src/routes/system.js +9 -4
  116. package/dist/src/routes/system.js.map +1 -1
  117. package/dist/src/slack/bot.js +199 -132
  118. package/dist/src/slack/bot.js.map +1 -1
  119. package/dist/src/slack/events.js +31 -8
  120. package/dist/src/slack/events.js.map +1 -1
  121. package/dist/src/slack/ingress.js +3 -1
  122. package/dist/src/slack/ingress.js.map +1 -1
  123. package/dist/src/slack/progress-activity.js +24 -3
  124. package/dist/src/slack/progress-activity.js.map +1 -1
  125. package/dist/src/slack/progress-lifecycle.js +29 -0
  126. package/dist/src/slack/progress-lifecycle.js.map +1 -1
  127. package/dist/src/slack/progress.js +1 -1
  128. package/dist/src/slack/progress.js.map +1 -1
  129. package/dist/src/slack/send-only-client.js +16 -3
  130. package/dist/src/slack/send-only-client.js.map +1 -1
  131. package/dist/src/slack/slack-file.js +5 -3
  132. package/dist/src/slack/slack-file.js.map +1 -1
  133. package/dist/src/slack/workflow.js +134 -0
  134. package/dist/src/slack/workflow.js.map +1 -0
  135. package/dist/src/telegram/bot.js +60 -55
  136. package/dist/src/telegram/bot.js.map +1 -1
  137. package/dist/src/telegram/rich-message.js +28 -20
  138. package/dist/src/telegram/rich-message.js.map +1 -1
  139. package/dist/src/telegram/telegram-file.js +45 -9
  140. package/dist/src/telegram/telegram-file.js.map +1 -1
  141. package/dist/src/trace/activity-journal.js +3 -6
  142. package/dist/src/trace/activity-journal.js.map +1 -1
  143. package/dist/src/trace/activity-retention.js +29 -0
  144. package/dist/src/trace/activity-retention.js.map +1 -1
  145. package/package.json +1 -1
  146. package/public/dist/.vite/manifest.json +20 -20
  147. package/public/dist/assets/{ChannelEnablementControl-DwUDKjX9.js → ChannelEnablementControl-egwTtO9-.js} +8 -8
  148. package/public/dist/assets/{ChannelSetupEntry-DH0AuNNX.js → ChannelSetupEntry-CCrUYd2-.js} +1 -1
  149. package/public/dist/assets/{ChannelsDiscord-7NmoTjR7.js → ChannelsDiscord-B6rJAsQG.js} +1 -1
  150. package/public/dist/assets/{ChannelsSlack-Ba0ax6iT.js → ChannelsSlack-CrSIw4Wd.js} +1 -1
  151. package/public/dist/assets/{ChannelsTelegram-DKA9atf2.js → ChannelsTelegram-DPrdLEnT.js} +1 -1
  152. package/public/dist/assets/CodeCanvas-D5jp8-t5.js +2 -0
  153. package/public/dist/assets/{manager-iX7KosWI.js → manager-CFwOAoe0.js} +2 -2
  154. package/public/dist/assets/{settings-embedding-DIqST-91.js → settings-embedding-DspkJ6sr.js} +1 -1
  155. package/public/dist/assets/{settings-KIPNUOIV.js → settings-qkC0NuQ7.js} +1 -1
  156. package/public/dist/manager/index.html +1 -1
  157. package/public/dist/settings/index.html +1 -1
  158. package/public/locales/en.json +9 -3
  159. package/public/locales/ja.json +9 -3
  160. package/public/locales/ko.json +9 -3
  161. package/public/locales/zh.json +9 -3
  162. package/public/manager/src/code/CodeWorkbench.tsx +11 -4
  163. package/public/manager/src/code/code-controller-draft-storage.ts +7 -3
  164. package/public/manager/src/code/code-controller-drafts.ts +9 -2
  165. package/public/manager/src/code/code-controller-runtime.ts +125 -12
  166. package/public/manager/src/code/code-controller-types.ts +2 -0
  167. package/public/manager/src/code/pending-user-item.ts +5 -0
  168. package/scripts/ci/windows-unit-manifest.txt +6 -0
  169. package/public/dist/assets/CodeCanvas-DWsx6sv5.js +0 -2
@@ -33,15 +33,44 @@ const db = new Database(DB_PATH);
33
33
  db.pragma('journal_mode = WAL');
34
34
  db.pragma('busy_timeout = 5000');
35
35
  db.pragma('foreign_keys = ON');
36
- db.exec(`
36
+ // ─── Schema: one baseline + versioned migration steps ────
37
+ //
38
+ // `PRAGMA user_version` is the schema version. Everything a CURRENT database
39
+ // must contain lives in the two baseline strings below; MIGRATIONS carries what
40
+ // an EXISTING database still needs to reach that shape. The two have to agree,
41
+ // and `assertSchemaComplete` is what makes disagreement loud: a column added
42
+ // to the baseline without a matching migration step fails there BY NAME, instead
43
+ // of killing the process at the first `db.prepare` further down (#691).
44
+ //
45
+ // Tables and indexes are separate on purpose. `CREATE TABLE IF NOT EXISTS` is a
46
+ // no-op on a database that already has the table, so an index over a column that
47
+ // only a migration adds would raise `no such column` on exactly the old homes
48
+ // this exists to open — and it would do so BEFORE the step that adds the column.
49
+ // Every index therefore runs after the migration steps, not with the tables.
50
+ export const SCHEMA_VERSION = 1;
51
+ /** A database this binary cannot safely open. Never a `db.prepare` crash. */
52
+ export class SchemaMigrationError extends Error {
53
+ constructor(message) {
54
+ super(message);
55
+ this.name = 'SchemaMigrationError';
56
+ }
57
+ }
58
+ const BASELINE_TABLES_SQL = `
37
59
  CREATE TABLE IF NOT EXISTS session (
38
60
  id TEXT PRIMARY KEY DEFAULT 'default',
61
+ -- This SQL default is NOT the product default and has not been for some
62
+ -- time: the runtime resolves settings.cli -> session.active_cli ->
63
+ -- DEFAULT_CLI (src/core/main-session.ts), and DEFAULT_CLI is codex-app.
64
+ -- Changing the literal here would only split fresh databases from existing
65
+ -- ones, since ALTER cannot restate a default on a column that already
66
+ -- exists. Tracked with the other schema/call-site default drift in #696.
39
67
  active_cli TEXT DEFAULT 'claude',
40
68
  session_id TEXT,
41
69
  model TEXT DEFAULT 'default',
42
70
  permissions TEXT DEFAULT 'auto',
43
71
  working_dir TEXT DEFAULT '~',
44
72
  effort TEXT DEFAULT 'medium',
73
+ active_chat_session TEXT DEFAULT 'default',
45
74
  updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
46
75
  );
47
76
  INSERT OR IGNORE INTO session (id) VALUES ('default');
@@ -53,11 +82,14 @@ db.exec(`
53
82
  cli TEXT,
54
83
  model TEXT,
55
84
  trace TEXT DEFAULT NULL,
85
+ tool_log TEXT DEFAULT NULL,
86
+ working_dir TEXT DEFAULT NULL,
87
+ trace_run_id TEXT DEFAULT NULL,
88
+ session_id TEXT DEFAULT 'default',
56
89
  cost_usd REAL,
57
90
  duration_ms INTEGER,
58
91
  created_at DATETIME DEFAULT CURRENT_TIMESTAMP
59
92
  );
60
- CREATE INDEX IF NOT EXISTS idx_messages_created ON messages(created_at);
61
93
 
62
94
  CREATE TABLE IF NOT EXISTS memory (
63
95
  id INTEGER PRIMARY KEY AUTOINCREMENT,
@@ -83,6 +115,7 @@ db.exec(`
83
115
  session_id TEXT,
84
116
  cli TEXT,
85
117
  model TEXT DEFAULT '',
118
+ output_len INTEGER DEFAULT 0,
86
119
  created_at DATETIME DEFAULT CURRENT_TIMESTAMP
87
120
  );
88
121
 
@@ -112,8 +145,6 @@ db.exec(`
112
145
  last_seen_at DATETIME DEFAULT CURRENT_TIMESTAMP,
113
146
  FOREIGN KEY (chat_session_id) REFERENCES chat_sessions(id) ON DELETE CASCADE
114
147
  );
115
- CREATE INDEX IF NOT EXISTS idx_remote_bindings_chat_session
116
- ON remote_session_bindings(chat_session_id);
117
148
 
118
149
  CREATE TABLE IF NOT EXISTS queued_messages (
119
150
  id TEXT PRIMARY KEY,
@@ -141,6 +172,11 @@ db.exec(`
141
172
  session_id TEXT NOT NULL,
142
173
  model TEXT NOT NULL,
143
174
  resume_key TEXT DEFAULT NULL,
175
+ output_len INTEGER DEFAULT 0,
176
+ memory_snapshot TEXT DEFAULT NULL,
177
+ last_run_clean INTEGER DEFAULT NULL,
178
+ last_run_cwd TEXT DEFAULT NULL,
179
+ last_run_meta TEXT DEFAULT NULL,
144
180
  updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
145
181
  );
146
182
 
@@ -173,8 +209,6 @@ db.exec(`
173
209
  seen_at INTEGER NOT NULL,
174
210
  PRIMARY KEY (job_id, channel_id, message_ts)
175
211
  );
176
- CREATE INDEX IF NOT EXISTS idx_mention_watch_seen_job
177
- ON mention_watch_seen (job_id, seen_at);
178
212
 
179
213
  CREATE TABLE IF NOT EXISTS mention_watch_cursor (
180
214
  job_id TEXT NOT NULL,
@@ -225,8 +259,6 @@ db.exec(`
225
259
  seen_at INTEGER NOT NULL,
226
260
  PRIMARY KEY (job_id, workspace_id, user_id, channel_id, message_ts)
227
261
  );
228
- CREATE INDEX IF NOT EXISTS idx_mention_watch_seen_v2_ns
229
- ON mention_watch_seen_v2 (job_id, workspace_id, user_id, seen_at);
230
262
 
231
263
  CREATE TABLE IF NOT EXISTS mention_watch_cursor_v2 (
232
264
  job_id TEXT NOT NULL,
@@ -280,8 +312,6 @@ db.exec(`
280
312
  payload TEXT NOT NULL,
281
313
  archived_at INTEGER NOT NULL
282
314
  );
283
- CREATE INDEX IF NOT EXISTS idx_legacy_mention_watch_archive_job
284
- ON legacy_mention_watch_archive (job_id, table_name);
285
315
 
286
316
  CREATE TABLE IF NOT EXISTS heartbeat_events (
287
317
  id INTEGER PRIMARY KEY AUTOINCREMENT,
@@ -307,7 +337,6 @@ db.exec(`
307
337
  source TEXT,
308
338
  created_at DATETIME DEFAULT CURRENT_TIMESTAMP
309
339
  );
310
- CREATE INDEX IF NOT EXISTS idx_jaw_ceo_transcript_at ON jaw_ceo_transcript(at);
311
340
 
312
341
  CREATE TABLE IF NOT EXISTS trace_runs (
313
342
  id TEXT PRIMARY KEY,
@@ -325,10 +354,10 @@ db.exec(`
325
354
  started_at INTEGER NOT NULL,
326
355
  finished_at INTEGER,
327
356
  last_event_at INTEGER,
328
- error TEXT
357
+ error TEXT,
358
+ session_id TEXT,
359
+ scope_key TEXT
329
360
  );
330
- CREATE INDEX IF NOT EXISTS idx_trace_runs_message ON trace_runs(message_id);
331
- CREATE INDEX IF NOT EXISTS idx_trace_runs_started ON trace_runs(started_at);
332
361
 
333
362
  CREATE TABLE IF NOT EXISTS trace_events (
334
363
  run_id TEXT NOT NULL,
@@ -344,51 +373,180 @@ db.exec(`
344
373
  PRIMARY KEY (run_id, seq),
345
374
  FOREIGN KEY (run_id) REFERENCES trace_runs(id) ON DELETE CASCADE
346
375
  );
376
+ CREATE TABLE IF NOT EXISTS background_tasks (
377
+ id TEXT PRIMARY KEY,
378
+ kind TEXT NOT NULL,
379
+ spec TEXT NOT NULL,
380
+ status TEXT NOT NULL,
381
+ pid INTEGER,
382
+ origin_meta TEXT,
383
+ result TEXT,
384
+ created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
385
+ started_at DATETIME,
386
+ deadline_at DATETIME,
387
+ completed_at DATETIME,
388
+ notified_at DATETIME
389
+ );
390
+ `;
391
+ const BASELINE_INDEXES_SQL = `
392
+ CREATE INDEX IF NOT EXISTS idx_messages_created ON messages(created_at);
393
+ CREATE INDEX IF NOT EXISTS idx_remote_bindings_chat_session
394
+ ON remote_session_bindings(chat_session_id);
395
+ CREATE INDEX IF NOT EXISTS idx_mention_watch_seen_job
396
+ ON mention_watch_seen (job_id, seen_at);
397
+ CREATE INDEX IF NOT EXISTS idx_mention_watch_seen_v2_ns
398
+ ON mention_watch_seen_v2 (job_id, workspace_id, user_id, seen_at);
399
+ CREATE INDEX IF NOT EXISTS idx_legacy_mention_watch_archive_job
400
+ ON legacy_mention_watch_archive (job_id, table_name);
401
+ CREATE INDEX IF NOT EXISTS idx_jaw_ceo_transcript_at ON jaw_ceo_transcript(at);
402
+ CREATE INDEX IF NOT EXISTS idx_trace_runs_message ON trace_runs(message_id);
403
+ CREATE INDEX IF NOT EXISTS idx_trace_runs_started ON trace_runs(started_at);
347
404
  CREATE INDEX IF NOT EXISTS idx_trace_events_run_seq ON trace_events(run_id, seq);
348
- `);
349
- // Additive owner metadata: legacy rows remain readable without invented scopes.
350
- const traceRunCols = new Set(db.prepare('PRAGMA table_info(trace_runs)').all().map(c => c.name));
351
- if (!traceRunCols.has('session_id'))
352
- db.exec('ALTER TABLE trace_runs ADD COLUMN session_id TEXT');
353
- if (!traceRunCols.has('scope_key'))
354
- db.exec('ALTER TABLE trace_runs ADD COLUMN scope_key TEXT');
355
- db.exec(`
405
+ CREATE INDEX IF NOT EXISTS idx_background_tasks_status ON background_tasks(status);
406
+
407
+ -- Indexes over columns that only a migration step adds to an older database.
408
+ -- They are the reason indexes run after MIGRATIONS rather than with the tables.
409
+ CREATE INDEX IF NOT EXISTS idx_messages_wd ON messages(working_dir);
410
+ CREATE INDEX IF NOT EXISTS idx_messages_trace_run ON messages(trace_run_id);
411
+ CREATE INDEX IF NOT EXISTS idx_messages_session ON messages(session_id);
356
412
  CREATE INDEX IF NOT EXISTS idx_trace_runs_session ON trace_runs(session_id, id);
413
+
357
414
  CREATE INDEX IF NOT EXISTS idx_trace_runtime ON trace_events(run_id, seq) WHERE source = 'runtime';
358
415
  CREATE UNIQUE INDEX IF NOT EXISTS idx_trace_runtime_control ON trace_events(run_id)
359
416
  WHERE source = 'system' AND event_type = 'runtime.control.v1';
360
- `);
361
- // Lightweight migration for existing DBs created before `trace` column existed.
362
- const messageCols = db.prepare('PRAGMA table_info(messages)').all();
363
- if (!messageCols.some(c => c["name"] === 'trace')) {
364
- db.exec('ALTER TABLE messages ADD COLUMN trace TEXT DEFAULT NULL');
417
+ `;
418
+ function tableColumns(database, table) {
419
+ const rows = database.prepare(`PRAGMA table_info(${table})`).all();
420
+ return new Set(rows.map(row => row.name));
421
+ }
422
+ /** Additive and idempotent, so a step interrupted halfway simply reruns. */
423
+ function addColumnIfMissing(database, table, column, ddl) {
424
+ if (tableColumns(database, table).has(column))
425
+ return;
426
+ database.exec(`ALTER TABLE ${table} ADD COLUMN ${ddl}`);
365
427
  }
366
- // Migration: add tool_log column for structured ProcessBlock data
367
- if (!messageCols.some(c => c["name"] === 'tool_log')) {
368
- db.exec('ALTER TABLE messages ADD COLUMN tool_log TEXT DEFAULT NULL');
428
+ const MIGRATIONS = [
429
+ {
430
+ version: 1,
431
+ describe: 'adopt the columns that predate user_version',
432
+ apply(database) {
433
+ // Every column here also exists in BASELINE_TABLES_SQL. A fresh database
434
+ // gets it from CREATE; a database made before the column existed gets it
435
+ // here. Both paths must end at the same shape, which is what the
436
+ // fresh-vs-migrated parity test asserts.
437
+ addColumnIfMissing(database, 'trace_runs', 'session_id', 'session_id TEXT');
438
+ addColumnIfMissing(database, 'trace_runs', 'scope_key', 'scope_key TEXT');
439
+ addColumnIfMissing(database, 'messages', 'trace', 'trace TEXT DEFAULT NULL');
440
+ addColumnIfMissing(database, 'messages', 'tool_log', 'tool_log TEXT DEFAULT NULL');
441
+ addColumnIfMissing(database, 'messages', 'working_dir', 'working_dir TEXT DEFAULT NULL');
442
+ addColumnIfMissing(database, 'messages', 'trace_run_id', 'trace_run_id TEXT DEFAULT NULL');
443
+ addColumnIfMissing(database, 'messages', 'session_id', "session_id TEXT DEFAULT 'default'");
444
+ addColumnIfMissing(database, 'session', 'active_chat_session', "active_chat_session TEXT DEFAULT 'default'");
445
+ addColumnIfMissing(database, 'chat_sessions', 'active_run_policy', 'active_run_policy TEXT DEFAULT NULL');
446
+ addColumnIfMissing(database, 'chat_sessions', 'generation', 'generation INTEGER NOT NULL DEFAULT 0');
447
+ addColumnIfMissing(database, 'employee_sessions', 'model', "model TEXT DEFAULT ''");
448
+ addColumnIfMissing(database, 'employee_sessions', 'output_len', 'output_len INTEGER DEFAULT 0');
449
+ addColumnIfMissing(database, 'session_buckets', 'resume_key', 'resume_key TEXT DEFAULT NULL');
450
+ addColumnIfMissing(database, 'session_buckets', 'output_len', 'output_len INTEGER DEFAULT 0');
451
+ // Frozen task snapshot per resume chain (#prompt-cache): regenerated only
452
+ // on fresh spawns, reused byte-identical across resume turns so the system
453
+ // prompt prefix stays cacheable. Dies with the bucket row on any clear.
454
+ addColumnIfMissing(database, 'session_buckets', 'memory_snapshot', 'memory_snapshot TEXT DEFAULT NULL');
455
+ addColumnIfMissing(database, 'session_buckets', 'last_run_clean', 'last_run_clean INTEGER DEFAULT NULL');
456
+ addColumnIfMissing(database, 'session_buckets', 'last_run_cwd', 'last_run_cwd TEXT DEFAULT NULL');
457
+ addColumnIfMissing(database, 'session_buckets', 'last_run_meta', 'last_run_meta TEXT DEFAULT NULL');
458
+ addColumnIfMissing(database, 'mention_watch_cursor', 'resume_before', 'resume_before TEXT DEFAULT NULL');
459
+ // Only the original message link can establish a historical owner. Forked
460
+ // copies also carry trace_run_id, so backfilling from that column would
461
+ // steal ownership.
462
+ database.exec(`UPDATE trace_runs SET session_id = (SELECT session_id FROM messages WHERE id = trace_runs.message_id)
463
+ WHERE session_id IS NULL AND message_id IS NOT NULL`);
464
+ },
465
+ },
466
+ ];
467
+ /** The shape a current database must have, read off the baseline itself.
468
+ *
469
+ * Derived rather than hand-listed: a second hand-written list of expected
470
+ * columns is one more place to forget the column you just added, which is the
471
+ * defect this whole mechanism exists to catch. */
472
+ function baselineShape() {
473
+ const probe = new Database(':memory:');
474
+ try {
475
+ probe.exec(BASELINE_TABLES_SQL);
476
+ probe.exec(BASELINE_INDEXES_SQL);
477
+ const columns = new Map();
478
+ const tableRows = probe.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name NOT LIKE 'sqlite_%'").all();
479
+ for (const row of tableRows)
480
+ columns.set(row.name, tableColumns(probe, row.name));
481
+ const indexRows = probe.prepare("SELECT name FROM sqlite_master WHERE type='index' AND name NOT LIKE 'sqlite_%'").all();
482
+ return { columns, indexes: new Set(indexRows.map(row => row.name)) };
483
+ }
484
+ finally {
485
+ probe.close();
486
+ }
369
487
  }
488
+ /** Expected is a SUBSET of actual, never an equality.
489
+ *
490
+ * The live database legitimately carries more than the baseline: migrateSearchFts
491
+ * adds the FTS5 virtual tables and their shadow tables, and db-maintenance keeps
492
+ * its own bookkeeping. Only a MISSING object is a problem. */
493
+ export function assertSchemaComplete(database) {
494
+ const expected = baselineShape();
495
+ const missing = [];
496
+ for (const [table, wanted] of expected.columns) {
497
+ const actual = tableColumns(database, table);
498
+ if (actual.size === 0) {
499
+ missing.push(`table:${table}`);
500
+ continue;
501
+ }
502
+ for (const column of wanted)
503
+ if (!actual.has(column))
504
+ missing.push(`${table}.${column}`);
505
+ }
506
+ const actualIndexes = new Set(database.prepare("SELECT name FROM sqlite_master WHERE type='index' AND name NOT LIKE 'sqlite_%'").all().map(row => row.name));
507
+ for (const name of expected.indexes)
508
+ if (!actualIndexes.has(name))
509
+ missing.push(`index:${name}`);
510
+ if (missing.length === 0)
511
+ return;
512
+ throw new SchemaMigrationError(`database schema is incomplete at ${DB_PATH}: missing ${missing.join(', ')}. `
513
+ + 'This means the baseline schema in src/core/db.ts gained something that no '
514
+ + 'MIGRATIONS step adds to an existing database. Add the step (and bump '
515
+ + 'SCHEMA_VERSION) rather than relying on CREATE TABLE, which is a no-op here.');
516
+ }
517
+ /** Bring `database` to SCHEMA_VERSION, or refuse to open it with a reason. */
518
+ export function applySchema(database) {
519
+ database.exec(BASELINE_TABLES_SQL);
520
+ const found = Number(database.pragma('user_version', { simple: true }) ?? 0);
521
+ if (found > SCHEMA_VERSION) {
522
+ throw new SchemaMigrationError(`database at ${DB_PATH} was written by a newer cli-jaw (schema v${found}, `
523
+ + `this build understands v${SCHEMA_VERSION}). Upgrade cli-jaw instead of `
524
+ + 'downgrading the database; migrating backwards would drop data.');
525
+ }
526
+ // Skipped entirely once the database is current, so an ordinary boot never
527
+ // takes a write lock. When work IS due, BEGIN IMMEDIATE serializes it: two
528
+ // processes starting on the same old home would otherwise both read version 0
529
+ // and both run ALTER, and the loser died with 'duplicate column name'. The
530
+ // version is re-read inside the lock, so the loser now sees the winner's work.
531
+ if (found !== SCHEMA_VERSION) {
532
+ database.transaction(() => {
533
+ const from = Number(database.pragma('user_version', { simple: true }) ?? 0);
534
+ if (from > SCHEMA_VERSION)
535
+ return;
536
+ for (const step of MIGRATIONS)
537
+ if (step.version > from)
538
+ step.apply(database);
539
+ database.pragma(`user_version = ${SCHEMA_VERSION}`);
540
+ }).immediate();
541
+ }
542
+ database.exec(BASELINE_INDEXES_SQL);
543
+ assertSchemaComplete(database);
544
+ }
545
+ applySchema(db);
370
546
  const migratedToolLogs = migrateOversizedToolLogs(db);
371
547
  if (migratedToolLogs > 0) {
372
548
  console.log(`[db:migrate] sanitized ${migratedToolLogs} oversized tool_log row(s)`);
373
549
  }
374
- // Migration: add working_dir column for project-scoped message isolation
375
- if (!messageCols.some(c => c["name"] === 'working_dir')) {
376
- db.exec('ALTER TABLE messages ADD COLUMN working_dir TEXT DEFAULT NULL');
377
- }
378
- if (!messageCols.some(c => c["name"] === 'trace_run_id')) {
379
- db.exec('ALTER TABLE messages ADD COLUMN trace_run_id TEXT DEFAULT NULL');
380
- }
381
- db.exec('CREATE INDEX IF NOT EXISTS idx_messages_wd ON messages(working_dir)');
382
- db.exec('CREATE INDEX IF NOT EXISTS idx_messages_trace_run ON messages(trace_run_id)');
383
- // Migration: add session_id column for multi-session message isolation
384
- if (!messageCols.some(c => c["name"] === 'session_id')) {
385
- db.exec("ALTER TABLE messages ADD COLUMN session_id TEXT DEFAULT 'default'");
386
- }
387
- db.exec('CREATE INDEX IF NOT EXISTS idx_messages_session ON messages(session_id)');
388
- // Only the original message link can establish a historical owner. Forked copies
389
- // also carry trace_run_id, so backfilling from that column would steal ownership.
390
- db.exec(`UPDATE trace_runs SET session_id = (SELECT session_id FROM messages WHERE id = trace_runs.message_id)
391
- WHERE session_id IS NULL AND message_id IS NOT NULL`);
392
550
  const SEARCH_FTS_SQL = `
393
551
  CREATE VIRTUAL TABLE IF NOT EXISTS messages_fts USING fts5(
394
552
  content, tool_log, session_id UNINDEXED,
@@ -468,51 +626,6 @@ export function migrateSearchFts(database) {
468
626
  }
469
627
  }
470
628
  const searchFtsReady = migrateSearchFts(db);
471
- // Migration: add active_chat_session to session table
472
- const sessionCols = db.prepare('PRAGMA table_info(session)').all();
473
- if (!sessionCols.some(c => c["name"] === 'active_chat_session')) {
474
- db.exec("ALTER TABLE session ADD COLUMN active_chat_session TEXT DEFAULT 'default'");
475
- }
476
- const chatSessionCols = db.prepare('PRAGMA table_info(chat_sessions)').all();
477
- if (!chatSessionCols.some(c => c["name"] === 'active_run_policy')) {
478
- db.exec('ALTER TABLE chat_sessions ADD COLUMN active_run_policy TEXT DEFAULT NULL');
479
- }
480
- if (!chatSessionCols.some(c => c["name"] === 'generation')) {
481
- db.exec('ALTER TABLE chat_sessions ADD COLUMN generation INTEGER NOT NULL DEFAULT 0');
482
- }
483
- const employeeSessionCols = db.prepare('PRAGMA table_info(employee_sessions)').all();
484
- if (!employeeSessionCols.some(c => c["name"] === 'model')) {
485
- db.exec("ALTER TABLE employee_sessions ADD COLUMN model TEXT DEFAULT ''");
486
- }
487
- if (!employeeSessionCols.some(c => c["name"] === 'output_len')) {
488
- db.exec('ALTER TABLE employee_sessions ADD COLUMN output_len INTEGER DEFAULT 0');
489
- }
490
- const sessionBucketCols = db.prepare('PRAGMA table_info(session_buckets)').all();
491
- if (!sessionBucketCols.some(c => c["name"] === 'resume_key')) {
492
- db.exec('ALTER TABLE session_buckets ADD COLUMN resume_key TEXT DEFAULT NULL');
493
- }
494
- if (!sessionBucketCols.some(c => c["name"] === 'output_len')) {
495
- db.exec('ALTER TABLE session_buckets ADD COLUMN output_len INTEGER DEFAULT 0');
496
- }
497
- // Frozen task snapshot per resume chain (#prompt-cache): regenerated only on
498
- // fresh spawns, reused byte-identical across resume turns so the system
499
- // prompt prefix stays cacheable. Dies with the bucket row on any clear.
500
- if (!sessionBucketCols.some(c => c["name"] === 'memory_snapshot')) {
501
- db.exec('ALTER TABLE session_buckets ADD COLUMN memory_snapshot TEXT DEFAULT NULL');
502
- }
503
- if (!sessionBucketCols.some(c => c["name"] === 'last_run_clean'))
504
- db.exec('ALTER TABLE session_buckets ADD COLUMN last_run_clean INTEGER DEFAULT NULL');
505
- if (!sessionBucketCols.some(c => c["name"] === 'last_run_cwd'))
506
- db.exec('ALTER TABLE session_buckets ADD COLUMN last_run_cwd TEXT DEFAULT NULL');
507
- if (!sessionBucketCols.some(c => c["name"] === 'last_run_meta'))
508
- db.exec('ALTER TABLE session_buckets ADD COLUMN last_run_meta TEXT DEFAULT NULL');
509
- // `CREATE TABLE IF NOT EXISTS` above is a no-op on a database that already has
510
- // the table, so a column added later needs its own migration or the prepared
511
- // statement below fails at import time — which takes the whole process down.
512
- const mentionWatchCursorCols = db.prepare('PRAGMA table_info(mention_watch_cursor)').all();
513
- if (!mentionWatchCursorCols.some(c => c["name"] === 'resume_before')) {
514
- db.exec('ALTER TABLE mention_watch_cursor ADD COLUMN resume_before TEXT DEFAULT NULL');
515
- }
516
629
  // ─── Prepared Statements ─────────────────────────────
517
630
  export const getSession = () => db.prepare('SELECT * FROM session WHERE id = ?').get('default');
518
631
  export const updateSession = db.prepare(`
@@ -521,24 +634,8 @@ export const updateSession = db.prepare(`
521
634
  `);
522
635
  // Background runtime hook tasks (src/bgtask/) — registration is durable so
523
636
  // server restarts can recover watchers and re-deliver unsent notifications.
524
- // Prepared statements live in src/bgtask/registry.ts (module-local).
525
- db.exec(`
526
- CREATE TABLE IF NOT EXISTS background_tasks (
527
- id TEXT PRIMARY KEY,
528
- kind TEXT NOT NULL,
529
- spec TEXT NOT NULL,
530
- status TEXT NOT NULL,
531
- pid INTEGER,
532
- origin_meta TEXT,
533
- result TEXT,
534
- created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
535
- started_at DATETIME,
536
- deadline_at DATETIME,
537
- completed_at DATETIME,
538
- notified_at DATETIME
539
- );
540
- CREATE INDEX IF NOT EXISTS idx_background_tasks_status ON background_tasks(status);
541
- `);
637
+ // Prepared statements live in src/bgtask/registry.ts (module-local); the table
638
+ // itself is part of BASELINE_TABLES_SQL above.
542
639
  export const insertMessage = db.prepare('INSERT INTO messages (role, content, cli, model, trace, working_dir, session_id) VALUES (?, ?, ?, ?, NULL, ?, ?)');
543
640
  export const insertMessageWithTrace = db.prepare('INSERT INTO messages (role, content, cli, model, trace, tool_log, working_dir, session_id) VALUES (?, ?, ?, ?, ?, ?, ?, ?)');
544
641
  export const insertMessageWithTraceRun = db.prepare('INSERT INTO messages (role, content, cli, model, trace, tool_log, working_dir, trace_run_id, session_id) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)');
@@ -822,37 +919,25 @@ export const findSlackEventDedup = db.prepare('SELECT expires_at FROM slack_even
822
919
  export const insertSlackEventDedup = db.prepare('INSERT OR REPLACE INTO slack_event_dedup (event_key, expires_at) VALUES (?, ?)');
823
920
  export const sweepSlackEventDedup = db.prepare('DELETE FROM slack_event_dedup WHERE expires_at <= ?');
824
921
  export const clearSlackEventDedup = db.prepare('DELETE FROM slack_event_dedup');
825
- // ─── Mention watch (heartbeat) ───────────────────
826
- export const findMentionWatchSeen = db.prepare('SELECT 1 FROM mention_watch_seen WHERE job_id = ? AND channel_id = ? AND message_ts = ?');
827
- export const insertMentionWatchSeen = db.prepare('INSERT OR IGNORE INTO mention_watch_seen (job_id, channel_id, message_ts, seen_at) VALUES (?, ?, ?, ?)');
828
- /** Drop receipts the cursor has already passed.
829
- *
830
- * Bounded by the CURSOR, not by row count. A count-based prune deletes the
831
- * oldest rows regardless of position, and the cursor legitimately sits behind
832
- * them: it stops at the first mention still awaiting an answer, while later
833
- * mentions in the same window may already be answered and recorded. Pruning
834
- * those would make the next scan which re-reads from the stalled cursor —
835
- * answer them a second time.
836
- *
837
- * A row at or below the cursor is unreachable instead: the next scan asks Slack
838
- * for messages strictly after it, so its receipt can never be consulted again.
839
- * Compared numerically because a Slack ts is a decimal string and its string
840
- * order breaks across digit counts. */
841
- export const pruneMentionWatchSeen = db.prepare('DELETE FROM mention_watch_seen WHERE job_id = ? AND channel_id = ? '
842
- + 'AND CAST(message_ts AS REAL) <= CAST(? AS REAL)');
843
- export const getMentionWatchCursor = db.prepare('SELECT last_ts, resume_before FROM mention_watch_cursor WHERE job_id = ? AND channel_id = ?');
844
- /** Move the frontier. `resume_before` is left alone: the two advance on
845
- different conditions, and folding them into one write would clear a pending
846
- descent every time a cursor moved. */
847
- export const upsertMentionWatchCursor = db.prepare('INSERT INTO mention_watch_cursor (job_id, channel_id, last_ts, updated_at) VALUES (?, ?, ?, ?) '
848
- + 'ON CONFLICT(job_id, channel_id) DO UPDATE SET last_ts = excluded.last_ts, updated_at = excluded.updated_at');
849
- /** Store where an unfinished backward walk stopped, so the next tick descends
850
- from there instead of re-reading the newest windows. */
851
- export const setMentionWatchResumeBefore = db.prepare('INSERT INTO mention_watch_cursor (job_id, channel_id, last_ts, resume_before, updated_at) '
852
- + "VALUES (?, ?, COALESCE((SELECT last_ts FROM mention_watch_cursor WHERE job_id = ? AND channel_id = ?), ''), ?, ?) "
853
- + 'ON CONFLICT(job_id, channel_id) DO UPDATE SET resume_before = excluded.resume_before, updated_at = excluded.updated_at');
854
- export const getMentionWatchRotation = db.prepare('SELECT last_channel_id FROM mention_watch_rotation WHERE job_id = ?');
855
- export const upsertMentionWatchRotation = db.prepare('INSERT OR REPLACE INTO mention_watch_rotation (job_id, last_channel_id, updated_at) VALUES (?, ?, ?)');
922
+ // ─── Mention watch v1: quarantine surface only ────
923
+ //
924
+ // Nothing in src/ writes a v1 row. The scanner writes the namespaced v2 ledger
925
+ // through src/memory/mention-watch-ledger.ts, and the only v1 reader left is
926
+ // src/memory/legacy-mention-watch-quarantine.ts, which holds such a job until an
927
+ // operator restarts it with a fresh floor.
928
+ //
929
+ // What remains here exists so a TEST can build a home that predates the v2 key —
930
+ // there is no other way to produce one now. Production code must not import it:
931
+ // a v1 write is the workspace-less row shape that fb07276b0 removed, and writing
932
+ // one re-creates the misattribution the v2 key exists to prevent. The v1
933
+ // read/prune/rotation statements that had no caller at all are gone.
934
+ export const legacyMentionWatchV1Fixture = {
935
+ insertSeen: db.prepare('INSERT OR IGNORE INTO mention_watch_seen (job_id, channel_id, message_ts, seen_at) VALUES (?, ?, ?, ?)'),
936
+ upsertCursor: db.prepare('INSERT INTO mention_watch_cursor (job_id, channel_id, last_ts, updated_at) VALUES (?, ?, ?, ?) '
937
+ + 'ON CONFLICT(job_id, channel_id) DO UPDATE SET last_ts = excluded.last_ts, updated_at = excluded.updated_at'),
938
+ insertRotation: db.prepare('INSERT OR REPLACE INTO mention_watch_rotation (job_id, last_channel_id, updated_at) VALUES (?, ?, ?)'),
939
+ hasSeen: db.prepare('SELECT 1 FROM mention_watch_seen WHERE job_id = ? AND channel_id = ? AND message_ts = ?'),
940
+ };
856
941
  // ─── Mention watch v2: namespace-scoped ───────────
857
942
  // Reached only through src/memory/mention-watch-ledger.ts, which requires a
858
943
  // WatchNamespace. Every predicate below names all three parts of it.
@@ -952,15 +1037,6 @@ export const commitLegacyFreshStart = db.transaction((jobId, resolution, now) =>
952
1037
  deleteLegacyRotationForJobStmt.run(jobId);
953
1038
  return true;
954
1039
  });
955
- const deleteMentionWatchSeenForJob = db.prepare('DELETE FROM mention_watch_seen WHERE job_id = ?');
956
- const deleteMentionWatchCursorForJob = db.prepare('DELETE FROM mention_watch_cursor WHERE job_id = ?');
957
- const deleteMentionWatchRotationForJob = db.prepare('DELETE FROM mention_watch_rotation WHERE job_id = ?');
958
- /** Disabling or renaming a job should not leave its bookkeeping behind. */
959
- export const clearMentionWatchState = db.transaction((jobId) => {
960
- deleteMentionWatchSeenForJob.run(jobId);
961
- deleteMentionWatchCursorForJob.run(jobId);
962
- deleteMentionWatchRotationForJob.run(jobId);
963
- });
964
1040
  const rewriteQueuedMessage = db.prepare('UPDATE queued_messages SET payload = ? WHERE id = ?');
965
1041
  const queuedSessionExists = db.prepare('SELECT 1 FROM chat_sessions WHERE id = ?');
966
1042
  export const migrateQueuedMessagesV1ToV2 = db.transaction(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"db.js","sourceRoot":"","sources":["../../../src/core/db.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"db.js","sourceRoot":"","sources":["../../../src/core/db.ts"],"names":[],"mappings":"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"}