@gentbajko/slopify 3.14.0 → 3.14.2

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.14.1
2
+
3
+ Released 9 October 2026.
4
+
5
+ - **Videos finish sooner.** After rendering a video, Slopify checks how loud it came out. That check decoded the whole picture just to read the sound, which took 20 minutes or more for a two-hour video and slowed down any other render running at the same time. It now reads only the sound, so a video is done a few minutes after its render reaches 100%.
@@ -0,0 +1,5 @@
1
+ # Slopify 3.14.2
2
+
3
+ Released 9 October 2026.
4
+
5
+ - **New videos get their readable folder too.** A project made after 3.14.0 kept its old folder once it finished, because a few placeholder steps that never run still looked like work waiting. Slopify now sorts a finished project into Upload, Working and History shortly after it's done, as it does for older projects.
@@ -1,4 +1,16 @@
1
1
  [
2
+ {
3
+ "id": "3.14.2",
4
+ "title": "Slopify 3.14.2",
5
+ "version": "3.14.2",
6
+ "date": "2026-10-09"
7
+ },
8
+ {
9
+ "id": "3.14.1",
10
+ "title": "Slopify 3.14.1",
11
+ "version": "3.14.1",
12
+ "date": "2026-10-09"
13
+ },
2
14
  {
3
15
  "id": "3.14.0",
4
16
  "title": "Slopify 3.14.0",
@@ -25,6 +25,11 @@ export function measureArgs(input, goal, chain = "") {
25
25
  "info",
26
26
  "-nostats",
27
27
  ...input,
28
+ // Only the sound is measured: a finished video's picture was decoded too, 20 minutes and
29
+ // more of a CPU's time for a two-hour export, while the next render waited for it.
30
+ "-vn",
31
+ "-sn",
32
+ "-dn",
28
33
  "-af",
29
34
  `${chain === "" ? "" : `${chain},`}${measureFilter(goal)}`,
30
35
  "-f",
@@ -22,7 +22,10 @@ export function arrangeKeys(db) {
22
22
  // Whether anything of the project runs or may start: its files stay where they are until then.
23
23
  export function projectSettled(db, projectId) {
24
24
  const busy = db
25
- .prepare(`SELECT 1 FROM revision_work WHERE project_id=? AND (state='running' OR (state='pending' AND dispatch_state!='held'))
25
+ .prepare(`SELECT 1 FROM revision_work w WHERE w.project_id=? AND (w.state='running' OR (w.state='pending' AND w.dispatch_state!='held'
26
+ -- A deferred "…:future" stand-in stays pending after its real steps have run; the run
27
+ -- leaves it out (rebuild/runtime-store.ts executionStages), so it is not work to wait for.
28
+ AND EXISTS(SELECT 1 FROM revision_work_pieces p WHERE p.work_id=w.id AND p.work_key NOT LIKE '%:future')))
26
29
  UNION ALL SELECT 1 FROM stages WHERE project_id=? AND state='running'
27
30
  UNION ALL SELECT 1 FROM project_trash WHERE project_id=? LIMIT 1`)
28
31
  .get(projectId, projectId, projectId);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gentbajko/slopify",
3
- "version": "3.14.0",
3
+ "version": "3.14.2",
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",