@gentbajko/slopify 3.9.1 → 3.10.0

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.
Files changed (84) hide show
  1. package/dist/catalog/model-info.js +33 -0
  2. package/dist/edge/http/app.js +2 -0
  3. package/dist/edge/http/channels.js +6 -1
  4. package/dist/edge/http/document-themes.js +2 -2
  5. package/dist/edge/http/files.js +6 -2
  6. package/dist/edge/http/outputs.js +67 -0
  7. package/dist/edge/http/planning.js +18 -3
  8. package/dist/edge/http/projects.js +7 -4
  9. package/dist/edge/http/providers.js +4 -6
  10. package/dist/edge/http/revision-files.js +25 -7
  11. package/dist/edge/http/schedules.js +30 -0
  12. package/dist/edge/http/trash.js +51 -2
  13. package/dist/extension/slopify-studio-chrome.zip +0 -0
  14. package/dist/extension/slopify-studio-firefox.zip +0 -0
  15. package/dist/kernel/db/migrations/0052-cast-order.sql +11 -0
  16. package/dist/patch-notes/3.10.0.md +79 -0
  17. package/dist/patch-notes/index.json +6 -0
  18. package/dist/slices/admission/heads.js +59 -0
  19. package/dist/slices/admission/rules.js +6 -1
  20. package/dist/slices/batch/index.js +22 -0
  21. package/dist/slices/channels/rebrand.js +7 -1
  22. package/dist/slices/channels/repo.js +2 -1
  23. package/dist/slices/channels/schema.js +5 -0
  24. package/dist/slices/channels/service.js +23 -3
  25. package/dist/slices/estimate/index.js +2 -0
  26. package/dist/slices/library/transfer.js +164 -0
  27. package/dist/slices/narration/aliases-table.js +82 -0
  28. package/dist/slices/outputs/add.js +192 -0
  29. package/dist/slices/outputs/model.js +36 -0
  30. package/dist/slices/outputs/service.js +136 -0
  31. package/dist/slices/rebuild/model.js +1 -1
  32. package/dist/slices/rebuild/recipe-text.js +9 -4
  33. package/dist/slices/rebuild/recipe-visual.js +6 -0
  34. package/dist/slices/rebuild/runtime-local.js +10 -3
  35. package/dist/slices/rebuild/runtime-provider.js +7 -0
  36. package/dist/slices/revisions/downloads.js +38 -17
  37. package/dist/slices/revisions/model.js +3 -1
  38. package/dist/slices/revisions/mutation-assets.js +29 -2
  39. package/dist/slices/revisions/mutation-prepare.js +44 -9
  40. package/dist/slices/revisions/schema.js +4 -0
  41. package/dist/slices/schedules/agenda.js +21 -16
  42. package/dist/slices/schedules/held-bulk.js +66 -0
  43. package/dist/slices/schedules/topics.js +1 -1
  44. package/dist/slices/storage/backup-import.js +8 -4
  45. package/dist/slices/storage/downloads.js +42 -4
  46. package/dist/slices/voices/adaptation.js +19 -0
  47. package/dist/slices/voices/model.js +4 -2
  48. package/dist/slices/youtube/model.js +33 -2
  49. package/dist/tutorials/AI-CLIs.md +1 -1
  50. package/dist/tutorials/Backups.md +5 -5
  51. package/dist/tutorials/Calendar.md +2 -2
  52. package/dist/tutorials/Channels.md +1 -1
  53. package/dist/tutorials/Costs-and-Run-Cost.md +1 -1
  54. package/dist/tutorials/Document-Themes.md +2 -2
  55. package/dist/tutorials/Editing-a-Project.md +2 -2
  56. package/dist/tutorials/FAQ.md +1 -1
  57. package/dist/tutorials/Home-and-Projects.md +33 -22
  58. package/dist/tutorials/Intros-and-Outros.md +4 -4
  59. package/dist/tutorials/Keyboard-Shortcuts-and-Command-Palette.md +4 -4
  60. package/dist/tutorials/Library-Overview.md +16 -15
  61. package/dist/tutorials/Multiple-Voices.md +3 -3
  62. package/dist/tutorials/Narration-Aliases-and-Glossary.md +4 -4
  63. package/dist/tutorials/PDF-Documents.md +5 -5
  64. package/dist/tutorials/Play-Narration.md +3 -3
  65. package/dist/tutorials/Play-Outputs.md +1 -1
  66. package/dist/tutorials/Play-Overview.md +4 -4
  67. package/dist/tutorials/Play-Title-and-Article.md +3 -3
  68. package/dist/tutorials/Project-Page.md +7 -6
  69. package/dist/tutorials/Prompts.md +1 -1
  70. package/dist/tutorials/Publishing-to-YouTube.md +2 -2
  71. package/dist/tutorials/Recovery-and-Retries.md +1 -1
  72. package/dist/tutorials/Schedules.md +1 -1
  73. package/dist/tutorials/Settings-Reference.md +35 -31
  74. package/dist/tutorials/Templates.md +1 -1
  75. package/dist/tutorials/Trash.md +5 -5
  76. package/dist/tutorials/Troubleshooting.md +2 -2
  77. package/dist/tutorials/Where-Your-Files-Live.md +4 -4
  78. package/dist/web/assets/index-CW_6Ho-M.js +325 -0
  79. package/dist/web/assets/index-DmPZKDb1.css +1 -0
  80. package/dist/web/assets/{pdf-D04vvdOD.js → pdf-C4K73cRQ.js} +1 -1
  81. package/dist/web/index.html +2 -2
  82. package/package.json +1 -1
  83. package/dist/web/assets/index-IWb_SctN.js +0 -310
  84. package/dist/web/assets/index-_D68Tk8q.css +0 -1
