Repository navigation
Capture batch: one progress bar from start to end, with each step in plain words and Done in at the end (#952) - #1025
Conversation
… Done in (#952) The footer bar no longer fills once for getting the demos ready and again for the clips, and never shows a made-up 50%. Each capture_status now carries a stage; capture_progress.js puts getting ready on the first tenth and the clips on the rest, holds the fill so it never goes back, and slides a block over a step it can't measure (starting the game, loading a demo, the clip being recorded). The lines are plain ("Getting demos ready: 2 of 5 (name.dem, 40%)", "Starting the game for name.dem (demo 1 of 3)", "Loading name.dem…", "Capturing clip 3 of 12 (name.dem)", "Checking the takes: 12 of 12"), a clock runs on the line, the end says "Done in 6 min 12 s: 12 clips captured", and [capture] start and end go to the log. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A Cancel resolves before the game closes and clears capturingInFlight, so the take check's running reports re-entered the first-report branch: they re-enabled Cancel and reset Last Batch. The progress module knows the batch is still running; Cancel is greyed out for the check, which can't be stopped. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Review (night pass 2026-10-25)Read: the whole diff: the Rust (
Found and fixed: Cancel came back on while the takes were checked (
Ran (after merging dev in, head
Screenshots: from the harness, with Studio's CSS, one per step from "Getting demos ready…" to "Done in": #885 conflict, for whichever merges second: git merges the two cleanly, but the build then fails. #885's new test calls Left as is: "No jobs produced" is sent as Verdict: ready to merge. The look follows #952's plan. |
Release note: Fixed: The capture batch's progress bar fills once from start to end and says each step in plain words ("Getting demos ready", "Starting the game", "Loading…", "Capturing clip 3 of 12", "Checking the takes"), with a clock and "Done in 6 min 12 s: 12 clips captured" at the end.
Closes #952 (from the #942 audit).
What changes
messages.rs, with the step texts from the plan:· m:ss) from the first report to the end.[capture] startedand[capture] completed after 372.0 s: 12 of 12 clip(s) captured.How
capture_statusnow carries astage(preparing,reading_again,starting,loading,capturing,checking) and its count. The patch line keeps its ~33 ms throttle (PatchProgress), and the take check is throttled the same way.running: falsewithclips_captured/clips_total→capture_takes_verified. Start stays greyed out through the check, and the footer's last line still comes before what Finish clips puts on it.capture_progress.js(shares, the never-go-back rule, the end line, the clock and the time left).capture_pane.jsonly calls it, and its own 50% fallback and 15 s timer are gone.durationWordsis new inprogress_view.js(the shared helper from Master Queue scan: show progress while it looks for demos, and one bar through grouping and splits #951).showFillAndSlideis split out ofstep_bar.js(HD Textures and Blender show progress as text only: add bars #956's sliding block over one step's share).Decisions
progress_view.jsfrom Master Queue scan: show progress while it looks for demos, and one bar through grouping and splits #951,step_bar.jsfrom HD Textures and Blender show progress as text only: add bars #956), so I reused it rather than building a new one.Other open PRs touching the same files
capture_manager.rs/capture_pane.js: Render while capturing: each clip renders as soon as it's recorded, and a long batch waits for space instead of filling the drive (#861) #885 (render while capturing: changesverify_capture_takes/emit_take_verification, which this PR splits intocheck_takes+finish_batch; expect a conflict there), Scheduled Commands can run for only some players' clips (a crosshair per player) #832, Studio marks clips captured after a batch that ran while it was closed (part of #545) #760, Delete finished takes automatically: Recycle Bin or permanent, optionally only when space is needed (part of #644) #716.messages.rs: Review marks are kept with no project open and come back when you add the demo later (part of #848) #881, Demo Auditor: move every demo into one folder, recycling the extra copies (#872) #874, Delete finished takes automatically: Recycle Bin or permanent, optionally only when space is needed (part of #644) #716.strings.jsis touched by most open Studio PRs. This PR adds aCAPTURE_PROGRESSblock and drops three strings nothing uses now (CAPTURE.COMPLETED,capturingWithName,CAPTURING_DEFAULT).Test done
cargo test --locked -p desktop-studio: 236 passed. New tests cover the getting-ready line and the step texts.rustup run 1.98.1 cargo clippy --locked -p desktop-studio --all-targets -- -D warnings: clean.rustup run 1.98.1 cargo fmt --all: no changes.npm run test:unit: 864 passed. New:capture_progress.test.js(the shares, the never-go-back rule across a whole batch, the end line, the clock and the log lines) anddurationWords.CI=1):capture-progress.spec.js(new),capture-precheck,finish-clips,batch-resultsandapp-boot: 19 passed. The new spec has the e2e check the plan asks for: the bar never goes backwards across the stages and ends at 100% on "Done in". It also checks the sliding block and the cancelled line.Test steps for you (no hook DLL change, either install)
[capture] startedand[capture] completed after … s: … clip(s) captured.🤖 Generated with Claude Code