Hide announcements in runner evals and label gallery environments

Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
DottaandPaperclip committed 2026-09-16 07:47:45 -05:00
1 parent 0f2fe424f6
commit 19415791d3
4 files changed
+19 -4

No files matched your search

+4
View File
@@ -14,6 +14,10 @@ environments × cases; an **execution/cell** is one parallel job; and an
The browser creates and assigns the task. The harness does not call a private
runner hook or write fixtures directly to the database.
The launcher always sets `PAPERCLIP_ANNOUNCEMENTS_ENABLED=false` for its isolated
instances so announcement panels do not obscure screenshot evidence. No shell
or workflow configuration is needed, including for Daytona cells.
## Credentials
Copy `.env.runner-e2e.example` to `.env.runner-e2e.local` and fill only the
+2 -2
View File
@@ -1154,7 +1154,7 @@ export function renderRunnerE2EDashboard(input: RunnerDashboardInput) {
<strong id="gallery-title" data-gallery-title>Screenshot evidence</strong>
<div class="gallery-context">
<span><strong data-gallery-profile></strong><em data-gallery-profile-detail></em></span>
<span><strong data-gallery-environment></strong><em data-gallery-environment-detail></em></span>
<span><em>Environment:</em><strong data-gallery-environment></strong><em data-gallery-environment-detail></em></span>
<span><strong data-gallery-case></strong><em data-gallery-runtime></em></span>
</div>
<div class="gallery-facts">
@@ -1225,7 +1225,7 @@ export function renderRunnerE2EDashboard(input: RunnerDashboardInput) {
profile.textContent = item.dataset.galleryProfile;
profileDetail.textContent = item.dataset.galleryGeneration + " · " + item.dataset.galleryProvider + " · " + item.dataset.galleryModel;
environment.textContent = item.dataset.galleryEnvironment;
environmentDetail.textContent = item.dataset.galleryEnvironmentProvider + " · " + item.dataset.galleryExecutionTarget;
environmentDetail.textContent = "Provider: " + item.dataset.galleryEnvironmentProvider + " · Target: " + item.dataset.galleryExecutionTarget;
caseLabel.textContent = item.dataset.galleryCase;
runtime.textContent = item.dataset.galleryRuntime + " runtime";
status.textContent = item.dataset.galleryStatus;
+2
View File
@@ -104,6 +104,8 @@ export function buildRunnerE2EProcessEnvironment(
executions: readonly MatrixExecution[],
): NodeJS.ProcessEnv {
const result = { ...source };
// Announcements are unrelated to the scenarios and obscure screenshot evidence.
result.PAPERCLIP_ANNOUNCEMENTS_ENABLED = "false";
delete result.OPENCODE_ALLOW_ALL_MODELS;
// Hiring needs the opt-in native API surface. Scope this to the explicit
// manual hiring story; production and other suites retain their defaults.
+11 -2
View File
@@ -162,7 +162,7 @@ describe("runner E2E provider environment", () => {
{ KEEP_ME: "yes", OPENCODE_ALLOW_ALL_MODELS: "ambient" },
[execution],
),
).toEqual({ KEEP_ME: "yes", OPENCODE_ALLOW_ALL_MODELS: "true" });
).toEqual({ KEEP_ME: "yes", OPENCODE_ALLOW_ALL_MODELS: "true", PAPERCLIP_ANNOUNCEMENTS_ENABLED: "false" });
}
for (const execution of [nativeOpenCode, breadthOpenCode]) {
@@ -171,7 +171,16 @@ describe("runner E2E provider environment", () => {
{ KEEP_ME: "yes", OPENCODE_ALLOW_ALL_MODELS: "ambient" },
[execution],
),
).toEqual({ KEEP_ME: "yes" });
).toEqual({ KEEP_ME: "yes", PAPERCLIP_ANNOUNCEMENTS_ENABLED: "false" });
}
});
it("disables announcements through the server boundary for every runner cell", () => {
for (const execution of runnerMatrix) {
const source = { PAPERCLIP_ANNOUNCEMENTS_ENABLED: "true" };
const env = buildRunnerE2EProcessEnvironment(source, [execution]);
expect(buildPaperclipServerEnvironment(env).PAPERCLIP_ANNOUNCEMENTS_ENABLED).toBe("false");
expect(source.PAPERCLIP_ANNOUNCEMENTS_ENABLED).toBe("true");
}
});
});