mirror of
https://github.com/paperclipai/paperclip.git
synced 2026-10-24 10:13:11 +02:00
test: grow continuation journal through distinct tool invocations
Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
1 parent
547cb0268e
commit
069f53009f
3 files changed
+8
-11
No files matched your search
@@ -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 with a browser-submitted 50 KiB
|
||||
synthetic brief and 1024 paced KiB-sized chunks of command output through the real provider. Before the first browser follow-up,
|
||||
It reuses the three-turn warm workflow with 16 separate ordinary execution-tool calls, each printing a bounded 65 KB
|
||||
synthetic sample 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,
|
||||
|
||||
@@ -193,7 +193,7 @@ describe("runner E2E catalog", () => {
|
||||
expect(suite.expectedMatrixSize).toBe(1);
|
||||
expect(suite.profiles.map((profile) => profile.id)).toEqual(["runner-codex"]);
|
||||
expect(daytonaLargeJournalTask.flow).toBe("warm_three_turn");
|
||||
expect(daytonaLargeJournalTask.buildPrompt("nonce")).toContain("range(1024)");
|
||||
expect(daytonaLargeJournalTask.buildPrompt("nonce")).toContain("16 separate execution-tool calls");
|
||||
expect(daytonaLargeJournalTask.buildFollowupMessages!("nonce")).toEqual(daytonaWarmContinuityTask.buildFollowupMessages!("nonce"));
|
||||
expect(selectRunnerExecutions(parseRunnerSelectors(["--all"]))
|
||||
.some((cell) => cell.suite.id === suite.id)).toBe(false);
|
||||
|
||||
@@ -880,13 +880,10 @@ export const daytonaLargeJournalTask: RunnerTaskFixture = {
|
||||
label: "Large journal three-turn workspace continuity",
|
||||
buildTitle: (nonce) => `Runner E2E large journal continuity ${nonce}`,
|
||||
buildPrompt: (nonce) => [
|
||||
"First exercise ordinary command-output streaming with this bounded diagnostic. Execute this Python command exactly once, allowing it to print all 1024 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" * 1000 + "\\n"), sys.stdout.flush(), time.sleep(0.05)) for _ in range(1024)]'`,
|
||||
"First exercise ordinary execution history with 16 separate execution-tool calls. In each call, run the Python command below exactly once. Issue the calls one by one. Do not combine them into a shell loop, script, parallel wrapper, or a single tool call: each command must be a separate ordinary execution-tool invocation. Keep a count from 1 through 16. The output is synthetic fixture data and needs no analysis.",
|
||||
`python3 -c 'print("journal-continuity-" + "x" * 65000)'`,
|
||||
"Wait for all 16 execution-tool calls to exit successfully. Do not redirect, suppress, or pipe their stdout. Then do the workspace task below and submit its completion report.",
|
||||
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",
|
||||
("synthetic-reference-sample " + "x".repeat(52) + "\n").repeat(640),
|
||||
"END SYNTHETIC REFERENCE SAMPLE",
|
||||
].join("\n"),
|
||||
};
|
||||
|
||||
@@ -1073,13 +1070,13 @@ export const runnerSuites: readonly RunnerSuiteFixture[] = [
|
||||
id: "daytona-journal-continuity",
|
||||
label: "Daytona Large Journal Continuity",
|
||||
manualOnly: true,
|
||||
description: "Continue the same native session after a browser-submitted large brief and real tool output grow its durable journal beyond 2 MiB.",
|
||||
description: "Continue the same native session after a separate ordinary tool invocations and their 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: 2, journalMinimumBytes: 2 * 1024 * 1024, briefBytes: 50 * 1024, outputChunks: 1024, scheduling: "explicit-only" },
|
||||
definitionMetadata: { version: 3, journalMinimumBytes: 2 * 1024 * 1024, toolInvocations: 16, outputBytesPerInvocation: 65019, scheduling: "explicit-only" },
|
||||
},
|
||||
] as const;
|
||||
|
||||
|
||||
Reference in new issue
Block a user