Skip to content

Render tab: Select finished ticks every take whose clips are done, to clear leftover takes in one go (part of #644) - #997

Merged
ccoventry merged 7 commits into
devfrom
feat/render-select-finished-644
Oct 25, 2026
Merged

ccoventry merged 7 commits into
devfrom
feat/render-select-finished-644

Conversation

@ccoventry

Copy link
Copy Markdown
Owner

Release note: New: the Render tab's "Select finished" button ticks every take whose clips are done (optionally only those over a day, week or month old), so Delete Take folders clears leftover takes in one go.

Part of #644. Asked for on #716: "a way to select all finished takes on the render tab to clean up leftover renders".

What changes

Next to Select unrendered above the job table:

  • Select finished ticks every row of each finished take and unticks everything else. Delete Take folders (n) then sends them all to the Recycle Bin, with its usual confirm (folder count and size).
  • A dropdown beside it: of any age (default), over a day old, over a week old, over a month old. It narrows what Select finished ticks.
  • Both have tooltips and are disabled while the list is empty.

What "finished" means

The same rule as #716's automatic cleanup (take_cleanup::finished_at):

The rule lives in studio/src/render_selection.js (takeFinishedAt, finishedTakeFolders), working from the rows' history, which the backend already sends. No Rust changes.

Decisions

Test done

  • npm run test:unit: 849 passed, including 4 new tests in render_selection.test.js (last attempt wins, file gone, Queued/Rendering, HUD pair, age filter, Select finished feeding Delete Take's targets).
  • CI=1 npx playwright test tests/e2e/render-studio.spec.js: 56 passed, including a new test: Select finished ticks the two finished takes, Delete Take folders shows (2); "over a day old" leaves only the old one, (1).
  • Not run in the real app.

To check by hand (Studio only)

  1. Scan a Destinations folder that has rendered and unrendered takes. Click Select finished: only rendered takes are ticked, both rows of a HUD pair together.
  2. Pick over a day old, click again: only takes rendered more than a day ago stay ticked.
  3. Delete Take folders (n): the confirm lists that many takes; they go to the Recycle Bin.

🤖 Generated with Claude Code

…y old ones

Part of #644. A take is finished when every one of its rows' last render
finished and the clip file is still there, the same rule as #716's
take_cleanup::finished_at. Delete Take folders then clears them in one go.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@ccoventry

Copy link
Copy Markdown
Owner Author

Review (unattended pass): merged origin/dev in (clean, no conflicts) and checked the finished rule against #716's take_cleanup::finished_at.

Matches #716: each row's history is already filtered to that row's stream in the job snapshot (render_manager.rs), so "last attempt per row" is #716's "last attempt per stream"; HUD pairs need both rows; Queued/Rendering rows and a later failed/cancelled attempt keep the take unfinished; a missing clip file (output_exists) does too; a take with no history isn't finished. started_unix_ms is epoch ms, so no time-zone parsing is involved. The Render table has no row filter, so Select finished never ticks hidden rows. During a render the rendering take stays unticked, and Delete Take already leaves busy takes out.

Fixed (c6ed84d): with "of any age", a take whose last start time is ahead of this PC's clock (rendered on another PC with a fast clock, or before the clock was set back) failed now - at >= 0 and was left out. No age chosen now means no age check. Test: "of any age" keeps a take rendered by a clock ahead of this one (fails without the fix).

Not changed: the exact-boundary case (>=, "over a day old" includes exactly 24 h) is fine as is; the removed-HUD-row difference from #716 is the PR's stated decision.

Tests: npm run test:unit 859 passed; CI=1 npx playwright test tests/e2e/render-studio.spec.js tests/e2e/app-boot.spec.js 59 passed. Not run in the real app.

Verdict: ready to merge.

@ccoventry
ccoventry merged commit bc10681 into dev Oct 25, 2026
5 checks passed
@ccoventry
ccoventry deleted the feat/render-select-finished-644 branch October 25, 2026 14:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant