omp-fabric 1.25.26 → 1.25.27
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/CHANGELOG.md +9 -0
- package/dist/compaction/lcm-runtime.d.ts +2 -0
- package/dist/compaction/lcm-runtime.d.ts.map +1 -1
- package/dist/compaction/lcm-runtime.js +29 -5
- package/dist/compaction/lcm-runtime.js.map +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +2 -2
- package/dist/storage/lcm-ledger.d.ts +4 -0
- package/dist/storage/lcm-ledger.d.ts.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.25.27
|
|
4
|
+
|
|
5
|
+
### Fixed
|
|
6
|
+
|
|
7
|
+
- Correction to the 1.25.26 entry: it says its host pins moved from 18.10.1, but the working tree was already on 18.10.4 (shipped in 1.25.25). The range was 18.10.4 to 18.11.0.
|
|
8
|
+
- **Session start no longer blocks on the LCM ledger's size.** `LcmLedger` construction ran `migrateSchema()` and `PRAGMA integrity_check` — both O(file size) — inline, so every `session_start` handler paid them: 5929ms, 9210ms, 17393ms and 22245ms across measured runs against this project's 611MB ledger (the ledger directory holds several 1.5-2.4GB files), inside the host's 30000ms per-handler budget. The host log has the receipts: `Extension handler timed out` for `event: "session_start"`, 17 times on 2026-10-15 alone, including one at 11:12:57 with 1.25.26 already installed. The FTS table and trigger DDL stays synchronous, because it is cheap and `searchRaw` needs those objects to exist; migrations, their backfill and the integrity check moved to `LcmLedger.runStartupChecks()`, which the detached session warmup runs after a macrotask yield. Compaction is unaffected: the compaction hook's `getEngine()` reports `omp` until the runtime is `ready`, so a cold session hands compaction to the host core instead of summarising through an unverified ledger.
|
|
9
|
+
- Same phase marks before and after: `session_start` returned after 5929-22245ms before and 672ms after (compat 155ms, bootstrap 3ms, LCM prepare 513ms, activation 0ms). The deferred migrations and integrity check still cost about 2s on the 611MB ledger, now on a background macrotask outside the handler.
|
|
10
|
+
- `tests/storage/lcm-ledger.test.ts` now drives `runStartupChecks()` explicitly for the five migration cases (orphan quarantine, FTS backfill, fts5-less fallback, index re-sync, purge counts). The contracts are unchanged; only their timing moved.
|
|
11
|
+
|
|
3
12
|
## 1.25.26
|
|
4
13
|
|
|
5
14
|
### Changed
|
|
@@ -91,6 +91,8 @@ export declare class LcmRuntime {
|
|
|
91
91
|
private persistedSessionId;
|
|
92
92
|
private lastReconciliation;
|
|
93
93
|
constructor(context: ExtensionContext, options?: LcmRuntimeOptions | (() => LcmRuntimeOptions));
|
|
94
|
+
get ready(): boolean;
|
|
95
|
+
open(): void;
|
|
94
96
|
private get options();
|
|
95
97
|
get projectKey(): string;
|
|
96
98
|
get signal(): AbortSignal;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lcm-runtime.d.ts","sourceRoot":"","sources":["../../src/compaction/lcm-runtime.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lcm-runtime.d.ts","sourceRoot":"","sources":["../../src/compaction/lcm-runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -259,6 +259,7 @@ var LcmLedger = class {
|
|
|
259
259
|
transactionDepth = 0;
|
|
260
260
|
closed = false;
|
|
261
261
|
fts = false;
|
|
262
|
+
startupChecksRun = false;
|
|
262
263
|
migrations = [];
|
|
263
264
|
constructor(options = {}) {
|
|
264
265
|
this.now = options.now ?? Date.now;
|
|
@@ -283,16 +284,29 @@ var LcmLedger = class {
|
|
|
283
284
|
this.db.exec("ALTER TABLE raw_entries ADD COLUMN payload_json TEXT NOT NULL DEFAULT ''");
|
|
284
285
|
}
|
|
285
286
|
this.fts = probeFts5(this.db);
|
|
286
|
-
this.
|
|
287
|
+
this.ensureFtsObjects();
|
|
287
288
|
this.db.exec("PRAGMA foreign_keys=ON");
|
|
288
|
-
const result = this.db.prepare("PRAGMA integrity_check").get();
|
|
289
|
-
if (result.integrity_check !== "ok") throw new Error(String(result.integrity_check));
|
|
290
289
|
this.registerProject(this.project);
|
|
291
290
|
} catch (error) {
|
|
292
291
|
this.degraded = true;
|
|
293
292
|
throw new LedgerDegradedError("ledger startup failed", error);
|
|
294
293
|
}
|
|
295
294
|
}
|
|
295
|
+
get startupChecksComplete() {
|
|
296
|
+
return this.startupChecksRun;
|
|
297
|
+
}
|
|
298
|
+
runStartupChecks() {
|
|
299
|
+
if (this.startupChecksRun) return;
|
|
300
|
+
try {
|
|
301
|
+
this.migrateSchema();
|
|
302
|
+
const result = this.db.prepare("PRAGMA integrity_check").get();
|
|
303
|
+
if (result.integrity_check !== "ok") throw new Error(String(result.integrity_check));
|
|
304
|
+
} catch (error) {
|
|
305
|
+
this.degraded = true;
|
|
306
|
+
throw new LedgerDegradedError("ledger startup checks failed", error);
|
|
307
|
+
}
|
|
308
|
+
this.startupChecksRun = true;
|
|
309
|
+
}
|
|
296
310
|
readRepairLadder(projectKey = this.project.key) {
|
|
297
311
|
return this.readOnly((db) => new Map(db.prepare("SELECT fault,attempts,next_at,detail,updated_at FROM repair_ladder WHERE project_key=?").all(projectKey).map((row) => [row.fault, { attempts: Number(row.attempts), nextAt: Number(row.next_at), detail: row.detail, updatedAt: Number(row.updated_at) }])));
|
|
298
312
|
}
|
|
@@ -361,6 +375,11 @@ var LcmLedger = class {
|
|
|
361
375
|
if (version < 3 || this.db.prepare("PRAGMA foreign_key_list(summary_edges)").all().length === 0) this.migrations.push(this.migrateDerivedForeignKeys());
|
|
362
376
|
if (version !== LEDGER_SCHEMA_VERSION) this.db.prepare("INSERT INTO schema_metadata(key,value) VALUES('version',?) ON CONFLICT(key) DO UPDATE SET value=excluded.value").run(String(LEDGER_SCHEMA_VERSION));
|
|
363
377
|
}
|
|
378
|
+
ensureFtsObjects() {
|
|
379
|
+
if (!this.fts) return;
|
|
380
|
+
this.db.exec("CREATE VIRTUAL TABLE IF NOT EXISTS raw_entries_fts USING fts5(content, project_key UNINDEXED, session_id UNINDEXED, entry_id UNINDEXED, revision UNINDEXED)");
|
|
381
|
+
this.db.exec("CREATE TRIGGER IF NOT EXISTS raw_entries_fts_insert AFTER INSERT ON raw_entries BEGIN INSERT INTO raw_entries_fts(content,project_key,session_id,entry_id,revision) VALUES(new.content,new.project_key,new.session_id,new.entry_id,new.revision); END");
|
|
382
|
+
}
|
|
364
383
|
migrateFullTextIndex() {
|
|
365
384
|
if (!this.fts) {
|
|
366
385
|
this.db.exec("DROP TRIGGER IF EXISTS raw_entries_fts_insert");
|
|
@@ -368,8 +387,7 @@ var LcmLedger = class {
|
|
|
368
387
|
}
|
|
369
388
|
let indexed = 0;
|
|
370
389
|
this.transaction((db) => {
|
|
371
|
-
|
|
372
|
-
db.exec("CREATE TRIGGER IF NOT EXISTS raw_entries_fts_insert AFTER INSERT ON raw_entries BEGIN INSERT INTO raw_entries_fts(content,project_key,session_id,entry_id,revision) VALUES(new.content,new.project_key,new.session_id,new.entry_id,new.revision); END");
|
|
390
|
+
this.ensureFtsObjects();
|
|
373
391
|
indexed = Number(db.prepare("SELECT count(*) n FROM raw_entries").get().n);
|
|
374
392
|
if (Number(db.prepare("SELECT count(*) n FROM raw_entries_fts").get().n) === indexed) return;
|
|
375
393
|
db.exec("DELETE FROM raw_entries_fts");
|
|
@@ -1804,6 +1822,12 @@ var LcmRuntime = class {
|
|
|
1804
1822
|
}
|
|
1805
1823
|
});
|
|
1806
1824
|
}
|
|
1825
|
+
get ready() {
|
|
1826
|
+
return this.ledger.startupChecksComplete;
|
|
1827
|
+
}
|
|
1828
|
+
open() {
|
|
1829
|
+
this.ledger.runStartupChecks();
|
|
1830
|
+
}
|
|
1807
1831
|
get options() {
|
|
1808
1832
|
return this.resolveOptions();
|
|
1809
1833
|
}
|