latticesql 4.3.7 → 4.3.8

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/cli.js CHANGED
@@ -58419,8 +58419,18 @@ init_adapter();
58419
58419
  var DELETED_AT_SENTINEL = "internal:upgrade:deleted-at-empty-to-null:v1";
58420
58420
  var FILES_PATH_SENTINEL = "internal:upgrade:files-path-to-local-ref:v1";
58421
58421
  async function upgradeLegacyData(db) {
58422
- await normalizeEmptyDeletedAt(db);
58423
- await backfillFilesPath(db);
58422
+ await runUpgradeStep("deleted_at normalization", () => normalizeEmptyDeletedAt(db));
58423
+ await runUpgradeStep("files path backfill", () => backfillFilesPath(db));
58424
+ }
58425
+ async function runUpgradeStep(name, fn) {
58426
+ try {
58427
+ await fn();
58428
+ } catch (err) {
58429
+ const msg = err instanceof Error ? err.message : String(err);
58430
+ console.warn(
58431
+ `[lattice] open-time data upgrade step "${name}" skipped (will retry on next open): ${msg}`
58432
+ );
58433
+ }
58424
58434
  }
58425
58435
  async function tablesWithDeletedAt(db) {
58426
58436
  if (db.getDialect() === "postgres") {
@@ -58493,23 +58503,18 @@ END $LATTICE_DAU$;`
58493
58503
  });
58494
58504
  if (migrations.length > 0) await db.migrate(migrations);
58495
58505
  }
58496
- async function filesTableHasPath(db) {
58497
- if (db.getDialect() === "postgres") {
58498
- const rows2 = await allAsyncOrSync(
58499
- db.adapter,
58500
- `SELECT 1 AS x FROM information_schema.columns
58501
- WHERE table_schema = current_schema() AND table_name = 'files' AND column_name = 'path'`
58502
- );
58503
- return rows2.length > 0;
58504
- }
58505
- const rows = await allAsyncOrSync(
58506
- db.adapter,
58507
- `SELECT 1 AS x FROM pragma_table_info('files') WHERE name = 'path'`
58508
- );
58509
- return rows.length > 0;
58506
+ async function filesColumns(db) {
58507
+ const sql = db.getDialect() === "postgres" ? `SELECT column_name AS name FROM information_schema.columns
58508
+ WHERE table_schema = current_schema() AND table_name = 'files'` : `SELECT name FROM pragma_table_info('files')`;
58509
+ const rows = await allAsyncOrSync(db.adapter, sql);
58510
+ return new Set(rows.map((r6) => r6.name));
58510
58511
  }
58511
58512
  async function backfillFilesPath(db) {
58512
- if (!await filesTableHasPath(db)) return;
58513
+ const cols = await filesColumns(db);
58514
+ if (!cols.has("path")) return;
58515
+ for (const col of ["ref_kind", "ref_uri", "ref_provider", "blob_path"]) {
58516
+ if (!cols.has(col)) await addColumnAsyncOrSync(db.adapter, "files", col, "TEXT");
58517
+ }
58513
58518
  await db.migrate([
58514
58519
  {
58515
58520
  version: FILES_PATH_SENTINEL,
@@ -82132,7 +82137,7 @@ function printHelp() {
82132
82137
  );
82133
82138
  }
82134
82139
  function getVersion() {
82135
- if (true) return "4.3.7";
82140
+ if (true) return "4.3.8";
82136
82141
  try {
82137
82142
  const pkgPath = new URL("../package.json", import.meta.url).pathname;
82138
82143
  const pkg = JSON.parse(readFileSync26(pkgPath, "utf-8"));
@@ -58113,8 +58113,18 @@ init_adapter();
58113
58113
  var DELETED_AT_SENTINEL = "internal:upgrade:deleted-at-empty-to-null:v1";
58114
58114
  var FILES_PATH_SENTINEL = "internal:upgrade:files-path-to-local-ref:v1";
58115
58115
  async function upgradeLegacyData(db) {
58116
- await normalizeEmptyDeletedAt(db);
58117
- await backfillFilesPath(db);
58116
+ await runUpgradeStep("deleted_at normalization", () => normalizeEmptyDeletedAt(db));
58117
+ await runUpgradeStep("files path backfill", () => backfillFilesPath(db));
58118
+ }
58119
+ async function runUpgradeStep(name, fn) {
58120
+ try {
58121
+ await fn();
58122
+ } catch (err) {
58123
+ const msg = err instanceof Error ? err.message : String(err);
58124
+ console.warn(
58125
+ `[lattice] open-time data upgrade step "${name}" skipped (will retry on next open): ${msg}`
58126
+ );
58127
+ }
58118
58128
  }
58119
58129
  async function tablesWithDeletedAt(db) {
58120
58130
  if (db.getDialect() === "postgres") {
@@ -58187,23 +58197,18 @@ END $LATTICE_DAU$;`
58187
58197
  });
