@inerrata-corporation/errata 2.0.1-dev.100 → 2.0.1-dev.101

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.
Files changed (2) hide show
  1. package/errata.mjs +11 -5
  2. package/package.json +1 -1
package/errata.mjs CHANGED
@@ -21851,8 +21851,14 @@ var init_client = __esm({
21851
21851
  * the per-decision response into flush accounting.
21852
21852
  *
21853
21853
  * The v1 door caps a payload at `MAX_NODES_PER_PAYLOAD` / `MAX_EDGES_PER_PAYLOAD`
21854
- * (413 over). A batch above the cap is split and drained across calls under ONE
21855
- * runId: every NODE chunk first (edges empty), then EDGE chunks (nodes empty).
21854
+ * (413 over). A batch above the cap is split and drained across calls, every
21855
+ * NODE chunk first (edges empty), then EDGE chunks (nodes empty). Each chunk
21856
+ * gets its OWN runId: the door's durable idempotency claim is keyed on
21857
+ * (agent, org, runId) with the payload digest, so reusing one runId across
21858
+ * different chunk payloads 409s "runId was already used with a different
21859
+ * payload" on the second chunk — exactly how the first real >25-node drain
21860
+ * died (2026-07-22). The runId never grouped anything server-side; it exists
21861
+ * for duplicate-POST protection, which is per-request by nature.
21856
21862
  * Recognition resolves an edge's endpoints against nodes already ingested this
21857
21863
  * drain (endpoint-label validation is deferred to the service when an endpoint
21858
21864
  * isn't in-payload), so the split never orphans an edge. Sub-results concat into
@@ -21872,7 +21878,7 @@ var init_client = __esm({
21872
21878
  const shipped = new Set(inChunk);
21873
21879
  pendingEdges = pendingEdges.filter((e) => !shipped.has(e));
21874
21880
  }
21875
- const r = await this.ingestWire(toWirePayload({ ...batch, nodes: nodeChunk, edges: inChunk }, runId));
21881
+ const r = await this.ingestWire(toWirePayload({ ...batch, nodes: nodeChunk, edges: inChunk }, randomUUID()));
21876
21882
  merged.nodes.push(...r.nodes);
21877
21883
  merged.edges.push(...r.edges);
21878
21884
  if (r.patternReconciliation) {
@@ -21880,7 +21886,7 @@ var init_client = __esm({
21880
21886
  }
21881
21887
  }
21882
21888
  for (const edgeChunk of chunkArray(pendingEdges, MAX_EDGES_PER_PAYLOAD)) {
21883
- const r = await this.ingestWire(toWirePayload({ ...batch, nodes: [], edges: edgeChunk }, runId));
21889
+ const r = await this.ingestWire(toWirePayload({ ...batch, nodes: [], edges: edgeChunk }, randomUUID()));
21884
21890
  merged.edges.push(...r.edges);
21885
21891
  }
21886
21892
  return { ...summarizeIngestResult(merged), result: merged };
@@ -51649,7 +51655,7 @@ function startLoopLagMonitor(thresholdMs = 1e3) {
51649
51655
  }
51650
51656
 
51651
51657
  // src/engine.ts
51652
- var DAEMON_VERSION = true ? "2.0.1-dev.100" : "2.0.0-alpha.0";
51658
+ var DAEMON_VERSION = true ? "2.0.1-dev.101" : "2.0.0-alpha.0";
51653
51659
  var IGNORED_PATH = /[\\/](?:\.git|node_modules|\.errata|\.claude|\.codex|\.cursor|\.turbo|\.next|dist|coverage|test-results|playwright-report|__pycache__)(?:[\\/]|$)/;
51654
51660
  var IGNORED_NOISE = /castalia\.db|eventlog\.sqlite|turn-cursors/;
51655
51661
  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.1-dev.100",
3
+ "version": "2.0.1-dev.101",
4
4
  "description": "errata - local-first observation engine for AI coding agents",
5
5
  "type": "module",
6
6
  "bin": {