patchwork-os 1.2.0-beta.2.canary.790 → 1.2.0-beta.2.canary.791

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.
@@ -27,6 +27,7 @@ import { patchworkHome } from "./patchworkHome.js";
27
27
  export const VERIFIED_LEDGERS = [
28
28
  ...SPINE_LEDGERS,
29
29
  { key: "butler outcome shadow", file: "butler_outcome_shadow.jsonl" },
30
+ { key: "run steps", file: "run_steps.jsonl" },
30
31
  ];
31
32
  export function verifyEvidenceChains(dir = patchworkHome()) {
32
33
  const ledgers = [];
@@ -1 +1 @@
1
- {"version":3,"file":"evidenceVerify.js","sourceRoot":"","sources":["../src/evidenceVerify.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"evidenceVerify.js","sourceRoot":"","sources":["../src/evidenceVerify.ts"],"names":[],"mappings":"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"}
@@ -292,6 +292,15 @@ export function appendChained(file, row, opts = {}) {
292
292
  let prevHash = tail.prevHash;
293
293
  let iseq = tail.nextIseq;
294
294
  if (tail.unchained) {
295
+ // A legacy file whose last line has no newline would otherwise get
296
+ // the marker glued onto it — one unparseable line, and a prefix the
297
+ // verifier can never reconstruct. Terminate the line first; the
298
+ // commitment below covers the terminated bytes, and the legacy row's
299
+ // own content is byte-identical.
300
+ if (text.length > 0 && !text.endsWith("\n")) {
301
+ appendFileSync(file, "\n", { mode });
302
+ text += "\n";
303
+ }
295
304
  const marker = {
296
305
  kind: "chain-start",
297
306
  at: now(),
@@ -358,7 +367,8 @@ export function verifyLedgerChain(file) {
358
367
  };
359
368
  if (v.absent)
360
369
  return v;
361
- const text = readFileSync(file, "utf-8");
370
+ const bytes = readFileSync(file);
371
+ const text = bytes.toString("utf-8");
362
372
  const lines = splitLines(text);
363
373
  // Every iseq in the file, so "the expected one exists later" (reordered) can
364
374
  // be told apart from "it exists nowhere" (a gap).
@@ -424,10 +434,13 @@ export function verifyLedgerChain(file) {
424
434
  v.legacyPrefix = "none";
425
435
  }
426
436
  else {
427
- const prefix = text.slice(0, legacyBytes);
437
+ // BYTES, not a string slice: `legacyBytes` is a byte count and a
438
+ // string index is a UTF-16 code-unit count. They agree only on pure
439
+ // ASCII, and real ledgers carry em dashes and accents in `reason`.
440
+ const prefix = bytes.subarray(0, legacyBytes).toString("utf-8");
428
441
  v.legacyPrefix =
429
442
  hashLine(prefix) === p.legacyHash &&
430
- Buffer.byteLength(prefix, "utf8") === p.legacyBytes &&
443
+ legacyBytes === p.legacyBytes &&
431
444
  v.legacyRows === p.legacyRows
432
445
  ? "verified"
433
446
  : "mismatch";
@@ -1 +1 @@
1
- {"version":3,"file":"ledgerChain.js","sourceRoot":"","sources":["../src/ledgerChain.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ledgerChain.js","sourceRoot":"","sources":["../src/ledgerChain.ts"],"names":[],"mappings":"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"}
@@ -21,7 +21,22 @@ export interface RunStepLedgerRow {
21
21
  recipeName: string;
22
22
  at: number;
23
23
  step: RunStepResult;
24
+ /** Writer-stamped record level. Absent on rows that predate the chain. */
25
+ rv?: number;
26
+ /** ADR-0027 integrity position and previous-line hash (rv >= 1). */
27
+ iseq?: number;
28
+ prev?: string;
24
29
  }
30
+ /**
31
+ * Record level (ADR-0025's `rv` protocol; ADR-0027 for this ledger).
32
+ *
33
+ * 1: every row is written through `appendChained` and carries `iseq` and
34
+ * `prev`, stamped by the writer from the file's tail under the lock. At
35
+ * `rv >= 1` their absence is a WRITER DEFECT. Rows with no `rv` predate the
36
+ * chain; they are never re-stamped, and the `chain-start` marker commits to
37
+ * them as a block. Never default it on read.
38
+ */
39
+ export declare const RUN_STEP_LEDGER_RV = 1;
25
40
  /**
26
41
  * Is this step worth persisting mid-flight?
27
42
  *
@@ -36,8 +51,19 @@ export interface RunStepLedgerRow {
36
51
  export declare function isEvidenceBearing(step: RunStepResult): boolean;
37
52
  export declare function stepLedgerPath(dir: string): string;
38
53
  /** Append one evidence row. Never throws — losing a mid-flight row must not
39
- * take down the run that produced it. */
40
- export declare function appendStepEvidence(dir: string, row: RunStepLedgerRow, logger?: Logger): void;
54
+ * take down the run that produced it.
55
+ *
56
+ * ADR-0027: one locked, chained append. The hand-rolled "drop half the file
57
+ * at 2 MB" trim is gone; rotation is the primitive's, writes an explicit
58
+ * `rotation` marker, and the chain re-anchors across it. A failed append is
59
+ * counted in the `.write_failed` sidecar and sealed into the next row, so a
60
+ * ledger that stopped writing is distinguishable from a quiet run.
61
+ *
62
+ * `opts.maxBytes` is a TEST SEAM (like the gate ledger's `maxPersistBytes`):
63
+ * a test that must observe rotation should not write two real megabytes. */
64
+ export declare function appendStepEvidence(dir: string, row: RunStepLedgerRow, logger?: Logger, opts?: {
65
+ maxBytes?: number;
66
+ }): void;
41
67
  /**
42
68
  * Read the ledger, grouped by taskId, newest-wins per step id. Returns an empty
43
69
  * map when the file is missing or unreadable — fail-soft, exactly as before
@@ -1,9 +1,27 @@
1
- import { appendFileSync, mkdirSync, readFileSync, renameSync, statSync, writeFileSync, } from "node:fs";
1
+ import { mkdirSync, readFileSync, statSync } from "node:fs";
2
2
  import path from "node:path";
3
+ import { appendChained, isChainMarker } from "./ledgerChain.js";
3
4
  import { AGENT_STEP_TOOL, classifyActionClass } from "./workers/actionClass.js";
5
+ /**
6
+ * Record level (ADR-0025's `rv` protocol; ADR-0027 for this ledger).
7
+ *
8
+ * 1: every row is written through `appendChained` and carries `iseq` and
9
+ * `prev`, stamped by the writer from the file's tail under the lock. At
10
+ * `rv >= 1` their absence is a WRITER DEFECT. Rows with no `rv` predate the
11
+ * chain; they are never re-stamped, and the `chain-start` marker commits to
12
+ * them as a block. Never default it on read.
13
+ */
14
+ export const RUN_STEP_LEDGER_RV = 1;
4
15
  /** Cap on `run_steps.jsonl`. Rows only matter until their run reaches a
5
16
  * terminal record, so this is a crash-window buffer, not history. */
6
17
  const MAX_LEDGER_BYTES = 2 * 1024 * 1024;
18
+ /**
19
+ * Low-water target after rotation. Half the cap keeps the old "newest half
20
+ * survives" bound while letting the primitive trim to a byte target rather
21
+ * than a line ratio; a target at the cap would rotate on every append once
22
+ * the file is full (the gate ledger measured 826 rotations in one fill).
23
+ */
24
+ const ROTATE_TARGET_BYTES = MAX_LEDGER_BYTES / 2;
7
25
  /**
8
26
  * Is this step worth persisting mid-flight?
9
27
  *
@@ -28,13 +46,33 @@ export function stepLedgerPath(dir) {
28
46
  return path.join(dir, "run_steps.jsonl");
29
47
  }
30
48
  /** Append one evidence row. Never throws — losing a mid-flight row must not
31
- * take down the run that produced it. */
32
- export function appendStepEvidence(dir, row, logger) {
49
+ * take down the run that produced it.
50
+ *
51
+ * ADR-0027: one locked, chained append. The hand-rolled "drop half the file
52
+ * at 2 MB" trim is gone; rotation is the primitive's, writes an explicit
53
+ * `rotation` marker, and the chain re-anchors across it. A failed append is
54
+ * counted in the `.write_failed` sidecar and sealed into the next row, so a
55
+ * ledger that stopped writing is distinguishable from a quiet run.
56
+ *
57
+ * `opts.maxBytes` is a TEST SEAM (like the gate ledger's `maxPersistBytes`):
58
+ * a test that must observe rotation should not write two real megabytes. */
59
+ export function appendStepEvidence(dir, row, logger, opts = {}) {
33
60
  const file = stepLedgerPath(dir);
61
+ const maxBytes = opts.maxBytes ?? MAX_LEDGER_BYTES;
34
62
  try {
35
63
  mkdirSync(dir, { recursive: true, mode: 0o700 });
36
- trimIfOversized(file);
37
- appendFileSync(file, `${JSON.stringify(row)}\n`, { mode: 0o600 });
64
+ appendChained(file,
65
+ // Stamped AFTER the caller's fields so a caller cannot claim a level.
66
+ { ...row, rv: RUN_STEP_LEDGER_RV }, {
67
+ mode: 0o600,
68
+ maxBytes,
69
+ rotateTarget: opts.maxBytes !== undefined
70
+ ? Math.floor(maxBytes / 2)
71
+ : ROTATE_TARGET_BYTES,
72
+ onRotate: ({ dropped, before }) => {
73
+ logger?.warn?.(`[runsteps] rotate dropped ${dropped} of ${before} row(s) (oldest first) to get under ${maxBytes} bytes`);
74
+ },
75
+ });
38
76
  }
39
77
  catch (err) {
40
78
  logger?.warn?.(`[runsteps] append failed: ${err instanceof Error ? err.message : String(err)}`);
@@ -61,6 +99,10 @@ export function loadStepEvidence(dir, logger) {
61
99
  continue;
62
100
  try {
63
101
  const parsed = JSON.parse(line);
102
+ // ADR-0027 marker rows are metadata, never step evidence — skipped by
103
+ // KIND, so a marker that happened to carry a taskId could not sneak in.
104
+ if (isChainMarker(parsed))
105
+ continue;
64
106
  if (!parsed?.taskId || !parsed.step?.id)
65
107
  continue;
66
108
  let steps = byTask.get(parsed.taskId);
@@ -80,23 +122,4 @@ export function loadStepEvidence(dir, logger) {
80
122
  out.set(taskId, Array.from(steps.values()));
81
123
  return out;
82
124
  }
83
- /** Keep the newest half when the buffer exceeds its cap. */
84
- function trimIfOversized(file) {
85
- let size;
86
- try {
87
- size = statSync(file).size;
88
- }
89
- catch {
90
- return;
91
- }
92
- if (size <= MAX_LEDGER_BYTES)
93
- return;
94
- const lines = readFileSync(file, "utf-8").split("\n").filter(Boolean);
95
- const keep = lines.slice(Math.floor(lines.length / 2));
96
- const tmp = `${file}.tmp`;
97
- writeFileSync(tmp, keep.length > 0 ? `${keep.join("\n")}\n` : "", {
98
- mode: 0o600,
99
- });
100
- renameSync(tmp, file);
101
- }
102
125
  //# sourceMappingURL=runStepLedger.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"runStepLedger.js","sourceRoot":"","sources":["../src/runStepLedger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runStepLedger.js","sourceRoot":"","sources":["../src/runStepLedger.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "patchwork-os",
3
- "version": "1.2.0-beta.2.canary.790",
3
+ "version": "1.2.0-beta.2.canary.791",
4
4
  "description": "Your personal AI runtime, local-first. Patchwork OS gives any AI model a consistent set of tools, YAML recipes, a delegation policy with approval queue, and a durable trace memory — all on your machine, all under your policy.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",