@inerrata-corporation/errata 2.0.22-dev.4630 → 2.0.22-dev.4638

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/errata.mjs CHANGED
@@ -35651,7 +35651,8 @@ function readContextCard(root, hash2) {
35651
35651
  }
35652
35652
  function openProblemCount(store, now = Date.now()) {
35653
35653
  const hit = openProblemsCache.get(store);
35654
- if (hit && now - hit.at < OPEN_PROBLEMS_TTL_MS) return hit.count;
35654
+ const seq = store.changeSeq?.(OPEN_PROBLEM_SCOPES);
35655
+ if (hit && (seq !== void 0 ? hit.seq === seq : now - hit.at < OPEN_PROBLEMS_TTL_MS)) return hit.count;
35655
35656
  let count = 0;
35656
35657
  const labels = ["Problem", "Vulnerability"];
35657
35658
  const plain = store.selectNodes({
@@ -35676,10 +35677,10 @@ function openProblemCount(store, now = Date.now()) {
35676
35677
  for (const p of [...plain, ...qualified]) {
35677
35678
  if (live(p) && !p.attrs["resolvedAt"] && !isConstraintProblem(p)) count++;
35678
35679
  }
35679
- openProblemsCache.set(store, { at: now, count });
35680
+ openProblemsCache.set(store, { at: now, count, ...seq !== void 0 ? { seq } : {} });
35680
35681
  return count;
35681
35682
  }
35682
- var CONTEXT_CARD_FILE, OPEN_PROBLEMS_TTL_MS, openProblemsCache, OPEN_PROBLEM_ATTRS, HISTORY_QUALITY_READ_KEYS;
35683
+ var CONTEXT_CARD_FILE, OPEN_PROBLEMS_TTL_MS, openProblemsCache, OPEN_PROBLEM_SCOPES, OPEN_PROBLEM_ATTRS, HISTORY_QUALITY_READ_KEYS;
35683
35684
  var init_recall_signal = __esm({
35684
35685
  "src/recall-signal.ts"() {
35685
35686
  "use strict";
@@ -35689,6 +35690,7 @@ var init_recall_signal = __esm({
35689
35690
  CONTEXT_CARD_FILE = "context-card.json";
35690
35691
  OPEN_PROBLEMS_TTL_MS = 6e4;
35691
35692
  openProblemsCache = /* @__PURE__ */ new WeakMap();
35693
+ OPEN_PROBLEM_SCOPES = [nodeScope("Problem"), nodeScope("Vulnerability")];
35692
35694
  OPEN_PROBLEM_ATTRS = [
35693
35695
  "resolvedAt",
35694
35696
  "kind",
@@ -38964,6 +38966,7 @@ async function runIndexer(store, opts) {
38964
38966
  const maxBytes = opts.maxFileBytes ?? 1024 * 1024;
38965
38967
  const scope = opts.changedRelPaths;
38966
38968
  const inScope = (relPath) => scope === void 0 || scope.has(relPath) || isReExportBarrel(relPath);
38969
+ const emits = (relPath) => scope === void 0 || scope.has(relPath);
38967
38970
  let perfLast = started2;
38968
38971
  const perfFile = process.env["ERRATA_PERF"];
38969
38972
  const perf = (label) => {
@@ -39015,7 +39018,7 @@ async function runIndexer(store, opts) {
39015
39018
  upsertFolder(store, rootId, ".", opts.workspaceId, rootRel);
39016
39019
  report.nodesEmitted++;
39017
39020
  for (const f of files) {
39018
- if (!inScope(f.relPath)) continue;
39021
+ if (!emits(f.relPath)) continue;
39019
39022
  const segments = f.relPath.split(/[\\/]/).slice(0, -1);
39020
39023
  let parentId = rootId;
39021
39024
  let acc = "";
@@ -39270,6 +39273,7 @@ async function runIndexer(store, opts) {
39270
39273
  const providerByRel = new Map(files.map((x) => [x.relPath, x.provider]));
39271
39274
  let emittedFiles = 0;
39272
39275
  for (const [relPath, symbols] of symbolsByFile) {
39276
+ if (!emits(relPath)) continue;
39273
39277
  if (emittedFiles > 0 && emittedFiles % 50 === 0) {
39274
39278
  await new Promise((r) => setImmediate(r));
39275
39279
  }
@@ -39489,6 +39493,7 @@ async function runIndexer(store, opts) {
39489
39493
  }
39490
39494
  perf("flush cross-file edges");
39491
39495
  for (const relPath of symbolsByFile.keys()) {
39496
+ if (!emits(relPath)) continue;
39492
39497
  const fid = fileNodeId(opts.workspaceId, relPath);
39493
39498
  if (store.outEdges(fid, ["DEFINES", "CONTAINS"]).length === 0) {
39494
39499
  stampIndexOutcome(store, fid, { symbolCount: 0 });
@@ -86856,7 +86861,7 @@ function createWatchBreaker(deps) {
86856
86861
  }
86857
86862
 
86858
86863
  // src/engine.ts
86859
- var DAEMON_VERSION = true ? "2.0.22-dev.4630" : "2.0.0-alpha.0";
86864
+ var DAEMON_VERSION = true ? "2.0.22-dev.4638" : "2.0.0-alpha.0";
86860
86865
  var IGNORED_PATH = /[\\/](?:\.git|node_modules|\.errata|\.claude|\.codex|\.cursor|\.turbo|\.next|dist|coverage|test-results|playwright-report|__pycache__)(?:[\\/]|$)/;
86861
86866
  var IGNORED_NOISE = /castalia\.db|eventlog\.sqlite|turn-cursors/;
86862
86867
  var GIT_OP_MUTE_MS = 4e3;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@inerrata-corporation/errata",
3
- "version": "2.0.22-dev.4630",
3
+ "version": "2.0.22-dev.4638",
4
4
  "description": "errata - local-first observation engine for AI coding agents",
5
5
  "type": "module",
6
6
  "bin": {
package/pass-worker.mjs CHANGED
@@ -17771,6 +17771,7 @@ async function runIndexer(store2, opts) {
17771
17771
  const maxBytes = opts.maxFileBytes ?? 1024 * 1024;
17772
17772
  const scope = opts.changedRelPaths;
17773
17773
  const inScope = (relPath) => scope === void 0 || scope.has(relPath) || isReExportBarrel(relPath);
17774
+ const emits = (relPath) => scope === void 0 || scope.has(relPath);
17774
17775
  let perfLast = started;
17775
17776
  const perfFile = process.env["ERRATA_PERF"];
17776
17777
  const perf = (label) => {
@@ -17822,7 +17823,7 @@ async function runIndexer(store2, opts) {
17822
17823
  upsertFolder(store2, rootId, ".", opts.workspaceId, rootRel);
17823
17824
  report.nodesEmitted++;
17824
17825
  for (const f of files) {
17825
- if (!inScope(f.relPath)) continue;
17826
+ if (!emits(f.relPath)) continue;
17826
17827
  const segments = f.relPath.split(/[\\/]/).slice(0, -1);
17827
17828
  let parentId = rootId;
17828
17829
  let acc = "";
@@ -18077,6 +18078,7 @@ async function runIndexer(store2, opts) {
18077
18078
  const providerByRel = new Map(files.map((x) => [x.relPath, x.provider]));
18078
18079
  let emittedFiles = 0;
18079
18080
  for (const [relPath, symbols] of symbolsByFile) {
18081
+ if (!emits(relPath)) continue;
18080
18082
  if (emittedFiles > 0 && emittedFiles % 50 === 0) {
18081
18083
  await new Promise((r) => setImmediate(r));
18082
18084
  }
@@ -18296,6 +18298,7 @@ async function runIndexer(store2, opts) {
18296
18298
  }
18297
18299
  perf("flush cross-file edges");
18298
18300
  for (const relPath of symbolsByFile.keys()) {
18301
+ if (!emits(relPath)) continue;
18299
18302
  const fid = fileNodeId(opts.workspaceId, relPath);
18300
18303
  if (store2.outEdges(fid, ["DEFINES", "CONTAINS"]).length === 0) {
18301
18304
  stampIndexOutcome(store2, fid, { symbolCount: 0 });
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "errata-context",
3
- "version": "2.0.22-dev.4630",
3
+ "version": "2.0.22-dev.4638",
4
4
  "description": "A minimal 3D view of loaded Errata priors and recent graph bursts.",
5
5
  "author": {
6
6
  "name": "inErrata"
@@ -1,4 +1,4 @@
1
- c1fadeab6f8e468c4a68d145040bb552c2a78a8506e06fa9fc87e3f8fd6eef10 .codex-plugin/plugin.json
1
+ 16485de5505d71b8dbb138984d557208bdfde9d8bf52baff33f96a477df65145 .codex-plugin/plugin.json
2
2
  a7bebae9fb01c838d6c75fc784129e28be571233fa66ff5ee8039b574f35ccf7 assets/icon.png
3
3
  fc38b64e4df1e0b72c35764bef6c4c05430d97c9009ad0ecc8a9e75b4deab232 configure-local.mjs
4
4
  73dc6028b3b070257c7c31f252d11e55a9e096f4aed0f187f10cb21716e1e6d7 dist/client.js