@inerrata-corporation/errata 2.0.8-dev.2890 → 2.0.8-dev.2895
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 +55 -2
- package/package.json +1 -1
package/errata.mjs
CHANGED
|
@@ -80124,7 +80124,7 @@ function createWatchBreaker(deps) {
|
|
|
80124
80124
|
}
|
|
80125
80125
|
|
|
80126
80126
|
// src/engine.ts
|
|
80127
|
-
var DAEMON_VERSION = true ? "2.0.8-dev.
|
|
80127
|
+
var DAEMON_VERSION = true ? "2.0.8-dev.2895" : "2.0.0-alpha.0";
|
|
80128
80128
|
var IGNORED_PATH = /[\\/](?:\.git|node_modules|\.errata|\.claude|\.codex|\.cursor|\.turbo|\.next|dist|coverage|test-results|playwright-report|__pycache__)(?:[\\/]|$)/;
|
|
80129
80129
|
var IGNORED_NOISE = /castalia\.db|eventlog\.sqlite|turn-cursors/;
|
|
80130
80130
|
var GIT_OP_MUTE_MS = 4e3;
|
|
@@ -84493,6 +84493,57 @@ async function mergeSide(root, p1, p2) {
|
|
|
84493
84493
|
return { sha: sha2, parents };
|
|
84494
84494
|
});
|
|
84495
84495
|
}
|
|
84496
|
+
async function commitGraph(root, branch) {
|
|
84497
|
+
const out2 = await git(root, [...GIT_OPTS, "rev-list", "--parents", branch]);
|
|
84498
|
+
const graph = /* @__PURE__ */ new Map();
|
|
84499
|
+
for (const l of out2.split(/\r?\n/)) {
|
|
84500
|
+
const [sha2, ...parents] = l.trim().split(" ");
|
|
84501
|
+
if (sha2) graph.set(sha2, parents);
|
|
84502
|
+
}
|
|
84503
|
+
return graph;
|
|
84504
|
+
}
|
|
84505
|
+
function mergeSidesFromGraph(line, start2, graph) {
|
|
84506
|
+
const seen = /* @__PURE__ */ new Set();
|
|
84507
|
+
const reach = (from, into) => {
|
|
84508
|
+
const stack = [from];
|
|
84509
|
+
while (stack.length > 0) {
|
|
84510
|
+
const sha2 = stack.pop();
|
|
84511
|
+
if (seen.has(sha2) || into.has(sha2)) continue;
|
|
84512
|
+
into.add(sha2);
|
|
84513
|
+
for (const p of graph.get(sha2) ?? []) stack.push(p);
|
|
84514
|
+
}
|
|
84515
|
+
};
|
|
84516
|
+
if (start2 > 0) {
|
|
84517
|
+
const base = /* @__PURE__ */ new Set();
|
|
84518
|
+
reach(line[start2 - 1].sha, base);
|
|
84519
|
+
for (const sha2 of base) seen.add(sha2);
|
|
84520
|
+
}
|
|
84521
|
+
const sides = /* @__PURE__ */ new Map();
|
|
84522
|
+
for (let i2 = start2; i2 < line.length; i2++) {
|
|
84523
|
+
const { sha: sha2, parents } = line[i2];
|
|
84524
|
+
if (parents.length >= 2) {
|
|
84525
|
+
const side = /* @__PURE__ */ new Set();
|
|
84526
|
+
reach(parents[1], side);
|
|
84527
|
+
const chain2 = [];
|
|
84528
|
+
let at = side.has(parents[1]) ? parents[1] : void 0;
|
|
84529
|
+
let linear = true;
|
|
84530
|
+
while (at) {
|
|
84531
|
+
const ps = graph.get(at) ?? [];
|
|
84532
|
+
chain2.push({ sha: at, parents: [...ps] });
|
|
84533
|
+
const inSide = ps.filter((p) => side.has(p));
|
|
84534
|
+
if (inSide.length > 1) {
|
|
84535
|
+
linear = false;
|
|
84536
|
+
break;
|
|
84537
|
+
}
|
|
84538
|
+
at = inSide[0];
|
|
84539
|
+
}
|
|
84540
|
+
sides.set(sha2, linear && chain2.length === side.size ? chain2.reverse() : null);
|
|
84541
|
+
for (const s of side) seen.add(s);
|
|
84542
|
+
}
|
|
84543
|
+
seen.add(sha2);
|
|
84544
|
+
}
|
|
84545
|
+
return sides;
|
|
84546
|
+
}
|
|
84496
84547
|
async function tagsByCommit(root) {
|
|
84497
84548
|
const out2 = await git(root, [...GIT_OPTS, "for-each-ref", "--format=%(refname:short)%00%(objectname)%00%(*objectname)", "refs/tags"]);
|
|
84498
84549
|
const map2 = /* @__PURE__ */ new Map();
|
|
@@ -84521,8 +84572,10 @@ async function enumerateUnits(root, opts = {}) {
|
|
|
84521
84572
|
if (start2 >= line.length) return [];
|
|
84522
84573
|
const commits = await readCommitsBulk(root, branch, start2 > 0 ? line[start2 - 1].sha : null);
|
|
84523
84574
|
const commit = async (sha2) => commits.get(sha2) ?? await readCommit(root, sha2);
|
|
84524
|
-
const
|
|
84575
|
+
const fromGraph = mergeSidesFromGraph(line, start2, await commitGraph(root, branch));
|
|
84525
84576
|
const sides = /* @__PURE__ */ new Map();
|
|
84577
|
+
for (const [sha2, side] of fromGraph) if (side) sides.set(sha2, side);
|
|
84578
|
+
const merges = line.slice(start2).filter((c) => c.parents.length >= 2 && !sides.has(c.sha));
|
|
84526
84579
|
const sideLists = await mapBounded(merges, MERGE_SIDE_CONCURRENCY, (m) => mergeSide(root, m.parents[0], m.parents[1]));
|
|
84527
84580
|
merges.forEach((m, i2) => sides.set(m.sha, sideLists[i2]));
|
|
84528
84581
|
const units = [];
|