mirror of
https://github.com/paperclipai/paperclip.git
synced 2026-10-10 03:08:10 +02:00
fix(runner-e2e): admit explicit native active-stop candidates
Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
1 parent
727b979853
commit
2a877ad9d2
2 files changed
+19
-1
No files matched your search
@@ -62,6 +62,23 @@ describe("extended ACP harness qualification", () => {
|
||||
}
|
||||
}
|
||||
});
|
||||
it("admits all four explicit active-Stop cells only for Cursor and Copilot", () => {
|
||||
const cells = selectRunnerExecutions(parseRunnerSelectors(["--suite", "native-active-stop"]));
|
||||
expect(cells).toHaveLength(4);
|
||||
expect(new Set(cells.map(cell => `${cell.profile.qualificationCandidate}:${cell.environment.id}`))).toEqual(
|
||||
new Set(["cursor:local", "cursor:daytona", "copilot:local", "copilot:daytona"]),
|
||||
);
|
||||
for (const cell of cells) {
|
||||
expect(cell.suite.manualOnly).toBe(true);
|
||||
expect(JSON.parse(buildRunnerE2EProcessEnvironment({ PAPERCLIP_RUNNER_ACPX_QUALIFICATION: "ambient" }, [cell]).PAPERCLIP_RUNNER_ACPX_QUALIFICATION!))
|
||||
.toEqual([{ agent: cell.profile.qualificationCandidate, model: cell.profile.model }]);
|
||||
expect(() => buildRunnerE2EProcessEnvironment({}, [{ ...cell, suite: { ...cell.suite, manualOnly: false } }])).toThrow("explicit");
|
||||
expect(() => buildRunnerE2EProcessEnvironment({}, [{ ...cell, profile: { ...cell.profile, qualificationCandidate: "pi" } }])).toThrow("explicit");
|
||||
expect(() => buildRunnerE2EProcessEnvironment({}, [{ ...cell, suite: { ...cell.suite, id: "unrelated-manual-suite" } }])).toThrow("explicit");
|
||||
}
|
||||
const implicit = selectRunnerExecutions(parseRunnerSelectors(["--all"]));
|
||||
expect(implicit.some(cell => cell.suite.id === "native-active-stop")).toBe(false);
|
||||
});
|
||||
it("requires both image executable pins for remote native cases before setup", () => {
|
||||
const remote = runnerMatrix.filter(cell => cell.environment.id === "daytona" && ["cursor-native", "pi-native", "copilot-protection"].includes(cell.suite.id));
|
||||
const valid = { PAPERCLIP_E2E_DAYTONA_NODE_SHA256: `sha256:${"a".repeat(64)}`, PAPERCLIP_E2E_DAYTONA_RUNNERD_SHA256: `sha256:${"b".repeat(64)}` };
|
||||
|
||||
@@ -119,7 +119,8 @@ export function buildRunnerE2EProcessEnvironment(
|
||||
|| execution.suite.id === "rich-acp-warm-continuity"
|
||||
|| (execution.suite.id === "pi-native" && agent === "pi")
|
||||
|| (execution.suite.id === "cursor-native" && agent === "cursor")
|
||||
|| (execution.suite.id === "copilot-protection" && agent === "copilot");
|
||||
|| (execution.suite.id === "copilot-protection" && agent === "copilot")
|
||||
|| (execution.suite.id === "native-active-stop" && (agent === "cursor" || agent === "copilot"));
|
||||
if (!admittedSuite || !execution.suite.manualOnly) {
|
||||
throw new Error("Candidate qualification requires an explicit provider qualification suite");
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user