@@ -56,6 +56,14 @@ const QR_IMPORT_DOCKER_E2E_PATH = "scripts/e2e/qr-import-docker.sh";
5656const MULTI_NODE_UPDATE_DOCKER_E2E_PATH = "scripts/e2e/multi-node-update-docker.sh" ;
5757const BUNDLED_PLUGIN_INSTALL_UNINSTALL_E2E_PATH =
5858 "scripts/e2e/bundled-plugin-install-uninstall-docker.sh" ;
59+ const AGENT_BUNDLE_MCP_TOOLS_DOCKER_E2E_PATH =
60+ "scripts/e2e/agent-bundle-mcp-tools-docker.sh" ;
61+ const COMMITMENTS_SAFETY_DOCKER_E2E_PATH = "scripts/e2e/commitments-safety-docker.sh" ;
62+ const CRESTODIAN_FIRST_RUN_DOCKER_E2E_PATH = "scripts/e2e/crestodian-first-run-docker.sh" ;
63+ const CRESTODIAN_PLANNER_DOCKER_E2E_PATH = "scripts/e2e/crestodian-planner-docker.sh" ;
64+ const CRESTODIAN_RESCUE_DOCKER_E2E_PATH = "scripts/e2e/crestodian-rescue-docker.sh" ;
65+ const SESSION_RUNTIME_CONTEXT_DOCKER_E2E_PATH =
66+ "scripts/e2e/session-runtime-context-docker.sh" ;
5967const BUNDLED_PLUGIN_INSTALL_UNINSTALL_SWEEP_PATH =
6068 "scripts/e2e/lib/bundled-plugin-install-uninstall/sweep.sh" ;
6169const BUNDLED_PLUGIN_INSTALL_UNINSTALL_PROBE_PATH =
@@ -3360,6 +3368,31 @@ output="$(cat "$sampler_log")"
33603368 }
33613369 } ) ;
33623370
3371+ it ( "keeps captured Docker E2E run log replay bounded" , ( ) => {
3372+ for ( const path of [
3373+ AGENT_BUNDLE_MCP_TOOLS_DOCKER_E2E_PATH ,
3374+ COMMITMENTS_SAFETY_DOCKER_E2E_PATH ,
3375+ CRESTODIAN_FIRST_RUN_DOCKER_E2E_PATH ,
3376+ CRESTODIAN_PLANNER_DOCKER_E2E_PATH ,
3377+ CRESTODIAN_RESCUE_DOCKER_E2E_PATH ,
3378+ PLUGIN_BINDING_COMMAND_ESCAPE_DOCKER_E2E_PATH ,
3379+ SESSION_RUNTIME_CONTEXT_DOCKER_E2E_PATH ,
3380+ ] ) {
3381+ const runner = readFileSync ( path , "utf8" ) ;
3382+
3383+ expect ( runner , path ) . toContain ( 'RUN_LOG="$(mktemp' ) ;
3384+ expect ( runner , path ) . toContain ( 'docker_e2e_print_log "$RUN_LOG"' ) ;
3385+ expect ( runner , path ) . not . toContain ( 'cat "$RUN_LOG"' ) ;
3386+ }
3387+
3388+ const pluginBinding = readFileSync ( PLUGIN_BINDING_COMMAND_ESCAPE_DOCKER_E2E_PATH , "utf8" ) ;
3389+ expect ( pluginBinding ) . toContain ( "const scanBytes = 65536" ) ;
3390+ expect ( pluginBinding ) . toContain ( "fs.statSync(logPath)" ) ;
3391+ expect ( pluginBinding ) . toContain ( "fs.readSync(fd, buffer, 0, length, stat.size - length)" ) ;
3392+ expect ( pluginBinding ) . not . toContain ( "process.env.OPENCLAW_DOCKER_E2E_LOG_PRINT_BYTES" ) ;
3393+ expect ( pluginBinding ) . not . toContain ( 'readFileSync(logPath, "utf8")' ) ;
3394+ } ) ;
3395+
33633396 it ( "keeps Open WebUI Docker E2E resource-guarded" , ( ) => {
33643397 const runner = readFileSync ( OPENWEBUI_DOCKER_E2E_PATH , "utf8" ) ;
33653398
0 commit comments