agent-merge-broker 0.11.0 → 0.12.0
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/CHANGELOG.md +38 -0
- package/README.md +39 -19
- package/dist/broker.d.ts +35 -0
- package/dist/broker.d.ts.map +1 -1
- package/dist/broker.js +1249 -87
- package/dist/broker.js.map +1 -1
- package/dist/cli.js +100 -2
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +14 -0
- package/dist/config.js.map +1 -1
- package/dist/git.d.ts +23 -1
- package/dist/git.d.ts.map +1 -1
- package/dist/git.js +171 -7
- package/dist/git.js.map +1 -1
- package/dist/publisher.d.ts +9 -6
- package/dist/publisher.d.ts.map +1 -1
- package/dist/publisher.js +95 -20
- package/dist/publisher.js.map +1 -1
- package/dist/serve-log.d.ts +18 -0
- package/dist/serve-log.d.ts.map +1 -1
- package/dist/serve-log.js +16 -1
- package/dist/serve-log.js.map +1 -1
- package/dist/store.d.ts +22 -0
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +162 -33
- package/dist/store.js.map +1 -1
- package/dist/types.d.ts +37 -1
- package/dist/types.d.ts.map +1 -1
- package/docs/COMPATIBILITY.md +12 -0
- package/docs/GETTING_STARTED.md +6 -1
- package/docs/RELEASING.md +1 -1
- package/docs/SECURITY.md +19 -2
- package/package.json +1 -1
- package/schemas/candidate.schema.json +4 -1
- package/schemas/config.schema.json +9 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,43 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.12.0 — 2026-09-04
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
|
|
7
|
+
- Durable journals for publication, auto-merge enablement and revocation, candidate revision, and
|
|
8
|
+
stale-base refresh operations, allowing unattended service restarts to finish interrupted work.
|
|
9
|
+
- Per-batch operation serialization, recoverable lock ownership, and an operator-visible recovery
|
|
10
|
+
path for abandoned dynamic batch locks.
|
|
11
|
+
- Durable Git remote fingerprints and host-qualified forge selectors so publication remains bound
|
|
12
|
+
to the repository and target selected when a batch was assembled.
|
|
13
|
+
|
|
14
|
+
### Changed
|
|
15
|
+
|
|
16
|
+
- `serve --publish` now reconciles and safely retries prepared batches, partial publication,
|
|
17
|
+
auto-merge hand-offs, policy changes, and stale bases before integrating more work.
|
|
18
|
+
- The exported `ForgePublisher` contract now requires exact pull-request identity and explicit
|
|
19
|
+
observed auto-merge state, including an `undefined` result when the forge cannot prove it.
|
|
20
|
+
- Broker-generated Git commits use a stable broker identity with signing and ambient repository
|
|
21
|
+
hooks disabled, making integration behavior consistent across clean Windows, macOS, and Linux
|
|
22
|
+
hosts.
|
|
23
|
+
|
|
24
|
+
### Security
|
|
25
|
+
|
|
26
|
+
- Auto-merge authorization remains bound to the exact candidate SHA, base SHA, policy revision,
|
|
27
|
+
required evidence, authorized actor, pull-request target, and durably recorded forge repository.
|
|
28
|
+
- Merge reconciliation proves the accepted fast-forward, squash, two-parent merge, or linear rebase
|
|
29
|
+
topology before releasing dependent tasks.
|
|
30
|
+
- Revocation, reviewer closure, force-push, reopened pull request, remote retargeting, and
|
|
31
|
+
configuration-downgrade races now fail closed without leaving a possibly-live merge queue behind.
|
|
32
|
+
|
|
33
|
+
### Fixed
|
|
34
|
+
|
|
35
|
+
- Publication and refresh failures no longer strand the queue or create duplicate pull requests.
|
|
36
|
+
- Validators can no longer validate bytes different from the retained candidate through worktree
|
|
37
|
+
mutation or ambient Git hooks.
|
|
38
|
+
- Stale bases, policy drift, interrupted refreshes, and approval retries now converge to an
|
|
39
|
+
auditable terminal or retryable state after a process restart.
|
|
40
|
+
|
|
3
41
|
## 0.11.0 — 2026-09-03
|
|
4
42
|
|
|
5
43
|
### Added
|
package/README.md
CHANGED
|
@@ -46,9 +46,11 @@ It is deliberately **not** an agent framework and **not** a replacement for prot
|
|
|
46
46
|
|
|
47
47
|
`0.3.0` was the first public release: the local broker core, the GitHub CLI publishing adapter with auto-merge, and the remote provenance verifier.
|
|
48
48
|
|
|
49
|
-
`0.
|
|
50
|
-
|
|
51
|
-
|
|
49
|
+
`0.12.0` is the current release. It makes pull-request auto-merge crash-recoverable and
|
|
50
|
+
target-bound, adds unattended publication and stale-base recovery, and closes approval, refresh,
|
|
51
|
+
revision, remote-retargeting, and reopened-pull-request races. It also retains the first-class
|
|
52
|
+
Windows support, permission-separated MCP servers, diagnostics, and bootstrap detection added in
|
|
53
|
+
`0.11.0`.
|
|
52
54
|
|
|
53
55
|
The on-disk state, receipt, and provenance formats are versioned, but compatibility is not guaranteed until `1.0.0`. Expect format migrations before then.
|
|
54
56
|
|
|
@@ -232,7 +234,7 @@ installing dependencies:
|
|
|
232
234
|
with:
|
|
233
235
|
ref: ${{ github.event.pull_request.head.sha }}
|
|
234
236
|
fetch-depth: 0
|
|
235
|
-
- uses: WeSpitfire/agent-merge-broker/verify@v0.
|
|
237
|
+
- uses: WeSpitfire/agent-merge-broker/verify@v0.12.0
|
|
236
238
|
```
|
|
237
239
|
|
|
238
240
|
The check verifies the Ed25519 signature, branch and batch identity, real base history, one-file
|
|
@@ -295,7 +297,14 @@ merge-broker batch approve <batch-id> \
|
|
|
295
297
|
|
|
296
298
|
Every binding is explicit on purpose. A stale command fails instead of approving whatever happens
|
|
297
299
|
to be current. Approval also rechecks the open PR head, target base, task state, reviews, conflicts,
|
|
298
|
-
and configured GitHub checks.
|
|
300
|
+
and configured GitHub checks. Approval becomes merge-authorizing only after it is durable and the
|
|
301
|
+
broker observes that exact PR still open; the final `gh pr merge` uses GitHub's head-SHA guard.
|
|
302
|
+
|
|
303
|
+
Protect the target branch with either “require branches to be up to date before merging” or a merge
|
|
304
|
+
queue, and restrict bypass permission. GitHub's merge API can guard the head SHA but cannot
|
|
305
|
+
atomically guard a base SHA. The broker rechecks the base immediately before queueing and proves the
|
|
306
|
+
merged Git history afterward, but branch protection prevents an out-of-band base update in that
|
|
307
|
+
final remote interval.
|
|
299
308
|
|
|
300
309
|
If verification finds a problem, keep the task and PR:
|
|
301
310
|
|
|
@@ -322,9 +331,16 @@ Two configuration combinations cannot work and are rejected at load time rather
|
|
|
322
331
|
|
|
323
332
|
Auto-merge requires the setting to be enabled on the GitHub repository. Configurations written before this feature existed default to `autoMerge: false`, so upgrading never starts landing work on its own.
|
|
324
333
|
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
334
|
+
The broker resolves and records the exact Git push URL locator and GitHub `HOST/OWNER/REPO` when it
|
|
335
|
+
assembles a batch. Later changes to the named Git remote or to `gh repo set-default` cannot redirect
|
|
336
|
+
publication. Standard GitHub and GitHub Enterprise remote URLs are derived automatically. If the
|
|
337
|
+
Git remote is a local mirror or proxy, set `publish.repository` explicitly; otherwise pull-request
|
|
338
|
+
mode fails closed rather than guessing a GitHub repository.
|
|
339
|
+
|
|
340
|
+
Running `merge-broker serve --publish` reconciles checks, finishes interrupted publication or
|
|
341
|
+
auto-merge hand-offs, re-cuts stale batches, and only then integrates the next batch. With exact
|
|
342
|
+
approval enabled it deliberately stops at `ready_for_approval`; only `batch approve` grants merge
|
|
343
|
+
permission.
|
|
328
344
|
|
|
329
345
|
## Failure recovery
|
|
330
346
|
|
|
@@ -365,18 +381,21 @@ That closes the superseded pull request, returns the tasks to the queue without
|
|
|
365
381
|
budget, and integrates them again from the current tip, re-validating against the base that is
|
|
366
382
|
actually being merged into. A batch already cut from the current tip is left alone.
|
|
367
383
|
|
|
368
|
-
Publication is safe to retry. The pull request is recorded before auto-merge is attempted,
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
384
|
+
Publication is safe to retry. The pull request is recorded before auto-merge is attempted, and a
|
|
385
|
+
durable intent is recorded before the remote queue is changed. A forge that fails halfway therefore
|
|
386
|
+
leaves a resumable batch rather than silently stranding the queue. `serve --publish` resumes it
|
|
387
|
+
automatically; `batch publish` does the same explicitly. Retries reuse the recorded PR URL, and a
|
|
388
|
+
crash before that URL is recorded searches all PR states for the batch's unique branch before it can
|
|
389
|
+
create anything new.
|
|
372
390
|
|
|
373
391
|
A process that dies mid-integration can leave both a lock and durable `running` state. A holder on
|
|
374
|
-
this machine is reclaimed automatically once its process is gone
|
|
375
|
-
be probed and
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
392
|
+
this machine is reclaimed automatically once its process is proven gone. A holder on another machine
|
|
393
|
+
cannot be probed and is never stolen merely because it is old; after confirming that process is
|
|
394
|
+
gone, inspect or release it explicitly with `unlock batch:<batch-id> --force` (or `state` /
|
|
395
|
+
`integration`). Once the integration lock is safely acquired, `serve` and `integrate` automatically
|
|
396
|
+
mark abandoned work failed, clean its broker-owned worktree and branch, and return its tasks to
|
|
397
|
+
`submitted` without spending their attempt budget. `merge-broker recover` performs that
|
|
398
|
+
reconciliation explicitly.
|
|
380
399
|
|
|
381
400
|
Candidate revisions also carry a durable intent before the broker moves their branch. If a process
|
|
382
401
|
stops after the branch update but before state finalization, `recover` compares the real PR/local
|
|
@@ -458,6 +477,7 @@ The generated `.merge-broker/config.json` is intentionally explicit and reviewab
|
|
|
458
477
|
},
|
|
459
478
|
"publish": {
|
|
460
479
|
"mode": "pull-request",
|
|
480
|
+
"repository": "owner/repository",
|
|
461
481
|
"draft": false,
|
|
462
482
|
"autoMerge": true,
|
|
463
483
|
"mergeMethod": "squash",
|
|
@@ -553,7 +573,7 @@ merge-broker audit
|
|
|
553
573
|
merge-broker metrics
|
|
554
574
|
merge-broker events
|
|
555
575
|
merge-broker prune [--older-than <days>] [--dry-run]
|
|
556
|
-
merge-broker unlock [state|integration] [--force]
|
|
576
|
+
merge-broker unlock [state|integration|batch:<batch-id>] [--force]
|
|
557
577
|
merge-broker recover
|
|
558
578
|
merge-broker serve [--publish] [--eager] [--log-file <path>]
|
|
559
579
|
merge-broker-mcp -C <directory> [--profile worker|operator]
|
package/dist/broker.d.ts
CHANGED
|
@@ -61,6 +61,23 @@ export declare class MergeBroker {
|
|
|
61
61
|
keyPath: string;
|
|
62
62
|
}>;
|
|
63
63
|
private provenanceSigningPrivateKey;
|
|
64
|
+
/**
|
|
65
|
+
* Resolves the exact base used for a new merge candidate. The generated configuration names the
|
|
66
|
+
* local branch for repositories that have no remote, but once refresh succeeds that local ref is
|
|
67
|
+
* not the refreshed value; the remote-tracking branch is. Publication fails closed when the
|
|
68
|
+
* requested refresh cannot be performed.
|
|
69
|
+
*/
|
|
70
|
+
private currentIntegrationBaseSha;
|
|
71
|
+
/** Resolve the current tip of the immutable forge target recorded on an existing batch. */
|
|
72
|
+
private currentBatchTargetSha;
|
|
73
|
+
private assertBatchBaseFresh;
|
|
74
|
+
/**
|
|
75
|
+
* GitHub can report the target branch's newer tip as `baseRefOid` after a merge. In that case,
|
|
76
|
+
* prove from Git itself that the recorded merge commit landed the approved candidate tree on a
|
|
77
|
+
* history rooted at the approved base. A transient inability to fetch is retryable; a graph/tree
|
|
78
|
+
* mismatch is an authorization failure.
|
|
79
|
+
*/
|
|
80
|
+
private proveMergedCandidate;
|
|
64
81
|
registerTask(input: RegisterTaskInput): Promise<TaskRecord>;
|
|
65
82
|
claimTask(input: ClaimTaskInput): Promise<{
|
|
66
83
|
task: TaskRecord;
|
|
@@ -107,7 +124,14 @@ export declare class MergeBroker {
|
|
|
107
124
|
files?: string[];
|
|
108
125
|
cwd?: string;
|
|
109
126
|
}): Promise<LocalValidationResult>;
|
|
127
|
+
/**
|
|
128
|
+
* Validators are observers of an immutable candidate, not build steps. A validator that commits
|
|
129
|
+
* or leaves tracked/untracked changes behind has tested a different tree from the one the broker
|
|
130
|
+
* is about to retain and publish. Refuse that ambiguity even when the command exited successfully.
|
|
131
|
+
*/
|
|
132
|
+
private assertValidatorPreservedCandidate;
|
|
110
133
|
integrate(options?: IntegrationOptions): Promise<IntegrationResult>;
|
|
134
|
+
private integrateForTarget;
|
|
111
135
|
private writeRevisionArtifacts;
|
|
112
136
|
private recoverAbandonedIntegrationsLocked;
|
|
113
137
|
/**
|
|
@@ -116,6 +140,7 @@ export declare class MergeBroker {
|
|
|
116
140
|
*/
|
|
117
141
|
recoverAbandonedIntegrations(): Promise<RecoveryResult>;
|
|
118
142
|
publishBatch(id: string): Promise<BatchRecord>;
|
|
143
|
+
private publishBatchLocked;
|
|
119
144
|
recordVerification(id: string, input: {
|
|
120
145
|
name: string;
|
|
121
146
|
status: "passed" | "failed";
|
|
@@ -126,6 +151,7 @@ export declare class MergeBroker {
|
|
|
126
151
|
evidenceUrl?: string;
|
|
127
152
|
notes?: string;
|
|
128
153
|
}): Promise<BatchRecord>;
|
|
154
|
+
private recordVerificationLocked;
|
|
129
155
|
requestChanges(id: string, input: {
|
|
130
156
|
candidateSha: string;
|
|
131
157
|
baseSha: string;
|
|
@@ -133,12 +159,15 @@ export declare class MergeBroker {
|
|
|
133
159
|
actor: string;
|
|
134
160
|
reason: string;
|
|
135
161
|
}): Promise<BatchRecord>;
|
|
162
|
+
private requestChangesLocked;
|
|
163
|
+
private completeChangeRequestLocked;
|
|
136
164
|
approveBatch(id: string, input: {
|
|
137
165
|
candidateSha: string;
|
|
138
166
|
baseSha: string;
|
|
139
167
|
policyRevision?: string;
|
|
140
168
|
actor: string;
|
|
141
169
|
}): Promise<BatchRecord>;
|
|
170
|
+
private approveBatchLocked;
|
|
142
171
|
reopenTaskForRevision(taskId: string, input: {
|
|
143
172
|
holder: string;
|
|
144
173
|
expectedPaths?: string[];
|
|
@@ -152,10 +181,13 @@ export declare class MergeBroker {
|
|
|
152
181
|
token: string;
|
|
153
182
|
tokenPath?: string;
|
|
154
183
|
}>;
|
|
184
|
+
private reopenTaskForRevisionLocked;
|
|
155
185
|
reviseTask(taskId: string, commits: string[], token: string, options?: {
|
|
156
186
|
sinceBase?: boolean;
|
|
157
187
|
}): Promise<RevisionResult>;
|
|
188
|
+
private reviseTaskLocked;
|
|
158
189
|
syncBatch(id: string): Promise<BatchRecord>;
|
|
190
|
+
private syncBatchLocked;
|
|
159
191
|
syncPublishedBatches(): Promise<{
|
|
160
192
|
synced: BatchRecord[];
|
|
161
193
|
closed: BatchRecord[];
|
|
@@ -174,6 +206,7 @@ export declare class MergeBroker {
|
|
|
174
206
|
* an explicit operator action through `task retry`.
|
|
175
207
|
*/
|
|
176
208
|
closeBatch(id: string, reason: string): Promise<BatchRecord>;
|
|
209
|
+
private closeBatchLocked;
|
|
177
210
|
/**
|
|
178
211
|
* Replaces a batch that can no longer merge because the base branch moved under it.
|
|
179
212
|
*
|
|
@@ -192,7 +225,9 @@ export declare class MergeBroker {
|
|
|
192
225
|
refreshBatch(id: string, options?: {
|
|
193
226
|
publish?: boolean;
|
|
194
227
|
}): Promise<RefreshResult>;
|
|
228
|
+
private refreshBatchLocked;
|
|
195
229
|
markBatchMerged(id: string, mergedAt?: string, mergeCommitSha?: string): Promise<BatchRecord>;
|
|
230
|
+
private markBatchMergedLocked;
|
|
196
231
|
auditWorktrees(): Promise<{
|
|
197
232
|
worktrees: Array<{
|
|
198
233
|
path: string;
|
package/dist/broker.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"broker.d.ts","sourceRoot":"","sources":["../src/broker.ts"],"names":[],"mappings":"AAIA,OAAO,
|
|
1
|
+
{"version":3,"file":"broker.d.ts","sourceRoot":"","sources":["../src/broker.ts"],"names":[],"mappings":"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"}
|