diff --git a/scripts/test-projects.test-support.mjs b/scripts/test-projects.test-support.mjs index 1c8fc28dc1de..92b78878f662 100644 --- a/scripts/test-projects.test-support.mjs +++ b/scripts/test-projects.test-support.mjs @@ -475,6 +475,22 @@ const TOOLING_SOURCE_TEST_TARGETS = new Map([ "src/agents/agent-bundle-mcp-tools.materialize.test.ts", ], ], + [ + "scripts/e2e/commitments-safety-docker-client.ts", + [ + "test/scripts/docker-e2e-clients.test.ts", + "src/commitments/runtime.test.ts", + "src/commitments/store.test.ts", + ], + ], + [ + "scripts/e2e/session-runtime-context-docker-client.ts", + [ + "test/scripts/docker-e2e-clients.test.ts", + "src/agents/embedded-agent-runner/run/runtime-context-prompt.test.ts", + "src/agents/embedded-agent-runner/transcript-rewrite.test.ts", + ], + ], [ "scripts/e2e/mcp-channels-docker.sh", [ diff --git a/test/scripts/docker-e2e-clients.test.ts b/test/scripts/docker-e2e-clients.test.ts new file mode 100644 index 000000000000..cd6b2b2f39c5 --- /dev/null +++ b/test/scripts/docker-e2e-clients.test.ts @@ -0,0 +1,35 @@ +// Docker E2E client tests cover packaged-dist harness wiring. +import { readFileSync } from "node:fs"; +import { describe, expect, it } from "vitest"; + +function readScript(pathname: string): string { + return readFileSync(pathname, "utf8"); +} + +describe("Docker E2E client scripts", () => { + it("keeps commitments safety checks wired to packaged commitment runtime", () => { + const source = readScript("scripts/e2e/commitments-safety-docker-client.ts"); + + expect(source).toContain("../../dist/commitments/runtime.js"); + expect(source).toContain("../../dist/commitments/store.js"); + expect(source).toContain("verifyQueueCap()"); + expect(source).toContain("verifyExtractionStoresMetadataOnly()"); + expect(source).toContain("verifyLegacySourceIsPrunedOnDueRead()"); + expect(source).toContain("verifyExpiryTransitionsAndStripsLegacySource()"); + expect(source).toContain("CALL_TOOL"); + }); + + it("keeps session runtime-context checks wired to packaged transcript behavior", () => { + const source = readScript("scripts/e2e/session-runtime-context-docker-client.ts"); + + expect(source).toContain("openclaw/plugin-sdk/agent-sessions"); + expect(source).toContain( + "../../dist/agents/embedded-agent-runner/run/runtime-context-prompt.js", + ); + expect(source).toContain("verifyRuntimeContextTranscriptShape(root)"); + expect(source).toContain("verifyDoctorRepair(root)"); + expect(source).toContain("<<>>"); + expect(source).toContain("openclaw.runtime-context"); + expect(source).toContain("doctor repair left runtime context in active transcript"); + }); +}); diff --git a/test/scripts/test-projects.test.ts b/test/scripts/test-projects.test.ts index 58e816ac725e..a9ac95669d6d 100644 --- a/test/scripts/test-projects.test.ts +++ b/test/scripts/test-projects.test.ts @@ -450,6 +450,22 @@ describe("scripts/test-projects changed-target routing", () => { "scripts/e2e/lib/mcp-code-mode-validation.ts", ["test/scripts/mcp-code-mode-gateway-client.test.ts"], ], + [ + "scripts/e2e/commitments-safety-docker-client.ts", + [ + "test/scripts/docker-e2e-clients.test.ts", + "src/commitments/runtime.test.ts", + "src/commitments/store.test.ts", + ], + ], + [ + "scripts/e2e/session-runtime-context-docker-client.ts", + [ + "test/scripts/docker-e2e-clients.test.ts", + "src/agents/embedded-agent-runner/run/runtime-context-prompt.test.ts", + "src/agents/embedded-agent-runner/transcript-rewrite.test.ts", + ], + ], ["scripts/e2e/mcp-channels-seed.ts", ["test/scripts/docker-e2e-seeds.test.ts"]], ["scripts/e2e/docker-openai-seed.ts", ["test/scripts/docker-e2e-seeds.test.ts"]], [