58188
58198
  if (migrations.length > 0) await db.migrate(migrations);
58189
58199
  }
58190
- async function filesTableHasPath(db) {
58191
- if (db.getDialect() === "postgres") {
58192
- const rows2 = await allAsyncOrSync(
58193
- db.adapter,
58194
- `SELECT 1 AS x FROM information_schema.columns
58195
- WHERE table_schema = current_schema() AND table_name = 'files' AND column_name = 'path'`
58196
- );
58197
- return rows2.length > 0;
58198
- }
58199
- const rows = await allAsyncOrSync(
58200
- db.adapter,
58201
- `SELECT 1 AS x FROM pragma_table_info('files') WHERE name = 'path'`
58202
- );
58203
- return rows.length > 0;
58200
+ async function filesColumns(db) {
58201
+ const sql = db.getDialect() === "postgres" ? `SELECT column_name AS name FROM information_schema.columns
58202
+ WHERE table_schema = current_schema() AND table_name = 'files'` : `SELECT name FROM pragma_table_info('files')`;
58203
+ const rows = await allAsyncOrSync(db.adapter, sql);
58204
+ return new Set(rows.map((r6) => r6.name));
58204
58205
  }
58205
58206
  async function backfillFilesPath(db) {
58206
- if (!await filesTableHasPath(db)) return;
58207
+ const cols = await filesColumns(db);
58208
+ if (!cols.has("path")) return;
58209
+ for (const col of ["ref_kind", "ref_uri", "ref_provider", "blob_path"]) {
58210
+ if (!cols.has(col)) await addColumnAsyncOrSync(db.adapter, "files", col, "TEXT");
58211
+ }
58207
58212
  await db.migrate([
58208
58213
  {
58209
58214
  version: FILES_PATH_SENTINEL,
@@ -81710,7 +81715,7 @@ ${e6.stack ?? ""}`
81710
81715
  }
81711
81716
 
81712
81717
  // src/desktop-entry.ts
81713
- var VERSION2 = true ? "4.3.7" : "unknown";
81718
+ var VERSION2 = true ? "4.3.8" : "unknown";
81714
81719
  export {
81715
81720
  VERSION2 as VERSION,
81716
81721
  ensureRootForGui,
package/dist/index.cjs CHANGED
@@ -62650,8 +62650,18 @@ init_adapter();
62650
62650
  var DELETED_AT_SENTINEL = "internal:upgrade:deleted-at-empty-to-null:v1";
62651
62651
  var FILES_PATH_SENTINEL = "internal:upgrade:files-path-to-local-ref:v1";
62652
62652
  async function upgradeLegacyData(db) {
62653
- await normalizeEmptyDeletedAt(db);
62654
- await backfillFilesPath(db);
62653
+ await runUpgradeStep("deleted_at normalization", () => normalizeEmptyDeletedAt(db));
62654
+ await runUpgradeStep("files path backfill", () => backfillFilesPath(db));
62655
+ }
62656
+ async function runUpgradeStep(name, fn) {
62657
+ try {
62658
+ await fn();
62659
+ } catch (err) {
62660
+ const msg = err instanceof Error ? err.message : String(err);
62661
+ console.warn(
62662
+ `[lattice] open-time data upgrade step "${name}" skipped (will retry on next open): ${msg}`
62663
+ );
62664
+ }
62655
62665
  }
62656
62666
  async function tablesWithDeletedAt(db) {
62657
62667
  if (db.getDialect() === "postgres") {
@@ -62724,23 +62734,18 @@ END $LATTICE_DAU$;`
62724
62734
  });
62725
62735
  if (migrations.length > 0) await db.migrate(migrations);
62726
62736
  }
62727
- async function filesTableHasPath(db) {
62728
- if (db.getDialect() === "postgres") {
62729
- const rows2 = await allAsyncOrSync(
62730
- db.adapter,
62731
- `SELECT 1 AS x FROM information_schema.columns
62732
- WHERE table_schema = current_schema() AND table_name = 'files' AND column_name = 'path'`
62733
- );
62734
- return rows2.length > 0;
62735
- }
62736
- const rows = await allAsyncOrSync(
62737
- db.adapter,
62738
- `SELECT 1 AS x FROM pragma_table_info('files') WHERE name = 'path'`
62739
- );
62740
- return rows.length > 0;
62737
+ async function filesColumns(db) {
62738
+ const sql = db.getDialect() === "postgres" ? `SELECT column_name AS name FROM information_schema.columns
62739
+ WHERE table_schema = current_schema() AND table_name = 'files'` : `SELECT name FROM pragma_table_info('files')`;
62740
+ const rows = await allAsyncOrSync(db.adapter, sql);
62741
+ return new Set(rows.map((r6) => r6.name));
62741
62742
  }
62742
62743
  async function backfillFilesPath(db) {
62743
- if (!await filesTableHasPath(db)) return;
62744
+ const cols = await filesColumns(db);
62745
+ if (!cols.has("path")) return;
62746
+ for (const col of ["ref_kind", "ref_uri", "ref_provider", "blob_path"]) {
62747
+ if (!cols.has(col)) await addColumnAsyncOrSync(db.adapter, "files", col, "TEXT");
62748
+ }
62744
62749
  await db.migrate([
62745
62750
  {
62746
62751
  version: FILES_PATH_SENTINEL,
package/dist/index.js CHANGED
@@ -62350,8 +62350,18 @@ init_adapter();
62350
62350
  var DELETED_AT_SENTINEL = "internal:upgrade:deleted-at-empty-to-null:v1";
62351
62351
  var FILES_PATH_SENTINEL = "internal:upgrade:files-path-to-local-ref:v1";
62352
62352
  async function upgradeLegacyData(db) {
62353
- await normalizeEmptyDeletedAt(db);
62354
- await backfillFilesPath(db);
62353
+ await runUpgradeStep("deleted_at normalization", () => normalizeEmptyDeletedAt(db));
62354
+ await runUpgradeStep("files path backfill", () => backfillFilesPath(db));
62355
+ }
62356
+ async function runUpgradeStep(name, fn) {
62357
+ try {
62358
+ await fn();
62359
+ } catch (err) {
62360
+ const msg = err instanceof Error ? err.message : String(err);
62361
+ console.warn(
62362
+ `[lattice] open-time data upgrade step "${name}" skipped (will retry on next open): ${msg}`
62363
+ );
62364
+ }
62355
62365
  }
62356
62366
  async function tablesWithDeletedAt(db) {
62357
62367
  if (db.getDialect() === "postgres") {
@@ -62424,23 +62434,18 @@ END $LATTICE_DAU$;`
62424
62434
  });
62425
62435
  if (migrations.length > 0) await db.migrate(migrations);
62426
62436
  }
62427
- async function filesTableHasPath(db) {
62428
- if (db.getDialect() === "postgres") {
62429
- const rows2 = await allAsyncOrSync(
62430
- db.adapter,
62431
- `SELECT 1 AS x FROM information_schema.columns
62432
- WHERE table_schema = current_schema() AND table_name = 'files' AND column_name = 'path'`
62433
- );
62434
- return rows2.length > 0;
62435
- }
62436
- const rows = await allAsyncOrSync(
62437
- db.adapter,
62438
- `SELECT 1 AS x FROM pragma_table_info('files') WHERE name = 'path'`
62439
- );
62440
- return rows.length > 0;
62437
+ async function filesColumns(db) {
62438
+ const sql = db.getDialect() === "postgres" ? `SELECT column_name AS name FROM information_schema.columns
62439
+ WHERE table_schema = current_schema() AND table_name = 'files'` : `SELECT name FROM pragma_table_info('files')`;
62440
+ const rows = await allAsyncOrSync(db.adapter, sql);
62441
+ return new Set(rows.map((r6) => r6.name));
62441
62442
  }
62442
62443
  async function backfillFilesPath(db) {
62443
- if (!await filesTableHasPath(db)) return;
62444
+ const cols = await filesColumns(db);
62445
+ if (!cols.has("path")) return;
62446
+ for (const col of ["ref_kind", "ref_uri", "ref_provider", "blob_path"]) {
62447
+ if (!cols.has(col)) await addColumnAsyncOrSync(db.adapter, "files", col, "TEXT");
62448
+ }
62444
62449
  await db.migrate([
62445
62450
  {
62446
62451
  version: FILES_PATH_SENTINEL,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "latticesql",
3
- "version": "4.3.7",
3
+ "version": "4.3.8",
4
4
  "description": "Persistent structured memory for AI agent systems — pluggable SQLite or Postgres backend, LLM context bridge",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",