@inerrata-corporation/errata 2.0.22-dev.4629 → 2.0.22-dev.4635
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/consolidate-worker.mjs
CHANGED
|
@@ -17903,6 +17903,10 @@ CREATE INDEX IF NOT EXISTS edges_live_prior_tag ON edges(created_at) WHERE valid
|
|
|
17903
17903
|
-- incremental reindex can fetch just the changed files' symbols instead of
|
|
17904
17904
|
-- scanning every versioned node. Partial: only live rows are ever queried.
|
|
17905
17905
|
CREATE INDEX IF NOT EXISTS nodes_relpath ON nodes(json_extract(attrs_json, '$.relPath')) WHERE valid_to IS NULL;
|
|
17906
|
+
-- Closed rows by relPath, for reviveReobserved (every incremental reindex): the
|
|
17907
|
+
-- live-only index above cannot serve it, so it scanned the whole table (~275 MB
|
|
17908
|
+
-- of a 1.1 GB store per reindex, 2026-10-20).
|
|
17909
|
+
CREATE INDEX IF NOT EXISTS nodes_closed_relpath ON nodes(json_extract(attrs_json, '$.relPath'), last_updated_at) WHERE valid_to IS NOT NULL;
|
|
17906
17910
|
-- Live rows by name, for looking up the few symbols a statement mentions
|
|
17907
17911
|
-- instead of hydrating every code symbol per minted problem.
|
|
17908
17912
|
CREATE INDEX IF NOT EXISTS nodes_live_description ON nodes(description, label) WHERE valid_to IS NULL;
|
package/errata.mjs
CHANGED
|
@@ -20812,6 +20812,10 @@ CREATE INDEX IF NOT EXISTS edges_live_prior_tag ON edges(created_at) WHERE valid
|
|
|
20812
20812
|
-- incremental reindex can fetch just the changed files' symbols instead of
|
|
20813
20813
|
-- scanning every versioned node. Partial: only live rows are ever queried.
|
|
20814
20814
|
CREATE INDEX IF NOT EXISTS nodes_relpath ON nodes(json_extract(attrs_json, '$.relPath')) WHERE valid_to IS NULL;
|
|
20815
|
+
-- Closed rows by relPath, for reviveReobserved (every incremental reindex): the
|
|
20816
|
+
-- live-only index above cannot serve it, so it scanned the whole table (~275 MB
|
|
20817
|
+
-- of a 1.1 GB store per reindex, 2026-10-20).
|
|
20818
|
+
CREATE INDEX IF NOT EXISTS nodes_closed_relpath ON nodes(json_extract(attrs_json, '$.relPath'), last_updated_at) WHERE valid_to IS NOT NULL;
|
|
20815
20819
|
-- Live rows by name, for looking up the few symbols a statement mentions
|
|
20816
20820
|
-- instead of hydrating every code symbol per minted problem.
|
|
20817
20821
|
CREATE INDEX IF NOT EXISTS nodes_live_description ON nodes(description, label) WHERE valid_to IS NULL;
|
|
@@ -38960,6 +38964,7 @@ async function runIndexer(store, opts) {
|
|
|
38960
38964
|
const maxBytes = opts.maxFileBytes ?? 1024 * 1024;
|
|
38961
38965
|
const scope = opts.changedRelPaths;
|
|
38962
38966
|
const inScope = (relPath) => scope === void 0 || scope.has(relPath) || isReExportBarrel(relPath);
|
|
38967
|
+
const emits = (relPath) => scope === void 0 || scope.has(relPath);
|
|
38963
38968
|
let perfLast = started2;
|
|
38964
38969
|
const perfFile = process.env["ERRATA_PERF"];
|
|
38965
38970
|
const perf = (label) => {
|
|
@@ -39011,7 +39016,7 @@ async function runIndexer(store, opts) {
|
|
|
39011
39016
|
upsertFolder(store, rootId, ".", opts.workspaceId, rootRel);
|
|
39012
39017
|
report.nodesEmitted++;
|
|
39013
39018
|
for (const f of files) {
|
|
39014
|
-
if (!
|
|
39019
|
+
if (!emits(f.relPath)) continue;
|
|
39015
39020
|
const segments = f.relPath.split(/[\\/]/).slice(0, -1);
|
|
39016
39021
|
let parentId = rootId;
|
|
39017
39022
|
let acc = "";
|
|
@@ -39094,7 +39099,13 @@ async function runIndexer(store, opts) {
|
|
|
39094
39099
|
}
|
|
39095
39100
|
}
|
|
39096
39101
|
perf(`parse (${report.filesParsed} parsed, ${report.filesSkipped} skipped)`);
|
|
39097
|
-
const
|
|
39102
|
+
const pendingExports = /* @__PURE__ */ new Set();
|
|
39103
|
+
const exportsByFile = new class extends Map {
|
|
39104
|
+
get(relPath) {
|
|
39105
|
+
if (pendingExports.delete(relPath)) super.set(relPath, graphExportMap(store, opts.workspaceId, relPath));
|
|
39106
|
+
return super.get(relPath);
|
|
39107
|
+
}
|
|
39108
|
+
}();
|
|
39098
39109
|
const importsByFile = /* @__PURE__ */ new Map();
|
|
39099
39110
|
for (const [relPath, symbols] of symbolsByFile) {
|
|
39100
39111
|
const localExports = /* @__PURE__ */ new Map();
|
|
@@ -39118,7 +39129,8 @@ async function runIndexer(store, opts) {
|
|
|
39118
39129
|
if (scope !== void 0) {
|
|
39119
39130
|
for (const f of files) {
|
|
39120
39131
|
if (inScope(f.relPath) || exportsByFile.has(f.relPath)) continue;
|
|
39121
|
-
exportsByFile.set(f.relPath,
|
|
39132
|
+
exportsByFile.set(f.relPath, /* @__PURE__ */ new Map());
|
|
39133
|
+
pendingExports.add(f.relPath);
|
|
39122
39134
|
}
|
|
39123
39135
|
}
|
|
39124
39136
|
const workspacePackages = /* @__PURE__ */ new Map();
|
|
@@ -39259,6 +39271,7 @@ async function runIndexer(store, opts) {
|
|
|
39259
39271
|
const providerByRel = new Map(files.map((x) => [x.relPath, x.provider]));
|
|
39260
39272
|
let emittedFiles = 0;
|
|
39261
39273
|
for (const [relPath, symbols] of symbolsByFile) {
|
|
39274
|
+
if (!emits(relPath)) continue;
|
|
39262
39275
|
if (emittedFiles > 0 && emittedFiles % 50 === 0) {
|
|
39263
39276
|
await new Promise((r) => setImmediate(r));
|
|
39264
39277
|
}
|
|
@@ -39478,6 +39491,7 @@ async function runIndexer(store, opts) {
|
|
|
39478
39491
|
}
|
|
39479
39492
|
perf("flush cross-file edges");
|
|
39480
39493
|
for (const relPath of symbolsByFile.keys()) {
|
|
39494
|
+
if (!emits(relPath)) continue;
|
|
39481
39495
|
const fid = fileNodeId(opts.workspaceId, relPath);
|
|
39482
39496
|
if (store.outEdges(fid, ["DEFINES", "CONTAINS"]).length === 0) {
|
|
39483
39497
|
stampIndexOutcome(store, fid, { symbolCount: 0 });
|
|
@@ -86845,7 +86859,7 @@ function createWatchBreaker(deps) {
|
|
|
86845
86859
|
}
|
|
86846
86860
|
|
|
86847
86861
|
// src/engine.ts
|
|
86848
|
-
var DAEMON_VERSION = true ? "2.0.22-dev.
|
|
86862
|
+
var DAEMON_VERSION = true ? "2.0.22-dev.4635" : "2.0.0-alpha.0";
|
|
86849
86863
|
var IGNORED_PATH = /[\\/](?:\.git|node_modules|\.errata|\.claude|\.codex|\.cursor|\.turbo|\.next|dist|coverage|test-results|playwright-report|__pycache__)(?:[\\/]|$)/;
|
|
86850
86864
|
var IGNORED_NOISE = /castalia\.db|eventlog\.sqlite|turn-cursors/;
|
|
86851
86865
|
var GIT_OP_MUTE_MS = 4e3;
|
package/generalize-worker.mjs
CHANGED
|
@@ -16300,6 +16300,10 @@ CREATE INDEX IF NOT EXISTS edges_live_prior_tag ON edges(created_at) WHERE valid
|
|
|
16300
16300
|
-- incremental reindex can fetch just the changed files' symbols instead of
|
|
16301
16301
|
-- scanning every versioned node. Partial: only live rows are ever queried.
|
|
16302
16302
|
CREATE INDEX IF NOT EXISTS nodes_relpath ON nodes(json_extract(attrs_json, '$.relPath')) WHERE valid_to IS NULL;
|
|
16303
|
+
-- Closed rows by relPath, for reviveReobserved (every incremental reindex): the
|
|
16304
|
+
-- live-only index above cannot serve it, so it scanned the whole table (~275 MB
|
|
16305
|
+
-- of a 1.1 GB store per reindex, 2026-10-20).
|
|
16306
|
+
CREATE INDEX IF NOT EXISTS nodes_closed_relpath ON nodes(json_extract(attrs_json, '$.relPath'), last_updated_at) WHERE valid_to IS NOT NULL;
|
|
16303
16307
|
-- Live rows by name, for looking up the few symbols a statement mentions
|
|
16304
16308
|
-- instead of hydrating every code symbol per minted problem.
|
|
16305
16309
|
CREATE INDEX IF NOT EXISTS nodes_live_description ON nodes(description, label) WHERE valid_to IS NULL;
|
package/package.json
CHANGED
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 (!
|
|
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 = "";
|
|
@@ -17905,7 +17906,13 @@ async function runIndexer(store2, opts) {
|
|
|
17905
17906
|
}
|
|
17906
17907
|
}
|
|
17907
17908
|
perf(`parse (${report.filesParsed} parsed, ${report.filesSkipped} skipped)`);
|
|
17908
|
-
const
|
|
17909
|
+
const pendingExports = /* @__PURE__ */ new Set();
|
|
17910
|
+
const exportsByFile = new class extends Map {
|
|
17911
|
+
get(relPath) {
|
|
17912
|
+
if (pendingExports.delete(relPath)) super.set(relPath, graphExportMap(store2, opts.workspaceId, relPath));
|
|
17913
|
+
return super.get(relPath);
|
|
17914
|
+
}
|
|
17915
|
+
}();
|
|
17909
17916
|
const importsByFile = /* @__PURE__ */ new Map();
|
|
17910
17917
|
for (const [relPath, symbols] of symbolsByFile) {
|
|
17911
17918
|
const localExports = /* @__PURE__ */ new Map();
|
|
@@ -17929,7 +17936,8 @@ async function runIndexer(store2, opts) {
|
|
|
17929
17936
|
if (scope !== void 0) {
|
|
17930
17937
|
for (const f of files) {
|
|
17931
17938
|
if (inScope(f.relPath) || exportsByFile.has(f.relPath)) continue;
|
|
17932
|
-
exportsByFile.set(f.relPath,
|
|
17939
|
+
exportsByFile.set(f.relPath, /* @__PURE__ */ new Map());
|
|
17940
|
+
pendingExports.add(f.relPath);
|
|
17933
17941
|
}
|
|
17934
17942
|
}
|
|
17935
17943
|
const workspacePackages = /* @__PURE__ */ new Map();
|
|
@@ -18070,6 +18078,7 @@ async function runIndexer(store2, opts) {
|
|
|
18070
18078
|
const providerByRel = new Map(files.map((x) => [x.relPath, x.provider]));
|
|
18071
18079
|
let emittedFiles = 0;
|
|
18072
18080
|
for (const [relPath, symbols] of symbolsByFile) {
|
|
18081
|
+
if (!emits(relPath)) continue;
|
|
18073
18082
|
if (emittedFiles > 0 && emittedFiles % 50 === 0) {
|
|
18074
18083
|
await new Promise((r) => setImmediate(r));
|
|
18075
18084
|
}
|
|
@@ -18289,6 +18298,7 @@ async function runIndexer(store2, opts) {
|
|
|
18289
18298
|
}
|
|
18290
18299
|
perf("flush cross-file edges");
|
|
18291
18300
|
for (const relPath of symbolsByFile.keys()) {
|
|
18301
|
+
if (!emits(relPath)) continue;
|
|
18292
18302
|
const fid = fileNodeId(opts.workspaceId, relPath);
|
|
18293
18303
|
if (store2.outEdges(fid, ["DEFINES", "CONTAINS"]).length === 0) {
|
|
18294
18304
|
stampIndexOutcome(store2, fid, { symbolCount: 0 });
|
|
@@ -27168,6 +27178,10 @@ CREATE INDEX IF NOT EXISTS edges_live_prior_tag ON edges(created_at) WHERE valid
|
|
|
27168
27178
|
-- incremental reindex can fetch just the changed files' symbols instead of
|
|
27169
27179
|
-- scanning every versioned node. Partial: only live rows are ever queried.
|
|
27170
27180
|
CREATE INDEX IF NOT EXISTS nodes_relpath ON nodes(json_extract(attrs_json, '$.relPath')) WHERE valid_to IS NULL;
|
|
27181
|
+
-- Closed rows by relPath, for reviveReobserved (every incremental reindex): the
|
|
27182
|
+
-- live-only index above cannot serve it, so it scanned the whole table (~275 MB
|
|
27183
|
+
-- of a 1.1 GB store per reindex, 2026-10-20).
|
|
27184
|
+
CREATE INDEX IF NOT EXISTS nodes_closed_relpath ON nodes(json_extract(attrs_json, '$.relPath'), last_updated_at) WHERE valid_to IS NOT NULL;
|
|
27171
27185
|
-- Live rows by name, for looking up the few symbols a statement mentions
|
|
27172
27186
|
-- instead of hydrating every code symbol per minted problem.
|
|
27173
27187
|
CREATE INDEX IF NOT EXISTS nodes_live_description ON nodes(description, label) WHERE valid_to IS NULL;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
97441718c0941fc62b087e0948ee625bb750c45d4938148ef8414d8ee4767bf4 .codex-plugin/plugin.json
|
|
2
2
|
a7bebae9fb01c838d6c75fc784129e28be571233fa66ff5ee8039b574f35ccf7 assets/icon.png
|
|
3
3
|
fc38b64e4df1e0b72c35764bef6c4c05430d97c9009ad0ecc8a9e75b4deab232 configure-local.mjs
|
|
4
4
|
73dc6028b3b070257c7c31f252d11e55a9e096f4aed0f187f10cb21716e1e6d7 dist/client.js
|