@songsid/agend 2.3.2-beta.13 → 2.3.2-beta.14
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/backend/kiro-classic-archive.js +55 -2
- package/dist/backend/kiro-classic-archive.js.map +1 -1
- package/dist/backend/kiro-classic-links.d.ts +24 -0
- package/dist/backend/kiro-classic-links.js +135 -0
- package/dist/backend/kiro-classic-links.js.map +1 -0
- package/dist/backend/kiro-identity.d.ts +18 -3
- package/dist/backend/kiro-identity.js +22 -39
- package/dist/backend/kiro-identity.js.map +1 -1
- package/dist/backend/kiro-v2-store-worker.js +6 -1
- package/dist/backend/kiro-v2-store-worker.js.map +1 -1
- package/dist/backend/kiro-v2-store.d.ts +12 -1
- package/dist/backend/kiro-v2-store.js +22 -12
- package/dist/backend/kiro-v2-store.js.map +1 -1
- package/dist/backend/kiro.d.ts +4 -0
- package/dist/backend/kiro.js +25 -3
- package/dist/backend/kiro.js.map +1 -1
- package/dist/fleet-manager.js +6 -3
- package/dist/fleet-manager.js.map +1 -1
- package/dist/kiro-migrate.d.ts +4 -3
- package/dist/kiro-migrate.js +13 -8
- package/dist/kiro-migrate.js.map +1 -1
- package/dist/locale.js +4 -0
- package/dist/locale.js.map +1 -1
- package/package.json +1 -1
|
@@ -263,17 +263,67 @@ export function proveClassicHistoryCoverage(input) {
|
|
|
263
263
|
if (!log.unchanged())
|
|
264
264
|
fail();
|
|
265
265
|
}
|
|
266
|
+
/** Unknown cwd is safe to ignore only for stable, owned files older than the carry, with no possible replacement work. */
|
|
267
|
+
function oldUnknownMetadata(input, name, created) {
|
|
268
|
+
const path = join(input.sessionsDir, name), logPath = join(input.sessionsDir, name.slice(0, -5) + ".jsonl");
|
|
269
|
+
try {
|
|
270
|
+
const before = lstatSync(path);
|
|
271
|
+
const old = (st) => st.isFile() && (!process.getuid || st.uid === process.getuid())
|
|
272
|
+
&& Number.isFinite(st.mtimeMs) && Number.isFinite(st.ctimeMs) && st.mtimeMs < created && st.ctimeMs < created;
|
|
273
|
+
if (!old(before))
|
|
274
|
+
return null;
|
|
275
|
+
const log = () => { try {
|
|
276
|
+
return lstatSync(logPath);
|
|
277
|
+
}
|
|
278
|
+
catch (error) {
|
|
279
|
+
if (error.code === "ENOENT")
|
|
280
|
+
return null;
|
|
281
|
+
throw error;
|
|
282
|
+
} };
|
|
283
|
+
const logBefore = log();
|
|
284
|
+
if (logBefore && (!old(logBefore) || logBefore.size !== 0))
|
|
285
|
+
return null;
|
|
286
|
+
const same = (a, b) => b.isFile()
|
|
287
|
+
&& a.dev === b.dev && a.ino === b.ino && a.uid === b.uid && a.size === b.size && a.mtimeMs === b.mtimeMs && a.ctimeMs === b.ctimeMs;
|
|
288
|
+
return () => {
|
|
289
|
+
try {
|
|
290
|
+
const logAfter = log();
|
|
291
|
+
return same(before, lstatSync(path)) && (logBefore ? !!logAfter && same(logBefore, logAfter) : logAfter === null);
|
|
292
|
+
}
|
|
293
|
+
catch {
|
|
294
|
+
return false;
|
|
295
|
+
}
|
|
296
|
+
};
|
|
297
|
+
}
|
|
298
|
+
catch {
|
|
299
|
+
return null;
|
|
300
|
+
}
|
|
301
|
+
}
|
|
266
302
|
/** An abandoned pin is recoverable only while every later unowned same-cwd alternative remains empty. Leave all of them untouched. */
|
|
267
303
|
function proveNoReplacementWork(input) {
|
|
268
304
|
const original = JSON.parse(snapshotKiroTuiFile(join(input.sessionsDir, `${input.sessionId}.json`), 8 * 1024 * 1024).text);
|
|
269
305
|
const created = Date.parse(original.created_at);
|
|
270
306
|
if (!Number.isFinite(created))
|
|
271
307
|
throw new Error("Carried creation time is unavailable");
|
|
308
|
+
const unknownChecks = [];
|
|
272
309
|
for (const name of readdirSync(input.sessionsDir)) {
|
|
273
310
|
if (!name.endsWith(".json") || name === `${input.sessionId}.json`)
|
|
274
311
|
continue;
|
|
275
|
-
|
|
276
|
-
|
|
312
|
+
let file, meta;
|
|
313
|
+
try {
|
|
314
|
+
file = snapshotKiroTuiFile(join(input.sessionsDir, name), 8 * 1024 * 1024);
|
|
315
|
+
meta = JSON.parse(file.text);
|
|
316
|
+
if (!meta || typeof meta.cwd !== "string" || !meta.cwd.trim())
|
|
317
|
+
throw new Error("Unknown cwd");
|
|
318
|
+
}
|
|
319
|
+
catch {
|
|
320
|
+
const unchanged = oldUnknownMetadata(input, name, created);
|
|
321
|
+
if (!unchanged)
|
|
322
|
+
throw new Error(`Replacement session metadata ${JSON.stringify(name)} has unknown cwd and may contain newer work; automatic repair held`);
|
|
323
|
+
unknownChecks.push({ name, unchanged });
|
|
324
|
+
continue;
|
|
325
|
+
}
|
|
326
|
+
if (kiroCanonicalDirectory(meta.cwd) !== kiroCanonicalDirectory(input.workingDirectory))
|
|
277
327
|
continue;
|
|
278
328
|
if (Date.parse(meta.created_at) < created)
|
|
279
329
|
continue;
|
|
@@ -290,6 +340,9 @@ function proveNoReplacementWork(input) {
|
|
|
290
340
|
if (log.text.length !== 0 || !file.unchanged() || !log.unchanged())
|
|
291
341
|
throw new Error("An unowned replacement session has work or changed; automatic repair held");
|
|
292
342
|
}
|
|
343
|
+
for (const check of unknownChecks)
|
|
344
|
+
if (!check.unchanged())
|
|
345
|
+
throw new Error(`Replacement session metadata ${JSON.stringify(check.name)} changed during proof; automatic repair held`);
|
|
293
346
|
}
|
|
294
347
|
/** This runs before discovery can adopt one of the empty sessions left by the old retry escape hatch. */
|
|
295
348
|
export function repairAbandonedKiroCarry(input, stopped = () => assertKiroConversationStopped(input)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kiro-classic-archive.js","sourceRoot":"","sources":["../../src/backend/kiro-classic-archive.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"kiro-classic-archive.js","sourceRoot":"","sources":["../../src/backend/kiro-classic-archive.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/** The most a store key's rows may hold (value bytes) for its links to be worked out at all. */
|
|
2
|
+
export declare const KIRO_CLASSIC_LINKS_MAX_BYTES: number;
|
|
3
|
+
export interface KiroClassicLinksInput {
|
|
4
|
+
dbPath: string;
|
|
5
|
+
keys: string[];
|
|
6
|
+
maxBytes?: number;
|
|
7
|
+
}
|
|
8
|
+
export type KiroClassicLinks = {
|
|
9
|
+
kind: "ok";
|
|
10
|
+
/** Each conversation's first-hop continuations: same key, summarized, created no earlier than it was last written. */
|
|
11
|
+
successors: Record<string, string[]>;
|
|
12
|
+
/** Whether a conversation carries a compaction summary (it continues an earlier one). */
|
|
13
|
+
summarized: Record<string, boolean>;
|
|
14
|
+
} | {
|
|
15
|
+
kind: "over-budget";
|
|
16
|
+
detail: string;
|
|
17
|
+
} | {
|
|
18
|
+
kind: "unreadable";
|
|
19
|
+
detail: string;
|
|
20
|
+
};
|
|
21
|
+
/** A launch that did not work its links out first: unproven, so it stays on the recorded conversation. */
|
|
22
|
+
export declare const KIRO_CLASSIC_LINKS_NOT_PREPARED: KiroClassicLinks;
|
|
23
|
+
/** `late()` is asked before each row's transcript is read: true ends the pass as over budget. */
|
|
24
|
+
export declare function computeKiroClassicLinks(input: KiroClassicLinksInput, late: () => boolean): KiroClassicLinks;
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* #2714 / #2738: the links classic kiro's /compact leaves in `conversations_v2`, worked out in one pass — run on the
|
|
3
|
+
* kiro store worker lane (kiro-v2-store.ts), never on the fleet loop.
|
|
4
|
+
*
|
|
5
|
+
* A compaction writes a new row whose transcript starts with the whole earlier one; nothing else points from one to
|
|
6
|
+
* the other. Proving that means reading every transcript — on a long-lived instance tens of MB each, a GB per store
|
|
7
|
+
* key (#2738: 38 rows, 1 GB, and a pairwise SQL join that parsed them again for every pair blocked the loop for
|
|
8
|
+
* minutes and the systemd watchdog killed the fleet). Here each transcript is extracted once, rows in creation order,
|
|
9
|
+
* and kept only as a running hash: a row continues an earlier one when its hash at the earlier one's length minus
|
|
10
|
+
* its closing "]" equals the earlier one's, and a "," stands where that "]" stood. One transcript in memory at a time.
|
|
11
|
+
*
|
|
12
|
+
* Bounded: the rows' total size is checked first (no value read), and the clock between rows. Over either budget the
|
|
13
|
+
* answer is "over-budget" — unproven, the same as an ambiguous compaction: the caller stays on the recorded id.
|
|
14
|
+
*/
|
|
15
|
+
import Database from "better-sqlite3";
|
|
16
|
+
import { createHash } from "node:crypto";
|
|
17
|
+
import { statSync } from "node:fs";
|
|
18
|
+
/** The most a store key's rows may hold (value bytes) for its links to be worked out at all. */
|
|
19
|
+
export const KIRO_CLASSIC_LINKS_MAX_BYTES = 2 * 1024 ** 3;
|
|
20
|
+
/** A launch that did not work its links out first: unproven, so it stays on the recorded conversation. */
|
|
21
|
+
export const KIRO_CLASSIC_LINKS_NOT_PREPARED = { kind: "unreadable", detail: "classic compaction links were not prepared for this launch" };
|
|
22
|
+
/** `late()` is asked before each row's transcript is read: true ends the pass as over budget. */
|
|
23
|
+
export function computeKiroClassicLinks(input, late) {
|
|
24
|
+
try {
|
|
25
|
+
statSync(input.dbPath);
|
|
26
|
+
}
|
|
27
|
+
catch (err) {
|
|
28
|
+
return err.code === "ENOENT" ? { kind: "ok", successors: {}, summarized: {} } // no store: nothing compacted
|
|
29
|
+
: { kind: "unreadable", detail: `cannot stat ${input.dbPath}: ${err.message}` };
|
|
30
|
+
}
|
|
31
|
+
let db;
|
|
32
|
+
try {
|
|
33
|
+
db = new Database(input.dbPath, { readonly: true, fileMustExist: true });
|
|
34
|
+
}
|
|
35
|
+
catch (err) {
|
|
36
|
+
return { kind: "unreadable", detail: `cannot open ${input.dbPath}: ${err.message}` };
|
|
37
|
+
}
|
|
38
|
+
try {
|
|
39
|
+
const [a, b = a, c = b] = input.keys;
|
|
40
|
+
// octet_length reads the record header only: sizing the rows reads no value.
|
|
41
|
+
const rows = db.prepare(`SELECT key, conversation_id AS id, created_at AS created, updated_at AS at, octet_length(value) AS bytes
|
|
42
|
+
FROM conversations_v2 WHERE key IN (?, ?, ?)`).all(a, b, c)
|
|
43
|
+
.filter(r => typeof r.key === "string" && typeof r.id === "string")
|
|
44
|
+
.map(r => ({ key: r.key, id: r.id, created: Number(r.created) || 0, at: Number(r.at) || 0, bytes: Number(r.bytes) || 0 }));
|
|
45
|
+
const total = rows.reduce((sum, r) => sum + r.bytes, 0);
|
|
46
|
+
const max = input.maxBytes ?? KIRO_CLASSIC_LINKS_MAX_BYTES;
|
|
47
|
+
if (total > max)
|
|
48
|
+
return { kind: "over-budget", detail: `${rows.length} conversations, ${total} bytes (more than ${max})` };
|
|
49
|
+
// A continuation is created no earlier than its predecessor was last written, so creation order meets nearly every
|
|
50
|
+
// predecessor first; one whose four timestamps all equal its continuation's may come after it (checked below).
|
|
51
|
+
rows.sort((x, y) => x.created - y.created || x.at - y.at || x.bytes - y.bytes || (x.id < y.id ? -1 : x.id > y.id ? 1 : 0));
|
|
52
|
+
const one = db.prepare(`SELECT json_type(value, '$.latest_summary') AS summary, json_type(value, '$.transcript') AS type,
|
|
53
|
+
json_extract(value, '$.transcript') AS t FROM conversations_v2 WHERE key = ? AND conversation_id = ? AND json_valid(value)`);
|
|
54
|
+
const read = (row) => {
|
|
55
|
+
const r = one.get(row.key, row.id);
|
|
56
|
+
return { isSummary: typeof r?.summary === "string" && r.summary !== "null", t: r?.type === "array" && typeof r.t === "string" ? r.t : null };
|
|
57
|
+
};
|
|
58
|
+
const summarized = Object.create(null);
|
|
59
|
+
const continues = new Map(); // key → successor → the conversations it continues
|
|
60
|
+
const seen = new Map(); // key → rows read so far, with their transcript hash
|
|
61
|
+
/**
|
|
62
|
+
* Which of `candidates` (shorter, written before `row` was created) `t` continues; returns t's own digest. Hashed as
|
|
63
|
+
* UTF-16 code units: a cut may fall inside a surrogate pair, and only the code units themselves hash the same on
|
|
64
|
+
* both sides of it (#2739 review).
|
|
65
|
+
*/
|
|
66
|
+
const link = (row, t, candidates) => {
|
|
67
|
+
const hash = createHash("sha256");
|
|
68
|
+
let at = 0;
|
|
69
|
+
for (const p of [...candidates].sort((x, y) => x.length - y.length)) {
|
|
70
|
+
const cut = p.length - 1; // where p's closing "]" stands
|
|
71
|
+
hash.update(t.slice(at, cut), "utf16le");
|
|
72
|
+
at = cut;
|
|
73
|
+
if (t[cut] === "," && hash.copy().digest("hex") === p.digest) {
|
|
74
|
+
const byKey = continues.get(row.key) ?? new Map();
|
|
75
|
+
continues.set(row.key, byKey);
|
|
76
|
+
(byKey.get(row.id) ?? byKey.set(row.id, new Set()).get(row.id)).add(p.id);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
hash.update(t.slice(at, t.length - 1), "utf16le");
|
|
80
|
+
return hash.digest("hex");
|
|
81
|
+
};
|
|
82
|
+
const overTime = () => ({ kind: "over-budget", detail: `not done in time (${rows.length} conversations, ${total} bytes)` });
|
|
83
|
+
const continuations = [];
|
|
84
|
+
for (const [order, row] of rows.entries()) {
|
|
85
|
+
if (late())
|
|
86
|
+
return overTime();
|
|
87
|
+
const { isSummary, t } = read(row);
|
|
88
|
+
summarized[row.id] = summarized[row.id] === true || isSummary;
|
|
89
|
+
if (t === null)
|
|
90
|
+
continue;
|
|
91
|
+
const earlier = seen.get(row.key) ?? [];
|
|
92
|
+
// Only a summarized row continues another; any row may be continued.
|
|
93
|
+
const digest = link(row, t, isSummary ? earlier.filter(p => p.at <= row.created && p.length < t.length) : []);
|
|
94
|
+
earlier.push({ id: row.id, at: row.at, length: t.length, digest, order });
|
|
95
|
+
seen.set(row.key, earlier);
|
|
96
|
+
if (isSummary)
|
|
97
|
+
continuations.push({ row, length: t.length, order });
|
|
98
|
+
}
|
|
99
|
+
// A tie (#2739 review): a predecessor read after its continuation — every timestamp equal, the sort fell back to
|
|
100
|
+
// value size. Such a continuation is read again for exactly those, never declared to continue nothing.
|
|
101
|
+
for (const c of continuations) {
|
|
102
|
+
const missed = (seen.get(c.row.key) ?? []).filter(p => p.order > c.order && p.at <= c.row.created && p.length < c.length);
|
|
103
|
+
if (missed.length === 0)
|
|
104
|
+
continue;
|
|
105
|
+
if (late())
|
|
106
|
+
return overTime();
|
|
107
|
+
const { t } = read(c.row);
|
|
108
|
+
if (t === null || t.length !== c.length)
|
|
109
|
+
return { kind: "unreadable", detail: `${c.row.id} changed while it was read` };
|
|
110
|
+
link(c.row, t, missed);
|
|
111
|
+
}
|
|
112
|
+
// First hop only: a continuation that continues another continuation of `id` is that one's successor, not `id`'s.
|
|
113
|
+
const successors = Object.create(null);
|
|
114
|
+
for (const byKey of continues.values()) {
|
|
115
|
+
for (const [s, of] of byKey) {
|
|
116
|
+
for (const id of of) {
|
|
117
|
+
const through = [...byKey].some(([m, mOf]) => m !== s && mOf.has(id) && of.has(m));
|
|
118
|
+
if (!through)
|
|
119
|
+
(successors[id] ??= new Set()).add(s);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
return { kind: "ok", summarized, successors: Object.fromEntries(Object.entries(successors).map(([id, s]) => [id, [...s].sort()])) };
|
|
124
|
+
}
|
|
125
|
+
catch (err) {
|
|
126
|
+
return { kind: "unreadable", detail: `cannot read ${input.dbPath}: ${err.message}` };
|
|
127
|
+
}
|
|
128
|
+
finally {
|
|
129
|
+
try {
|
|
130
|
+
db.close();
|
|
131
|
+
}
|
|
132
|
+
catch { /* closed */ }
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
//# sourceMappingURL=kiro-classic-links.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kiro-classic-links.js","sourceRoot":"","sources":["../../src/backend/kiro-classic-links.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { type KiroV2StoreLane } from "./kiro-v2-store.js";
|
|
2
|
+
import type { KiroClassicLinks } from "./kiro-classic-links.js";
|
|
1
3
|
export type KiroClassicEngine = "v1" | "v2";
|
|
2
4
|
/** v3 has its own identity (kiro-v3-identity.ts); its records here only say whether it runs as the agent. */
|
|
3
5
|
type RecordEngine = KiroClassicEngine | "v3";
|
|
@@ -23,10 +25,11 @@ export type KiroStoreRead = {
|
|
|
23
25
|
/**
|
|
24
26
|
* The conversations kiro continued `id` in: each carries a compaction summary, was created no earlier than `id`
|
|
25
27
|
* was last written, and its transcript starts with `id`'s whole (non-empty) transcript. Same store key.
|
|
28
|
+
* "over-budget" (#2738): the store was too big to prove it in time — unproven, never a guess.
|
|
26
29
|
*/
|
|
27
|
-
successorsOf(id: string): string[] | "unreadable";
|
|
30
|
+
successorsOf(id: string): string[] | "unreadable" | "over-budget";
|
|
28
31
|
/** Whether `id` carries a compaction summary: it continues some earlier conversation. */
|
|
29
|
-
summarized(id: string): boolean | "unreadable";
|
|
32
|
+
summarized(id: string): boolean | "unreadable" | "over-budget";
|
|
30
33
|
};
|
|
31
34
|
} | {
|
|
32
35
|
kind: "unreadable";
|
|
@@ -41,8 +44,16 @@ export declare function kiroCanonicalDirectory(workingDirectory: string): string
|
|
|
41
44
|
* forced with INDEXED BY, so a missing index is an error (unreadable), never a silent scan of the table. The row
|
|
42
45
|
* itself is touched only for `conversation_id`, which precedes `value`. `created_at` follows `value`, so it is read
|
|
43
46
|
* only for the few take-up candidates. A missing database is an empty store.
|
|
47
|
+
*
|
|
48
|
+
* The compaction links come in worked out already (#2738): proving them reads every transcript of the key, which is
|
|
49
|
+
* done on the store worker lane (readKiroClassicLinks), never here on the fleet loop.
|
|
44
50
|
*/
|
|
45
|
-
export declare function listKiroV1Sessions(workingDirectory: string, dbPath: string): KiroStoreRead;
|
|
51
|
+
export declare function listKiroV1Sessions(workingDirectory: string, dbPath: string, links: KiroClassicLinks): KiroStoreRead;
|
|
52
|
+
/**
|
|
53
|
+
* #2738: a classic store's compaction links, worked out on their own worker lane within its budget. Out of time or
|
|
54
|
+
* over the size budget it is "over-budget": the launch stays on the recorded conversation and says so.
|
|
55
|
+
*/
|
|
56
|
+
export declare function readKiroClassicLinks(workingDirectory: string, dbPath: string, lane?: KiroV2StoreLane): Promise<KiroClassicLinks>;
|
|
46
57
|
/** Full v2 files are read/parsed in a bounded worker, never on the fleet loop. */
|
|
47
58
|
export declare function listKiroV2Sessions(workingDirectory: string, sessionsDir: string): Promise<KiroStoreRead>;
|
|
48
59
|
export declare class KiroIdentityError extends Error {
|
|
@@ -72,6 +83,10 @@ export type KiroIdentityDecision =
|
|
|
72
83
|
};
|
|
73
84
|
export type KiroCompactionKept = {
|
|
74
85
|
reason: "unreadable";
|
|
86
|
+
}
|
|
87
|
+
/** #2738: the store was too big to prove a compaction within the budget. */
|
|
88
|
+
| {
|
|
89
|
+
reason: "over-budget";
|
|
75
90
|
} | {
|
|
76
91
|
reason: "ambiguous";
|
|
77
92
|
from: string;
|
|
@@ -39,7 +39,7 @@ import { createHash } from "node:crypto";
|
|
|
39
39
|
import { closeSync, mkdirSync, openSync, readdirSync, readFileSync, realpathSync, rmSync, statSync, writeSync } from "node:fs";
|
|
40
40
|
import { join, resolve } from "node:path";
|
|
41
41
|
import { writeFileAtomic } from "./kiro-engine-ledger.js";
|
|
42
|
-
import { sharedKiroV2StoreLane } from "./kiro-v2-store.js";
|
|
42
|
+
import { sharedKiroClassicLinksLane, sharedKiroV2StoreLane } from "./kiro-v2-store.js";
|
|
43
43
|
/** Conversation ids become file names: only plain ones. */
|
|
44
44
|
const SAFE_ID = /^[A-Za-z0-9][A-Za-z0-9_.-]{0,199}$/;
|
|
45
45
|
/** An owner name is one line. */
|
|
@@ -70,8 +70,11 @@ const V1_INDEX = "idx_conversations_v2_key_updated";
|
|
|
70
70
|
* forced with INDEXED BY, so a missing index is an error (unreadable), never a silent scan of the table. The row
|
|
71
71
|
* itself is touched only for `conversation_id`, which precedes `value`. `created_at` follows `value`, so it is read
|
|
72
72
|
* only for the few take-up candidates. A missing database is an empty store.
|
|
73
|
+
*
|
|
74
|
+
* The compaction links come in worked out already (#2738): proving them reads every transcript of the key, which is
|
|
75
|
+
* done on the store worker lane (readKiroClassicLinks), never here on the fleet loop.
|
|
73
76
|
*/
|
|
74
|
-
export function listKiroV1Sessions(workingDirectory, dbPath) {
|
|
77
|
+
export function listKiroV1Sessions(workingDirectory, dbPath, links) {
|
|
75
78
|
try {
|
|
76
79
|
statSync(dbPath);
|
|
77
80
|
}
|
|
@@ -118,38 +121,8 @@ export function listKiroV1Sessions(workingDirectory, dbPath) {
|
|
|
118
121
|
return Number.isFinite(at) && at > 0 ? at : null;
|
|
119
122
|
}),
|
|
120
123
|
compaction: {
|
|
121
|
-
successorsOf: (id) =>
|
|
122
|
-
|
|
123
|
-
const from = sessions.find(s => s.id === id);
|
|
124
|
-
const later = from ? sessions.filter(s => s.id !== id && s.updatedAt >= from.updatedAt).map(s => s.id) : [];
|
|
125
|
-
if (later.length === 0)
|
|
126
|
-
return [];
|
|
127
|
-
// The transcripts compared as SQLite's minified JSON text: kiro appends to it and never trims it (606
|
|
128
|
-
// entries kept, 2.34.0), so a continuation's array text starts with the whole earlier one but its "]".
|
|
129
|
-
// A later compaction continues it too (C extends B extends A): only the first hop counts — a continuation
|
|
130
|
-
// that continues another continuation of `id` is that one's successor, not `id`'s.
|
|
131
|
-
// The "," where the earlier "]" stood is what makes it longer by whole entries: never the same array, never
|
|
132
|
-
// an entry extended in place, and never a continuation of an empty transcript ("[]" is followed by no ",").
|
|
133
|
-
const extends_ = (x, y) => `json_type(${y}.t) = 'array' AND json_type(${x}.t) = 'array'
|
|
134
|
-
AND substr(${x}.t, 1, length(${y}.t) - 1) = substr(${y}.t, 1, length(${y}.t) - 1)
|
|
135
|
-
AND substr(${x}.t, length(${y}.t), 1) = ',' AND ${x}.created >= ${y}.at`;
|
|
136
|
-
return query(reader => reader.prepare(`
|
|
137
|
-
WITH a AS (SELECT key, updated_at AS at, json_extract(value, '$.transcript') AS t FROM conversations_v2
|
|
138
|
-
WHERE key IN (?, ?, ?) AND conversation_id = ? AND json_valid(value)),
|
|
139
|
-
b AS (SELECT conversation_id AS id, key, created_at AS created, updated_at AS at, json_extract(value, '$.transcript') AS t
|
|
140
|
-
FROM conversations_v2
|
|
141
|
-
WHERE key IN (?, ?, ?) AND conversation_id IN (SELECT value FROM json_each(?)) AND json_valid(value)
|
|
142
|
-
AND json_type(value, '$.latest_summary') IS NOT NULL AND json_type(value, '$.latest_summary') != 'null'),
|
|
143
|
-
s AS (SELECT b.* FROM a JOIN b ON b.key = a.key WHERE ${extends_("b", "a")})
|
|
144
|
-
SELECT s.id AS id FROM s WHERE NOT EXISTS (SELECT 1 FROM s AS m WHERE m.id != s.id AND ${extends_("s", "m")})`)
|
|
145
|
-
.all(a, b, c, id, a, b, c, JSON.stringify(later))
|
|
146
|
-
.flatMap(r => typeof r.id === "string" ? [r.id] : []));
|
|
147
|
-
},
|
|
148
|
-
summarized: (id) => query(reader => {
|
|
149
|
-
const row = reader.prepare("SELECT json_type(value, '$.latest_summary') AS summary FROM conversations_v2 WHERE key IN (?, ?, ?) AND conversation_id = ? AND json_valid(value) LIMIT 1")
|
|
150
|
-
.get(a, b, c, id);
|
|
151
|
-
return typeof row?.summary === "string" && row.summary !== "null";
|
|
152
|
-
}),
|
|
124
|
+
successorsOf: (id) => links.kind === "ok" ? [...(links.successors[id] ?? [])] : links.kind,
|
|
125
|
+
summarized: (id) => links.kind === "ok" ? links.summarized[id] === true : links.kind,
|
|
153
126
|
},
|
|
154
127
|
};
|
|
155
128
|
}
|
|
@@ -163,6 +136,16 @@ export function listKiroV1Sessions(workingDirectory, dbPath) {
|
|
|
163
136
|
catch { /* closed */ }
|
|
164
137
|
}
|
|
165
138
|
}
|
|
139
|
+
/**
|
|
140
|
+
* #2738: a classic store's compaction links, worked out on their own worker lane within its budget. Out of time or
|
|
141
|
+
* over the size budget it is "over-budget": the launch stays on the recorded conversation and says so.
|
|
142
|
+
*/
|
|
143
|
+
export async function readKiroClassicLinks(workingDirectory, dbPath, lane = sharedKiroClassicLinksLane) {
|
|
144
|
+
const reply = await lane.read({ keys: [], sessionsDir: "", classicLinks: { dbPath, keys: kiroDirectoryKeys(workingDirectory) } });
|
|
145
|
+
if (reply.kind === "unreadable")
|
|
146
|
+
return reply.detail === lane.timedOut ? { kind: "over-budget", detail: reply.detail } : reply;
|
|
147
|
+
return reply.classicLinks ?? { kind: "unreadable", detail: "no compaction links in the reply" };
|
|
148
|
+
}
|
|
166
149
|
/** Full v2 files are read/parsed in a bounded worker, never on the fleet loop. */
|
|
167
150
|
export async function listKiroV2Sessions(workingDirectory, sessionsDir) {
|
|
168
151
|
const result = await sharedKiroV2StoreLane.read({ keys: kiroDirectoryKeys(workingDirectory), sessionsDir });
|
|
@@ -639,8 +622,8 @@ function compactionChain(ids, links) {
|
|
|
639
622
|
const hasPredecessor = new Set();
|
|
640
623
|
for (const id of ids) {
|
|
641
624
|
const s = links.successorsOf(id);
|
|
642
|
-
if (s === "unreadable")
|
|
643
|
-
return "unreadable";
|
|
625
|
+
if (s === "unreadable" || s === "over-budget")
|
|
626
|
+
return "unreadable"; // deferred either way
|
|
644
627
|
const within = s.filter(x => x !== id && ids.includes(x));
|
|
645
628
|
next.set(id, within);
|
|
646
629
|
for (const x of within)
|
|
@@ -650,7 +633,7 @@ function compactionChain(ids, links) {
|
|
|
650
633
|
const foreign = [];
|
|
651
634
|
for (const root of ids.filter(id => !hasPredecessor.has(id))) {
|
|
652
635
|
const summarized = links.summarized(root);
|
|
653
|
-
if (summarized === "unreadable")
|
|
636
|
+
if (summarized === "unreadable" || summarized === "over-budget")
|
|
654
637
|
return "unreadable";
|
|
655
638
|
(summarized ? foreign : own).push(root);
|
|
656
639
|
}
|
|
@@ -691,8 +674,8 @@ function followClassicCompaction(claims, statePath, instance, from, store, recor
|
|
|
691
674
|
// every hop is an id not seen before (a revisit is refused as not this instance's), and the store has finitely many.
|
|
692
675
|
for (;;) {
|
|
693
676
|
const next = store.compaction.successorsOf(at);
|
|
694
|
-
if (next === "unreadable") {
|
|
695
|
-
kept = { reason:
|
|
677
|
+
if (next === "unreadable" || next === "over-budget") {
|
|
678
|
+
kept = { reason: next };
|
|
696
679
|
break;
|
|
697
680
|
}
|
|
698
681
|
if (next.length === 0)
|