@plinth-music/cli 0.22.0 → 0.23.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.
- package/CHANGELOG.md +38 -0
- package/dist/build-stamp.json +2 -2
- package/dist/cli.js +1962 -201
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,44 @@
|
|
|
2
2
|
|
|
3
3
|
Notable changes to `@plinth-music/cli`. Grouped by what a user notices, not by PR.
|
|
4
4
|
|
|
5
|
+
## 0.23.0 - 2026-09-23
|
|
6
|
+
|
|
7
|
+
One code PR since `0.22.0` (`v0.22.0..f3334fb`, #207; #204, #205 and #206 docs). A
|
|
8
|
+
minor: a new sync surface (permanent-deletion reconciliation, dormant until the server
|
|
9
|
+
switches it on) and a fix to how the mirror treats a file it has no record of.
|
|
10
|
+
|
|
11
|
+
⚠️ **A file you made by hand in the mirror is no longer overwritten without a copy
|
|
12
|
+
being kept when a row of the same name arrives** (#207, the S224 fix). On 0.22.0, if you
|
|
13
|
+
created an entity file (a document, task, project and so on) under the mirror by hand,
|
|
14
|
+
and `plinth sync` or the daemon's first pull then brought down a row that lands at that
|
|
15
|
+
path, the row replaced your file and nothing kept it. Your bytes are now stashed to
|
|
16
|
+
`~/.plinth/_conflicts/<workspace>/` first and the log names the stash path. The cloud
|
|
17
|
+
copy still wins on boot, as before.
|
|
18
|
+
|
|
19
|
+
**Permanently deleted documents and files no longer survive in an offline mirror and
|
|
20
|
+
come back on the next sync** (#207). The daemon keeps an owner-only journal
|
|
21
|
+
(`permanent-deletions.json`) of each retirement, stashes any unsynced local edit to
|
|
22
|
+
`_conflicts/` before removing the active copy, replays a retirement in two phases so a
|
|
23
|
+
crash part-way is finished cleanly on the next run, and sends a retired-generation
|
|
24
|
+
acknowledgement (`X-Plinth-Retired-Generation`) when a name is deliberately recreated.
|
|
25
|
+
A recreate without it is refused by the server (`409 permanent_name_retired`) rather
|
|
26
|
+
than resurrecting the deleted item. `plinth status` gains a **Deletion** row: nothing
|
|
27
|
+
pending, N pending or feed refreshes required, or BLOCKED when the journal needs
|
|
28
|
+
recovery. **All of this is dormant until the server's rollout flags are switched on.**
|
|
29
|
+
The server side (Plinth #455) is live with every flag off, so no artist can be
|
|
30
|
+
permanently deleted yet and nothing changes for you on 0.23.0 until then.
|
|
31
|
+
|
|
32
|
+
**What is not proven.**
|
|
33
|
+
|
|
34
|
+
- #207's suite, a 101-test focused regression and the packed-install pre-flight passed;
|
|
35
|
+
a bounded joint proof against web `cc8cc1b` and real local Storage covered dirty
|
|
36
|
+
document and file recovery, daemon recreation and old-client file refusal. The live
|
|
37
|
+
race and crash matrix and the old-document-write case are not comprehensively proven.
|
|
38
|
+
- The hand-made-file loss was found live (DELACC, via a permanent deletion) and
|
|
39
|
+
reproduced on 0.22.0 from source; it has not been driven on the packaged app.
|
|
40
|
+
- The three 0.22.0 known gaps (double-save false conflict, revert-to-synced overwrite
|
|
41
|
+
without a copy, long-path re-download every poll) are unchanged.
|
|
42
|
+
|
|
5
43
|
## 0.22.0 - 2026-09-22
|
|
6
44
|
|
|
7
45
|
Four code PRs since `0.21.1` (`v0.21.1..c1bb82e`, #199, #200, #201, #202; #197 and #198
|
package/dist/build-stamp.json
CHANGED