@@ -7,6 +7,7 @@ import {
|
7 | 7 | spawnSync, |
8 | 8 | type SpawnOptionsWithoutStdio, |
9 | 9 | } from "node:child_process"; |
| 10 | +import { randomUUID } from "node:crypto"; |
10 | 11 | import fs from "node:fs"; |
11 | 12 | import os from "node:os"; |
12 | 13 | import path from "node:path"; |
@@ -270,6 +271,10 @@ function parseTcpPort(value: string, label: string) {
|
270 | 271 | return parsed; |
271 | 272 | } |
272 | 273 | |
| 274 | +function createTelegramProofRunId() { |
| 275 | +return `${new Date().toISOString().replace(/[:.]/gu, "-")}-${randomUUID().slice(0, 8)}`; |
| 276 | +} |
| 277 | + |
273 | 278 | export function parseArgs(argvInput: string[]): Options { |
274 | 279 | let argv = argvInput; |
275 | 280 | argv = argv[0] === "--" ? argv.slice(1) : argv; |
@@ -285,7 +290,6 @@ export function parseArgs(argvInput: string[]): Options {
|
285 | 290 | "view", |
286 | 291 | ]); |
287 | 292 | const command = commands.has(argv[0] ?? "") ? (argv.shift() as Options["command"]) : "probe"; |
288 | | -const stamp = new Date().toISOString().replace(/[:.]/gu, "-"); |
289 | 293 | const opts: Options = { |
290 | 294 | crabboxClass: "standard", |
291 | 295 | command, |
@@ -299,7 +303,7 @@ export function parseArgs(argvInput: string[]): Options {
|
299 | 303 | keepBox: false, |
300 | 304 | mockResponseText: "OPENCLAW_E2E_OK", |
301 | 305 | mockPort: 19_882, |
302 | | -outputDir: path.join(DEFAULT_OUTPUT_ROOT, stamp), |
| 306 | +outputDir: path.join(DEFAULT_OUTPUT_ROOT, createTelegramProofRunId()), |
303 | 307 | previewCropWidth: TELEGRAM_PROOF_CROP.cropWidth, |
304 | 308 | previewFps: 24, |
305 | 309 | previewWidth: 1920, |
|