@@ -2,26 +2,25 @@
2
2
 
3
3
  Every section of Settings, what each control does and its default. Sections with a page of their own are summarised here and linked for the details.
4
4
 
5
- **Where to find it:** **Settings** in the sidebar, or press `Ctrl+K` and run **Open settings**. Settings opens on **Providers**. Pick a section in the rail on the left; on a phone the rail is a row of tabs you can scroll sideways.
5
+ **Where to find it:** **Settings** in the sidebar, or press `Ctrl+K` and run **Open settings** (or **Open Settings: <section>** for one section). Settings opens on **Connections → Providers**. The rail on the left has seven groups; a group with more than one section shows them as tabs across the top. On a phone the rail is a row of tabs you can scroll sideways. An old link to a section (`?section=backups`, for example) still opens where it went.
6
6
 
7
7
  ## Sections at a glance
8
8
 
9
- | Section | What it holds | Details |
10
- |---|---|---|
11
- | [General](#general) | Starting Slopify when you log in | [Start-at-Login](Start-at-Login) |
12
- | [Providers](#providers) | API keys, command-line tools, the system voice, health check | [Providers-and-Keys](Providers-and-Keys), [AI-CLIs](AI-CLIs) |
13
- | [Voices](#voices) | Voice IDs for narration | [Providers-and-Keys](Providers-and-Keys#add-a-voice) |
14
- | [Models](#models) | Model catalogue, retired models | [Models](Models) |
15
- | [Playback & appearance](#playback--appearance) | Silence gap, light or dark, volume levelling | This page |
16
- | [Notifications](#notifications) | Browser and phone notifications | [Notifications](Notifications) |
17
- | [Channel links](#channel-links) | A pointer to each channel's own links | [Channels](Channels#channel-links) |
18
- | [YouTube Studio](#youtube-studio) | Playlists per channel, the Studio extension's download and pairing | [Studio-Extension](Studio-Extension) |
19
- | [Backup & storage](#backup--storage) | Your files folder, export and import, disk space, samples | [Where-Your-Files-Live](Where-Your-Files-Live) |
20
- | [Backups](#backups) | The daily automatic backup | [Backups](Backups) |
21
- | [Trash](#trash) | Deleted items, kept 30 days | [Trash](Trash) |
22
- | [Usage](#usage) | This install's counters | [Costs-and-Run-Cost](Costs-and-Run-Cost#your-usage-totals-settings--usage) |
23
- | [Patch notes](#patch-notes) | What changed in each version | [Updating-and-Patch-Notes](Updating-and-Patch-Notes) |
24
- | [About](#about) | Updates, what's new, links | [Updating-and-Patch-Notes](Updating-and-Patch-Notes) |
9
+ | Group | Section | What it holds | Details |
10
+ |---|---|---|---|
11
+ | Connections | [Providers](#providers) | API keys, command-line tools, the system voice, health check | [Providers-and-Keys](Providers-and-Keys), [AI-CLIs](AI-CLIs) |
12
+ | Connections | [Voices](#voices) | Voice IDs for narration | [Providers-and-Keys](Providers-and-Keys#add-a-voice) |
13
+ | Connections | [Models](#models) | Model catalogue, retired models | [Models](Models) |
14
+ | Production defaults | [Production defaults](#production-defaults) | Silence gap, volume levelling for new runs | This page |
15
+ | Notifications | [Notifications](#notifications) | Browser and phone notifications | [Notifications](Notifications) |
16
+ | Publishing | [Channel links](#channel-links) | A pointer to each channel's own links | [Channels](Channels#channel-links) |
17
+ | Publishing | [YouTube Studio](#youtube-studio) | Playlists per channel, the Studio extension's download and pairing | [Studio-Extension](Studio-Extension) |
18
+ | Backup & storage | [Backup & storage](#backup--storage) | Your files folder, daily backups, export and import, disk space, samples | [Where-Your-Files-Live](Where-Your-Files-Live), [Backups](Backups) |
19
+ | Backup & storage | [Trash](#trash) | Deleted items, kept 30 days | [Trash](Trash) |
20
+ | General | [General](#general) | Light or dark, and starting Slopify when you log in | [Start-at-Login](Start-at-Login) |
21
+ | About | [About](#about) | Updates, what's new, links, the welcome screen | [Updating-and-Patch-Notes](Updating-and-Patch-Notes) |
22
+ | About | [Usage](#usage) | This install's counters | [Costs-and-Run-Cost](Costs-and-Run-Cost#your-usage-totals-settings--usage) |
23
+ | About | [Patch notes](#patch-notes) | What changed in each version | [Updating-and-Patch-Notes](Updating-and-Patch-Notes) |
25
24
 
26
25
  ## Download diagnostics
27
26
 
@@ -35,7 +34,15 @@ You can also press `Ctrl+K` and run **Download diagnostics** from anywhere in Se
35
34
 
36
35
  ## General
37
36
 
38
- "How Slopify starts on this computer."
37
+ "How Slopify looks and how it starts on this computer."
38
+
39
+ ### Appearance
40
+
41
+ | Control | What it does | Default |
42
+ |---|---|---|
43
+ | **Appearance** | **System**, **Dark** or **Light** colours for Slopify on this computer. System follows your operating system and changes with it. It changes at once and does not affect your videos. | System |
44
+
45
+ ### Start at login
39
46
 
40
47
  | Control | What it does | Default |
41
48
  |---|---|---|
@@ -92,9 +99,9 @@ See [Providers-and-Keys](Providers-and-Keys#add-a-voice).
92
99
 
93
100
  Templates and schedules that pick a retired model are also flagged on their own rows, with the same **Switch to <model>**. See [Models](Models).
94
101
 
95
- ## Playback & appearance
102
+ ## Production defaults
96
103
 
97
- "How narration is paced and how Slopify looks."
104
+ "How new runs pace the narration and level the volume."
98
105
 
99
106
  ### Silence between segments
100
107
 
@@ -104,12 +111,6 @@ Templates and schedules that pick a retired model are also flagged on their own
104
111
 
105
112
  Videos already started keep their own gap. A value that is not a whole number from 0 to 30 is refused with "The silence gap is a whole number of seconds between 0 and 30." See [Intros-and-Outros](Intros-and-Outros).
106
113
 
107
- ### Appearance
108
-
109
- | Control | What it does | Default |
110
- |---|---|---|
111
- | **Appearance** | **System**, **Dark** or **Light** colours for Slopify on this computer. System follows your operating system and changes with it. It changes at once and does not affect your videos. | System |
112
-
113
114
  ### Level the volume for new runs
114
115
 
115
116
  | Control | What it does | Default / range |
@@ -154,7 +155,7 @@ See [Studio-Extension](Studio-Extension) and [Publishing-to-YouTube](Publishing-
154
155
 
155
156
  ## Backup & storage
156
157
 
157
- "Export everything, import a backup, and see what uses disk space."
158
+ "Daily backups, export and import, and what uses disk space." Its second tab is [Trash](#trash).
158
159
 
159
160
  ### Your files
160
161
 
@@ -172,7 +173,7 @@ In Docker, this shows the command to run on the computer running Docker, with **
172
173
  |---|---|
173
174
  | **Export everything** | Downloads one `.tar` file with every project (files and history), your library, templates, schedules, Play drafts, fonts, settings and usage. Never provider keys. Your browser's downloads show its progress; keep Slopify running until it finishes. |
174
175
  | **Import a backup** | Adds a `.tar` from Export everything (or a `.zip` from an older version's Export backup, up to 100 MB) to this install. It replaces nothing: projects already here are skipped, taken names arrive as "(imported)" and schedules arrive paused. Running projects must finish or pause first. A summary lists what was added and skipped. |
175
- | **Clean orphan files** | Deletes files in the projects folder that no project records any more, and uploaded files nothing uses. Your projects, outputs and library are never touched. Slopify also does this at each start. |
176
+ | **Clear leftover files** | Deletes files in the projects folder that no project records any more, and uploaded files nothing uses. Your projects, outputs and library are never touched. Slopify also does this at each start. |
176
177
 
177
178
  After importing, enter your keys again in Settings → Providers. You can also run **Export everything** from `Ctrl+K`. See [Backups](Backups).
178
179
 
@@ -191,9 +192,9 @@ After importing, enter your keys again in Settings → Providers. You can also r
191
192
  | **Sample projects** | Lists the three samples that come with Slopify (a narrated video, an audiobook and a podcast), with **Open** for each one in your projects. |
192
193
  | **Restore samples** | Adds back any that were deleted and puts the others back as they shipped. Your own copies of them are not touched. |
193
194
 
194
- ## Backups
195
+ ### Daily backups
195
196
 
196
- "A daily copy of everything, in a folder you choose."
197
+ "A daily copy of everything, in a folder you choose." On the Backup & storage tab.
197
198
 
198
199
  | Control | What it does | Default / range |
199
200
  |---|---|---|
@@ -208,12 +209,13 @@ Each backup is the same file Export everything makes and can be many gigabytes.
208
209
 
209
210
  ## Trash
210
211
 
211
- "Deleted projects, prompts, templates and schedules, kept for 30 days."
212
+ "Deleted projects, prompts, templates and schedules, kept for 30 days." A tab of **Backup & storage**.
212
213
 
213
214
  | Control | What it does |
214
215
  |---|---|
215
216
  | **Restore** | Puts an item back. If its name was taken meanwhile it comes back renamed, and a schedule comes back paused. |
216
217
  | **Delete now** | Removes an item for good at once, freeing its space. You confirm first. |
218
+ | Checkboxes and **Select all** | Pick several items; **Restore selected** and **Delete selected** above the list act on them. **Restore all** and **Empty trash** act on everything. |
217
219
 
218
220
  Deleted projects, prompts, intros and outros, templates and schedules stay 30 days, then are removed for good. See [Trash](Trash).
219
221
 
@@ -244,6 +246,8 @@ The notes ship with the app, so they work offline. After an update, the new vers
244
246
  | **What's new in this version** | Opens the patch notes for the version you are running. When this version has no notes of its own, it opens the newest ones. |
245
247
  | Links | GitHub (code, issues, releases), Patreon, Buy Me a Coffee, and "How I run a channel with it". |
246
248
 
249
+ The welcome screen (what this computer can do, the samples, a first short) opens again from **Help → Tutorials → Welcome screen** or `Ctrl+K` → **Open the welcome screen**.
250
+
247
251
  Slopify is made by Gent Bajko under the Apache License 2.0. See [Updating-and-Patch-Notes](Updating-and-Patch-Notes).
248
252
 
249
253
  ## Related pages
@@ -112,7 +112,7 @@ Each template shows **Version N · updated** with the date. Schedules remember t
112
112
  1. Press the bin icon (**Delete <name>**) on the template's row.
113
113
  2. Confirm with **Delete template**.
114
114
 
115
- The template goes to **Settings → Trash** for 30 days, where you can restore it. A template that a schedule still runs can't be deleted: delete or change that schedule first. See [Trash](Trash).
115
+ The template goes to **Settings → Backup & storage → Trash** for 30 days, where you can restore it. A template that a schedule still runs can't be deleted: delete or change that schedule first. See [Trash](Trash).
116
116
 
117
117
  ## Retired models
118
118
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  Deleting something in Slopify does not remove it at once. Deleted projects, prompts, intros and outros, templates and schedules go to the trash for 30 days, where you can put them back or remove them for good.
4
4
 
5
- **Where to find it:** Settings → **Trash**.
5
+ **Where to find it:** Settings → **Backup & storage** → **Trash**.
6
6
 
7
7
  ## What goes to the trash
8
8
 
@@ -10,7 +10,7 @@ Deleting something in Slopify does not remove it at once. Deleted projects, prom
10
10
  | --- | --- | --- |
11
11
  | Project | Project | Projects (the delete button on a project's row, then **Delete project**) |
12
12
  | Library prompt | Prompt · *type* (for example Prompt · article) | Library → Prompts |
13
- | Intro or outro | Intro or Outro | Library → Intros & Outros |
13
+ | Intro or outro | Intro or Outro | Library → Intros & outros |
14
14
  | Template | Template | Templates |
15
15
  | Schedule | Schedule | Schedules |
16
16
 
@@ -20,7 +20,7 @@ Each row in the trash shows the item's name, its kind, when it was deleted and h
20
20
 
21
21
  ## Restore an item
22
22
 
23
- 1. Open Settings → **Trash**.
23
+ 1. Open Settings → **Backup & storage** → **Trash**.
24
24
  2. Find the item under **Deleted items**.
25
25
  3. Press **Restore**.
26
26
 
@@ -36,7 +36,7 @@ It comes back as it was. A few kinds have their own rules:
36
36
 
37
37
  ## Delete an item for good
38
38
 
39
- 1. Open Settings → **Trash**.
39
+ 1. Open Settings → **Backup & storage** → **Trash**.
40
40
  2. Press **Delete now** on the item.
41
41
  3. Confirm with **Delete for good**, or press **Keep it**.
42
42
 
@@ -52,7 +52,7 @@ There is no button to empty the whole trash at once; each item is deleted on its
52
52
 
53
53
  Anything in the trash for more than 30 days is removed for good by a daily clean-up, the same way as **Delete now**. Slopify checks hourly whether a day has passed since the last clean-up, so a computer that was asleep catches up. If one item cannot be removed (for example a project folder another program has open), it stays in the trash for the next pass and the rest still go.
54
54
 
55
- A project's disk space is freed only when it leaves the trash. Settings → **Storage** counts deleted projects still in the trash. See [Where Your Files Live](Where-Your-Files-Live).
55
+ A project's disk space is freed only when it leaves the trash. Settings → **Backup & storage** counts deleted projects still in the trash. See [Where Your Files Live](Where-Your-Files-Live).
56
56
 
57
57
  ## What cannot be deleted
58
58
 
@@ -95,7 +95,7 @@ See [Install](Install) for the command-line options.
95
95
  | "Slopify hit an unexpected error (*code*). Reload the page and try again." | Reload. If it keeps happening, download diagnostics and report it. |
96
96
  | "The project could not be loaded." | Reload, or go back to Projects. |
97
97
  | "The upload stopped before the file finished copying. Choose the file again." | Pick the file again and wait for "Waiting for uploads to finish…" to clear before saving. |
98
- | "A newer revision is available. Your unsaved changes are kept below." | The project was saved elsewhere (another tab, a remake). Press **Reload current revision and discard my draft**, or keep your draft and save it. |
98
+ | "A newer revision is available. Your unsaved changes are kept below and in this browser." | The project was saved elsewhere (another tab, a remake). Press **Reload latest and re-apply my edit** to lay your changes over the newer revision, check them and press **Save changes**; **Copy my edit** puts your changes on the clipboard first. |
99
99
 
100
100
  ## Disk space
101
101
 
@@ -112,7 +112,7 @@ See [Where Your Files Live](Where-Your-Files-Live).
112
112
  | Topic | Native install | Docker |
113
113
  | --- | --- | --- |
114
114
  | Where it runs | Any system with Node 26 or newer | The installer is Linux only; Docker Desktop and remote Docker daemons are refused, and the installer must not be run with sudo |
115
- | Project files | `Documents/Slopify` for new installs (Settings → **Your files**); the database, settings and keys stay in the hidden data folder (`~/.slopify` by default, `--data-dir`) | `<Documents>/Slopify/Projects` on the host for new installs (`~/Slopify/Projects` on one from before 3.0); the database and keys stay in the `slopify-data` volume |
115
+ | Project files | `Documents/Slopify` for new installs (Settings → **Backup & storage** → **Your files**); the database, settings and keys stay in the hidden data folder (`~/.slopify` by default, `--data-dir`) | `<Documents>/Slopify/Projects` on the host for new installs (`~/Slopify/Projects` on one from before 3.0); the database and keys stay in the `slopify-data` volume |
116
116
  | AI CLIs | Run directly with your logins | Run on the host through a small helper, `slopify-cli-bridge.service`, with your existing logins. Check it with `systemctl --user status slopify-cli-bridge.service`. Without it, Settings shows the CLIs as unavailable. |
117
117
  | **Open folder** | Opens your file manager | Opens it through the host helper; without the helper you get the path to copy, and "run the Docker launcher again ... so it sets up the host helper" |
118
118
  | Start at login | Settings → General → **Start Slopify when I log in** | Slopify starts whenever Docker does; Settings only shows Docker's own setting (with Docker Desktop, its **Start Docker Desktop when you sign in**) |
@@ -100,7 +100,7 @@ Use `--projects-dir <folder>` for another folder. The installer waits for runnin
100
100
  | --- | --- |
101
101
  | **Export everything** | Downloads one `.tar` file with every project and its files and history, your library, templates, schedules, Play drafts, fonts, settings and usage. Never provider keys. Keep Slopify running until your browser's download finishes. |
102
102
  | **Import a backup** | Adds a `.tar` (or `.zip`) backup to this install and replaces nothing. Projects already here are skipped, taken names arrive as "(imported)" and schedules arrive paused. Running projects must finish or pause first. Afterwards a summary lists what was added and skipped. |
103
- | **Clean orphan files** | See below. |
103
+ | **Clear leftover files** | See below. |
104
104
 
105
105
  After an import, enter your provider keys again in Settings → **Providers**. For daily automatic copies, see [Backups](Backups).
106
106
 
@@ -110,7 +110,7 @@ After an import, enter your provider keys again in Settings → **Providers**. F
110
110
 
111
111
  **Disk space** shows what Slopify stores on this computer: the total, project files (outputs plus the working files they were made from), staged uploads, and deleted projects still in the trash, for example "· 2.1 GB in the trash (3 deleted projects), freed when removed for good". Below it, every project is listed by size with its outputs and working files.
112
112
 
113
- Deleted projects free their space when the trash removes them after 30 days, or when you choose **Delete now** in Settings → **Trash**. See [Trash](Trash).
113
+ Deleted projects free their space when the trash removes them after 30 days, or when you choose **Delete now** in Settings → **Backup & storage** → **Trash**. See [Trash](Trash).
114
114
 
115
115
  ### Keep outputs only
116
116
 
@@ -124,9 +124,9 @@ If you change that project later (edit an image, a caption style or the narratio
124
124
 
125
125
  A finished project's own page offers the same in its right rail: **Free space** with **Free 1.2 GB: keep the outputs, drop the working files** (see [Project Page](Project-Page#free-space)).
126
126
 
127
- ### Clean orphan files
127
+ ### Clear leftover files
128
128
 
129
- **Clean orphan files** deletes files in the projects folder that no project records any more, and uploaded files that no draft, template or project uses. Your projects, outputs and library are never touched. Slopify also does this each time it starts; use it after a crash or to free space now.
129
+ **Clear leftover files** deletes files in the projects folder that no project records any more, and uploaded files that no draft, template or project uses. Your projects, outputs and library are never touched. Slopify also does this each time it starts; use it after a crash or to free space now.
130
130
 
131
131
  Cleanup only looks inside `Projects`. It leaves `Backups` alone (only Slopify's own `slopify-backup-*.tar` files there are ever pruned, by the backup rules), leaves hidden files such as `.DS_Store` and `desktop.ini`, never removes loose files in a `Projects` folder outside the data folder, and never touches `Exports` or anything else in your files folder.
132
132