From 5f51f674f0835ce74a7217dad497ba3e0dd19e83 Mon Sep 17 00:00:00 2001 From: Dotta Date: Fri, 9 Oct 2026 11:53:34 -0500 Subject: [PATCH 1/3] Keep the contribution lockfile owned by current-master CI Retain the separately resolved qualification lock without submitting it in the runtime PR. Co-Authored-By: Paperclip --- pnpm-lock.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ba54e00a77c..861e3c98a24 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1043,6 +1043,9 @@ importers: open: specifier: ^11.0.4 version: 11.0.4 + opencode-ai: + specifier: 1.18.34 + version: 1.18.34 pino: specifier: ^10.0.0 version: 10.3.1 From d966fa578ee9303a2b4dda20338f9ecd0da486e1 Mon Sep 17 00:00:00 2001 From: Dotta Date: Fri, 9 Oct 2026 11:55:41 -0500 Subject: [PATCH 2/3] Keep the synthetic Codex test binding outside server compilation Resolve the offline fixture module at runtime, preserving the server rootDir boundary. Co-Authored-By: Paperclip --- .../src/services/native-runtime/native-session-resume.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/src/services/native-runtime/native-session-resume.test.ts b/server/src/services/native-runtime/native-session-resume.test.ts index 80236ceb6a1..be6238e436f 100644 --- a/server/src/services/native-runtime/native-session-resume.test.ts +++ b/server/src/services/native-runtime/native-session-resume.test.ts @@ -762,7 +762,7 @@ const recoveryFakeCodex = resolve( await chmod(command, 0o700); // Installed dependency selection intentionally precedes PATH on mainline. // Bind this fixture's synthetic provider explicitly at that boundary. - const codexCommandModule = await import("../../../../packages/paperclip-runner/src/drivers/codex/codex-command.js"); + const codexCommandModule = await import(new URL("../../../../packages/paperclip-runner/src/drivers/codex/codex-command.ts", import.meta.url).href); const codexCommandSelection = vi.spyOn(codexCommandModule, "resolveCodexCommand").mockReturnValue(command); restoreCodexCommand = () => codexCommandSelection.mockRestore(); await new Promise((done) => server.listen(0, "127.0.0.1", done)); From b3d14a6e3bb3c5a550f800b521fc6da91b39f0cf Mon Sep 17 00:00:00 2001 From: Dotta Date: Fri, 9 Oct 2026 11:55:41 -0500 Subject: [PATCH 3/3] Preserve Copilot model binding type after lifecycle extraction Co-Authored-By: Paperclip --- server/src/routes/agents.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/server/src/routes/agents.ts b/server/src/routes/agents.ts index 27e306533bf..3d0cf2ad9bc 100644 --- a/server/src/routes/agents.ts +++ b/server/src/routes/agents.ts @@ -18,6 +18,7 @@ import { ADAPTER_AUTH_MISSING_CHECK_CODE, aiConnectionBindingSchema, aiRuntimeConnectionBindingSchema, + type AiConnectionBinding, type AiRuntimeConnectionBinding, } from "@paperclipai/shared"; import { toolConnections } from "@paperclipai/db";