@gentbajko/slopify 3.25.8 → 3.25.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,5 @@
1
+ # Slopify 3.25.9
2
+
3
+ Released 17 October 2026.
4
+
5
+ - **An older project's shorts render again.** Remaking the shorts of a project made before an earlier change to how Slopify recognises finished work failed with "The clip this short was cut from is no longer among the picked shorts". The shorts now render from the moments already picked.
@@ -1,4 +1,10 @@
1
1
  [
2
+ {
3
+ "id": "3.25.9",
4
+ "title": "Slopify 3.25.9",
5
+ "version": "3.25.9",
6
+ "date": "2026-10-17"
7
+ },
2
8
  {
3
9
  "id": "3.25.8",
4
10
  "title": "Slopify 3.25.8",
@@ -317,12 +317,16 @@ async function render(deps, context, piece, snapshot, clip) {
317
317
  }
318
318
  // The clips the pick saved for this plan, with any range set by hand in place: the
319
319
  // selected pick whose fingerprint is the one the plan asks for.
320
- function savedClips(snapshot) {
320
+ export function savedClips(snapshot) {
321
321
  const recipe = snapshot.plan.recipes.find((one) => one.key === shortsPickKey);
322
- const row = snapshot.view.pieces.find((one) => one.key === shortsPickKey &&
323
- one.selected &&
324
- one.piece.state === "done" &&
325
- one.fingerprint === recipe?.fingerprint);
322
+ const done = snapshot.view.pieces.filter((one) => one.key === shortsPickKey && one.selected && one.piece.state === "done");
323
+ // A project from before an older fingerprint scheme keeps its pick under another
324
+ // fingerprint; the plan planned its clips from the version's one selected pick
325
+ // (`savedPicked` in `recipe-shorts.ts`), so the clips are that pick's.
326
+ const row = done.find((one) => one.fingerprint === recipe?.fingerprint) ??
327
+ (done.length === 1 && snapshot.plan.recipes.some((one) => /^shorts:\d+:/.test(one.key))
328
+ ? done[0]
329
+ : undefined);
326
330
  const picked = pickedShortsOf(row?.piece.payload);
327
331
  const shorts = snapshot.view.revision.config.shorts;
328
332
  if (picked === undefined || recipe === undefined || shorts === undefined)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gentbajko/slopify",
3
- "version": "3.25.8",
3
+ "version": "3.25.9",
4
4
  "description": "Turn a prompt into a finished video, locally, with your own provider keys",
5
5
  "license": "Apache-2.0",
6
6
  "author": "Gent Bajko",