@miraland-labs/conduit-bridge 0.16.20 → 0.16.22
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/README.md +1 -1
- package/dist/cli.js +9 -2
- package/dist/driver.js +1 -1
- package/dist/ensure-pull-request.js +4 -2
- package/dist/execution.js +1 -1
- package/dist/on-shift-apply.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Local Bridge CLI for [Conduit](https://github.com/miralandlabs/conduit). Connects a computer to one organization, claims work, and drives a local agent.
|
|
4
4
|
|
|
5
|
-
**Package version:** `0.16.
|
|
5
|
+
**Package version:** `0.16.21` — mutate_repo with `pr_create` opens a pull request even when `change_scope` is empty. `ops disconnect` now asks before it removes the runner service and clears credentials; pass `--yes` to skip the question. `ops.env` is enrollment/bootstrap defaults only: an explicit workspace does not inherit an old repository, and project switches do not rewrite global project state. `ops enroll` exchanges a single-use token, registers the machine, binds project affinity, provisions fuel keys, brings detected drivers online, and starts the runner in one command. On Linux, `ops install` refuses any effective systemd drop-in. A switch intent remains queued until the target runner heartbeat proves Bound. After every Bridge publish, operators must re-run `ops install` (LaunchAgent pins an absolute `cli.js`).
|
|
6
6
|
|
|
7
7
|
## Prerequisites
|
|
8
8
|
|
package/dist/cli.js
CHANGED
|
@@ -520,7 +520,7 @@ async function runner() {
|
|
|
520
520
|
const applied = await maybeApplyOnShiftIntent({
|
|
521
521
|
currentWorkspace: workspace,
|
|
522
522
|
onShift: hb.on_shift,
|
|
523
|
-
runInstall: async (nextWorkspace, repo) => {
|
|
523
|
+
runInstall: async (nextWorkspace, repo, managedRoot) => {
|
|
524
524
|
let env;
|
|
525
525
|
try {
|
|
526
526
|
env = loadOpsEnv();
|
|
@@ -530,7 +530,14 @@ async function runner() {
|
|
|
530
530
|
}
|
|
531
531
|
await runOps("install", [], {
|
|
532
532
|
env: env
|
|
533
|
-
? {
|
|
533
|
+
? {
|
|
534
|
+
...env,
|
|
535
|
+
CONDUIT_WORKSPACE: nextWorkspace,
|
|
536
|
+
CONDUIT_REPO: repo,
|
|
537
|
+
CONDUIT_MANAGED_ROOT: managedRoot === undefined
|
|
538
|
+
? env.CONDUIT_MANAGED_ROOT
|
|
539
|
+
: managedRoot ?? "",
|
|
540
|
+
}
|
|
534
541
|
: undefined,
|
|
535
542
|
});
|
|
536
543
|
},
|
package/dist/driver.js
CHANGED
|
@@ -131,7 +131,7 @@ export function buildAssignmentPrompt(context) {
|
|
|
131
131
|
if (rework)
|
|
132
132
|
lines.push("", `REWORK FEEDBACK — an independent review returned this delivery; address every point\n${rework}`);
|
|
133
133
|
const mustCommit = context.grants.includes("repo_write") && context.grants.includes("branch_create");
|
|
134
|
-
const mustOpenPr = mustCommit && context.grants.includes("pr_create")
|
|
134
|
+
const mustOpenPr = mustCommit && context.grants.includes("pr_create");
|
|
135
135
|
const executionClass = context.executionClass
|
|
136
136
|
?? requireStampedExecutionClass(spec.execution_class);
|
|
137
137
|
// Phase B: control-plane instruction is additive evidence/class prose.
|
|
@@ -29,8 +29,10 @@ export async function commitsAheadOfBase(workspace, base) {
|
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
31
|
export function needsPullRequest(report, spec, grants) {
|
|
32
|
+
void spec;
|
|
33
|
+
// Empty change_scope is "whole repo", not "no land". Run 7 committed CANARY.md with pr_create
|
|
34
|
+
// granted and never opened a PR because this used to require a non-empty scope.
|
|
32
35
|
return Boolean(grants.includes("pr_create")
|
|
33
|
-
&& (spec.change_scope?.length ?? 0) > 0
|
|
34
36
|
&& report.head_commit
|
|
35
37
|
&& !report.pull_request_url);
|
|
36
38
|
}
|
|
@@ -181,7 +183,7 @@ export async function ensureDeliveryPullRequest(input) {
|
|
|
181
183
|
const push = input.pushOriginHead ?? pushOriginHead;
|
|
182
184
|
const countAhead = input.countCommitsAhead ?? commitsAheadOfBase;
|
|
183
185
|
let report = adoptPullRequestUrlFromEvidence(input.report, input.repositoryFingerprint);
|
|
184
|
-
if ((input.spec.change_scope?.length ?? 0) > 0) {
|
|
186
|
+
if (input.grants.includes("pr_create") || (input.spec.change_scope?.length ?? 0) > 0) {
|
|
185
187
|
const head = await readHead(input.workspace);
|
|
186
188
|
if (report.head_commit && !commitsMatch(report.head_commit, head)) {
|
|
187
189
|
console.error(`Agent head_commit ${report.head_commit} does not match workspace HEAD ${head}; using workspace HEAD`);
|
package/dist/execution.js
CHANGED
|
@@ -1764,8 +1764,8 @@ export function validateDeliveryReport(report, spec, grants = [], actualPaths) {
|
|
|
1764
1764
|
throw new Error("Agent reported repository changes without the repo_write grant");
|
|
1765
1765
|
}
|
|
1766
1766
|
// Merge-on-accept lands GitHub PRs. Local attempt commits without a PR never reach main.
|
|
1767
|
+
// Empty change_scope means whole-repo, not "skip the PR" (Run 7).
|
|
1767
1768
|
if (grants.includes("pr_create")
|
|
1768
|
-
&& (spec.change_scope?.length ?? 0) > 0
|
|
1769
1769
|
&& report.head_commit
|
|
1770
1770
|
&& !report.pull_request_url) {
|
|
1771
1771
|
throw new Error("Repository changes require a pull_request_url when pr_create is granted");
|
package/dist/on-shift-apply.js
CHANGED
|
@@ -47,6 +47,6 @@ export async function maybeApplyOnShiftIntent(input) {
|
|
|
47
47
|
return false;
|
|
48
48
|
}
|
|
49
49
|
console.log(`Applying on-shift workspace intent: ${target}${repo ? ` (${repo})` : ""}`);
|
|
50
|
-
await input.runInstall(target, repo);
|
|
50
|
+
await input.runInstall(target, repo, input.onShift?.managed_workspace_root);
|
|
51
51
|
return true;
|
|
52
52
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@miraland-labs/conduit-bridge",
|
|
3
|
-
"version": "0.16.
|
|
3
|
+
"version": "0.16.22",
|
|
4
4
|
"description": "Conduit Bridge CLI — join, connect, disconnect, multi-driver lanes, and run Claude Code / Codex / Cursor / OpenCode / Pi / Kiro / Antigravity / Grok Build agents for a Conduit organization",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|