@inerrata-corporation/errata 2.0.14-dev.3165 → 2.0.14-dev.3228

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.
@@ -15735,6 +15735,13 @@ var init_triage_canon = __esm({
15735
15735
  }
15736
15736
  });
15737
15737
 
15738
+ // ../../packages/shared/src/project-wire-attrs.ts
15739
+ var init_project_wire_attrs = __esm({
15740
+ "../../packages/shared/src/project-wire-attrs.ts"() {
15741
+ "use strict";
15742
+ }
15743
+ });
15744
+
15738
15745
  // ../../packages/shared/src/index.ts
15739
15746
  var init_src = __esm({
15740
15747
  "../../packages/shared/src/index.ts"() {
@@ -15764,6 +15771,7 @@ var init_src = __esm({
15764
15771
  init_taxonomy();
15765
15772
  init_triage_canon();
15766
15773
  init_history_text();
15774
+ init_project_wire_attrs();
15767
15775
  }
15768
15776
  });
15769
15777
 
@@ -16144,9 +16152,10 @@ init_src();
16144
16152
 
16145
16153
  // ../../packages/local-graph/src/history-cache-floor.ts
16146
16154
  function installHistoryCacheFloor(db) {
16147
- const key = "history-cache-withdrawal-floor-2";
16155
+ const key = "history-cache-withdrawal-floor-3";
16148
16156
  if (db.prepare("SELECT value FROM store_meta WHERE key = ?").get(key)) return;
16149
16157
  db.transaction(() => {
16158
+ db.exec("DROP TRIGGER IF EXISTS history_cache_nodes_insert; DROP TRIGGER IF EXISTS history_cache_nodes_update;");
16150
16159
  if (db.prepare("SELECT value FROM store_meta WHERE key = ?").get("history-cache-withdrawal-floor-1")) {
16151
16160
  db.exec("DROP INDEX IF EXISTS nodes_cloud_id");
16152
16161
  }
@@ -16164,9 +16173,10 @@ function installHistoryCacheFloor(db) {
16164
16173
  `);
16165
16174
  const lookup = (field) => `(SELECT ${field} FROM history_cache_withdrawals w WHERE w.id = nodes.id)`;
16166
16175
  const privacy = `coalesce(${lookup("privacy")}, 0)`;
16167
- const description = `CASE WHEN ${privacy} THEN 'History source withdrawn.' ELSE description END`;
16176
+ const source = `coalesce(json_extract(attrs_json, '$.extractionSource'), extraction_source)`;
16177
+ const description = `CASE WHEN ${privacy} THEN CASE WHEN ${source} = 'history-mined' THEN 'History source withdrawn.' ELSE 'Cloud source withdrawn.' END ELSE description END`;
16168
16178
  const attrs = `CASE WHEN ${privacy} THEN json_object(
16169
- 'source', 'cloud', 'cloudNodeId', ${lookup("cloud_id")}, 'extractionSource', 'history-mined',
16179
+ 'source', 'cloud', 'cloudNodeId', ${lookup("cloud_id")}, 'extractionSource', ${source},
16170
16180
  'historyQuality', json_object('sourceSupport', 'quarantined', 'applicability', 'unknown'),
16171
16181
  'historyCorrectionSeq', ${lookup("seq")})
16172
16182
  ELSE json_set(json_remove(attrs_json, '$.embeddingVersion'),
@@ -16179,11 +16189,22 @@ function installHistoryCacheFloor(db) {
16179
16189
  OR EXISTS(SELECT 1 FROM history_cache_withdrawals w WHERE w.id = nodes.id))
16180
16190
  AND (embedding_blob IS NOT NULL OR embedding_json <> '[]' OR is_landmark <> 0
16181
16191
  OR description <> ${description} OR attrs_json <> ${attrs});`;
16192
+ const internal = `key IN ('orgId','teamId','groupId','projectId','aliasTexts','aliasCanonicalIds')
16193
+ OR key GLOB 'mergedFrom*' OR key GLOB '*WitnessKeys' OR key GLOB '*Sessions'
16194
+ OR key GLOB 'authoringSession*' OR key GLOB 'contributor*' OR key GLOB 'witnessKeys*'`;
16195
+ const stripMetadata = (scope) => `UPDATE nodes SET attrs_json=(
16196
+ SELECT json_group_object(key, CASE WHEN type IN ('array','object') THEN json(value)
16197
+ WHEN type IN ('true','false') THEN json(type) ELSE value END)
16198
+ FROM json_each(nodes.attrs_json) WHERE NOT (${internal}))
16199
+ WHERE (${scope}) AND json_extract(attrs_json,'$.source')='cloud'
16200
+ AND EXISTS(SELECT 1 FROM store_meta m WHERE m.key='history-correction:' || coalesce(json_extract(nodes.attrs_json,'$.cloudNodeId'),nodes.id) AND json_valid(m.value))
16201
+ AND EXISTS(SELECT 1 FROM json_each(nodes.attrs_json) WHERE ${internal});`;
16182
16202
  for (const operation of ["INSERT", "UPDATE"]) {
16183
16203
  db.exec(`CREATE TRIGGER IF NOT EXISTS history_cache_nodes_${operation.toLowerCase()}
16184
- AFTER ${operation} ON nodes BEGIN ${repair("id = NEW.id")} END;`);
16204
+ AFTER ${operation} ON nodes BEGIN ${repair("id = NEW.id")} ${stripMetadata("id = NEW.id")} END;`);
16185
16205
  }
16186
16206
  db.exec(repair("json_extract(attrs_json, '$.source') = 'cloud' OR json_extract(attrs_json, '$.historyQuality.sourceSupport') IN ('quarantined','contradicted')"));
16207
+ db.exec(stripMetadata("1=1"));
16187
16208
  db.prepare("INSERT INTO store_meta(key,value) VALUES (?,?)").run(key, "installed");
16188
16209
  });
16189
16210
  }
package/errata.mjs CHANGED
@@ -17278,6 +17278,18 @@ var init_triage_canon = __esm({
17278
17278
  }
17279
17279
  });
17280
17280
 
17281
+ // ../../packages/shared/src/project-wire-attrs.ts
17282
+ function projectWireAttrs(obj) {
17283
+ return Object.fromEntries(Object.entries(obj).filter(
17284
+ ([key]) => !/^(?:orgId|teamId|groupId|projectId|aliasTexts|aliasCanonicalIds|mergedFrom.*|.*WitnessKeys|.*Sessions|authoringSession.*|contributor.*|witnessKeys.*)$/.test(key)
17285
+ ));
17286
+ }
17287
+ var init_project_wire_attrs = __esm({
17288
+ "../../packages/shared/src/project-wire-attrs.ts"() {
17289
+ "use strict";
17290
+ }
17291
+ });
17292
+
17281
17293
  // ../../packages/shared/src/index.ts
17282
17294
  var src_exports = {};
17283
17295
  __export(src_exports, {
@@ -17437,6 +17449,7 @@ __export(src_exports, {
17437
17449
  problemIdFromError: () => problemIdFromError,
17438
17450
  projectSaltedNodeId: () => projectSaltedNodeId,
17439
17451
  projectSymbolId: () => projectSymbolId,
17452
+ projectWireAttrs: () => projectWireAttrs,
17440
17453
  provenanceBand: () => provenanceBand,
17441
17454
  resolveCanonical: () => resolveCanonical,
17442
17455
  resolveCanonicalId: () => resolveCanonicalId,
@@ -17491,6 +17504,7 @@ var init_src = __esm({
17491
17504
  init_taxonomy();
17492
17505
  init_triage_canon();
17493
17506
  init_history_text();
17507
+ init_project_wire_attrs();
17494
17508
  }
17495
17509
  });
17496
17510
 
@@ -17918,9 +17932,10 @@ var init_src2 = __esm({
17918
17932
 
17919
17933
  // ../../packages/local-graph/src/history-cache-floor.ts
17920
17934
  function installHistoryCacheFloor(db) {
17921
- const key = "history-cache-withdrawal-floor-2";
17935
+ const key = "history-cache-withdrawal-floor-3";
17922
17936
  if (db.prepare("SELECT value FROM store_meta WHERE key = ?").get(key)) return;
17923
17937
  db.transaction(() => {
17938
+ db.exec("DROP TRIGGER IF EXISTS history_cache_nodes_insert; DROP TRIGGER IF EXISTS history_cache_nodes_update;");
17924
17939
  if (db.prepare("SELECT value FROM store_meta WHERE key = ?").get("history-cache-withdrawal-floor-1")) {
17925
17940
  db.exec("DROP INDEX IF EXISTS nodes_cloud_id");
17926
17941
  }
@@ -17938,9 +17953,10 @@ function installHistoryCacheFloor(db) {
17938
17953
  `);
17939
17954
  const lookup = (field) => `(SELECT ${field} FROM history_cache_withdrawals w WHERE w.id = nodes.id)`;
17940
17955
  const privacy = `coalesce(${lookup("privacy")}, 0)`;
17941
- const description = `CASE WHEN ${privacy} THEN 'History source withdrawn.' ELSE description END`;
17956
+ const source = `coalesce(json_extract(attrs_json, '$.extractionSource'), extraction_source)`;
17957
+ const description = `CASE WHEN ${privacy} THEN CASE WHEN ${source} = 'history-mined' THEN 'History source withdrawn.' ELSE 'Cloud source withdrawn.' END ELSE description END`;
17942
17958
  const attrs = `CASE WHEN ${privacy} THEN json_object(
17943
- 'source', 'cloud', 'cloudNodeId', ${lookup("cloud_id")}, 'extractionSource', 'history-mined',
17959
+ 'source', 'cloud', 'cloudNodeId', ${lookup("cloud_id")}, 'extractionSource', ${source},
17944
17960
  'historyQuality', json_object('sourceSupport', 'quarantined', 'applicability', 'unknown'),
17945
17961
  'historyCorrectionSeq', ${lookup("seq")})
17946
17962
  ELSE json_set(json_remove(attrs_json, '$.embeddingVersion'),
@@ -17953,11 +17969,22 @@ function installHistoryCacheFloor(db) {
17953
17969
  OR EXISTS(SELECT 1 FROM history_cache_withdrawals w WHERE w.id = nodes.id))
17954
17970
  AND (embedding_blob IS NOT NULL OR embedding_json <> '[]' OR is_landmark <> 0
17955
17971
  OR description <> ${description} OR attrs_json <> ${attrs});`;
17972
+ const internal = `key IN ('orgId','teamId','groupId','projectId','aliasTexts','aliasCanonicalIds')
17973
+ OR key GLOB 'mergedFrom*' OR key GLOB '*WitnessKeys' OR key GLOB '*Sessions'
17974
+ OR key GLOB 'authoringSession*' OR key GLOB 'contributor*' OR key GLOB 'witnessKeys*'`;
17975
+ const stripMetadata = (scope) => `UPDATE nodes SET attrs_json=(
17976
+ SELECT json_group_object(key, CASE WHEN type IN ('array','object') THEN json(value)
17977
+ WHEN type IN ('true','false') THEN json(type) ELSE value END)
17978
+ FROM json_each(nodes.attrs_json) WHERE NOT (${internal}))
17979
+ WHERE (${scope}) AND json_extract(attrs_json,'$.source')='cloud'
17980
+ AND EXISTS(SELECT 1 FROM store_meta m WHERE m.key='history-correction:' || coalesce(json_extract(nodes.attrs_json,'$.cloudNodeId'),nodes.id) AND json_valid(m.value))
17981
+ AND EXISTS(SELECT 1 FROM json_each(nodes.attrs_json) WHERE ${internal});`;
17956
17982
  for (const operation of ["INSERT", "UPDATE"]) {
17957
17983
  db.exec(`CREATE TRIGGER IF NOT EXISTS history_cache_nodes_${operation.toLowerCase()}
17958
- AFTER ${operation} ON nodes BEGIN ${repair("id = NEW.id")} END;`);
17984
+ AFTER ${operation} ON nodes BEGIN ${repair("id = NEW.id")} ${stripMetadata("id = NEW.id")} END;`);
17959
17985
  }
17960
17986
  db.exec(repair("json_extract(attrs_json, '$.source') = 'cloud' OR json_extract(attrs_json, '$.historyQuality.sourceSupport') IN ('quarantined','contradicted')"));
17987
+ db.exec(stripMetadata("1=1"));
17961
17988
  db.prepare("INSERT INTO store_meta(key,value) VALUES (?,?)").run(key, "installed");
17962
17989
  });
17963
17990
  }
@@ -81226,7 +81253,7 @@ function createWatchBreaker(deps) {
81226
81253
  }
81227
81254
 
81228
81255
  // src/engine.ts
81229
- var DAEMON_VERSION = true ? "2.0.14-dev.3165" : "2.0.0-alpha.0";
81256
+ var DAEMON_VERSION = true ? "2.0.14-dev.3228" : "2.0.0-alpha.0";
81230
81257
  var IGNORED_PATH = /[\\/](?:\.git|node_modules|\.errata|\.claude|\.codex|\.cursor|\.turbo|\.next|dist|coverage|test-results|playwright-report|__pycache__)(?:[\\/]|$)/;
81231
81258
  var IGNORED_NOISE = /castalia\.db|eventlog\.sqlite|turn-cursors/;
81232
81259
  var GIT_OP_MUTE_MS = 4e3;
@@ -85267,6 +85294,7 @@ init_src11();
85267
85294
  init_profile2();
85268
85295
 
85269
85296
  // src/history-corrections.ts
85297
+ init_src();
85270
85298
  init_profile2();
85271
85299
  function applyHistoryCorrections(store, page) {
85272
85300
  let changed = 0;
@@ -85281,15 +85309,16 @@ function applyHistoryCorrections(store, page) {
85281
85309
  for (const node2 of copies) {
85282
85310
  if (node2.attrs["source"] !== "cloud" || node2.attrs["cloudNodeId"] && node2.attrs["cloudNodeId"] !== correction.nodeId || Number(node2.attrs["historyCorrectionSeq"] ?? 0) >= correction.seq) continue;
85283
85311
  const quality = { sourceSupport: correction.sourceSupport ?? (privacy ? "quarantined" : "unreviewed"), applicability: "unknown" };
85312
+ const historical = node2.extractionSource === "history-mined" || node2.attrs["extractionSource"] === "history-mined";
85284
85313
  store.mergeNode({
85285
85314
  ...node2,
85286
85315
  lastUpdatedAt: Date.now(),
85287
- ...privacy ? { description: "History source withdrawn.", embedding: [], isLandmark: false } : {},
85316
+ ...privacy ? { description: historical ? "History source withdrawn." : "Cloud source withdrawn.", embedding: [], isLandmark: false } : {},
85288
85317
  attrs: {
85289
- ...privacy ? {} : node2.attrs,
85318
+ ...privacy ? {} : projectWireAttrs(node2.attrs),
85290
85319
  source: "cloud",
85291
85320
  cloudNodeId: correction.nodeId,
85292
- extractionSource: "history-mined",
85321
+ extractionSource: node2.extractionSource,
85293
85322
  historyQuality: quality,
85294
85323
  historyCorrectionSeq: correction.seq
85295
85324
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@inerrata-corporation/errata",
3
- "version": "2.0.14-dev.3165",
3
+ "version": "2.0.14-dev.3228",
4
4
  "description": "errata - local-first observation engine for AI coding agents",
5
5
  "type": "module",
6
6
  "bin": {
package/pass-worker.mjs CHANGED
@@ -15537,6 +15537,13 @@ var init_triage_canon = __esm({
15537
15537
  }
15538
15538
  });
15539
15539
 
15540
+ // ../../packages/shared/src/project-wire-attrs.ts
15541
+ var init_project_wire_attrs = __esm({
15542
+ "../../packages/shared/src/project-wire-attrs.ts"() {
15543
+ "use strict";
15544
+ }
15545
+ });
15546
+
15540
15547
  // ../../packages/shared/src/index.ts
15541
15548
  var init_src = __esm({
15542
15549
  "../../packages/shared/src/index.ts"() {
@@ -15566,6 +15573,7 @@ var init_src = __esm({
15566
15573
  init_taxonomy();
15567
15574
  init_triage_canon();
15568
15575
  init_history_text();
15576
+ init_project_wire_attrs();
15569
15577
  }
15570
15578
  });
15571
15579
 
@@ -24561,9 +24569,10 @@ init_src();
24561
24569
 
24562
24570
  // ../../packages/local-graph/src/history-cache-floor.ts
24563
24571
  function installHistoryCacheFloor(db) {
24564
- const key = "history-cache-withdrawal-floor-2";
24572
+ const key = "history-cache-withdrawal-floor-3";
24565
24573
  if (db.prepare("SELECT value FROM store_meta WHERE key = ?").get(key)) return;
24566
24574
  db.transaction(() => {
24575
+ db.exec("DROP TRIGGER IF EXISTS history_cache_nodes_insert; DROP TRIGGER IF EXISTS history_cache_nodes_update;");
24567
24576
  if (db.prepare("SELECT value FROM store_meta WHERE key = ?").get("history-cache-withdrawal-floor-1")) {
24568
24577
  db.exec("DROP INDEX IF EXISTS nodes_cloud_id");
24569
24578
  }
@@ -24581,9 +24590,10 @@ function installHistoryCacheFloor(db) {
24581
24590
  `);
24582
24591
  const lookup = (field) => `(SELECT ${field} FROM history_cache_withdrawals w WHERE w.id = nodes.id)`;
24583
24592
  const privacy = `coalesce(${lookup("privacy")}, 0)`;
24584
- const description = `CASE WHEN ${privacy} THEN 'History source withdrawn.' ELSE description END`;
24593
+ const source = `coalesce(json_extract(attrs_json, '$.extractionSource'), extraction_source)`;
24594
+ const description = `CASE WHEN ${privacy} THEN CASE WHEN ${source} = 'history-mined' THEN 'History source withdrawn.' ELSE 'Cloud source withdrawn.' END ELSE description END`;
24585
24595
  const attrs = `CASE WHEN ${privacy} THEN json_object(
24586
- 'source', 'cloud', 'cloudNodeId', ${lookup("cloud_id")}, 'extractionSource', 'history-mined',
24596
+ 'source', 'cloud', 'cloudNodeId', ${lookup("cloud_id")}, 'extractionSource', ${source},
24587
24597
  'historyQuality', json_object('sourceSupport', 'quarantined', 'applicability', 'unknown'),
24588
24598
  'historyCorrectionSeq', ${lookup("seq")})
24589
24599
  ELSE json_set(json_remove(attrs_json, '$.embeddingVersion'),
@@ -24596,11 +24606,22 @@ function installHistoryCacheFloor(db) {
24596
24606
  OR EXISTS(SELECT 1 FROM history_cache_withdrawals w WHERE w.id = nodes.id))
24597
24607
  AND (embedding_blob IS NOT NULL OR embedding_json <> '[]' OR is_landmark <> 0
24598
24608
  OR description <> ${description} OR attrs_json <> ${attrs});`;
24609
+ const internal = `key IN ('orgId','teamId','groupId','projectId','aliasTexts','aliasCanonicalIds')
24610
+ OR key GLOB 'mergedFrom*' OR key GLOB '*WitnessKeys' OR key GLOB '*Sessions'
24611
+ OR key GLOB 'authoringSession*' OR key GLOB 'contributor*' OR key GLOB 'witnessKeys*'`;
24612
+ const stripMetadata = (scope) => `UPDATE nodes SET attrs_json=(
24613
+ SELECT json_group_object(key, CASE WHEN type IN ('array','object') THEN json(value)
24614
+ WHEN type IN ('true','false') THEN json(type) ELSE value END)
24615
+ FROM json_each(nodes.attrs_json) WHERE NOT (${internal}))
24616
+ WHERE (${scope}) AND json_extract(attrs_json,'$.source')='cloud'
24617
+ AND EXISTS(SELECT 1 FROM store_meta m WHERE m.key='history-correction:' || coalesce(json_extract(nodes.attrs_json,'$.cloudNodeId'),nodes.id) AND json_valid(m.value))
24618
+ AND EXISTS(SELECT 1 FROM json_each(nodes.attrs_json) WHERE ${internal});`;
24599
24619
  for (const operation of ["INSERT", "UPDATE"]) {
24600
24620
  db.exec(`CREATE TRIGGER IF NOT EXISTS history_cache_nodes_${operation.toLowerCase()}
24601
- AFTER ${operation} ON nodes BEGIN ${repair("id = NEW.id")} END;`);
24621
+ AFTER ${operation} ON nodes BEGIN ${repair("id = NEW.id")} ${stripMetadata("id = NEW.id")} END;`);
24602
24622
  }
24603
24623
  db.exec(repair("json_extract(attrs_json, '$.source') = 'cloud' OR json_extract(attrs_json, '$.historyQuality.sourceSupport') IN ('quarantined','contradicted')"));
24624
+ db.exec(stripMetadata("1=1"));
24604
24625
  db.prepare("INSERT INTO store_meta(key,value) VALUES (?,?)").run(key, "installed");
24605
24626
  });
24606
24627
  }