@cortexkit/opencode-magic-context 0.15.6 → 0.15.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/features/magic-context/migrations.d.ts.map +1 -1
- package/dist/features/magic-context/storage-db.d.ts.map +1 -1
- package/dist/features/magic-context/storage-tags.d.ts +8 -0
- package/dist/features/magic-context/storage-tags.d.ts.map +1 -1
- package/dist/features/magic-context/tagger.d.ts.map +1 -1
- package/dist/hooks/magic-context/tag-messages.d.ts.map +1 -1
- package/dist/hooks/magic-context/transform.d.ts.map +1 -1
- package/dist/index.js +234 -161
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../../../src/features/magic-context/migrations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../../../src/features/magic-context/migrations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAkT3C;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,CAkChD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage-db.d.ts","sourceRoot":"","sources":["../../../src/features/magic-context/storage-db.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAkBtC,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"storage-db.d.ts","sourceRoot":"","sources":["../../../src/features/magic-context/storage-db.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAkBtC,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,CA+TrD;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,CAIrD;AAsHD,wBAAgB,YAAY,IAAI,QAAQ,CAsCvC;AAED,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,QAAQ,GAAG,OAAO,CAEzD;AAED,wBAAgB,2BAA2B,CAAC,EAAE,EAAE,QAAQ,GAAG,MAAM,GAAG,IAAI,CAEvE;AAED,wBAAgB,aAAa,IAAI,IAAI,CAUpC;AAED,MAAM,MAAM,eAAe,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC"}
|
|
@@ -14,6 +14,14 @@ export declare function updateCavemanDepth(db: Database, sessionId: string, tagN
|
|
|
14
14
|
export declare function updateTagMessageId(db: Database, sessionId: string, tagId: number, messageId: string): void;
|
|
15
15
|
export declare function deleteTagsByMessageId(db: Database, sessionId: string, messageId: string): number[];
|
|
16
16
|
export declare function getMaxTagNumberBySession(db: Database, sessionId: string): number;
|
|
17
|
+
/**
|
|
18
|
+
* Look up the tag_number assigned to a specific (session_id, message_id).
|
|
19
|
+
*
|
|
20
|
+
* Used by the tagger's recovery path to bind an existing DB-assigned tag back
|
|
21
|
+
* into the in-memory assignment map without bumping the counter past the DB's
|
|
22
|
+
* actual max. Returns null when no tag exists for that message yet.
|
|
23
|
+
*/
|
|
24
|
+
export declare function getTagNumberByMessageId(db: Database, sessionId: string, messageId: string): number | null;
|
|
17
25
|
export declare function getTagsBySession(db: Database, sessionId: string): TagEntry[];
|
|
18
26
|
export declare function getTagById(db: Database, sessionId: string, tagId: number): TagEntry | null;
|
|
19
27
|
export declare function getTopNBySize(db: Database, sessionId: string, n: number): TagEntry[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage-tags.d.ts","sourceRoot":"","sources":["../../../src/features/magic-context/storage-tags.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"storage-tags.d.ts","sourceRoot":"","sources":["../../../src/features/magic-context/storage-tags.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AA6KxC,wBAAgB,SAAS,CACrB,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,EACtB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,iBAAiB,GAAE,MAAU,EAC7B,QAAQ,GAAE,MAAM,GAAG,IAAW,EAC9B,aAAa,GAAE,MAAU,GAC1B,MAAM,CAaR;AAED,wBAAgB,eAAe,CAC3B,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAC3B,IAAI,CAEN;AAED,wBAAgB,iBAAiB,CAC7B,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,GAC/B,IAAI,CAEN;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAC9B,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,GACd,IAAI,CAMN;AAED,wBAAgB,kBAAkB,CAC9B,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,GAClB,IAAI,CAEN;AAED,wBAAgB,qBAAqB,CACjC,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAClB,MAAM,EAAE,CAoBV;AAED,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAGhF;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACnC,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAClB,MAAM,GAAG,IAAI,CAGf;AAED,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,GAAG,QAAQ,EAAE,CAS5E;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAY1F;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,QAAQ,EAAE,CAapF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tagger.d.ts","sourceRoot":"","sources":["../../../src/features/magic-context/tagger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACxC,MAAM,WAAW,MAAM;IACnB,SAAS,CACL,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,EACtB,QAAQ,EAAE,MAAM,EAChB,EAAE,EAAE,QAAQ,EACZ,iBAAiB,CAAC,EAAE,MAAM,EAC1B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,EACxB,aAAa,CAAC,EAAE,MAAM,GACvB,MAAM,CAAC;IACV,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IACjE,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACvE,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/D,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,GAAG,IAAI,CAAC;IACpD,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IACtC,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,GAAG,IAAI,CAAC;IAClD,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CACpC;
|
|
1
|
+
{"version":3,"file":"tagger.d.ts","sourceRoot":"","sources":["../../../src/features/magic-context/tagger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACxC,MAAM,WAAW,MAAM;IACnB,SAAS,CACL,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,EACtB,QAAQ,EAAE,MAAM,EAChB,EAAE,EAAE,QAAQ,EACZ,iBAAiB,CAAC,EAAE,MAAM,EAC1B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,EACxB,aAAa,CAAC,EAAE,MAAM,GACvB,MAAM,CAAC;IACV,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IACjE,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACvE,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/D,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,GAAG,IAAI,CAAC;IACpD,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IACtC,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,GAAG,IAAI,CAAC;IAClD,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CACpC;AAuED,wBAAgB,YAAY,IAAI,MAAM,CA4NrC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tag-messages.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/tag-messages.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAE5E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAC;AAYlE,OAAO,EAGH,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,iBAAiB,EACpB,MAAM,oBAAoB,CAAC;AAE5B,MAAM,MAAM,WAAW,GAAG;IAAE,EAAE,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE7E,MAAM,WAAW,gBAAgB;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,WAAW,GAAG;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,OAAO,EAAE,CAAA;CAAE,CAAC;AAElE,MAAM,MAAM,SAAS,GAAG;IACpB,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;IACzC,UAAU,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IACjC,IAAI,CAAC,EAAE,MAAM,cAAc,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,cAAc,CAAC;IAChC,OAAO,CAAC,EAAE,WAAW,CAAC;CACzB,CAAC;AAEF,MAAM,WAAW,iBAAiB;IAC9B,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAChC,kBAAkB,EAAE,GAAG,CAAC,WAAW,EAAE,gBAAgB,EAAE,CAAC,CAAC;IACzD,iBAAiB,EAAE,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAC5C,aAAa,EAAE,aAAa,CAAC;IAC7B,KAAK,EAAE,iBAAiB,CAAC;IACzB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,yEAAyE;IACzE,eAAe,EAAE,OAAO,CAAC;CAC5B;AAkED,MAAM,WAAW,kBAAkB;IAC/B;;;;;;;;OAQG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;CACjC;AAED,wBAAgB,WAAW,CACvB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,WAAW,EAAE,EACvB,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,eAAe,EACnB,OAAO,GAAE,kBAAuB,GACjC,iBAAiB,
|
|
1
|
+
{"version":3,"file":"tag-messages.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/tag-messages.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAE5E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAC;AAYlE,OAAO,EAGH,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,iBAAiB,EACpB,MAAM,oBAAoB,CAAC;AAE5B,MAAM,MAAM,WAAW,GAAG;IAAE,EAAE,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE7E,MAAM,WAAW,gBAAgB;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,WAAW,GAAG;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,OAAO,EAAE,CAAA;CAAE,CAAC;AAElE,MAAM,MAAM,SAAS,GAAG;IACpB,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;IACzC,UAAU,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IACjC,IAAI,CAAC,EAAE,MAAM,cAAc,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,cAAc,CAAC;IAChC,OAAO,CAAC,EAAE,WAAW,CAAC;CACzB,CAAC;AAEF,MAAM,WAAW,iBAAiB;IAC9B,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAChC,kBAAkB,EAAE,GAAG,CAAC,WAAW,EAAE,gBAAgB,EAAE,CAAC,CAAC;IACzD,iBAAiB,EAAE,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAC5C,aAAa,EAAE,aAAa,CAAC;IAC7B,KAAK,EAAE,iBAAiB,CAAC;IACzB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,yEAAyE;IACzE,eAAe,EAAE,OAAO,CAAC;CAC5B;AAkED,MAAM,WAAW,kBAAkB;IAC/B;;;;;;;;OAQG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;CACjC;AAED,wBAAgB,WAAW,CACvB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,WAAW,EAAE,EACvB,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,eAAe,EACnB,OAAO,GAAE,kBAAuB,GACjC,iBAAiB,CAmQnB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/transform.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/transform.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -158357,6 +158357,24 @@ var init_migrations = __esm(() => {
|
|
|
158357
158357
|
up: (db) => {
|
|
158358
158358
|
healAllNullColumns(db);
|
|
158359
158359
|
}
|
|
158360
|
+
},
|
|
158361
|
+
{
|
|
158362
|
+
version: 6,
|
|
158363
|
+
description: "Heal session_meta.counter drift below MAX(tag_number)",
|
|
158364
|
+
up: (db) => {
|
|
158365
|
+
db.prepare(`UPDATE session_meta
|
|
158366
|
+
SET counter = (
|
|
158367
|
+
SELECT MAX(tag_number)
|
|
158368
|
+
FROM tags
|
|
158369
|
+
WHERE tags.session_id = session_meta.session_id
|
|
158370
|
+
)
|
|
158371
|
+
WHERE EXISTS (
|
|
158372
|
+
SELECT 1
|
|
158373
|
+
FROM tags
|
|
158374
|
+
WHERE tags.session_id = session_meta.session_id
|
|
158375
|
+
AND tags.tag_number > session_meta.counter
|
|
158376
|
+
)`).run();
|
|
158377
|
+
}
|
|
158360
158378
|
}
|
|
158361
158379
|
];
|
|
158362
158380
|
});
|
|
@@ -158569,6 +158587,7 @@ CREATE INDEX IF NOT EXISTS idx_dream_queue_pending ON dream_queue(started_at, en
|
|
|
158569
158587
|
);
|
|
158570
158588
|
|
|
158571
158589
|
CREATE INDEX IF NOT EXISTS idx_tags_session_tag_number ON tags(session_id, tag_number);
|
|
158590
|
+
CREATE INDEX IF NOT EXISTS idx_tags_session_message_id ON tags(session_id, message_id);
|
|
158572
158591
|
CREATE INDEX IF NOT EXISTS idx_pending_ops_session ON pending_ops(session_id);
|
|
158573
158592
|
CREATE INDEX IF NOT EXISTS idx_pending_ops_session_tag_id ON pending_ops(session_id, tag_id);
|
|
158574
158593
|
CREATE INDEX IF NOT EXISTS idx_source_contents_session ON source_contents(session_id);
|
|
@@ -159382,6 +159401,14 @@ function getMaxTagNumberBySessionStatement(db) {
|
|
|
159382
159401
|
}
|
|
159383
159402
|
return stmt;
|
|
159384
159403
|
}
|
|
159404
|
+
function getTagNumberByMessageIdStatement(db) {
|
|
159405
|
+
let stmt = getTagNumberByMessageIdStatements.get(db);
|
|
159406
|
+
if (!stmt) {
|
|
159407
|
+
stmt = db.prepare("SELECT tag_number FROM tags WHERE session_id = ? AND message_id = ? ORDER BY tag_number ASC LIMIT 1");
|
|
159408
|
+
getTagNumberByMessageIdStatements.set(db, stmt);
|
|
159409
|
+
}
|
|
159410
|
+
return stmt;
|
|
159411
|
+
}
|
|
159385
159412
|
function isTagRow(row) {
|
|
159386
159413
|
if (row === null || typeof row !== "object")
|
|
159387
159414
|
return false;
|
|
@@ -159451,6 +159478,10 @@ function getMaxTagNumberBySession(db, sessionId) {
|
|
|
159451
159478
|
const row = getMaxTagNumberBySessionStatement(db).get(sessionId);
|
|
159452
159479
|
return isMaxTagNumberRow(row) ? row.max_tag_number : 0;
|
|
159453
159480
|
}
|
|
159481
|
+
function getTagNumberByMessageId(db, sessionId, messageId) {
|
|
159482
|
+
const row = getTagNumberByMessageIdStatement(db).get(sessionId, messageId);
|
|
159483
|
+
return isTagNumberRow(row) ? row.tag_number : null;
|
|
159484
|
+
}
|
|
159454
159485
|
function getTagsBySession(db, sessionId) {
|
|
159455
159486
|
const rows = db.prepare("SELECT id, message_id, type, status, drop_mode, tool_name, input_byte_size, byte_size, reasoning_byte_size, session_id, tag_number, caveman_depth FROM tags WHERE session_id = ? ORDER BY tag_number ASC, id ASC").all(sessionId).filter(isTagRow);
|
|
159456
159487
|
return rows.map(toTagEntry);
|
|
@@ -159462,7 +159493,7 @@ function getTopNBySize(db, sessionId, n) {
|
|
|
159462
159493
|
const rows = db.prepare("SELECT id, message_id, type, status, drop_mode, tool_name, input_byte_size, byte_size, reasoning_byte_size, session_id, tag_number, caveman_depth FROM tags WHERE session_id = ? AND status = 'active' ORDER BY byte_size DESC, tag_number ASC LIMIT ?").all(sessionId, n).filter(isTagRow);
|
|
159463
159494
|
return rows.map(toTagEntry);
|
|
159464
159495
|
}
|
|
159465
|
-
var insertTagStatements, updateTagStatusStatements, updateTagDropModeStatements, updateTagMessageIdStatements, getTagNumbersByMessageIdStatements, deleteTagsByMessageIdStatements, getMaxTagNumberBySessionStatements;
|
|
159496
|
+
var insertTagStatements, updateTagStatusStatements, updateTagDropModeStatements, updateTagMessageIdStatements, getTagNumbersByMessageIdStatements, deleteTagsByMessageIdStatements, getMaxTagNumberBySessionStatements, getTagNumberByMessageIdStatements;
|
|
159466
159497
|
var init_storage_tags = __esm(() => {
|
|
159467
159498
|
insertTagStatements = new WeakMap;
|
|
159468
159499
|
updateTagStatusStatements = new WeakMap;
|
|
@@ -159471,6 +159502,7 @@ var init_storage_tags = __esm(() => {
|
|
|
159471
159502
|
getTagNumbersByMessageIdStatements = new WeakMap;
|
|
159472
159503
|
deleteTagsByMessageIdStatements = new WeakMap;
|
|
159473
159504
|
getMaxTagNumberBySessionStatements = new WeakMap;
|
|
159505
|
+
getTagNumberByMessageIdStatements = new WeakMap;
|
|
159474
159506
|
});
|
|
159475
159507
|
|
|
159476
159508
|
// src/features/magic-context/storage.ts
|
|
@@ -166316,7 +166348,7 @@ function isAssignmentRow(row) {
|
|
|
166316
166348
|
var UPSERT_COUNTER_SQL = `
|
|
166317
166349
|
INSERT INTO session_meta (session_id, counter)
|
|
166318
166350
|
VALUES (?, ?)
|
|
166319
|
-
ON CONFLICT(session_id) DO UPDATE SET counter = excluded.counter
|
|
166351
|
+
ON CONFLICT(session_id) DO UPDATE SET counter = MAX(session_meta.counter, excluded.counter)
|
|
166320
166352
|
`;
|
|
166321
166353
|
var upsertCounterStatements = new WeakMap;
|
|
166322
166354
|
function getUpsertCounterStatement(db) {
|
|
@@ -166327,6 +166359,21 @@ function getUpsertCounterStatement(db) {
|
|
|
166327
166359
|
}
|
|
166328
166360
|
return stmt;
|
|
166329
166361
|
}
|
|
166362
|
+
var RESET_COUNTER_SQL = `
|
|
166363
|
+
INSERT INTO session_meta (session_id, counter)
|
|
166364
|
+
VALUES (?, 0)
|
|
166365
|
+
ON CONFLICT(session_id) DO UPDATE SET counter = 0
|
|
166366
|
+
`;
|
|
166367
|
+
var resetCounterStatements = new WeakMap;
|
|
166368
|
+
function getResetCounterStatement(db) {
|
|
166369
|
+
let stmt = resetCounterStatements.get(db);
|
|
166370
|
+
if (!stmt) {
|
|
166371
|
+
stmt = db.prepare(RESET_COUNTER_SQL);
|
|
166372
|
+
resetCounterStatements.set(db, stmt);
|
|
166373
|
+
}
|
|
166374
|
+
return stmt;
|
|
166375
|
+
}
|
|
166376
|
+
var MAX_TAG_ALLOC_RETRIES = 5;
|
|
166330
166377
|
function createTagger() {
|
|
166331
166378
|
const counters = new Map;
|
|
166332
166379
|
const assignments = new Map;
|
|
@@ -166338,32 +166385,56 @@ function createTagger() {
|
|
|
166338
166385
|
}
|
|
166339
166386
|
return map2;
|
|
166340
166387
|
}
|
|
166388
|
+
function isUniqueConstraintError(error48) {
|
|
166389
|
+
return error48 instanceof Error && "code" in error48 && error48.code === "SQLITE_CONSTRAINT_UNIQUE";
|
|
166390
|
+
}
|
|
166391
|
+
function syncCounterAtLeast(sessionId, db, value) {
|
|
166392
|
+
if (value <= 0)
|
|
166393
|
+
return;
|
|
166394
|
+
const next = Math.max(counters.get(sessionId) ?? 0, value);
|
|
166395
|
+
counters.set(sessionId, next);
|
|
166396
|
+
getUpsertCounterStatement(db).run(sessionId, next);
|
|
166397
|
+
}
|
|
166341
166398
|
function assignTag(sessionId, messageId, type, byteSize2, db, reasoningByteSize = 0, toolName = null, inputByteSize = 0) {
|
|
166342
166399
|
const sessionAssignments = getSessionAssignments(sessionId);
|
|
166343
166400
|
const existing = sessionAssignments.get(messageId);
|
|
166344
166401
|
if (existing !== undefined) {
|
|
166345
166402
|
return existing;
|
|
166346
166403
|
}
|
|
166347
|
-
const
|
|
166348
|
-
|
|
166349
|
-
|
|
166350
|
-
|
|
166351
|
-
|
|
166352
|
-
|
|
166353
|
-
|
|
166354
|
-
|
|
166355
|
-
|
|
166356
|
-
|
|
166357
|
-
|
|
166358
|
-
|
|
166359
|
-
|
|
166404
|
+
const dbExisting = getTagNumberByMessageId(db, sessionId, messageId);
|
|
166405
|
+
if (dbExisting !== null) {
|
|
166406
|
+
sessionAssignments.set(messageId, dbExisting);
|
|
166407
|
+
syncCounterAtLeast(sessionId, db, dbExisting);
|
|
166408
|
+
return dbExisting;
|
|
166409
|
+
}
|
|
166410
|
+
for (let attempt = 0;attempt < MAX_TAG_ALLOC_RETRIES; attempt += 1) {
|
|
166411
|
+
const memCounter = counters.get(sessionId) ?? 0;
|
|
166412
|
+
const dbMax = getMaxTagNumberBySession(db, sessionId);
|
|
166413
|
+
const next = Math.max(memCounter, dbMax) + 1;
|
|
166414
|
+
try {
|
|
166415
|
+
db.transaction(() => {
|
|
166416
|
+
insertTag(db, sessionId, messageId, type, byteSize2, next, reasoningByteSize, toolName, inputByteSize);
|
|
166417
|
+
getUpsertCounterStatement(db).run(sessionId, next);
|
|
166418
|
+
})();
|
|
166419
|
+
} catch (error48) {
|
|
166420
|
+
if (!isUniqueConstraintError(error48)) {
|
|
166421
|
+
throw error48;
|
|
166360
166422
|
}
|
|
166423
|
+
const racedRow = getTagNumberByMessageId(db, sessionId, messageId);
|
|
166424
|
+
if (racedRow !== null) {
|
|
166425
|
+
sessionAssignments.set(messageId, racedRow);
|
|
166426
|
+
syncCounterAtLeast(sessionId, db, racedRow);
|
|
166427
|
+
return racedRow;
|
|
166428
|
+
}
|
|
166429
|
+
const advancedDbMax = getMaxTagNumberBySession(db, sessionId);
|
|
166430
|
+
counters.set(sessionId, Math.max(memCounter, advancedDbMax));
|
|
166431
|
+
continue;
|
|
166361
166432
|
}
|
|
166362
|
-
|
|
166433
|
+
counters.set(sessionId, next);
|
|
166434
|
+
sessionAssignments.set(messageId, next);
|
|
166435
|
+
return next;
|
|
166363
166436
|
}
|
|
166364
|
-
|
|
166365
|
-
sessionAssignments.set(messageId, next);
|
|
166366
|
-
return next;
|
|
166437
|
+
throw new Error(`tagger.assignTag: failed to allocate tag for session=${sessionId} message=${messageId} after ${MAX_TAG_ALLOC_RETRIES} retries`);
|
|
166367
166438
|
}
|
|
166368
166439
|
function getTag(sessionId, messageId) {
|
|
166369
166440
|
return assignments.get(sessionId)?.get(messageId);
|
|
@@ -166377,15 +166448,12 @@ function createTagger() {
|
|
|
166377
166448
|
function resetCounter(sessionId, db) {
|
|
166378
166449
|
counters.set(sessionId, 0);
|
|
166379
166450
|
assignments.delete(sessionId);
|
|
166380
|
-
|
|
166451
|
+
getResetCounterStatement(db).run(sessionId);
|
|
166381
166452
|
}
|
|
166382
166453
|
function getCounter(sessionId) {
|
|
166383
166454
|
return counters.get(sessionId) ?? 0;
|
|
166384
166455
|
}
|
|
166385
166456
|
function initFromDb(sessionId, db) {
|
|
166386
|
-
if (counters.has(sessionId)) {
|
|
166387
|
-
return;
|
|
166388
|
-
}
|
|
166389
166457
|
const row = db.prepare(GET_COUNTER_SQL).get(sessionId);
|
|
166390
166458
|
const assignmentRows = db.prepare(GET_ASSIGNMENTS_SQL).all(sessionId).filter(isAssignmentRow);
|
|
166391
166459
|
const sessionAssignments = getSessionAssignments(sessionId);
|
|
@@ -166397,7 +166465,7 @@ function createTagger() {
|
|
|
166397
166465
|
maxTagNumber = assignment.tag_number;
|
|
166398
166466
|
}
|
|
166399
166467
|
}
|
|
166400
|
-
const counter = Math.max(row?.counter ?? 0, maxTagNumber);
|
|
166468
|
+
const counter = Math.max(row?.counter ?? 0, maxTagNumber, counters.get(sessionId) ?? 0);
|
|
166401
166469
|
counters.set(sessionId, counter);
|
|
166402
166470
|
}
|
|
166403
166471
|
function cleanup(sessionId) {
|
|
@@ -168734,146 +168802,142 @@ function tagMessages(sessionId, messages, tagger, db, options = {}) {
|
|
|
168734
168802
|
const COMMIT_LOOKBACK = 5;
|
|
168735
168803
|
const COMMIT_HASH_PATTERN2 = /\b[0-9a-f]{7,12}\b/;
|
|
168736
168804
|
let commitDetected = false;
|
|
168737
|
-
|
|
168738
|
-
|
|
168739
|
-
|
|
168740
|
-
|
|
168741
|
-
|
|
168742
|
-
|
|
168743
|
-
|
|
168744
|
-
|
|
168745
|
-
|
|
168746
|
-
|
|
168747
|
-
|
|
168748
|
-
|
|
168749
|
-
|
|
168750
|
-
|
|
168751
|
-
|
|
168752
|
-
|
|
168753
|
-
|
|
168754
|
-
|
|
168755
|
-
|
|
168756
|
-
|
|
168757
|
-
|
|
168758
|
-
|
|
168759
|
-
|
|
168760
|
-
|
|
168761
|
-
|
|
168762
|
-
|
|
168763
|
-
|
|
168764
|
-
|
|
168765
|
-
|
|
168766
|
-
|
|
168767
|
-
|
|
168768
|
-
|
|
168769
|
-
|
|
168770
|
-
|
|
168771
|
-
toolThinkingByCallId.set(toolObservation.callId, precedingThinkingParts);
|
|
168772
|
-
}
|
|
168805
|
+
for (let msgIndex = 0;msgIndex < messages.length; msgIndex++) {
|
|
168806
|
+
const message = messages[msgIndex];
|
|
168807
|
+
const messageId = typeof message.info.id === "string" ? message.info.id : null;
|
|
168808
|
+
if (message.info.role === "user") {
|
|
168809
|
+
precedingThinkingParts = [];
|
|
168810
|
+
}
|
|
168811
|
+
const messageThinkingParts = message.parts.filter(isThinkingPart);
|
|
168812
|
+
if (messageThinkingParts.length > 0) {
|
|
168813
|
+
reasoningByMessage.set(message, messageThinkingParts);
|
|
168814
|
+
}
|
|
168815
|
+
const messageHasTextPart = message.parts.some(isTextPart);
|
|
168816
|
+
let textOrdinal = 0;
|
|
168817
|
+
let fileOrdinal = 0;
|
|
168818
|
+
for (let partIndex = 0;partIndex < message.parts.length; partIndex += 1) {
|
|
168819
|
+
const part = message.parts[partIndex];
|
|
168820
|
+
if (isReduceToolPart(part)) {
|
|
168821
|
+
lastReduceMessageIndex = msgIndex;
|
|
168822
|
+
}
|
|
168823
|
+
const toolObservation = extractToolCallObservation(part);
|
|
168824
|
+
if (toolObservation) {
|
|
168825
|
+
const entry = toolCallIndex.get(toolObservation.callId) ?? {
|
|
168826
|
+
occurrences: [],
|
|
168827
|
+
hasResult: false
|
|
168828
|
+
};
|
|
168829
|
+
entry.occurrences.push({ message, part, kind: toolObservation.kind });
|
|
168830
|
+
if (toolObservation.kind === "result")
|
|
168831
|
+
entry.hasResult = true;
|
|
168832
|
+
toolCallIndex.set(toolObservation.callId, entry);
|
|
168833
|
+
const existingTagId = tagger.getTag(sessionId, toolObservation.callId);
|
|
168834
|
+
if (existingTagId !== undefined) {
|
|
168835
|
+
toolTagByCallId.set(toolObservation.callId, existingTagId);
|
|
168836
|
+
messageTagNumbers.set(message, Math.max(messageTagNumbers.get(message) ?? 0, existingTagId));
|
|
168837
|
+
if (message.info.role === "tool" && precedingThinkingParts.length > 0 && !toolThinkingByCallId.has(toolObservation.callId)) {
|
|
168838
|
+
toolThinkingByCallId.set(toolObservation.callId, precedingThinkingParts);
|
|
168773
168839
|
}
|
|
168774
168840
|
}
|
|
168775
|
-
|
|
168776
|
-
|
|
168777
|
-
|
|
168778
|
-
|
|
168779
|
-
|
|
168780
|
-
|
|
168781
|
-
|
|
168782
|
-
|
|
168783
|
-
|
|
168784
|
-
|
|
168785
|
-
|
|
168786
|
-
|
|
168787
|
-
|
|
168788
|
-
|
|
168789
|
-
|
|
168790
|
-
textPart.text = sourceContent;
|
|
168791
|
-
}
|
|
168792
|
-
}
|
|
168793
|
-
messageTagNumbers.set(message, Math.max(messageTagNumbers.get(message) ?? 0, tagId));
|
|
168794
|
-
if (!skipPrefixInjection) {
|
|
168795
|
-
textPart.text = prependTag(tagId, textPart.text);
|
|
168841
|
+
}
|
|
168842
|
+
if (messageId && isTextPart(part)) {
|
|
168843
|
+
const textPart = part;
|
|
168844
|
+
const thinkingParts = messageThinkingParts;
|
|
168845
|
+
const contentId = `${messageId}:p${partIndex}`;
|
|
168846
|
+
resolver.resolve(messageId, "message", contentId, textOrdinal);
|
|
168847
|
+
const reasoningBytes = textOrdinal === 0 ? getReasoningByteSize(thinkingParts) : 0;
|
|
168848
|
+
const tagId = tagger.assignTag(sessionId, contentId, "message", byteSize(textPart.text), db, reasoningBytes);
|
|
168849
|
+
const persistedSource = sourceContents.get(tagId);
|
|
168850
|
+
if (persistedSource !== undefined) {
|
|
168851
|
+
textPart.text = persistedSource;
|
|
168852
|
+
} else {
|
|
168853
|
+
const sourceContent = stripTagPrefix(textPart.text);
|
|
168854
|
+
if (sourceContent.trim().length > 0) {
|
|
168855
|
+
saveSourceContent(db, sessionId, tagId, sourceContent);
|
|
168796
168856
|
}
|
|
168797
|
-
targets.set(tagId, {
|
|
168798
|
-
message,
|
|
168799
|
-
setContent: (content) => {
|
|
168800
|
-
if (textPart.text === content)
|
|
168801
|
-
return false;
|
|
168802
|
-
textPart.text = content;
|
|
168803
|
-
for (const tp of thinkingParts) {
|
|
168804
|
-
if (tp.thinking !== undefined)
|
|
168805
|
-
tp.thinking = "[cleared]";
|
|
168806
|
-
if (tp.text !== undefined)
|
|
168807
|
-
tp.text = "[cleared]";
|
|
168808
|
-
}
|
|
168809
|
-
return true;
|
|
168810
|
-
},
|
|
168811
|
-
getContent: () => textPart.text
|
|
168812
|
-
});
|
|
168813
|
-
textOrdinal += 1;
|
|
168814
|
-
continue;
|
|
168815
168857
|
}
|
|
168816
|
-
|
|
168817
|
-
|
|
168818
|
-
|
|
168819
|
-
const reasoningBytes = getReasoningByteSize(thinkingParts);
|
|
168820
|
-
const { toolName, inputByteSize } = extractToolTagMetadata(toolPart);
|
|
168821
|
-
const tagId = tagger.assignTag(sessionId, toolPart.callID, "tool", byteSize(toolPart.state.output), db, reasoningBytes, toolName, inputByteSize);
|
|
168822
|
-
messageTagNumbers.set(message, Math.max(messageTagNumbers.get(message) ?? 0, tagId));
|
|
168823
|
-
if (!skipPrefixInjection) {
|
|
168824
|
-
toolPart.state.output = prependTag(tagId, toolPart.state.output);
|
|
168825
|
-
}
|
|
168826
|
-
toolTagByCallId.set(toolPart.callID, tagId);
|
|
168827
|
-
if (thinkingParts.length > 0 && !toolThinkingByCallId.has(toolPart.callID)) {
|
|
168828
|
-
toolThinkingByCallId.set(toolPart.callID, thinkingParts);
|
|
168829
|
-
}
|
|
168858
|
+
messageTagNumbers.set(message, Math.max(messageTagNumbers.get(message) ?? 0, tagId));
|
|
168859
|
+
if (!skipPrefixInjection) {
|
|
168860
|
+
textPart.text = prependTag(tagId, textPart.text);
|
|
168830
168861
|
}
|
|
168831
|
-
|
|
168832
|
-
|
|
168833
|
-
|
|
168834
|
-
|
|
168835
|
-
|
|
168836
|
-
|
|
168837
|
-
|
|
168838
|
-
|
|
168839
|
-
|
|
168840
|
-
|
|
168841
|
-
|
|
168842
|
-
}
|
|
168843
|
-
messageTagNumbers.set(message, Math.max(messageTagNumbers.get(message) ?? 0, tagId));
|
|
168844
|
-
targets.set(tagId, {
|
|
168845
|
-
message,
|
|
168846
|
-
setContent: (content) => {
|
|
168847
|
-
const prev = messageParts[partIndex];
|
|
168848
|
-
const prevText = typeof prev === "object" && prev !== null && "text" in prev ? prev.text : "";
|
|
168849
|
-
if (prevText === content)
|
|
168850
|
-
return false;
|
|
168851
|
-
messageParts[partIndex] = {
|
|
168852
|
-
type: "text",
|
|
168853
|
-
text: content
|
|
168854
|
-
};
|
|
168855
|
-
return true;
|
|
168862
|
+
targets.set(tagId, {
|
|
168863
|
+
message,
|
|
168864
|
+
setContent: (content) => {
|
|
168865
|
+
if (textPart.text === content)
|
|
168866
|
+
return false;
|
|
168867
|
+
textPart.text = content;
|
|
168868
|
+
for (const tp of thinkingParts) {
|
|
168869
|
+
if (tp.thinking !== undefined)
|
|
168870
|
+
tp.thinking = "[cleared]";
|
|
168871
|
+
if (tp.text !== undefined)
|
|
168872
|
+
tp.text = "[cleared]";
|
|
168856
168873
|
}
|
|
168857
|
-
|
|
168858
|
-
|
|
168874
|
+
return true;
|
|
168875
|
+
},
|
|
168876
|
+
getContent: () => textPart.text
|
|
168877
|
+
});
|
|
168878
|
+
textOrdinal += 1;
|
|
168879
|
+
continue;
|
|
168880
|
+
}
|
|
168881
|
+
if (isToolPartWithOutput(part)) {
|
|
168882
|
+
const toolPart = part;
|
|
168883
|
+
const thinkingParts = precedingThinkingParts;
|
|
168884
|
+
const reasoningBytes = getReasoningByteSize(thinkingParts);
|
|
168885
|
+
const { toolName, inputByteSize } = extractToolTagMetadata(toolPart);
|
|
168886
|
+
const tagId = tagger.assignTag(sessionId, toolPart.callID, "tool", byteSize(toolPart.state.output), db, reasoningBytes, toolName, inputByteSize);
|
|
168887
|
+
messageTagNumbers.set(message, Math.max(messageTagNumbers.get(message) ?? 0, tagId));
|
|
168888
|
+
if (!skipPrefixInjection) {
|
|
168889
|
+
toolPart.state.output = prependTag(tagId, toolPart.state.output);
|
|
168890
|
+
}
|
|
168891
|
+
toolTagByCallId.set(toolPart.callID, tagId);
|
|
168892
|
+
if (thinkingParts.length > 0 && !toolThinkingByCallId.has(toolPart.callID)) {
|
|
168893
|
+
toolThinkingByCallId.set(toolPart.callID, thinkingParts);
|
|
168859
168894
|
}
|
|
168860
168895
|
}
|
|
168861
|
-
if (
|
|
168862
|
-
|
|
168896
|
+
if (messageId && isFilePart(part)) {
|
|
168897
|
+
const filePart = part;
|
|
168898
|
+
const messageParts = message.parts;
|
|
168899
|
+
const contentId = `${messageId}:file${partIndex}`;
|
|
168900
|
+
const existingTagId = resolver.resolve(messageId, "file", contentId, fileOrdinal);
|
|
168901
|
+
const tagId = tagger.assignTag(sessionId, contentId, "file", byteSize(filePart.url), db);
|
|
168902
|
+
if (existingTagId === undefined) {
|
|
168903
|
+
const sourceContent = buildFileSourceContent(message.parts);
|
|
168904
|
+
if (sourceContent) {
|
|
168905
|
+
saveSourceContent(db, sessionId, tagId, sourceContent);
|
|
168906
|
+
}
|
|
168907
|
+
}
|
|
168908
|
+
messageTagNumbers.set(message, Math.max(messageTagNumbers.get(message) ?? 0, tagId));
|
|
168909
|
+
targets.set(tagId, {
|
|
168910
|
+
message,
|
|
168911
|
+
setContent: (content) => {
|
|
168912
|
+
const prev = messageParts[partIndex];
|
|
168913
|
+
const prevText = typeof prev === "object" && prev !== null && "text" in prev ? prev.text : "";
|
|
168914
|
+
if (prevText === content)
|
|
168915
|
+
return false;
|
|
168916
|
+
messageParts[partIndex] = {
|
|
168917
|
+
type: "text",
|
|
168918
|
+
text: content
|
|
168919
|
+
};
|
|
168920
|
+
return true;
|
|
168921
|
+
}
|
|
168922
|
+
});
|
|
168923
|
+
fileOrdinal += 1;
|
|
168863
168924
|
}
|
|
168864
|
-
|
|
168865
|
-
|
|
168866
|
-
|
|
168867
|
-
|
|
168868
|
-
|
|
168869
|
-
|
|
168870
|
-
|
|
168871
|
-
|
|
168925
|
+
}
|
|
168926
|
+
if (message.info.role === "assistant" && !messageHasTextPart) {
|
|
168927
|
+
precedingThinkingParts = messageThinkingParts;
|
|
168928
|
+
}
|
|
168929
|
+
if (!commitDetected && message.info.role === "assistant" && messages.length - msgIndex <= COMMIT_LOOKBACK) {
|
|
168930
|
+
for (const part of message.parts) {
|
|
168931
|
+
if (isTextPart(part)) {
|
|
168932
|
+
const text = part.text;
|
|
168933
|
+
if (COMMIT_HASH_PATTERN2.test(text) && /\b(commit|committed|cherry-pick|merge|rebas)/i.test(text)) {
|
|
168934
|
+
commitDetected = true;
|
|
168935
|
+
break;
|
|
168872
168936
|
}
|
|
168873
168937
|
}
|
|
168874
168938
|
}
|
|
168875
168939
|
}
|
|
168876
|
-
}
|
|
168940
|
+
}
|
|
168877
168941
|
for (const [callId, tagId] of toolTagByCallId) {
|
|
168878
168942
|
const thinkingParts = toolThinkingByCallId.get(callId) ?? [];
|
|
168879
168943
|
targets.set(tagId, createToolDropTarget(callId, thinkingParts, toolCallIndex, batch));
|
|
@@ -170390,6 +170454,7 @@ Historian previously failed ${historianFailureState.failureCount} time(s), so ma
|
|
|
170390
170454
|
}
|
|
170391
170455
|
logTransformTiming(sessionId, "injectTemporalMarkers", tTemporal);
|
|
170392
170456
|
}
|
|
170457
|
+
let taggingSucceeded = false;
|
|
170393
170458
|
try {
|
|
170394
170459
|
const t0 = performance.now();
|
|
170395
170460
|
deps.tagger.initFromDb(sessionId, db);
|
|
@@ -170410,23 +170475,31 @@ Historian previously failed ${historianFailureState.failureCount} time(s), so ma
|
|
|
170410
170475
|
}
|
|
170411
170476
|
deps.commitSeenLastPass?.set(sessionId, result.hasRecentCommit);
|
|
170412
170477
|
logTransformTiming(sessionId, "tagMessages", t0);
|
|
170478
|
+
taggingSucceeded = true;
|
|
170413
170479
|
} catch (error48) {
|
|
170414
170480
|
sessionLog(sessionId, "transform tag persistence failed; continuing without tagging:", error48);
|
|
170481
|
+
try {
|
|
170482
|
+
deps.tagger.cleanup(sessionId);
|
|
170483
|
+
} catch (cleanupError) {
|
|
170484
|
+
sessionLog(sessionId, "tagger cleanup after failure threw:", cleanupError);
|
|
170485
|
+
}
|
|
170415
170486
|
}
|
|
170416
170487
|
const t1 = performance.now();
|
|
170417
170488
|
const tags = getTagsBySession(db, sessionId);
|
|
170418
170489
|
logTransformTiming(sessionId, "getTagsBySession", t1, `count=${tags.length}`);
|
|
170419
170490
|
let didMutateFromFlushedStatuses = false;
|
|
170420
|
-
|
|
170421
|
-
|
|
170422
|
-
|
|
170423
|
-
|
|
170424
|
-
|
|
170425
|
-
|
|
170426
|
-
|
|
170427
|
-
|
|
170428
|
-
|
|
170429
|
-
|
|
170491
|
+
if (taggingSucceeded) {
|
|
170492
|
+
try {
|
|
170493
|
+
const t2 = performance.now();
|
|
170494
|
+
didMutateFromFlushedStatuses = applyFlushedStatuses(sessionId, db, targets, tags);
|
|
170495
|
+
logTransformTiming(sessionId, "applyFlushedStatuses", t2);
|
|
170496
|
+
batch?.finalize();
|
|
170497
|
+
logTransformTiming(sessionId, "batchFinalize:flushed", t2);
|
|
170498
|
+
} catch (error48) {
|
|
170499
|
+
sessionLog(sessionId, "transform failed applying flushed statuses:", error48);
|
|
170500
|
+
if (isCacheBusting)
|
|
170501
|
+
deps.nudgePlacements.clear(sessionId);
|
|
170502
|
+
}
|
|
170430
170503
|
}
|
|
170431
170504
|
if (didMutateFromFlushedStatuses && isCacheBusting) {
|
|
170432
170505
|
deps.nudgePlacements.clear(sessionId);
|
package/package.json
CHANGED