patchwork-os 1.2.0-beta.2.canary.848 → 1.2.0-beta.2.canary.850
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/dist/approvalPersistence.d.ts +47 -2
- package/dist/approvalPersistence.js +73 -3
- package/dist/approvalPersistence.js.map +1 -1
- package/dist/approvalQueue.js +19 -7
- package/dist/approvalQueue.js.map +1 -1
- package/dist/commands/doctorAcceptance.d.ts +52 -0
- package/dist/commands/doctorAcceptance.js +373 -0
- package/dist/commands/doctorAcceptance.js.map +1 -0
- package/dist/index.js +39 -2
- package/dist/index.js.map +1 -1
- package/dist/ledgerChain.d.ts +11 -1
- package/dist/ledgerChain.js +2 -0
- package/dist/ledgerChain.js.map +1 -1
- package/package.json +1 -1
|
@@ -142,6 +142,20 @@ export type ApprovalLogEvent = ApprovalRequestEvent | ApprovalDecisionEvent | Ap
|
|
|
142
142
|
* the same file.
|
|
143
143
|
*/
|
|
144
144
|
export declare function resolveApprovalLogDir(override?: string): string;
|
|
145
|
+
/**
|
|
146
|
+
* Outcome of `recordDecision`. `skipped` and `failed` are deliberately
|
|
147
|
+
* distinct: `skipped` means the log was read under the lock and ALREADY holds
|
|
148
|
+
* `existing` for this callId (adopt it); `failed` means the log could not be
|
|
149
|
+
* written or consulted at all (fail-soft: the in-memory decision stands).
|
|
150
|
+
*/
|
|
151
|
+
export type RecordDecisionResult = {
|
|
152
|
+
status: "written";
|
|
153
|
+
} | {
|
|
154
|
+
status: "skipped";
|
|
155
|
+
existing: ApprovalDecision;
|
|
156
|
+
} | {
|
|
157
|
+
status: "failed";
|
|
158
|
+
};
|
|
145
159
|
export declare class ApprovalPersistence {
|
|
146
160
|
private readonly file;
|
|
147
161
|
private readonly logger?;
|
|
@@ -155,8 +169,39 @@ export declare class ApprovalPersistence {
|
|
|
155
169
|
* swallowed after a best-effort log line.
|
|
156
170
|
*/
|
|
157
171
|
recordRequest(entry: PendingApproval): void;
|
|
158
|
-
/**
|
|
159
|
-
|
|
172
|
+
/**
|
|
173
|
+
* Append a decision event — at most ONE per callId, first writer wins.
|
|
174
|
+
* Fail-soft, same rationale as `recordRequest`.
|
|
175
|
+
*
|
|
176
|
+
* Several bridges share this file, and more than one of them can reach a
|
|
177
|
+
* decision for the same call: the owner's live expiry timer, and another
|
|
178
|
+
* bridge's `restore()` that saw a passed `expiresAt` before that timer fired
|
|
179
|
+
* (timer lag, a blocked event loop). Each was individually correct and
|
|
180
|
+
* together they wrote two `expired` rows, which double-count in every
|
|
181
|
+
* reader joining on callId.
|
|
182
|
+
*
|
|
183
|
+
* Chosen over the alternatives because it is the only one that is ATOMIC
|
|
184
|
+
* across processes: the "is there already a decision?" check runs inside
|
|
185
|
+
* `appendChained`'s cross-process lock, on the same bytes the append then
|
|
186
|
+
* extends, so no interleaving can put two decisions on one callId.
|
|
187
|
+
* - A grace period in `restore()` before recording an expiry only makes
|
|
188
|
+
* the race rarer (any lag longer than the grace reopens it) and delays
|
|
189
|
+
* the late-but-exactly-once record for a genuinely dead owner.
|
|
190
|
+
* - An unlocked read before appending narrows the window without closing
|
|
191
|
+
* it.
|
|
192
|
+
* Scoped to `decision` rows only: `request` and `attribution` rows are
|
|
193
|
+
* untouched, and `loadUnresolvedRequests` is unchanged.
|
|
194
|
+
*
|
|
195
|
+
* Consequence: whichever decision reaches the log first is THE decision,
|
|
196
|
+
* and the caller must ADOPT it. `skipped` carries the recorded decision,
|
|
197
|
+
* read under the same lock that refused the append; `ApprovalQueue`
|
|
198
|
+
* resolves with it, so an owner approving after another bridge recorded
|
|
199
|
+
* the expiry does not execute the action under a ledger saying `expired`.
|
|
200
|
+
* `failed` (an I/O error, not a skip) is deliberately different: the log
|
|
201
|
+
* could not be consulted, so the in-memory decision stands — a log failure
|
|
202
|
+
* never blocks an approval.
|
|
203
|
+
*/
|
|
204
|
+
recordDecision(callId: string, decision: ApprovalDecision, decidedAt: number): RecordDecisionResult;
|
|
160
205
|
/**
|
|
161
206
|
* Append an attribution event. Fail-soft like its siblings: the decision it
|
|
162
207
|
* describes has already taken effect, so a write failure here must degrade
|
|
@@ -98,6 +98,31 @@ function safeParams(params) {
|
|
|
98
98
|
return { unserializable: true };
|
|
99
99
|
}
|
|
100
100
|
}
|
|
101
|
+
/**
|
|
102
|
+
* The first `decision` recorded for `callId`, or null. Runs under the ledger
|
|
103
|
+
* lock (see `recordDecision`). A cheap substring pre-filter keeps the common
|
|
104
|
+
* case from parsing every line; a torn/unparseable line is skipped, exactly as
|
|
105
|
+
* `loadUnresolvedRequests` skips it.
|
|
106
|
+
*/
|
|
107
|
+
function recordedDecisionFor(lines, callId) {
|
|
108
|
+
const needle = JSON.stringify(callId);
|
|
109
|
+
for (const line of lines) {
|
|
110
|
+
if (!line.includes(needle))
|
|
111
|
+
continue;
|
|
112
|
+
try {
|
|
113
|
+
const row = JSON.parse(line);
|
|
114
|
+
if (row.kind === "decision" &&
|
|
115
|
+
row.callId === callId &&
|
|
116
|
+
typeof row.decision === "string") {
|
|
117
|
+
return row.decision;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
catch {
|
|
121
|
+
/* torn row — not evidence of a decision */
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
return null;
|
|
125
|
+
}
|
|
101
126
|
export class ApprovalPersistence {
|
|
102
127
|
file;
|
|
103
128
|
logger;
|
|
@@ -129,7 +154,38 @@ export class ApprovalPersistence {
|
|
|
129
154
|
};
|
|
130
155
|
this.append(event);
|
|
131
156
|
}
|
|
132
|
-
/**
|
|
157
|
+
/**
|
|
158
|
+
* Append a decision event — at most ONE per callId, first writer wins.
|
|
159
|
+
* Fail-soft, same rationale as `recordRequest`.
|
|
160
|
+
*
|
|
161
|
+
* Several bridges share this file, and more than one of them can reach a
|
|
162
|
+
* decision for the same call: the owner's live expiry timer, and another
|
|
163
|
+
* bridge's `restore()` that saw a passed `expiresAt` before that timer fired
|
|
164
|
+
* (timer lag, a blocked event loop). Each was individually correct and
|
|
165
|
+
* together they wrote two `expired` rows, which double-count in every
|
|
166
|
+
* reader joining on callId.
|
|
167
|
+
*
|
|
168
|
+
* Chosen over the alternatives because it is the only one that is ATOMIC
|
|
169
|
+
* across processes: the "is there already a decision?" check runs inside
|
|
170
|
+
* `appendChained`'s cross-process lock, on the same bytes the append then
|
|
171
|
+
* extends, so no interleaving can put two decisions on one callId.
|
|
172
|
+
* - A grace period in `restore()` before recording an expiry only makes
|
|
173
|
+
* the race rarer (any lag longer than the grace reopens it) and delays
|
|
174
|
+
* the late-but-exactly-once record for a genuinely dead owner.
|
|
175
|
+
* - An unlocked read before appending narrows the window without closing
|
|
176
|
+
* it.
|
|
177
|
+
* Scoped to `decision` rows only: `request` and `attribution` rows are
|
|
178
|
+
* untouched, and `loadUnresolvedRequests` is unchanged.
|
|
179
|
+
*
|
|
180
|
+
* Consequence: whichever decision reaches the log first is THE decision,
|
|
181
|
+
* and the caller must ADOPT it. `skipped` carries the recorded decision,
|
|
182
|
+
* read under the same lock that refused the append; `ApprovalQueue`
|
|
183
|
+
* resolves with it, so an owner approving after another bridge recorded
|
|
184
|
+
* the expiry does not execute the action under a ledger saying `expired`.
|
|
185
|
+
* `failed` (an I/O error, not a skip) is deliberately different: the log
|
|
186
|
+
* could not be consulted, so the in-memory decision stands — a log failure
|
|
187
|
+
* never blocks an approval.
|
|
188
|
+
*/
|
|
133
189
|
recordDecision(callId, decision, decidedAt) {
|
|
134
190
|
const event = {
|
|
135
191
|
kind: "decision",
|
|
@@ -138,7 +194,16 @@ export class ApprovalPersistence {
|
|
|
138
194
|
decidedAt,
|
|
139
195
|
rv: APPROVAL_LOG_RV,
|
|
140
196
|
};
|
|
141
|
-
|
|
197
|
+
let existing = null;
|
|
198
|
+
const ok = this.append(event, (lines) => {
|
|
199
|
+
existing = recordedDecisionFor(lines, callId);
|
|
200
|
+
return existing !== null;
|
|
201
|
+
});
|
|
202
|
+
if (!ok)
|
|
203
|
+
return { status: "failed" };
|
|
204
|
+
return existing !== null
|
|
205
|
+
? { status: "skipped", existing }
|
|
206
|
+
: { status: "written" };
|
|
142
207
|
}
|
|
143
208
|
/**
|
|
144
209
|
* Append an attribution event. Fail-soft like its siblings: the decision it
|
|
@@ -155,7 +220,7 @@ export class ApprovalPersistence {
|
|
|
155
220
|
};
|
|
156
221
|
this.append(event);
|
|
157
222
|
}
|
|
158
|
-
append(event) {
|
|
223
|
+
append(event, skipIf) {
|
|
159
224
|
try {
|
|
160
225
|
// ADR-0027: one locked, chained append. The primitive takes the same
|
|
161
226
|
// `${file}.lock` sentinel the old `withFileLockSync` wrapper did, so the
|
|
@@ -166,10 +231,15 @@ export class ApprovalPersistence {
|
|
|
166
231
|
// swallowed here after a warning, never surfaced to a live approval.
|
|
167
232
|
appendChained(this.file, event, {
|
|
168
233
|
mode: 0o600,
|
|
234
|
+
...(skipIf && { skipIf }),
|
|
169
235
|
});
|
|
236
|
+
// `true` also when `skipIf` declined the append: the log was consulted
|
|
237
|
+
// successfully. Only an exception is a failure.
|
|
238
|
+
return true;
|
|
170
239
|
}
|
|
171
240
|
catch (err) {
|
|
172
241
|
this.logger?.warn?.(`[approvalPersistence] failed to write ${event.kind} event for ${event.callId}: ${err instanceof Error ? err.message : String(err)}`);
|
|
242
|
+
return false;
|
|
173
243
|
}
|
|
174
244
|
}
|
|
175
245
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"approvalPersistence.js","sourceRoot":"","sources":["../src/approvalPersistence.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AAEH;;;;;;;GAOG;AACH;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC;AAkFjC;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CAAC,QAAiB;IACrD,OAAO;IACL,4EAA4E;IAC5E,0EAA0E;IAC1E,sEAAsE;IACtE,2EAA2E;IAC3E,QAAQ,IAAI,aAAa,EAAE,CAC5B,CAAC;AACJ,CAAC;AAED,MAAM,gBAAgB,GAAG,CAAC,GAAG,IAAI,CAAC;AAElC;;;;;;;GAOG;AACH,SAAS,UAAU,CAAC,MAA+B;IACjD,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,gBAAgB;YAAE,OAAO,MAAM,CAAC;QACvE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,gBAAgB,CAAC,EAAE,CAAC;IACvE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;IAClC,CAAC;AACH,CAAC;AAED,MAAM,OAAO,mBAAmB;IACb,IAAI,CAAS;IACb,MAAM,CAAU;IAEjC,YAAY,IAAsC;QAChD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,oBAAoB,CAAC,CAAC;QACtD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAC5B,CAAC;IAED;;;;OAIG;IACH,aAAa,CAAC,KAAsB;QAClC,MAAM,KAAK,GAAyB;YAClC,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,MAAM,EAAE,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC;YAChC,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,GAAG,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;YACpE,GAAG,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;YAC9D,GAAG,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC;YACvE,EAAE,EAAE,eAAe;YACnB,GAAG,CAAC,KAAK,CAAC,aAAa,KAAK,SAAS,IAAI;gBACvC,aAAa,EAAE,KAAK,CAAC,aAAa;aACnC,CAAC;SACH,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;IAED
|
|
1
|
+
{"version":3,"file":"approvalPersistence.js","sourceRoot":"","sources":["../src/approvalPersistence.ts"],"names":[],"mappings":"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"}
|
package/dist/approvalQueue.js
CHANGED
|
@@ -549,17 +549,29 @@ export class ApprovalQueue {
|
|
|
549
549
|
// in the same window) can be told "already decided as X" instead of
|
|
550
550
|
// an indistinguishable 404 "unknown callId". Audit 2026-05-17.
|
|
551
551
|
const decidedAt = Date.now();
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
552
|
+
// The durable log keeps ONE decision per callId, first writer wins
|
|
553
|
+
// (`ApprovalPersistence.recordDecision`). If another bridge already
|
|
554
|
+
// recorded one — e.g. its `restore()` expired this call while our own
|
|
555
|
+
// timer lagged — ADOPT it: resolving with our own decision instead would
|
|
556
|
+
// run a gated action under a ledger that says it expired. The caller is
|
|
557
|
+
// told it was not applied, and `recentlyDecided` carries the recorded
|
|
558
|
+
// decision so the HTTP layer answers `already_decided` honestly.
|
|
559
|
+
// A write FAILURE is different: the log could not be consulted, so the
|
|
560
|
+
// in-memory decision stands — a log failure never blocks an approval.
|
|
561
|
+
let effective = decision;
|
|
562
|
+
if (opts.persist !== false && this.persistence) {
|
|
563
|
+
const res = this.persistence.recordDecision(callId, decision, decidedAt);
|
|
564
|
+
if (res.status === "skipped")
|
|
565
|
+
effective = res.existing;
|
|
556
566
|
}
|
|
557
|
-
|
|
567
|
+
this.recentlyDecided.set(callId, { decision: effective, at: decidedAt });
|
|
568
|
+
this.pruneRecentlyDecided();
|
|
569
|
+
entry.resolve(effective);
|
|
558
570
|
// Wake up any duplicate callers who joined this entry via dedup.
|
|
559
571
|
for (const r of entry.pendingPromises)
|
|
560
|
-
r(
|
|
572
|
+
r(effective);
|
|
561
573
|
this.notify();
|
|
562
|
-
return
|
|
574
|
+
return effective === decision;
|
|
563
575
|
}
|
|
564
576
|
/**
|
|
565
577
|
* Durably record who decided a call, after the fact (ADR-0020).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"approvalQueue.js","sourceRoot":"","sources":["../src/approvalQueue.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"approvalQueue.js","sourceRoot":"","sources":["../src/approvalQueue.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `patchwork doctor acceptance` — does the INSTALLED package BEHAVE?
|
|
3
|
+
*
|
|
4
|
+
* `patchwork doctor` answers "is the running code the installed code?" by
|
|
5
|
+
* comparing timestamps. That is necessary and not sufficient: deploys were
|
|
6
|
+
* verified by grepping `dist/` for one symbol, and a deploy that silently did
|
|
7
|
+
* not happen (a git ref-lock race) was only noticed later. A string being
|
|
8
|
+
* present in a file is not a behaviour being present in a process.
|
|
9
|
+
*
|
|
10
|
+
* This runs the real runtime entrypoints — the flat runner (`runYamlRecipe`),
|
|
11
|
+
* the policy matrix, the profile-aware kill switch, `http.post`'s uncertain-
|
|
12
|
+
* outcome contract, `replayFlatMockedRun` and `RecipeRunLog.getByTaskId` —
|
|
13
|
+
* in-process, and asserts what they DO.
|
|
14
|
+
*
|
|
15
|
+
* ## Safe on a live production machine, by construction
|
|
16
|
+
*
|
|
17
|
+
* - Every behavioural check runs against a fresh temp `PATCHWORK_HOME` (and a
|
|
18
|
+
* temp `HOME`, so anything resolving `os.homedir()` lands in the sandbox
|
|
19
|
+
* too). The operator's config, flags and ledgers are never read or written;
|
|
20
|
+
* the identity check runs FIRST, before the swap, and reads only lock files
|
|
21
|
+
* and one mtime.
|
|
22
|
+
* - Network is loopback only: a server this command starts on 127.0.0.1.
|
|
23
|
+
* No connector, no model call, no git remote.
|
|
24
|
+
* - Approvals are answered by an in-process recorder, never the bridge queue.
|
|
25
|
+
* - Everything is restored and the sandbox removed in `finally`, including
|
|
26
|
+
* on failure.
|
|
27
|
+
*
|
|
28
|
+
* A separate subcommand from `doctor` for the same reason `doctor health` is:
|
|
29
|
+
* `patchwork doctor && echo deployed` is a real shape, and its exit code must
|
|
30
|
+
* not change meaning.
|
|
31
|
+
*/
|
|
32
|
+
export interface AcceptanceCheck {
|
|
33
|
+
name: string;
|
|
34
|
+
ok: boolean;
|
|
35
|
+
detail: string;
|
|
36
|
+
}
|
|
37
|
+
export interface AcceptanceReport {
|
|
38
|
+
ok: boolean;
|
|
39
|
+
total: number;
|
|
40
|
+
passed: number;
|
|
41
|
+
checks: AcceptanceCheck[];
|
|
42
|
+
}
|
|
43
|
+
export interface AcceptanceOptions {
|
|
44
|
+
/** Lock directory for the identity check (default: the real bridge lock dir). */
|
|
45
|
+
lockDir?: string;
|
|
46
|
+
/** Override the installed build time (tests). */
|
|
47
|
+
buildTimeMs?: number;
|
|
48
|
+
/** Parent directory for the sandbox (default: os.tmpdir()). */
|
|
49
|
+
tmpRoot?: string;
|
|
50
|
+
}
|
|
51
|
+
export declare function runAcceptance(opts?: AcceptanceOptions): Promise<AcceptanceReport>;
|
|
52
|
+
export declare function formatAcceptance(r: AcceptanceReport): string;
|