fix(record): warm the MP4 validator without blocking capture

Merged
TH
2d ago
+413-89

Summary

Warm one MP4 validator compile per Swift cache root before output preparation without delaying capture. Stop shares it within its finalize budget without cancellation. Evict rejected compiles for later retries. Preserve main's container-only completion without xcrun. Retain compile/runtime diagnostics and recovery hints through typed failures; normalized process-exit messages include stderr excerpts. Generic Swift-cache locking is unchanged.

8 files, +413/−89 (net +324). Final round: 2 files, +24/−12; one details-factory call replaces the handwritten process-exit details. No lifecycle expansion. Replaces #4188.

agent-device record start clip.mp4
agent-device record stop

Validation

Head 9dd99cfb2be5a3712aa95adaaab1b1f845138d5b; merge base 22bd671066.

  • Node 24.13.1: pnpm check:affected --run --head 9dd99cfb2be5a3712aa95adaaab1b1f845138d5b passed, receipt run-8262HV, exactCommit: true, unchanged checkout. 347 related and 17,380 unit tests passed; one unit skipped. Both daemon-registration cases and the WebDriver timing assertion passed this round.
  • Focused: 24 passed. Disabling the process-exit marker: two failed, 22 passed; restored: 24 passed. Prior diagnostic-forwarding, regex, warm-order, pending-start and rejected-compile mutations detected regressions. Missing-xcrun compatibility comparison passed main e6ac165961 and earlier head 823b8d1d01.
  • Live at 823b8d1d01, required iPhone Air: cold start 2.237s; verified early stop 10.435s/70s; warm stop 0.794s. Simulator/daemon shut down; isolated cleanup complete.
  • Cubic threads addressed. CI coverage, provider integration and platform smoke remain required. Self-reviewed; no separate reviewer available this round.