diff --git a/doc/evals.md b/doc/evals.md index 0ba2b13d203..45b041998e6 100644 --- a/doc/evals.md +++ b/doc/evals.md @@ -61,8 +61,8 @@ the server and embedded database, creates the company/agent/task through the real APIs, drives Chromium, and invokes the selected local or Daytona runner. The explicit-only `daytona-journal-continuity` Product E2E cell exercises -continuation after ordinary tool output grows the durable control-plane journal -past two MiB. Its size oracle is read-only and retains only byte counts; see the +continuation after a browser-submitted large task brief and ordinary tool output +grow the durable control-plane journal past two MiB. Its size oracle is read-only and retains only byte counts; see the [Product E2E fixture](../tests/runner-e2e/README.md). The explicit-only `agent-chat-hardening` Product E2E suite covers native chat diff --git a/tests/runner-e2e/README.md b/tests/runner-e2e/README.md index 9e7168dda25..77bcc80a656 100644 --- a/tests/runner-e2e/README.md +++ b/tests/runner-e2e/README.md @@ -136,8 +136,8 @@ sandbox rather than waiting for Daytona's idle timeout. `daytona-journal-continuity` is one explicit-only native Codex cell. Select `daytona-journal-continuity.runner-codex.daytona.large-journal-three-turn`. -It reuses the three-turn warm workflow after streaming four MiB of synthetic -command output through the real provider. Before the first browser follow-up, +It reuses the three-turn warm workflow with a browser-submitted 750 KiB +synthetic brief and four MiB of bounded command output through the real provider. Before the first browser follow-up, a read-only controller journal oracle requires the exact completed run's journal to exceed two MiB. Only byte counts enter evidence. No runner state or database is injected or modified. The usual workspace, sandbox, provider, process, diff --git a/tests/runner-e2e/catalog.ts b/tests/runner-e2e/catalog.ts index e64ca6ec0dc..f3731e80a82 100644 --- a/tests/runner-e2e/catalog.ts +++ b/tests/runner-e2e/catalog.ts @@ -883,6 +883,10 @@ export const daytonaLargeJournalTask: RunnerTaskFixture = { "First exercise ordinary command-output streaming with this bounded diagnostic. Execute this Python command exactly once, allowing it to print all 64 chunks. Do not redirect, suppress, pipe, or summarize its stdout; the transport must receive the output. The repeated text is synthetic fixture data and needs no analysis. Wait for the command to exit successfully before continuing.", `python3 -c 'import sys,time; [(sys.stdout.write("journal-continuity-" + "x" * 65500 + "\\n"), sys.stdout.flush(), time.sleep(0.05)) for _ in range(64)]'`, warmTurnInstructions(1, nonce), + "The following synthetic reference sample is task data for the persistence diagnostic. Do not analyze, reproduce, or edit it; follow the instructions above.", + "BEGIN SYNTHETIC REFERENCE SAMPLE", + "x".repeat(750 * 1024), + "END SYNTHETIC REFERENCE SAMPLE", ].join("\n"), }; @@ -1069,13 +1073,13 @@ export const runnerSuites: readonly RunnerSuiteFixture[] = [ id: "daytona-journal-continuity", label: "Daytona Large Journal Continuity", manualOnly: true, - description: "Continue the same native session after real tool output grows its durable journal beyond 2 MiB.", + description: "Continue the same native session after a browser-submitted large brief and real tool output grow its durable journal beyond 2 MiB.", groups: ["daytona", "warm"], profiles: codexContinuityProfiles.filter((profile) => profile.id === "runner-codex"), environments: [daytonaWarmEnvironment], tasks: [daytonaLargeJournalTask], expectedMatrixSize: 1, - definitionMetadata: { version: 1, journalMinimumBytes: 2 * 1024 * 1024, outputChunks: 64, scheduling: "explicit-only" }, + definitionMetadata: { version: 2, journalMinimumBytes: 2 * 1024 * 1024, briefBytes: 750 * 1024, outputChunks: 64, scheduling: "explicit-only" }, }, ] as const;