@gentbajko/slopify 3.12.0 → 3.12.1
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.
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
# Slopify 3.12.1
|
|
2
|
+
|
|
3
|
+
Released 8 October 2026.
|
|
4
|
+
|
|
5
|
+
- **Finished narration no longer waits forever.** A project whose narration was already made could show Audio as waiting after an edit, so its run never read as done. Its finished narration is now recognised, so those projects show done; nothing is made again.
|
|
@@ -151,7 +151,8 @@ export function executionStandings(deps, projectId, derived) {
|
|
|
151
151
|
output.selected &&
|
|
152
152
|
output.available &&
|
|
153
153
|
output.piece.state === "done" &&
|
|
154
|
-
output.fingerprint === piece.fingerprint
|
|
154
|
+
(output.fingerprint === piece.fingerprint ||
|
|
155
|
+
madeFrom(deps, projectId, piece.key, output.fingerprint, piece.fingerprint))));
|
|
155
156
|
// Save can bind an existing asset without granting its placeholder invocation.
|
|
156
157
|
return retained ? { ...entry, state: "done" } : entry;
|
|
157
158
|
});
|
|
@@ -174,6 +175,14 @@ export function executionStandings(deps, projectId, derived) {
|
|
|
174
175
|
return state === "pending" && retryAt !== null ? { kind, state, retryAt } : { kind, state };
|
|
175
176
|
});
|
|
176
177
|
}
|
|
178
|
+
// A finished piece whose request was planned under this fingerprint: a placeholder is planned
|
|
179
|
+
// under the logical fingerprint, the finished piece carries the one its request resolved to.
|
|
180
|
+
function madeFrom(deps, projectId, key, done, planned) {
|
|
181
|
+
return (deps.db
|
|
182
|
+
.prepare(`SELECT 1 FROM revision_work_pieces p JOIN revision_work w ON w.id=p.work_id
|
|
183
|
+
WHERE w.project_id=? AND p.work_key=? AND p.state='done' AND p.fingerprint=? AND p.logical_fingerprint=? LIMIT 1`)
|
|
184
|
+
.get(projectId, key, done, planned) !== undefined);
|
|
185
|
+
}
|
|
177
186
|
// The latest wait among a stage's steps that went back to wait after a failure time can fix.
|
|
178
187
|
function latestRetry(deps, group) {
|
|
179
188
|
let latest = null;
|