77 spawnSync ,
88 type SpawnOptionsWithoutStdio ,
99} from "node:child_process" ;
10+ import { randomUUID } from "node:crypto" ;
1011import fs from "node:fs" ;
1112import os from "node:os" ;
1213import path from "node:path" ;
@@ -270,6 +271,10 @@ function parseTcpPort(value: string, label: string) {
270271 return parsed ;
271272}
272273
274+ function createTelegramProofRunId ( ) {
275+ return `${ new Date ( ) . toISOString ( ) . replace ( / [: .] / gu, "-" ) } -${ randomUUID ( ) . slice ( 0 , 8 ) } ` ;
276+ }
277+
273278export function parseArgs ( argvInput : string [ ] ) : Options {
274279 let argv = argvInput ;
275280 argv = argv [ 0 ] === "--" ? argv . slice ( 1 ) : argv ;
@@ -285,7 +290,6 @@ export function parseArgs(argvInput: string[]): Options {
285290 "view" ,
286291 ] ) ;
287292 const command = commands . has ( argv [ 0 ] ?? "" ) ? ( argv . shift ( ) as Options [ "command" ] ) : "probe" ;
288- const stamp = new Date ( ) . toISOString ( ) . replace ( / [: .] / gu, "-" ) ;
289293 const opts : Options = {
290294 crabboxClass : "standard" ,
291295 command,
@@ -299,7 +303,7 @@ export function parseArgs(argvInput: string[]): Options {
299303 keepBox : false ,
300304 mockResponseText : "OPENCLAW_E2E_OK" ,
301305 mockPort : 19_882 ,
302- outputDir : path . join ( DEFAULT_OUTPUT_ROOT , stamp ) ,
306+ outputDir : path . join ( DEFAULT_OUTPUT_ROOT , createTelegramProofRunId ( ) ) ,
303307 previewCropWidth : TELEGRAM_PROOF_CROP . cropWidth ,
304308 previewFps : 24 ,
305309 previewWidth : 1920 ,
0 commit comments