@cortexkit/opencode-magic-context 0.49.2 → 0.49.3
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 +2 -38
- package/dist/auto-search-worker.js +3 -3
- package/dist/compaction-marker-candidates-dd638ypn.js +19 -0
- package/dist/compaction-marker-candidates-worker.js +24 -0
- package/dist/{conflict-warning-hook-asnt6hfc.js → conflict-warning-hook-ae8nmv7c.js} +5 -4
- package/dist/{context-tfyhtdcs.js → context-9tbxh883.js} +63 -29
- package/dist/{embedding-backfill-wyc3ykyf.js → embedding-backfill-aj488s8x.js} +5 -5
- package/dist/features/magic-context/compaction-marker-candidates-worker.d.ts +2 -0
- package/dist/features/magic-context/compaction-marker-candidates-worker.d.ts.map +1 -0
- package/dist/features/magic-context/compaction-marker-candidates.d.ts +47 -0
- package/dist/features/magic-context/compaction-marker-candidates.d.ts.map +1 -0
- package/dist/features/magic-context/compaction-marker.d.ts +12 -0
- package/dist/features/magic-context/compaction-marker.d.ts.map +1 -1
- package/dist/features/magic-context/memory/project-identity.d.ts +5 -1
- package/dist/features/magic-context/memory/project-identity.d.ts.map +1 -1
- package/dist/features/magic-context/message-index-async.d.ts +3 -0
- package/dist/features/magic-context/message-index-async.d.ts.map +1 -1
- package/dist/features/magic-context/message-index.d.ts.map +1 -1
- package/dist/features/magic-context/storage-clone.d.ts +2 -0
- package/dist/features/magic-context/storage-clone.d.ts.map +1 -1
- package/dist/features/magic-context/storage-tags.d.ts +1 -1
- package/dist/features/magic-context/storage-tags.d.ts.map +1 -1
- package/dist/hooks/magic-context/compaction-marker-manager.d.ts +3 -0
- package/dist/hooks/magic-context/compaction-marker-manager.d.ts.map +1 -1
- package/dist/hooks/magic-context/compartment-runner-incremental.d.ts.map +1 -1
- package/dist/hooks/magic-context/history-boundary-repair.d.ts +11 -2
- package/dist/hooks/magic-context/history-boundary-repair.d.ts.map +1 -1
- package/dist/hooks/magic-context/protected-tail-boundary.d.ts +4 -3
- package/dist/hooks/magic-context/protected-tail-boundary.d.ts.map +1 -1
- package/dist/hooks/magic-context/raw-ordinal-warmup.d.ts +10 -0
- package/dist/hooks/magic-context/raw-ordinal-warmup.d.ts.map +1 -1
- package/dist/hooks/magic-context/read-session-chunk.d.ts.map +1 -1
- package/dist/hooks/magic-context/rust-mode-transform.d.ts.map +1 -1
- package/dist/hooks/magic-context/transform-postprocess-phase.d.ts.map +1 -1
- package/dist/{index-sfhndpcb.js → index-3wckxwfp.js} +39 -39
- package/dist/{index-gzky5rva.js → index-41gqa557.js} +4 -2
- package/dist/{index-r2zcs71c.js → index-7ndnvw7a.js} +1 -1
- package/dist/{index-sv0bb7vg.js → index-7zg9dvx0.js} +35 -4
- package/dist/{index-xgrwmj82.js → index-bhk710rw.js} +1 -1
- package/dist/{index-fg00p1cg.js → index-c0b01zrc.js} +2 -2
- package/dist/{index-rafsaxac.js → index-fjtgekd4.js} +2 -2
- package/dist/{index-fdtkt5r1.js → index-fst3t0d9.js} +9 -9
- package/dist/{index-6tfxmc4n.js → index-je2na55n.js} +4 -4
- package/dist/{index-h5zfkjyk.js → index-jpm52v9x.js} +6 -24
- package/dist/{index-s7fc0fkn.js → index-m4p77myp.js} +1 -1
- package/dist/{index-xnanvj3w.js → index-mgy5dwcw.js} +607 -579
- package/dist/{index-0pjvpfkf.js → index-qvr78ej6.js} +1 -1
- package/dist/{index-zfzdpeq2.js → index-s4ztdn8v.js} +1311 -1271
- package/dist/index-v0p37hm2.js +22 -0
- package/dist/{index-eypn4ba6.js → index-w9pe0nx1.js} +3 -3
- package/dist/{index-p0n5ryq8.js → index-ws3gcy5m.js} +19 -9
- package/dist/{index-att4bfan.js → index-xfbfrngb.js} +1 -1
- package/dist/{index-nydv6g8r.js → index-yqps2zsv.js} +44 -6
- package/dist/index-yxawqmdd.js +212 -0
- package/dist/{index-zg8yq4ya.js → index-znzgze2v.js} +3 -3
- package/dist/index.js +38 -35
- package/dist/{message-index-bounded-hqktkhdy.js → message-index-bounded-pv6ct15d.js} +18 -17
- package/dist/message-index-jqa7qd0s.js +60 -0
- package/dist/migration-worker.js +3 -3
- package/dist/{project-embedding-registry-0gv3h6y8.js → project-embedding-registry-fcmszatg.js} +4 -4
- package/dist/raw-ordinal-warmup-worker.js +22 -5
- package/dist/{read-session-chunk-5mh0bh8y.js → read-session-chunk-cwgjwjd0.js} +7 -6
- package/dist/{read-session-raw-8sjbc9h0.js → read-session-raw-z38cn0as.js} +2 -1
- package/dist/{recomp-orchestrator-kpkhkjhq.js → recomp-orchestrator-txcc802e.js} +19 -17
- package/dist/{search-p9w39qv4.js → search-v1t47s2q.js} +14 -13
- package/dist/{send-session-notification-xffh3bbe.js → send-session-notification-yp9m5g4p.js} +4 -3
- package/dist/shared/tag-owner-id.d.ts +1 -0
- package/dist/shared/tag-owner-id.d.ts.map +1 -1
- package/dist/{storage-tags-k0pda32s.js → storage-tags-0ssbmzg9.js} +2 -2
- package/dist/{transform-postprocess-phase-481j5a7z.js → transform-postprocess-phase-113rwew1.js} +19 -17
- package/dist/v2/auto-search-worker.js +3 -3
- package/dist/v2/compaction-marker-candidates-1s21e2fz.js +18 -0
- package/dist/v2/compaction-marker-candidates-worker.js +24 -0
- package/dist/v2/{context-gsdtha5v.js → context-p1xf3w5q.js} +115 -44
- package/dist/v2/{embedding-backfill-dbvjbcmm.js → embedding-backfill-9hbkfvnz.js} +5 -5
- package/dist/v2/{message-index-bounded-p6v0n8qh.js → message-index-bounded-c0810p5w.js} +17 -16
- package/dist/v2/message-index-h8ssgq3q.js +59 -0
- package/dist/v2/migration-worker.js +3 -3
- package/dist/v2/{project-embedding-registry-nyq7z8y6.js → project-embedding-registry-42th7k1z.js} +4 -4
- package/dist/v2/raw-ordinal-warmup-worker.js +22 -5
- package/dist/v2/{read-session-chunk-fhyfe4qa.js → read-session-chunk-n86v9xfg.js} +6 -5
- package/dist/v2/{read-session-raw-j8dvp7f4.js → read-session-raw-3b3ehga4.js} +2 -1
- package/dist/v2/{recomp-orchestrator-5xy7w136.js → recomp-orchestrator-v168jwgg.js} +16 -14
- package/dist/v2/{search-j7bakcwa.js → search-048v8y02.js} +13 -12
- package/dist/v2/{send-session-notification-f6v698r5.js → send-session-notification-a4h2azxa.js} +2 -1
- package/dist/v2/{server-bgzy0phk.js → server-3bc6k4k4.js} +62 -33
- package/dist/v2/{server-7h861yms.js → server-3dqjhchy.js} +5 -18
- package/dist/v2/{server-c7n2ftng.js → server-4n2tknpc.js} +34 -3
- package/dist/v2/server-51779zs2.js +19 -0
- package/dist/v2/{server-kh958yj8.js → server-5zrpr764.js} +1 -1
- package/dist/v2/{server-6tcrjfw8.js → server-8pqnnmf9.js} +1 -1
- package/dist/v2/server-9290a1mb.js +212 -0
- package/dist/v2/{server-7vkj6zhb.js → server-9a6v0wth.js} +3 -3
- package/dist/v2/{server-1fszbabv.js → server-cjz51jm2.js} +2 -2
- package/dist/v2/{server-7spkq1y6.js → server-cxxjb33r.js} +2286 -2246
- package/dist/v2/{server-mqvtz7wz.js → server-hetyb88z.js} +9 -9
- package/dist/v2/{server-4c7jt8gq.js → server-pcygfdbs.js} +44 -6
- package/dist/v2/{server-8xmq9h3f.js → server-q6j5dasr.js} +4 -2
- package/dist/v2/{server-zbxjj2mz.js → server-rygvffsf.js} +2 -2
- package/dist/v2/server.js +4 -4
- package/dist/v2/{storage-tags-5yxrvkaf.js → storage-tags-3a4cavqb.js} +2 -2
- package/dist/v2/{wrapup-orchestrator-yem5422s.js → wrapup-orchestrator-zcyf8ymw.js} +14 -12
- package/dist/{wrapup-orchestrator-xvrr27ws.js → wrapup-orchestrator-5aa2q4v3.js} +20 -18
- package/package.json +3 -3
- package/src/config/latch-permanence-guard.test.ts +6 -1
- package/src/shared/sqlite-writer-diagnostics.test.ts +21 -10
- package/src/shared/tag-owner-id.ts +13 -0
- package/src/shared/tag-transcript.test.ts +6 -1
- package/src/shared/tag-transcript.ts +2 -1
- package/src/shared/windows-hidden-spawns.test.ts +60 -4
- /package/dist/{index-69vas84q.js → index-e6xnpach.js} +0 -0
- /package/dist/{index-p1hnwfd8.js → index-gcdb3rqw.js} +0 -0
- /package/dist/v2/{index-69vas84q.js → index-e6xnpach.js} +0 -0
- /package/dist/v2/{server-s2st631p.js → server-8wcf79fe.js} +0 -0
|
@@ -4,29 +4,30 @@ import {
|
|
|
4
4
|
yieldIndexChunk2
|
|
5
5
|
} from "./server-kb9nn0a0.js";
|
|
6
6
|
import"./server-1zx87sdm.js";
|
|
7
|
-
import"./server-
|
|
7
|
+
import"./server-pcygfdbs.js";
|
|
8
8
|
import"./server-kzns2hbz.js";
|
|
9
9
|
import"./server-pavzsdc6.js";
|
|
10
10
|
import"./server-t4k4qexw.js";
|
|
11
11
|
import"./server-6byqfbqf.js";
|
|
12
12
|
import"./server-cw6521wn.js";
|
|
13
|
-
import"./server-
|
|
13
|
+
import"./server-51779zs2.js";
|
|
14
|
+
import"./server-3dqjhchy.js";
|
|
14
15
|
import"./server-2ra6pwf3.js";
|
|
15
16
|
import"./server-czb2rkpk.js";
|
|
16
|
-
import"./server-
|
|
17
|
+
import"./server-4n2tknpc.js";
|
|
17
18
|
import"./server-7ekna9zs.js";
|
|
18
19
|
import {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
} from "./server-
|
|
20
|
+
MESSAGE_INDEX_MAX_FTS_BYTES2,
|
|
21
|
+
messageIndexSkipKey2,
|
|
22
|
+
getLastIndexedOrdinal2,
|
|
23
|
+
markMessageIndexDirty2,
|
|
24
|
+
getIndexableContent2,
|
|
25
|
+
indexSingleMessage2
|
|
26
|
+
} from "./server-3bc6k4k4.js";
|
|
26
27
|
import"./server-2htmbqbv.js";
|
|
27
28
|
import"./server-cvgn49tr.js";
|
|
28
29
|
import"./server-hb6xhh9q.js";
|
|
29
|
-
import"./server-
|
|
30
|
+
import"./server-8wcf79fe.js";
|
|
30
31
|
import"./server-3t0q2cqx.js";
|
|
31
32
|
|
|
32
33
|
// src/features/magic-context/message-index-bounded.ts
|
|
@@ -77,13 +78,13 @@ async function indexMessageInShortChunks(db, sessionId, message, coordination, i
|
|
|
77
78
|
try {
|
|
78
79
|
if (!isCurrent())
|
|
79
80
|
return { inserted: false, measurements };
|
|
80
|
-
const content =
|
|
81
|
+
const content = getIndexableContent2(message.role, message.parts);
|
|
81
82
|
measurements.sourceBytes = Buffer.byteLength(content);
|
|
82
83
|
const hash = createHash("sha256");
|
|
83
|
-
const oversized = measurements.sourceBytes >
|
|
84
|
+
const oversized = measurements.sourceBytes > MESSAGE_INDEX_MAX_FTS_BYTES2;
|
|
84
85
|
measurements.skipped = oversized;
|
|
85
86
|
if (oversized) {
|
|
86
|
-
await transaction(() =>
|
|
87
|
+
await transaction(() => markMessageIndexDirty2(db, sessionId, Math.min(message.ordinal, getLastIndexedOrdinal2(db, sessionId) + 1)));
|
|
87
88
|
const encoded = Buffer.from(content);
|
|
88
89
|
const progress = db.prepare("INSERT INTO schema_migrations_meta(key,value) VALUES (?,?) ON CONFLICT(key) DO UPDATE SET value=excluded.value");
|
|
89
90
|
for (let offset = 0;offset < encoded.length; offset += IDENTITY_CHUNK_BYTES) {
|
|
@@ -91,7 +92,7 @@ async function indexMessageInShortChunks(db, sessionId, message, coordination, i
|
|
|
91
92
|
return { inserted: false, measurements };
|
|
92
93
|
const end = Math.min(encoded.length, offset + IDENTITY_CHUNK_BYTES);
|
|
93
94
|
hash.update(encoded.subarray(offset, end));
|
|
94
|
-
await transaction(() => progress.run(
|
|
95
|
+
await transaction(() => progress.run(messageIndexSkipKey2(sessionId, message.id), JSON.stringify({
|
|
95
96
|
reason: "oversized",
|
|
96
97
|
bytes: measurements.sourceBytes,
|
|
97
98
|
processedBytes: end,
|
|
@@ -113,7 +114,7 @@ async function indexMessageInShortChunks(db, sessionId, message, coordination, i
|
|
|
113
114
|
content: oversized ? "" : content,
|
|
114
115
|
...oversized ? { ftsSkippedBytes: measurements.sourceBytes } : {}
|
|
115
116
|
};
|
|
116
|
-
const inserted = await withIndexChunk2(coordination, () => withSqliteBackgroundWriter2(() =>
|
|
117
|
+
const inserted = await withIndexChunk2(coordination, () => withSqliteBackgroundWriter2(() => indexSingleMessage2(db, sessionId, message, isCurrent, source)));
|
|
117
118
|
return { inserted, measurements };
|
|
118
119
|
} finally {
|
|
119
120
|
db.exec = execute;
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import {
|
|
2
|
+
MESSAGE_INDEX_MAX_FTS_BYTES2,
|
|
3
|
+
messageIndexSkipKey2,
|
|
4
|
+
toMessageIndexSource2,
|
|
5
|
+
getMessageIndexSourceIdentity2,
|
|
6
|
+
isMessageIndexSourceCurrent2,
|
|
7
|
+
getLastIndexedOrdinal2,
|
|
8
|
+
getIndexedMessageCorpusSize2,
|
|
9
|
+
markMessageIndexDirty2,
|
|
10
|
+
getMessageIndexReconciliationStartOrdinal2,
|
|
11
|
+
isMessageIndexReconciledThrough2,
|
|
12
|
+
deleteIndexedMessage2,
|
|
13
|
+
clearIndexedMessagesInTransaction2,
|
|
14
|
+
clearIndexedMessages2,
|
|
15
|
+
getIndexableContent2,
|
|
16
|
+
indexSingleMessage2,
|
|
17
|
+
indexMessagesAfterOrdinal2,
|
|
18
|
+
indexSourcesAfterOrdinal2,
|
|
19
|
+
sweepOrphanedOpenCodeMessageIndexes2
|
|
20
|
+
} from "./server-3bc6k4k4.js";
|
|
21
|
+
import"./server-8wcf79fe.js";
|
|
22
|
+
import"./server-hb6xhh9q.js";
|
|
23
|
+
import"./server-cvgn49tr.js";
|
|
24
|
+
import"./server-2htmbqbv.js";
|
|
25
|
+
import"./server-4n2tknpc.js";
|
|
26
|
+
import"./server-pcygfdbs.js";
|
|
27
|
+
import"./server-1zx87sdm.js";
|
|
28
|
+
import"./server-czb2rkpk.js";
|
|
29
|
+
import"./server-3dqjhchy.js";
|
|
30
|
+
import"./server-51779zs2.js";
|
|
31
|
+
import"./server-cw6521wn.js";
|
|
32
|
+
import"./server-7ekna9zs.js";
|
|
33
|
+
import"./server-6byqfbqf.js";
|
|
34
|
+
import"./server-2ra6pwf3.js";
|
|
35
|
+
import"./server-3t0q2cqx.js";
|
|
36
|
+
import"./server-kb9nn0a0.js";
|
|
37
|
+
import"./server-kzns2hbz.js";
|
|
38
|
+
import"./server-t4k4qexw.js";
|
|
39
|
+
import"./server-pavzsdc6.js";
|
|
40
|
+
export {
|
|
41
|
+
MESSAGE_INDEX_MAX_FTS_BYTES2 as MESSAGE_INDEX_MAX_FTS_BYTES,
|
|
42
|
+
clearIndexedMessages2 as clearIndexedMessages,
|
|
43
|
+
clearIndexedMessagesInTransaction2 as clearIndexedMessagesInTransaction,
|
|
44
|
+
deleteIndexedMessage2 as deleteIndexedMessage,
|
|
45
|
+
getIndexableContent2 as getIndexableContent,
|
|
46
|
+
getIndexedMessageCorpusSize2 as getIndexedMessageCorpusSize,
|
|
47
|
+
getLastIndexedOrdinal2 as getLastIndexedOrdinal,
|
|
48
|
+
getMessageIndexReconciliationStartOrdinal2 as getMessageIndexReconciliationStartOrdinal,
|
|
49
|
+
getMessageIndexSourceIdentity2 as getMessageIndexSourceIdentity,
|
|
50
|
+
indexMessagesAfterOrdinal2 as indexMessagesAfterOrdinal,
|
|
51
|
+
indexSingleMessage2 as indexSingleMessage,
|
|
52
|
+
indexSourcesAfterOrdinal2 as indexSourcesAfterOrdinal,
|
|
53
|
+
isMessageIndexReconciledThrough2 as isMessageIndexReconciledThrough,
|
|
54
|
+
isMessageIndexSourceCurrent2 as isMessageIndexSourceCurrent,
|
|
55
|
+
markMessageIndexDirty2 as markMessageIndexDirty,
|
|
56
|
+
messageIndexSkipKey2 as messageIndexSkipKey,
|
|
57
|
+
sweepOrphanedOpenCodeMessageIndexes2 as sweepOrphanedOpenCodeMessageIndexes,
|
|
58
|
+
toMessageIndexSource2 as toMessageIndexSource
|
|
59
|
+
};
|
|
@@ -9,16 +9,16 @@ import {
|
|
|
9
9
|
import"./server-fr0wbhdn.js";
|
|
10
10
|
import {
|
|
11
11
|
runMigrationsWithRetry
|
|
12
|
-
} from "./server-
|
|
12
|
+
} from "./server-8pqnnmf9.js";
|
|
13
13
|
import"./server-6byqfbqf.js";
|
|
14
14
|
import"./server-2ra6pwf3.js";
|
|
15
|
-
import"./server-
|
|
15
|
+
import"./server-q6j5dasr.js";
|
|
16
16
|
import"./server-cvgn49tr.js";
|
|
17
17
|
import"./server-fb3zxn06.js";
|
|
18
18
|
import {
|
|
19
19
|
setSqlitePragmaConfig,
|
|
20
20
|
initializeDatabase
|
|
21
|
-
} from "./server-
|
|
21
|
+
} from "./server-9a6v0wth.js";
|
|
22
22
|
import"./server-2htmbqbv.js";
|
|
23
23
|
import"./server-kzns2hbz.js";
|
|
24
24
|
import"./server-7ekna9zs.js";
|
package/dist/v2/{project-embedding-registry-nyq7z8y6.js → project-embedding-registry-42th7k1z.js}
RENAMED
|
@@ -33,18 +33,18 @@ import {
|
|
|
33
33
|
sweepAllRegisteredProjects2,
|
|
34
34
|
_setTestProviderFactoryForProject2,
|
|
35
35
|
_resetProjectEmbeddingRegistryForTests2
|
|
36
|
-
} from "./server-
|
|
37
|
-
import"./server-
|
|
36
|
+
} from "./server-cjz51jm2.js";
|
|
37
|
+
import"./server-8wcf79fe.js";
|
|
38
38
|
import"./server-4dhv7mqz.js";
|
|
39
39
|
import"./server-qt1qqasc.js";
|
|
40
40
|
import"./server-ras2sxnc.js";
|
|
41
41
|
import"./server-hb6xhh9q.js";
|
|
42
|
-
import"./server-
|
|
42
|
+
import"./server-q6j5dasr.js";
|
|
43
43
|
import"./server-2htmbqbv.js";
|
|
44
44
|
import"./server-cw6521wn.js";
|
|
45
|
-
import"./server-kzns2hbz.js";
|
|
46
45
|
import"./server-3t0q2cqx.js";
|
|
47
46
|
import"./server-kb9nn0a0.js";
|
|
47
|
+
import"./server-kzns2hbz.js";
|
|
48
48
|
import"./server-t4k4qexw.js";
|
|
49
49
|
import"./server-pavzsdc6.js";
|
|
50
50
|
export {
|
|
@@ -7,14 +7,31 @@ var input = workerData;
|
|
|
7
7
|
port.postMessage({ kind: "accepted" });
|
|
8
8
|
var [{ Database }, { scanRawSessionSummaryRows }] = await Promise.all([
|
|
9
9
|
import("./sqlite-mhjkerzq.js"),
|
|
10
|
-
import("./read-session-raw-
|
|
10
|
+
import("./read-session-raw-3b3ehga4.js")
|
|
11
11
|
]);
|
|
12
12
|
var db;
|
|
13
13
|
var reply;
|
|
14
14
|
try {
|
|
15
|
-
db = input.indexMessage ? new Database(input.path) : new Database(input.path, { readonly: true });
|
|
15
|
+
db = input.indexMessage || input.orphanSweep ? new Database(input.path) : new Database(input.path, { readonly: true });
|
|
16
16
|
db.exec("PRAGMA busy_timeout = 250");
|
|
17
|
-
if (input.
|
|
17
|
+
if (input.orphanSweep) {
|
|
18
|
+
const [
|
|
19
|
+
{ setHarness },
|
|
20
|
+
{ sweepOrphanedOpenCodeMessageIndexes },
|
|
21
|
+
{ configureContextDatabasePragmas }
|
|
22
|
+
] = await Promise.all([
|
|
23
|
+
import("./harness-e4avh192.js"),
|
|
24
|
+
import("./message-index-h8ssgq3q.js"),
|
|
25
|
+
import("./sqlite-context-pragmas-mv9jqwjh.js")
|
|
26
|
+
]);
|
|
27
|
+
setHarness(input.harness ?? "opencode");
|
|
28
|
+
configureContextDatabasePragmas(db);
|
|
29
|
+
const sourcePath = input.orphanSweep.sourcePath;
|
|
30
|
+
reply = {
|
|
31
|
+
kind: "orphan-sweep",
|
|
32
|
+
result: sweepOrphanedOpenCodeMessageIndexes(db, () => sourcePath ? new Database(sourcePath, { readonly: true }) : null, input.orphanSweep.options)
|
|
33
|
+
};
|
|
34
|
+
} else if (input.indexMessage) {
|
|
18
35
|
const { setHarness } = await import("./harness-e4avh192.js");
|
|
19
36
|
setHarness(input.harness ?? "opencode");
|
|
20
37
|
const [
|
|
@@ -22,7 +39,7 @@ try {
|
|
|
22
39
|
{ configureContextDatabasePragmas },
|
|
23
40
|
{ registerSqliteDiagnosticSink }
|
|
24
41
|
] = await Promise.all([
|
|
25
|
-
import("./message-index-bounded-
|
|
42
|
+
import("./message-index-bounded-c0810p5w.js"),
|
|
26
43
|
import("./sqlite-context-pragmas-mv9jqwjh.js"),
|
|
27
44
|
import("./sqlite-mhjkerzq.js")
|
|
28
45
|
]);
|
|
@@ -35,7 +52,7 @@ try {
|
|
|
35
52
|
const result = await indexMessageInShortChunks(writer, input.sessionId, message, input, () => !cancellation || Atomics.load(cancellation, 0) === 0);
|
|
36
53
|
reply = { kind: "indexed", inserted: result.inserted, measurements: result.measurements };
|
|
37
54
|
} else if (input.tagRatio !== undefined) {
|
|
38
|
-
const { scanTagOwnerSummary, scanTagOwnerDelta } = await import("./storage-tags-
|
|
55
|
+
const { scanTagOwnerSummary, scanTagOwnerDelta } = await import("./storage-tags-3a4cavqb.js");
|
|
39
56
|
const delta = input.tagState ? scanTagOwnerDelta(db, input.sessionId, input.tagState) : null;
|
|
40
57
|
if (delta)
|
|
41
58
|
reply = { kind: "tag-delta", delta };
|
|
@@ -34,21 +34,22 @@ import {
|
|
|
34
34
|
readSessionChunk2,
|
|
35
35
|
getRawSessionMessageIdsThrough2,
|
|
36
36
|
readRawSessionSeedTail2
|
|
37
|
-
} from "./server-
|
|
38
|
-
import"./server-
|
|
37
|
+
} from "./server-4n2tknpc.js";
|
|
38
|
+
import"./server-pcygfdbs.js";
|
|
39
39
|
import"./server-1zx87sdm.js";
|
|
40
40
|
import"./server-czb2rkpk.js";
|
|
41
|
-
import"./server-
|
|
41
|
+
import"./server-3dqjhchy.js";
|
|
42
|
+
import"./server-51779zs2.js";
|
|
42
43
|
import"./server-cw6521wn.js";
|
|
43
44
|
import"./server-7ekna9zs.js";
|
|
44
45
|
import"./server-6byqfbqf.js";
|
|
45
46
|
import"./server-2ra6pwf3.js";
|
|
47
|
+
import"./server-3t0q2cqx.js";
|
|
48
|
+
import"./server-kb9nn0a0.js";
|
|
46
49
|
import {
|
|
47
50
|
hasMeaningfulUserText2,
|
|
48
51
|
extractTexts2
|
|
49
52
|
} from "./server-kzns2hbz.js";
|
|
50
|
-
import"./server-3t0q2cqx.js";
|
|
51
|
-
import"./server-kb9nn0a0.js";
|
|
52
53
|
import"./server-t4k4qexw.js";
|
|
53
54
|
import"./server-pavzsdc6.js";
|
|
54
55
|
export {
|
|
@@ -25,7 +25,8 @@ import {
|
|
|
25
25
|
hasRawSessionMessageByIdFromDb2,
|
|
26
26
|
readRawSeedTailFromDb2,
|
|
27
27
|
readRawSessionBoundaryEndpointsFromDb2
|
|
28
|
-
} from "./server-
|
|
28
|
+
} from "./server-3dqjhchy.js";
|
|
29
|
+
import"./server-51779zs2.js";
|
|
29
30
|
import"./server-kb9nn0a0.js";
|
|
30
31
|
import"./server-t4k4qexw.js";
|
|
31
32
|
import"./server-pavzsdc6.js";
|
|
@@ -7,16 +7,17 @@ import {
|
|
|
7
7
|
setRecompTerminal2,
|
|
8
8
|
buildRecompDeps2,
|
|
9
9
|
runManagedRecomp2
|
|
10
|
-
} from "./server-
|
|
11
|
-
import"./server-
|
|
12
|
-
import"./server-
|
|
10
|
+
} from "./server-cxxjb33r.js";
|
|
11
|
+
import"./server-9290a1mb.js";
|
|
12
|
+
import"./server-rygvffsf.js";
|
|
13
|
+
import"./server-3bc6k4k4.js";
|
|
14
|
+
import"./server-5zrpr764.js";
|
|
13
15
|
import"./server-7jzrrxap.js";
|
|
16
|
+
import"./server-cjz51jm2.js";
|
|
17
|
+
import"./server-8wcf79fe.js";
|
|
18
|
+
import"./server-4dhv7mqz.js";
|
|
14
19
|
import"./server-t528t8qm.js";
|
|
15
20
|
import"./server-4enr7s6x.js";
|
|
16
|
-
import"./server-kh958yj8.js";
|
|
17
|
-
import"./server-1fszbabv.js";
|
|
18
|
-
import"./server-s2st631p.js";
|
|
19
|
-
import"./server-4dhv7mqz.js";
|
|
20
21
|
import"./server-qt1qqasc.js";
|
|
21
22
|
import"./server-676xw7at.js";
|
|
22
23
|
import"./server-d6g4whc2.js";
|
|
@@ -24,25 +25,26 @@ import"./server-vb7pbd9p.js";
|
|
|
24
25
|
import"./server-x8a7jmkh.js";
|
|
25
26
|
import"./server-ras2sxnc.js";
|
|
26
27
|
import"./server-hb6xhh9q.js";
|
|
27
|
-
import"./server-
|
|
28
|
+
import"./server-9a6v0wth.js";
|
|
28
29
|
import"./server-fb3zxn06.js";
|
|
29
|
-
import"./server-
|
|
30
|
+
import"./server-8pqnnmf9.js";
|
|
30
31
|
import"./server-cvgn49tr.js";
|
|
31
32
|
import"./server-fr0wbhdn.js";
|
|
32
|
-
import"./server-
|
|
33
|
+
import"./server-q6j5dasr.js";
|
|
33
34
|
import"./server-2htmbqbv.js";
|
|
34
|
-
import"./server-
|
|
35
|
-
import"./server-
|
|
35
|
+
import"./server-4n2tknpc.js";
|
|
36
|
+
import"./server-pcygfdbs.js";
|
|
36
37
|
import"./server-1zx87sdm.js";
|
|
37
38
|
import"./server-czb2rkpk.js";
|
|
38
|
-
import"./server-
|
|
39
|
+
import"./server-3dqjhchy.js";
|
|
40
|
+
import"./server-51779zs2.js";
|
|
39
41
|
import"./server-cw6521wn.js";
|
|
40
42
|
import"./server-7ekna9zs.js";
|
|
41
43
|
import"./server-6byqfbqf.js";
|
|
42
44
|
import"./server-2ra6pwf3.js";
|
|
43
|
-
import"./server-kzns2hbz.js";
|
|
44
45
|
import"./server-3t0q2cqx.js";
|
|
45
46
|
import"./server-kb9nn0a0.js";
|
|
47
|
+
import"./server-kzns2hbz.js";
|
|
46
48
|
import"./server-t4k4qexw.js";
|
|
47
49
|
import"./server-pavzsdc6.js";
|
|
48
50
|
export {
|
|
@@ -5,34 +5,35 @@ import {
|
|
|
5
5
|
resolveMemoriesByIdsForSearch2,
|
|
6
6
|
unifiedSearch2,
|
|
7
7
|
formatSearchResults2
|
|
8
|
-
} from "./server-
|
|
9
|
-
import"./server-
|
|
10
|
-
import"./server-
|
|
8
|
+
} from "./server-hetyb88z.js";
|
|
9
|
+
import"./server-rygvffsf.js";
|
|
10
|
+
import"./server-3bc6k4k4.js";
|
|
11
|
+
import"./server-5zrpr764.js";
|
|
11
12
|
import"./server-7jzrrxap.js";
|
|
12
|
-
import"./server-
|
|
13
|
-
import"./server-
|
|
14
|
-
import"./server-s2st631p.js";
|
|
13
|
+
import"./server-cjz51jm2.js";
|
|
14
|
+
import"./server-8wcf79fe.js";
|
|
15
15
|
import"./server-4dhv7mqz.js";
|
|
16
16
|
import"./server-qt1qqasc.js";
|
|
17
17
|
import"./server-ras2sxnc.js";
|
|
18
18
|
import"./server-hb6xhh9q.js";
|
|
19
|
-
import"./server-
|
|
19
|
+
import"./server-8pqnnmf9.js";
|
|
20
20
|
import"./server-cvgn49tr.js";
|
|
21
21
|
import"./server-fr0wbhdn.js";
|
|
22
|
-
import"./server-
|
|
22
|
+
import"./server-q6j5dasr.js";
|
|
23
23
|
import"./server-2htmbqbv.js";
|
|
24
|
-
import"./server-
|
|
25
|
-
import"./server-
|
|
24
|
+
import"./server-4n2tknpc.js";
|
|
25
|
+
import"./server-pcygfdbs.js";
|
|
26
26
|
import"./server-1zx87sdm.js";
|
|
27
27
|
import"./server-czb2rkpk.js";
|
|
28
|
-
import"./server-
|
|
28
|
+
import"./server-3dqjhchy.js";
|
|
29
|
+
import"./server-51779zs2.js";
|
|
29
30
|
import"./server-cw6521wn.js";
|
|
30
31
|
import"./server-7ekna9zs.js";
|
|
31
32
|
import"./server-6byqfbqf.js";
|
|
32
33
|
import"./server-2ra6pwf3.js";
|
|
33
|
-
import"./server-kzns2hbz.js";
|
|
34
34
|
import"./server-3t0q2cqx.js";
|
|
35
35
|
import"./server-kb9nn0a0.js";
|
|
36
|
+
import"./server-kzns2hbz.js";
|
|
36
37
|
import"./server-t4k4qexw.js";
|
|
37
38
|
import"./server-pavzsdc6.js";
|
|
38
39
|
export {
|
package/dist/v2/{send-session-notification-f6v698r5.js → send-session-notification-a4h2azxa.js}
RENAMED
|
@@ -12,7 +12,8 @@ import {
|
|
|
12
12
|
import"./server-qt1qqasc.js";
|
|
13
13
|
import"./server-676xw7at.js";
|
|
14
14
|
import"./server-czb2rkpk.js";
|
|
15
|
-
import"./server-
|
|
15
|
+
import"./server-3dqjhchy.js";
|
|
16
|
+
import"./server-51779zs2.js";
|
|
16
17
|
import"./server-2ra6pwf3.js";
|
|
17
18
|
import"./server-kb9nn0a0.js";
|
|
18
19
|
import"./server-t4k4qexw.js";
|
|
@@ -23,7 +23,7 @@ import {
|
|
|
23
23
|
} from "./server-6byqfbqf.js";
|
|
24
24
|
import {
|
|
25
25
|
cleanUserText2
|
|
26
|
-
} from "./server-
|
|
26
|
+
} from "./server-4n2tknpc.js";
|
|
27
27
|
import {
|
|
28
28
|
recordMessageFtsRowid,
|
|
29
29
|
recordIndexedMessageTime,
|
|
@@ -36,7 +36,7 @@ import {
|
|
|
36
36
|
} from "./server-cvgn49tr.js";
|
|
37
37
|
import {
|
|
38
38
|
deleteChunkEmbedBackoffForSession
|
|
39
|
-
} from "./server-
|
|
39
|
+
} from "./server-8wcf79fe.js";
|
|
40
40
|
import {
|
|
41
41
|
ensurePrivateStorageDirectorySync,
|
|
42
42
|
writeStorageFileSync,
|
|
@@ -705,7 +705,7 @@ var deleteMessageFtsStatements = new WeakMap;
|
|
|
705
705
|
var deleteFtsMapStatements = new WeakMap;
|
|
706
706
|
var deleteFtsMapRangeStatements = new WeakMap;
|
|
707
707
|
var deleteMessageFtsMapStatements = new WeakMap;
|
|
708
|
-
var
|
|
708
|
+
var MESSAGE_INDEX_MAX_FTS_BYTES2 = 64 * 1024;
|
|
709
709
|
var skipStatements = new WeakMap;
|
|
710
710
|
function skipStatement(db, sql) {
|
|
711
711
|
const statements = skipStatements.get(db) ?? new Map;
|
|
@@ -717,10 +717,10 @@ function skipStatement(db, sql) {
|
|
|
717
717
|
}
|
|
718
718
|
return statement;
|
|
719
719
|
}
|
|
720
|
-
var
|
|
720
|
+
var messageIndexSkipKey2 = (sessionId, messageId) => `message_index_skip:${JSON.stringify([sessionId, messageId])}`;
|
|
721
721
|
function deleteMessageIndexSkips(db, sessionId, messageId) {
|
|
722
722
|
if (messageId !== undefined) {
|
|
723
|
-
skipStatement(db, "DELETE FROM schema_migrations_meta WHERE key=?").run(
|
|
723
|
+
skipStatement(db, "DELETE FROM schema_migrations_meta WHERE key=?").run(messageIndexSkipKey2(sessionId, messageId));
|
|
724
724
|
} else {
|
|
725
725
|
const prefix = `message_index_skip:${JSON.stringify([sessionId]).slice(0, -1)},`;
|
|
726
726
|
skipStatement(db, "DELETE FROM schema_migrations_meta WHERE substr(key,1,length(?))=?").run(prefix, prefix);
|
|
@@ -905,8 +905,8 @@ function normalizeSourceVersion(version) {
|
|
|
905
905
|
return `string:${version}`;
|
|
906
906
|
return "null";
|
|
907
907
|
}
|
|
908
|
-
function
|
|
909
|
-
const content =
|
|
908
|
+
function toMessageIndexSource2(message) {
|
|
909
|
+
const content = getIndexableContent2(message.role, message.parts);
|
|
910
910
|
return {
|
|
911
911
|
id: message.id,
|
|
912
912
|
ordinal: message.ordinal,
|
|
@@ -918,7 +918,21 @@ function toMessageIndexSource(message) {
|
|
|
918
918
|
};
|
|
919
919
|
}
|
|
920
920
|
function getMessageSourceSnapshot(message) {
|
|
921
|
-
return
|
|
921
|
+
return toMessageIndexSource2(message);
|
|
922
|
+
}
|
|
923
|
+
function getMessageIndexSourceIdentity2(message) {
|
|
924
|
+
const source = getMessageSourceSnapshot(message);
|
|
925
|
+
return JSON.stringify([
|
|
926
|
+
source.ordinal,
|
|
927
|
+
source.sourceVersion,
|
|
928
|
+
source.contentHash,
|
|
929
|
+
source.role,
|
|
930
|
+
message.createdAt ?? null
|
|
931
|
+
]);
|
|
932
|
+
}
|
|
933
|
+
function isMessageIndexSourceCurrent2(db, sessionId, message) {
|
|
934
|
+
const source = getMessageSourceSnapshot(message);
|
|
935
|
+
return isIndexSourceCurrent(db, sessionId, source);
|
|
922
936
|
}
|
|
923
937
|
function isIndexSourceCurrent(db, sessionId, source) {
|
|
924
938
|
const row = getMessageSourceStatement(db).get(sessionId, source.id);
|
|
@@ -927,8 +941,8 @@ function isIndexSourceCurrent(db, sessionId, source) {
|
|
|
927
941
|
function writeMessageSource(db, sessionId, source, now) {
|
|
928
942
|
getUpsertMessageSourceStatement(db).run(sessionId, source.id, source.ordinal, source.sourceVersion, source.contentHash, source.role, getHarness2(), now);
|
|
929
943
|
const bytes = Buffer.byteLength(source.content);
|
|
930
|
-
if (source.ftsSkippedBytes !== undefined || bytes >
|
|
931
|
-
skipStatement(db, "INSERT INTO schema_migrations_meta(key,value) VALUES (?,?) ON CONFLICT(key) DO UPDATE SET value=excluded.value").run(
|
|
944
|
+
if (source.ftsSkippedBytes !== undefined || bytes > MESSAGE_INDEX_MAX_FTS_BYTES2) {
|
|
945
|
+
skipStatement(db, "INSERT INTO schema_migrations_meta(key,value) VALUES (?,?) ON CONFLICT(key) DO UPDATE SET value=excluded.value").run(messageIndexSkipKey2(sessionId, source.id), JSON.stringify({
|
|
932
946
|
reason: "oversized",
|
|
933
947
|
bytes: source.ftsSkippedBytes ?? bytes,
|
|
934
948
|
contentHash: source.contentHash,
|
|
@@ -937,24 +951,24 @@ function writeMessageSource(db, sessionId, source, now) {
|
|
|
937
951
|
}));
|
|
938
952
|
return "";
|
|
939
953
|
}
|
|
940
|
-
skipStatement(db, "DELETE FROM schema_migrations_meta WHERE key=?").run(
|
|
954
|
+
skipStatement(db, "DELETE FROM schema_migrations_meta WHERE key=?").run(messageIndexSkipKey2(sessionId, source.id));
|
|
941
955
|
return source.content;
|
|
942
956
|
}
|
|
943
|
-
function
|
|
957
|
+
function getLastIndexedOrdinal2(db, sessionId) {
|
|
944
958
|
const row = getLastIndexedStatement(db).get(sessionId);
|
|
945
959
|
return typeof row?.last_indexed_ordinal === "number" ? row.last_indexed_ordinal : 0;
|
|
946
960
|
}
|
|
947
|
-
function
|
|
948
|
-
const watermark =
|
|
961
|
+
function getIndexedMessageCorpusSize2(db, sessionId, maxOrdinal) {
|
|
962
|
+
const watermark = getLastIndexedOrdinal2(db, sessionId);
|
|
949
963
|
return maxOrdinal === null ? watermark : Math.min(watermark, Math.max(0, maxOrdinal));
|
|
950
964
|
}
|
|
951
965
|
function getDirtyIndexFloor(db, sessionId) {
|
|
952
966
|
const row = getLastIndexedStatement(db).get(sessionId);
|
|
953
967
|
return typeof row?.dirty_floor_ordinal === "number" && row.dirty_floor_ordinal > 0 ? row.dirty_floor_ordinal : null;
|
|
954
968
|
}
|
|
955
|
-
function
|
|
969
|
+
function markMessageIndexDirty2(db, sessionId, floorOrdinal) {
|
|
956
970
|
const dirtyFloor = Math.max(1, Math.floor(floorOrdinal));
|
|
957
|
-
getUpsertDirtyFloorStatement(db).run(sessionId,
|
|
971
|
+
getUpsertDirtyFloorStatement(db).run(sessionId, getLastIndexedOrdinal2(db, sessionId), dirtyFloor, Date.now(), getHarness2());
|
|
958
972
|
}
|
|
959
973
|
function isMessageAlreadyIndexed(db, sessionId, messageId) {
|
|
960
974
|
const row = getCountIndexedMessageStatement(db).get(sessionId, messageId);
|
|
@@ -963,16 +977,23 @@ function isMessageAlreadyIndexed(db, sessionId, messageId) {
|
|
|
963
977
|
function setIndexProgress(db, sessionId, watermark, dirtyFloor, now) {
|
|
964
978
|
getUpsertProgressStatement(db).run(sessionId, Math.max(0, Math.floor(watermark)), dirtyFloor ?? 0, now, getHarness2());
|
|
965
979
|
}
|
|
966
|
-
function
|
|
967
|
-
const watermark =
|
|
980
|
+
function getMessageIndexReconciliationStartOrdinal2(db, sessionId) {
|
|
981
|
+
const watermark = getLastIndexedOrdinal2(db, sessionId);
|
|
968
982
|
const dirtyFloor = getDirtyIndexFloor(db, sessionId);
|
|
969
983
|
return dirtyFloor === null ? watermark : Math.min(watermark, dirtyFloor - 1);
|
|
970
984
|
}
|
|
971
|
-
function
|
|
985
|
+
function isMessageIndexReconciledThrough2(db, sessionId, finalWatermark) {
|
|
972
986
|
const dirtyFloor = getDirtyIndexFloor(db, sessionId);
|
|
973
|
-
return
|
|
987
|
+
return getLastIndexedOrdinal2(db, sessionId) >= finalWatermark && dirtyFloor === null;
|
|
974
988
|
}
|
|
975
|
-
function
|
|
989
|
+
function deleteIndexedMessage2(db, sessionId, messageId) {
|
|
990
|
+
deleteMessageIndexSkips(db, sessionId, messageId);
|
|
991
|
+
const row = getCountIndexedMessageStatement(db).get(sessionId, messageId);
|
|
992
|
+
const count = typeof row?.count === "number" ? row.count : 0;
|
|
993
|
+
clearIndexedMessages2(db, sessionId);
|
|
994
|
+
return count;
|
|
995
|
+
}
|
|
996
|
+
function clearIndexedMessagesInTransaction2(db, sessionId) {
|
|
976
997
|
deleteMessageIndexSkips(db, sessionId);
|
|
977
998
|
getDeleteFtsStatement(db).run(sessionId);
|
|
978
999
|
deleteUnmappedMessageFtsRows(db, [sessionId]);
|
|
@@ -981,7 +1002,15 @@ function clearIndexedMessagesInTransaction(db, sessionId) {
|
|
|
981
1002
|
getDeleteIndexStatement(db).run(sessionId);
|
|
982
1003
|
clearCompressionDepth(db, sessionId);
|
|
983
1004
|
}
|
|
984
|
-
function
|
|
1005
|
+
function clearIndexedMessages2(db, sessionId) {
|
|
1006
|
+
let transactionStartedAt = 0;
|
|
1007
|
+
db.transaction(() => {
|
|
1008
|
+
transactionStartedAt = performance.now();
|
|
1009
|
+
clearIndexedMessagesInTransaction2(db, sessionId);
|
|
1010
|
+
}).immediate();
|
|
1011
|
+
logSlowWriteTransaction("message_index_clear", transactionStartedAt);
|
|
1012
|
+
}
|
|
1013
|
+
function getIndexableContent2(role, parts) {
|
|
985
1014
|
if (role === "user") {
|
|
986
1015
|
if (!hasMeaningfulUserText2(parts)) {
|
|
987
1016
|
return "";
|
|
@@ -994,7 +1023,7 @@ function getIndexableContent(role, parts) {
|
|
|
994
1023
|
return "";
|
|
995
1024
|
}
|
|
996
1025
|
function indexSingleMessageInTransaction(db, sessionId, message, now, dirtyFloorBeforeAttempt, source) {
|
|
997
|
-
const currentWatermark =
|
|
1026
|
+
const currentWatermark = getLastIndexedOrdinal2(db, sessionId);
|
|
998
1027
|
const dirtyFloor = getDirtyIndexFloor(db, sessionId);
|
|
999
1028
|
if (message.ordinal <= currentWatermark) {
|
|
1000
1029
|
if (isIndexSourceCurrent(db, sessionId, source)) {
|
|
@@ -1025,17 +1054,17 @@ function indexSingleMessageInTransaction(db, sessionId, message, now, dirtyFloor
|
|
|
1025
1054
|
setIndexProgress(db, sessionId, message.ordinal, dirtyFloorBeforeAttempt === message.ordinal ? null : dirtyFloorBeforeAttempt, now);
|
|
1026
1055
|
return inserted;
|
|
1027
1056
|
}
|
|
1028
|
-
function
|
|
1057
|
+
function indexSingleMessage2(db, sessionId, message, shouldCommit = () => true, preparedSource) {
|
|
1029
1058
|
if (!shouldCommit())
|
|
1030
1059
|
return false;
|
|
1031
1060
|
const source = preparedSource ?? getMessageSourceSnapshot(message);
|
|
1032
|
-
const currentWatermark =
|
|
1061
|
+
const currentWatermark = getLastIndexedOrdinal2(db, sessionId);
|
|
1033
1062
|
if (message.ordinal <= currentWatermark && isIndexSourceCurrent(db, sessionId, source)) {
|
|
1034
1063
|
recordIndexedMessageTime(db, sessionId, message.ordinal, message.createdAt);
|
|
1035
1064
|
return false;
|
|
1036
1065
|
}
|
|
1037
1066
|
const dirtyFloorBeforeAttempt = getDirtyIndexFloor(db, sessionId);
|
|
1038
|
-
|
|
1067
|
+
markMessageIndexDirty2(db, sessionId, Math.min(message.ordinal, currentWatermark + 1));
|
|
1039
1068
|
db.exec("BEGIN IMMEDIATE");
|
|
1040
1069
|
const transactionStartedAt = performance.now();
|
|
1041
1070
|
let committed = false;
|
|
@@ -1055,10 +1084,10 @@ function indexSingleMessage(db, sessionId, message, shouldCommit = () => true, p
|
|
|
1055
1084
|
}
|
|
1056
1085
|
}
|
|
1057
1086
|
}
|
|
1058
|
-
function
|
|
1059
|
-
return indexItemsAfterOrdinal(db, sessionId, messages, finalWatermark,
|
|
1087
|
+
function indexMessagesAfterOrdinal2(db, sessionId, messages, _lastIndexedOrdinal, finalWatermark = messages.length) {
|
|
1088
|
+
return indexItemsAfterOrdinal(db, sessionId, messages, finalWatermark, toMessageIndexSource2);
|
|
1060
1089
|
}
|
|
1061
|
-
function
|
|
1090
|
+
function indexSourcesAfterOrdinal2(db, sessionId, sources, finalWatermark) {
|
|
1062
1091
|
return indexItemsAfterOrdinal(db, sessionId, sources, finalWatermark, (source) => source);
|
|
1063
1092
|
}
|
|
1064
1093
|
function indexItemsAfterOrdinal(db, sessionId, items, finalWatermark, toSource) {
|
|
@@ -1069,7 +1098,7 @@ function indexItemsAfterOrdinal(db, sessionId, items, finalWatermark, toSource)
|
|
|
1069
1098
|
const transactionStartedAt = performance.now();
|
|
1070
1099
|
let committed = false;
|
|
1071
1100
|
try {
|
|
1072
|
-
const currentWatermark =
|
|
1101
|
+
const currentWatermark = getLastIndexedOrdinal2(db, sessionId);
|
|
1073
1102
|
const dirtyFloor = getDirtyIndexFloor(db, sessionId);
|
|
1074
1103
|
const effectiveWatermark = dirtyFloor === null ? currentWatermark : Math.min(currentWatermark, Math.max(0, dirtyFloor - 1));
|
|
1075
1104
|
if (dirtyFloor !== null && dirtyFloor <= currentWatermark && !messageFtsOrdinalRangeIsMapped(db, sessionId, dirtyFloor, Math.min(currentWatermark, finalWatermark))) {
|
|
@@ -1223,7 +1252,7 @@ function sweepOrphanedOpenCodeMessageIndexesInBackground(db, openReadableOpenCod
|
|
|
1223
1252
|
AND message_history_index.updated_at > ?
|
|
1224
1253
|
)
|
|
1225
1254
|
LIMIT 1`);
|
|
1226
|
-
const eligibleSessionIds = missingSessionIds.filter((sessionId) => stillEligible.get(sessionId, cutoff));
|
|
1255
|
+
const eligibleSessionIds = missingSessionIds.filter((sessionId) => !sessionExists.get(sessionId) && stillEligible.get(sessionId, cutoff));
|
|
1227
1256
|
deleted = deleteSessionScopedRows(db, eligibleSessionIds, harness);
|
|
1228
1257
|
persistMessageHistoryOrphanSweepState(db, nextCursor, completedAt, harness);
|
|
1229
1258
|
db.exec("COMMIT");
|
|
@@ -1246,8 +1275,8 @@ function sweepOrphanedOpenCodeMessageIndexesInBackground(db, openReadableOpenCod
|
|
|
1246
1275
|
closeQuietly(openCodeDb);
|
|
1247
1276
|
}
|
|
1248
1277
|
}
|
|
1249
|
-
function
|
|
1278
|
+
function sweepOrphanedOpenCodeMessageIndexes2(db, openReadableOpenCodeDb, options = {}) {
|
|
1250
1279
|
return withoutSqliteTransformPass2(() => withSqliteBackgroundWriter2(() => sweepOrphanedOpenCodeMessageIndexesInBackground(db, openReadableOpenCodeDb, options)));
|
|
1251
1280
|
}
|
|
1252
1281
|
|
|
1253
|
-
export { BoundedSessionMap, clearCompressionDepth, clearCompressionDepthRange, LkgRecoveryFenceError, clearLkgFenceProcessState, lkgServedArrayDigest, hasCleanLkgRecoveryFence, lkgFenceRequiresRebuild, lkgRecoveryFenceUnclean, dirtyLkgRecoveryRevision, ownsLkgDirtyFence, invalidateCleanLkgRecoveryFence, prepareLkgCaptureFence, certifyCommittedLkgCapture, markLkgRecoveryDirty, commitLkgWithRecoveryFence, clearLkgRecoveryFence, advanceSessionActivity, backfillSessionActivity, deleteSessionScopedRows,
|
|
1282
|
+
export { BoundedSessionMap, clearCompressionDepth, clearCompressionDepthRange, LkgRecoveryFenceError, clearLkgFenceProcessState, lkgServedArrayDigest, hasCleanLkgRecoveryFence, lkgFenceRequiresRebuild, lkgRecoveryFenceUnclean, dirtyLkgRecoveryRevision, ownsLkgDirtyFence, invalidateCleanLkgRecoveryFence, prepareLkgCaptureFence, certifyCommittedLkgCapture, markLkgRecoveryDirty, commitLkgWithRecoveryFence, clearLkgRecoveryFence, advanceSessionActivity, backfillSessionActivity, deleteSessionScopedRows, MESSAGE_INDEX_MAX_FTS_BYTES2, messageIndexSkipKey2, toMessageIndexSource2, getMessageIndexSourceIdentity2, isMessageIndexSourceCurrent2, getLastIndexedOrdinal2, getIndexedMessageCorpusSize2, markMessageIndexDirty2, getMessageIndexReconciliationStartOrdinal2, isMessageIndexReconciledThrough2, deleteIndexedMessage2, clearIndexedMessagesInTransaction2, clearIndexedMessages2, getIndexableContent2, indexSingleMessage2, indexMessagesAfterOrdinal2, indexSourcesAfterOrdinal2, sweepOrphanedOpenCodeMessageIndexes2 };
|