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.
- package/README.md +4 -0
- package/dist/bin/commands/browser-web-ai.js +29 -10
- package/dist/bin/commands/browser-web-ai.js.map +1 -1
- package/dist/server.js +2 -2
- package/dist/server.js.map +1 -1
- package/dist/src/agent/claude-runtime-run.js +2 -1
- package/dist/src/agent/claude-runtime-run.js.map +1 -1
- package/dist/src/agent/lifecycle-handler.js +15 -4
- package/dist/src/agent/lifecycle-handler.js.map +1 -1
- package/dist/src/agent/pi-runtime.js +103 -86
- package/dist/src/agent/pi-runtime.js.map +1 -1
- package/dist/src/agent/spawn/exit-settle.js +74 -0
- package/dist/src/agent/spawn/exit-settle.js.map +1 -0
- package/dist/src/agent/spawn/kill-reason.js +38 -0
- package/dist/src/agent/spawn/kill-reason.js.map +1 -0
- package/dist/src/agent/spawn/queue.js +8 -0
- package/dist/src/agent/spawn/queue.js.map +1 -1
- package/dist/src/agent/spawn/steer-event.js +33 -0
- package/dist/src/agent/spawn/steer-event.js.map +1 -0
- package/dist/src/agent/spawn.js +157 -173
- package/dist/src/agent/spawn.js.map +1 -1
- package/dist/src/agent/watchdog.js +9 -4
- package/dist/src/agent/watchdog.js.map +1 -1
- package/dist/src/browser/adaptive-fetch/browser-escalation.js +18 -1
- package/dist/src/browser/adaptive-fetch/browser-escalation.js.map +1 -1
- package/dist/src/browser/adaptive-fetch/browser-flow.js +36 -9
- package/dist/src/browser/adaptive-fetch/browser-flow.js.map +1 -1
- package/dist/src/browser/adaptive-fetch/browser-session.js +10 -1
- package/dist/src/browser/adaptive-fetch/browser-session.js.map +1 -1
- package/dist/src/browser/adaptive-fetch/camoufox-session.js +16 -1
- package/dist/src/browser/adaptive-fetch/camoufox-session.js.map +1 -1
- package/dist/src/browser/adaptive-fetch/defuddle-provenance.js +49 -0
- package/dist/src/browser/adaptive-fetch/defuddle-provenance.js.map +1 -0
- package/dist/src/browser/adaptive-fetch/endpoint-resolvers.js +61 -31
- package/dist/src/browser/adaptive-fetch/endpoint-resolvers.js.map +1 -1
- package/dist/src/browser/adaptive-fetch/fetcher.js +12 -1
- package/dist/src/browser/adaptive-fetch/fetcher.js.map +1 -1
- package/dist/src/browser/adaptive-fetch/live-smoke-manifest.js +12 -18
- package/dist/src/browser/adaptive-fetch/live-smoke-manifest.js.map +1 -1
- package/dist/src/browser/adaptive-fetch/public-endpoint-normalizers.js +85 -1
- package/dist/src/browser/adaptive-fetch/public-endpoint-normalizers.js.map +1 -1
- package/dist/src/browser/adaptive-fetch/safety.js +5 -3
- package/dist/src/browser/adaptive-fetch/safety.js.map +1 -1
- package/dist/src/browser/adaptive-fetch/scheduler.js +34 -5
- package/dist/src/browser/adaptive-fetch/scheduler.js.map +1 -1
- package/dist/src/browser/adaptive-fetch/tls-fetch.js +54 -33
- package/dist/src/browser/adaptive-fetch/tls-fetch.js.map +1 -1
- package/dist/src/browser/adaptive-fetch/vendor/README.md +33 -1
- package/dist/src/browser/adaptive-fetch/ytdlp-reader.js +54 -9
- package/dist/src/browser/adaptive-fetch/ytdlp-reader.js.map +1 -1
- package/dist/src/browser/web-ai/capability-observation-presets.js +12 -10
- package/dist/src/browser/web-ai/capability-observation-presets.js.map +1 -1
- package/dist/src/browser/web-ai/chatgpt-model.js +80 -7
- package/dist/src/browser/web-ai/chatgpt-model.js.map +1 -1
- package/dist/src/browser/web-ai/gemini-model.js +18 -0
- package/dist/src/browser/web-ai/gemini-model.js.map +1 -1
- package/dist/src/browser/web-ai/grok-model.js +64 -15
- package/dist/src/browser/web-ai/grok-model.js.map +1 -1
- package/dist/src/code-mode/providers/codex-app.js +83 -0
- package/dist/src/code-mode/providers/codex-app.js.map +1 -1
- package/dist/src/core/config.js +77 -73
- package/dist/src/core/config.js.map +1 -1
- package/dist/src/core/db.js +227 -151
- package/dist/src/core/db.js.map +1 -1
- package/dist/src/core/settings-merge.js +78 -102
- package/dist/src/core/settings-merge.js.map +1 -1
- package/dist/src/discord/bot.js +37 -54
- package/dist/src/discord/bot.js.map +1 -1
- package/dist/src/discord/discord-file.js +29 -3
- package/dist/src/discord/discord-file.js.map +1 -1
- package/dist/src/discord/send-only-client.js +56 -8
- package/dist/src/discord/send-only-client.js.map +1 -1
- package/dist/src/manager/routes/telegram-hub.js +8 -1
- package/dist/src/manager/routes/telegram-hub.js.map +1 -1
- package/dist/src/manager/telegram-hub/hub-bot.js +7 -1
- package/dist/src/manager/telegram-hub/hub-bot.js.map +1 -1
- package/dist/src/messaging/delivery-outcome.js +30 -0
- package/dist/src/messaging/delivery-outcome.js.map +1 -1
- package/dist/src/messaging/file-receipt.js +49 -0
- package/dist/src/messaging/file-receipt.js.map +1 -0
- package/dist/src/messaging/native-body.js +31 -0
- package/dist/src/messaging/native-body.js.map +1 -0
- package/dist/src/messaging/queue-notice-record.js +48 -0
- package/dist/src/messaging/queue-notice-record.js.map +1 -0
- package/dist/src/messaging/send.js +13 -2
- package/dist/src/messaging/send.js.map +1 -1
- package/dist/src/messaging/target-reply-guard.js +66 -0
- package/dist/src/messaging/target-reply-guard.js.map +1 -0
- package/dist/src/orchestrator/collect.js +18 -3
- package/dist/src/orchestrator/collect.js.map +1 -1
- package/dist/src/orchestrator/gateway.js +3 -1
- package/dist/src/orchestrator/gateway.js.map +1 -1
- package/dist/src/orchestrator/pipeline.js +7 -1
- package/dist/src/orchestrator/pipeline.js.map +1 -1
- package/dist/src/orchestrator/session-lanes.js +2 -2
- package/dist/src/orchestrator/session-lanes.js.map +1 -1
- package/dist/src/prompt/builder.js +2 -2
- package/dist/src/prompt/builder.js.map +1 -1
- package/dist/src/routes/i18n.js +9 -4
- package/dist/src/routes/i18n.js.map +1 -1
- package/dist/src/routes/instance.js +8 -4
- package/dist/src/routes/instance.js.map +1 -1
- package/dist/src/routes/jaw-memory.js +5 -5
- package/dist/src/routes/jaw-memory.js.map +1 -1
- package/dist/src/routes/link-preview.js +5 -1
- package/dist/src/routes/link-preview.js.map +1 -1
- package/dist/src/routes/memory.js +9 -7
- package/dist/src/routes/memory.js.map +1 -1
- package/dist/src/routes/messaging.js +21 -10
- package/dist/src/routes/messaging.js.map +1 -1
- package/dist/src/routes/orchestrate.js +127 -118
- package/dist/src/routes/orchestrate.js.map +1 -1
- package/dist/src/routes/settings.js +7 -7
- package/dist/src/routes/settings.js.map +1 -1
- package/dist/src/routes/system.js +9 -4
- package/dist/src/routes/system.js.map +1 -1
- package/dist/src/slack/bot.js +199 -132
- package/dist/src/slack/bot.js.map +1 -1
- package/dist/src/slack/events.js +31 -8
- package/dist/src/slack/events.js.map +1 -1
- package/dist/src/slack/ingress.js +3 -1
- package/dist/src/slack/ingress.js.map +1 -1
- package/dist/src/slack/progress-activity.js +24 -3
- package/dist/src/slack/progress-activity.js.map +1 -1
- package/dist/src/slack/progress-lifecycle.js +29 -0
- package/dist/src/slack/progress-lifecycle.js.map +1 -1
- package/dist/src/slack/progress.js +1 -1
- package/dist/src/slack/progress.js.map +1 -1
- package/dist/src/slack/send-only-client.js +16 -3
- package/dist/src/slack/send-only-client.js.map +1 -1
- package/dist/src/slack/slack-file.js +5 -3
- package/dist/src/slack/slack-file.js.map +1 -1
- package/dist/src/slack/workflow.js +134 -0
- package/dist/src/slack/workflow.js.map +1 -0
- package/dist/src/telegram/bot.js +60 -55
- package/dist/src/telegram/bot.js.map +1 -1
- package/dist/src/telegram/rich-message.js +28 -20
- package/dist/src/telegram/rich-message.js.map +1 -1
- package/dist/src/telegram/telegram-file.js +45 -9
- package/dist/src/telegram/telegram-file.js.map +1 -1
- package/dist/src/trace/activity-journal.js +3 -6
- package/dist/src/trace/activity-journal.js.map +1 -1
- package/dist/src/trace/activity-retention.js +29 -0
- package/dist/src/trace/activity-retention.js.map +1 -1
- package/package.json +1 -1
- package/public/dist/.vite/manifest.json +20 -20
- package/public/dist/assets/{ChannelEnablementControl-DwUDKjX9.js → ChannelEnablementControl-egwTtO9-.js} +8 -8
- package/public/dist/assets/{ChannelSetupEntry-DH0AuNNX.js → ChannelSetupEntry-CCrUYd2-.js} +1 -1
- package/public/dist/assets/{ChannelsDiscord-7NmoTjR7.js → ChannelsDiscord-B6rJAsQG.js} +1 -1
- package/public/dist/assets/{ChannelsSlack-Ba0ax6iT.js → ChannelsSlack-CrSIw4Wd.js} +1 -1
- package/public/dist/assets/{ChannelsTelegram-DKA9atf2.js → ChannelsTelegram-DPrdLEnT.js} +1 -1
- package/public/dist/assets/CodeCanvas-D5jp8-t5.js +2 -0
- package/public/dist/assets/{manager-iX7KosWI.js → manager-CFwOAoe0.js} +2 -2
- package/public/dist/assets/{settings-embedding-DIqST-91.js → settings-embedding-DspkJ6sr.js} +1 -1
- package/public/dist/assets/{settings-KIPNUOIV.js → settings-qkC0NuQ7.js} +1 -1
- package/public/dist/manager/index.html +1 -1
- package/public/dist/settings/index.html +1 -1
- package/public/locales/en.json +9 -3
- package/public/locales/ja.json +9 -3
- package/public/locales/ko.json +9 -3
- package/public/locales/zh.json +9 -3
- package/public/manager/src/code/CodeWorkbench.tsx +11 -4
- package/public/manager/src/code/code-controller-draft-storage.ts +7 -3
- package/public/manager/src/code/code-controller-drafts.ts +9 -2
- package/public/manager/src/code/code-controller-runtime.ts +125 -12
- package/public/manager/src/code/code-controller-types.ts +2 -0
- package/public/manager/src/code/pending-user-item.ts +5 -0
- package/scripts/ci/windows-unit-manifest.txt +6 -0
- package/public/dist/assets/CodeCanvas-DWsx6sv5.js +0 -2
package/dist/src/core/db.js
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
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
|
-
|
|
362
|
-
const
|
|
363
|
-
|
|
364
|
-
|
|
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
|
-
|
|
367
|
-
|
|
368
|
-
|
|
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
|
-
|
|
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
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
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(() => {
|
package/dist/src/core/db.js.map
CHANGED
|
@@ -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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"}
|