From c8f2c26577f514bf8c3e9581effa254384131f93 Mon Sep 17 00:00:00 2001 From: Dotta Date: Mon, 12 Oct 2026 20:34:26 -0500 Subject: [PATCH] chore: apply contribution rules to platform qualification Co-Authored-By: Paperclip --- .github/workflows/release-verify.yml | 1 - .../paperclip-runner/scripts/provider-pack-runtime-tree.mjs | 1 - scripts/check-node-version-policy.mjs | 2 -- scripts/grok-public-install-sandbox.mjs | 1 - server/src/__tests__/onboarding-seed-route.test.ts | 2 -- server/src/services/agent-runner-selection.ts | 2 -- server/src/services/native-runtime/remote-provider-pack.ts | 2 -- 7 files changed, 11 deletions(-) diff --git a/.github/workflows/release-verify.yml b/.github/workflows/release-verify.yml index 6f94187238d..862821d0bce 100644 --- a/.github/workflows/release-verify.yml +++ b/.github/workflows/release-verify.yml @@ -608,7 +608,6 @@ jobs: version: 9.15.4 - uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7 with: - # Provider-pack Node bytes must match the pinned Daytona image. node-version: 24.21.0 - name: Bind immutable producer source and target id: identity diff --git a/packages/paperclip-runner/scripts/provider-pack-runtime-tree.mjs b/packages/paperclip-runner/scripts/provider-pack-runtime-tree.mjs index 70cbf48bcdd..5080335ef8f 100644 --- a/packages/paperclip-runner/scripts/provider-pack-runtime-tree.mjs +++ b/packages/paperclip-runner/scripts/provider-pack-runtime-tree.mjs @@ -1,7 +1,6 @@ import { rmSync } from "node:fs"; import { join } from "node:path"; -/** Daemons and remote pack identities are assembled separately from provider code. */ export function removeControllerArtifactsFromProviderPack(packRoot) { for (const directory of ["bin", "remote-provider-packs"]) { rmSync(join(packRoot, "dist", directory), { recursive: true, force: true }); diff --git a/scripts/check-node-version-policy.mjs b/scripts/check-node-version-policy.mjs index bcef99200f1..06c513b63b7 100644 --- a/scripts/check-node-version-policy.mjs +++ b/scripts/check-node-version-policy.mjs @@ -40,8 +40,6 @@ const workflowRoot = path.join(repoRoot, ".github", "workflows"); walk(workflowRoot, (filePath) => { if (!/\.ya?ml$/.test(filePath)) return; const source = fs.readFileSync(filePath, "utf8"); - // Release packs ship the interpreter itself, so their producer must match - // the image's exact Node patch. Other CI jobs continue tracking Node 24. const packProducer = relative(filePath) === ".github/workflows/release-verify.yml" ? /(?:^|\n) runner_binaries:\n[\s\S]*?(?=\n [a-z_]+:\n|$)/.exec(source) : null; diff --git a/scripts/grok-public-install-sandbox.mjs b/scripts/grok-public-install-sandbox.mjs index 090aefd3802..003a6e666ba 100644 --- a/scripts/grok-public-install-sandbox.mjs +++ b/scripts/grok-public-install-sandbox.mjs @@ -90,7 +90,6 @@ export function assertInstalledCodexPlatformProvenance(lock, installed, target) export function installedClaudeProbeSource(indexPath, serverRoot) { return ` import { pathToFileURL } from 'node:url'; - // Match the production sidecar's published-server package authority. process.env.PAPERCLIP_ACPX_PROVIDER_PACKAGE_ROOT = ${JSON.stringify(serverRoot)}; process.env.PAPERCLIP_ACPX_PROVIDER_PACKAGE_MANIFEST = ${JSON.stringify(join(serverRoot, 'package.json'))}; const { probeAcpxClaudeInstallation } = await import(pathToFileURL(${JSON.stringify(indexPath)}).href); diff --git a/server/src/__tests__/onboarding-seed-route.test.ts b/server/src/__tests__/onboarding-seed-route.test.ts index c85b4bc80f7..daebaed99a3 100644 --- a/server/src/__tests__/onboarding-seed-route.test.ts +++ b/server/src/__tests__/onboarding-seed-route.test.ts @@ -94,8 +94,6 @@ describeEmbeddedPostgres("POST /api/companies/:companyId/onboarding-seed", () => // The seed's free-text role is a job title; the structural role stays `ceo`. expect(companyAgents[0]?.title).toBe("Chief of Staff"); expect(companyAgents[0]?.role).toBe("ceo"); - // Native PRP supplies the operational contract. The seeded CEO retains - // its role skills in its own desired set. expect(companyAgents[0]?.adapterConfig).toMatchObject({ paperclipSkillSync: { desiredSkills: expect.arrayContaining([ diff --git a/server/src/services/agent-runner-selection.ts b/server/src/services/agent-runner-selection.ts index 115b5e8ea85..50478eb527a 100644 --- a/server/src/services/agent-runner-selection.ts +++ b/server/src/services/agent-runner-selection.ts @@ -35,8 +35,6 @@ export function agentRunnerAvailability(harness: string, target: RunnerTarget = && (harness === "claude_local" ? !!target.platform && paperclipRunnerSupportsPlatform(harness, target.platform, target.architecture ?? "", target.libc, target.glibcVersion) : !target.platform || paperclipRunnerSupportsPlatform(harness, target.platform, target.architecture ?? "", target.libc, target.glibcVersion)); - // Darwin SSH execution needs operator-provided matching assets. It remains - // an explicit choice until automatic Darwin remote packs are qualified. const automatic = supported && !(harness === "claude_local" && target.driver === "ssh" && target.platform === "darwin"); return { supportedRunners: supported ? ["paperclip", "legacy"] : ["legacy"], defaultRunner: automatic ? "paperclip" : "legacy" }; } diff --git a/server/src/services/native-runtime/remote-provider-pack.ts b/server/src/services/native-runtime/remote-provider-pack.ts index e43d4b024fd..e611fafc499 100644 --- a/server/src/services/native-runtime/remote-provider-pack.ts +++ b/server/src/services/native-runtime/remote-provider-pack.ts @@ -15,7 +15,6 @@ export async function prepareVerifiedRemoteProviderPack(input: { return "uploaded"; } -/** A stale standard installation must not hide a matching later installation. */ export async function useVerifiedPreinstalledRemoteProviderPack(input: { candidates: readonly string[]; verifyAndLink: (root: string) => Promise; @@ -25,7 +24,6 @@ export async function useVerifiedPreinstalledRemoteProviderPack(input: { await input.verifyAndLink(candidate); return true; } catch { - // Continue only to another installation with the same full verifier. } } return false;