Merge current master lifecycle and CI fixes into Claude behavior

Co-Authored-By: Paperclip <noreply@paperclip.ing>

* codex/claude-runner-protocol:
  fix(grok): avoid routine wakes for proactive admission (#16422)
  feat(ci): profile full CODEOWNER PR suites in Honeycomb (#16378)
  test: bound command snapshot forwarding checks (#16421)
  fix(agents): report actionable lifecycle failure steps (#16418)
This commit is contained in:
DottaandPaperclip committed 2026-10-15 07:23:22 -05:00
commit bd3ceab2b2
50 files changed
+1630 -60

No files matched your search

@@ -427,7 +427,11 @@ describe("sandbox managed runtime", () => {
const local = path.join(root, "local"), remote = path.join(root, "remote");
await mkdir(local);
await writeFile(path.join(local, "file.txt"), "before");
const capture = vi.spyOn(restoreMerge, "captureDirectorySnapshotOffThread");
const mergeDirectoryWithBaseline = restoreMerge.mergeDirectoryWithBaseline;
const capture = vi.spyOn(restoreMerge, "captureDirectorySnapshotOffThread")
.mockImplementation(restoreMerge.captureDirectorySnapshot);
const merge = vi.spyOn(restoreMerge, "mergeDirectoryWithBaseline")
.mockImplementation(input => mergeDirectoryWithBaseline({ ...input, workspaceSnapshotIsolation: undefined }));
try {
const prepared = await prepareCommandManagedRuntime({
runner: makeInlineSpawnRunner(),
@@ -442,9 +446,11 @@ describe("sandbox managed runtime", () => {
expect(await readFile(path.join(remote, "file.txt"), "utf8")).toBe("before");
await writeFile(path.join(remote, "file.txt"), "after");
await prepared.restoreWorkspace();
expect(merge).toHaveBeenCalled();
expect(merge.mock.calls.every(([input]) => input.workspaceSnapshotIsolation === isolation)).toBe(true);
expect(await readFile(path.join(local, "file.txt"), "utf8")).toBe("after");
} finally { capture.mockRestore(); }
}, 30_000);
} finally { capture.mockRestore(); merge.mockRestore(); }
});
it.each(["host_current", "adopt_remote", "durable_seed"] as const)("stages and restores both project repositories with independent Git histories (%s)", async (mode) => {
const root = await mkdtemp(path.join(os.tmpdir(), "paperclip-multi-repo-"));
+1 -1
View File
@@ -17,7 +17,7 @@
"scripts": {
"build": "tsc -p tsconfig.json",
"typecheck": "tsc -p tsconfig.json --noEmit",
"test": "pnpm run build && node --test test/*.test.mjs"
"test": "pnpm run build && node ../../scripts/ci-profile/node-test.mjs test/*.test.mjs"
},
"engines": {
"node": ">=24.11.0"
+1 -1
View File
@@ -81,7 +81,7 @@
"typecheck:browser": "tsc -p tsconfig.browser.json --noEmit",
"test": "pnpm run test:typescript && pnpm run test:rust",
"test:typescript": "pnpm run test:typescript:prep && vitest run",
"test:typescript:prep": "pnpm run ensure:eval-build-deps && pnpm run build:rust && node --test test/protocol-contract.test.mjs test/acpx-sidecar-contract.test.mjs test/acpx-codex-package-contract.test.mjs test/acpx-model-selection-package-contract.test.mjs test/acpx-message-boundaries-package-contract.test.mjs test/acpx-rich-extensions-package-contract.test.mjs test/acpx-pi-receipt-package-contract.test.mjs test/acpx-response-delivery-package-contract.test.mjs scripts/candidate-provider-pack.test.mjs scripts/cursor-provisioner-layout.test.mjs scripts/release-provider-pack.test.mjs scripts/aws-agentcore-provisioning.test.mjs scripts/build-verified-provider-entrypoints.test.mjs scripts/local-provider-smoke-environment.test.mjs scripts/materialize-opencode-binary.test.mjs scripts/installed-package-pack.test.mjs scripts/runner-package-executable.test.mjs scripts/stage-runner-binary.test.mjs scripts/build-inputs.test.mjs",
"test:typescript:prep": "pnpm run ensure:eval-build-deps && pnpm run build:rust && node ../../scripts/ci-profile/node-test.mjs test/protocol-contract.test.mjs test/acpx-sidecar-contract.test.mjs test/acpx-codex-package-contract.test.mjs test/acpx-model-selection-package-contract.test.mjs test/acpx-message-boundaries-package-contract.test.mjs test/acpx-rich-extensions-package-contract.test.mjs test/acpx-pi-receipt-package-contract.test.mjs test/acpx-response-delivery-package-contract.test.mjs scripts/candidate-provider-pack.test.mjs scripts/cursor-provisioner-layout.test.mjs scripts/release-provider-pack.test.mjs scripts/aws-agentcore-provisioning.test.mjs scripts/build-verified-provider-entrypoints.test.mjs scripts/local-provider-smoke-environment.test.mjs scripts/materialize-opencode-binary.test.mjs scripts/installed-package-pack.test.mjs scripts/runner-package-executable.test.mjs scripts/stage-runner-binary.test.mjs scripts/build-inputs.test.mjs",
"test:typescript:vitest": "node ./scripts/run-pr-vitest-lane.mjs",
"test:rust": "cargo test --release --manifest-path runner/Cargo.toml --locked --workspace",
"test:codex": "cargo test --manifest-path runner/Cargo.toml --locked -p paperclip-runner-core --test codex_provider",
@@ -24,6 +24,7 @@
import { spawnSync } from "node:child_process";
import { dirname, resolve } from "node:path";
import { fileURLToPath } from "node:url";
import { invocationEnv } from "../../../scripts/ci-profile/record.mjs";
const packageRoot = resolve(dirname(fileURLToPath(import.meta.url)), "..");
const workspaceRoot = resolve(packageRoot, "../..");
@@ -62,6 +63,7 @@ for (const planned of plannedCommands) {
const result = spawnSync(planned.command, planned.args, {
cwd: planned.cwd,
stdio: "inherit",
env: planned.args[0] === "exec" && planned.args[1] === "vitest" ? invocationEnv("vitest") : process.env,
});
if (result.status !== 0) {
process.exit(result.status ?? 1);
+4 -1
View File
@@ -1,7 +1,7 @@
import { resolve } from "node:path";
import { fileURLToPath } from "node:url";
import { defineConfig } from "vitest/config";
import { configDefaults, defineConfig } from "vitest/config";
const packageRoot = fileURLToPath(new URL(".", import.meta.url));
@@ -13,6 +13,9 @@ export default defineConfig({
],
},
test: {
...(process.env.PAPERCLIP_CI_PROFILE === "true"
? { reporters: [...configDefaults.reporters, resolve(packageRoot, "../../scripts/ci-profile/vitest-reporter.mjs")] }
: {}),
environment: "node",
include: [
"src/**/*.test.ts",