patchwork-os 1.2.0-beta.3.canary.893 → 1.2.0-beta.3.canary.894
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.
|
@@ -1,3 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reader for the information-boundary receipt ledger (ADR-0021).
|
|
3
|
+
*
|
|
4
|
+
* ## Why this file exists at all
|
|
5
|
+
*
|
|
6
|
+
* `boundary_receipts.jsonl` was WRITE-ONLY in this repository. Every ADR-0021
|
|
7
|
+
* enforcement decision was recorded, and `BoundaryReceiptLog.recent()` /
|
|
8
|
+
* `.summary()` — the two methods whose own comment says they are "the shape a
|
|
9
|
+
* dashboard or CLI summary wants" — had no production caller, no CLI verb, no
|
|
10
|
+
* HTTP route and no page. The only thing in the workspace that read this
|
|
11
|
+
* ledger lived in the separate, non-MIT control plane.
|
|
12
|
+
*
|
|
13
|
+
* ADR-0019:88-92 forbids precisely that: the local ledgers must stay fully
|
|
14
|
+
* usable standalone, and degrading them in the direction that pushes someone
|
|
15
|
+
* toward the paid product is the failure the open-core boundary was written to
|
|
16
|
+
* prevent. ADR-0021:404-406 gives the sharper version — "people need to be able
|
|
17
|
+
* to read the code that decides whether their confidential information leaves
|
|
18
|
+
* the machine". Reading the code is worthless if you cannot read what it
|
|
19
|
+
* decided. Nobody chose this; it happened by default, which is what made it
|
|
20
|
+
* worth fixing before adding anything else.
|
|
21
|
+
*
|
|
22
|
+
* ## Why it reads the FILE and not the class
|
|
23
|
+
*
|
|
24
|
+
* `BoundaryReceiptLog` trims its in-memory array to 500 rows on load and again
|
|
25
|
+
* on every write. A summary built on `.summary()` therefore answers over the
|
|
26
|
+
* most recent 500 receipts while presenting as a total — a wrong denominator
|
|
27
|
+
* on the one screen whose entire job is to state the denominator. This module
|
|
28
|
+
* reads the ledger from disk for the same reason `summarisePrivacyShadow`
|
|
29
|
+
* does, and the two now share a shape deliberately.
|
|
30
|
+
*
|
|
31
|
+
* ## What it must never do
|
|
32
|
+
*
|
|
33
|
+
* Surface a payload. The receipt type has no field for one by construction;
|
|
34
|
+
* this reader additionally copies only whitelisted keys, so a hand-edited or
|
|
35
|
+
* future-writer row carrying a prompt cannot turn the viewer into the thing
|
|
36
|
+
* that publishes it.
|
|
37
|
+
*/
|
|
1
38
|
import type { BoundaryDecision, Classification } from "./dataPolicy.js";
|
|
2
39
|
import type { LabelSource } from "./shadowLog.js";
|
|
3
40
|
export declare const BOUNDARY_RECEIPTS_BASENAME = "boundary_receipts.jsonl";
|
|
@@ -37,6 +37,7 @@
|
|
|
37
37
|
*/
|
|
38
38
|
import { readFileSync } from "node:fs";
|
|
39
39
|
import path from "node:path";
|
|
40
|
+
import { isChainMarker } from "../ledgerChain.js";
|
|
40
41
|
import { patchworkPath } from "../patchworkHome.js";
|
|
41
42
|
export const BOUNDARY_RECEIPTS_BASENAME = "boundary_receipts.jsonl";
|
|
42
43
|
/** How many receipts the detail list carries. The summary counts all of them. */
|
|
@@ -130,6 +131,10 @@ export function summariseBoundaryReceipts(opts = {}) {
|
|
|
130
131
|
s.unreadableLines += 1;
|
|
131
132
|
continue;
|
|
132
133
|
}
|
|
134
|
+
// A chained ledger's own marker rows (chain-start, rotation) are part of
|
|
135
|
+
// its integrity chain, not damage — skip them like every other reader.
|
|
136
|
+
if (isChainMarker(parsed))
|
|
137
|
+
continue;
|
|
133
138
|
const v = view(parsed);
|
|
134
139
|
if (!v) {
|
|
135
140
|
s.unreadableLines += 1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"boundaryReceipts.js","sourceRoot":"","sources":["../../src/privacy/boundaryReceipts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;
|
|
1
|
+
{"version":3,"file":"boundaryReceipts.js","sourceRoot":"","sources":["../../src/privacy/boundaryReceipts.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.3.canary.
|
|
3
|
+
"version": "1.2.0-beta.3.canary.894",
|
|
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",
|