@plinth-music/cli 0.22.0 → 0.23.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.
- package/CHANGELOG.md +77 -0
- package/dist/build-stamp.json +2 -2
- package/dist/cli.js +2381 -248
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,83 @@
|
|
|
2
2
|
|
|
3
3
|
Notable changes to `@plinth-music/cli`. Grouped by what a user notices, not by PR.
|
|
4
4
|
|
|
5
|
+
## 0.23.1 - 2026-09-29
|
|
6
|
+
|
|
7
|
+
Two code PRs since `0.23.0` (`v0.23.0..0dd34dc`: #212, #213; #209, #210 and #211 docs).
|
|
8
|
+
A patch: fixes only, no new command or sync surface.
|
|
9
|
+
|
|
10
|
+
⚠️ **A file you delete from the mirror stays deleted** (#213). A poll landing in the
|
|
11
|
+
second or so between your `rm` and the daemon's delete hold could write the file back,
|
|
12
|
+
and the delete was then dropped; four of seven documents came back this way on 26 Sept.
|
|
13
|
+
The daemon now leaves a path it saw you remove alone for five minutes, and waits one
|
|
14
|
+
poll before restoring a file that is missing for a reason it has not seen yet. A file
|
|
15
|
+
missing for any other reason is still restored, about one poll later than before.
|
|
16
|
+
|
|
17
|
+
⚠️ **One slow calendar no longer freezes every calendar view** (#212). A calendar whose
|
|
18
|
+
read fails or times out now shows as not read, with no entries, until the next refresh.
|
|
19
|
+
Before, the whole refresh failed and every `views/calendar/` file kept its old contents.
|
|
20
|
+
A read that did not complete is described as incomplete, not as Google refusing access.
|
|
21
|
+
|
|
22
|
+
**The daemon stops re-downloading what has not changed** (#213). Since 0.22.0 every
|
|
23
|
+
poll fetched every memory fact in full, left `_freshness.md` reporting memory as
|
|
24
|
+
`unknown` / `incomplete_apply`, and re-fetched the extracted text of every PDF. Both now
|
|
25
|
+
happen once. Feeds ask from the server's high-water mark instead of re-reading their
|
|
26
|
+
last page; a full read from the cursor still runs at boot, on `plinth sync` and once an
|
|
27
|
+
hour, so nothing is missed. On the release commit, over 47 minutes after the first pass:
|
|
28
|
+
no full memory-fact downloads, no text re-fetches, no inconsistent trails.
|
|
29
|
+
|
|
30
|
+
**Each calendar view says what it covers** (#212). A view holds only its window and now
|
|
31
|
+
says so, naming the Plinth tool `list_calendar_events` for any other date. A truncated
|
|
32
|
+
read says why it was cut short.
|
|
33
|
+
|
|
34
|
+
**What is not proven.**
|
|
35
|
+
|
|
36
|
+
- The delete fix was driven live on the release commit (a delete inside a poll, and a
|
|
37
|
+
held batch left 13 minutes past the window: neither came back). A delete within about
|
|
38
|
+
1.6 s of the lid closing has one exposed poll on wake.
|
|
39
|
+
- The calendar changes were not exercised live: the test workspace has no mapped
|
|
40
|
+
calendar. They are covered by tests and are checked on a real workspace after release.
|
|
41
|
+
- A sync request that hangs can still stall the poll loop for minutes (seen once, 4 min
|
|
42
|
+
7 s, in the release check). Pre-existing; not fixed here.
|
|
43
|
+
|
|
44
|
+
## 0.23.0 - 2026-09-23
|
|
45
|
+
|
|
46
|
+
One code PR since `0.22.0` (`v0.22.0..f3334fb`, #207; #204, #205 and #206 docs). A
|
|
47
|
+
minor: a new sync surface (permanent-deletion reconciliation, dormant until the server
|
|
48
|
+
switches it on) and a fix to how the mirror treats a file it has no record of.
|
|
49
|
+
|
|
50
|
+
⚠️ **A file you made by hand in the mirror is no longer overwritten without a copy
|
|
51
|
+
being kept when a row of the same name arrives** (#207, the S224 fix). On 0.22.0, if you
|
|
52
|
+
created an entity file (a document, task, project and so on) under the mirror by hand,
|
|
53
|
+
and `plinth sync` or the daemon's first pull then brought down a row that lands at that
|
|
54
|
+
path, the row replaced your file and nothing kept it. Your bytes are now stashed to
|
|
55
|
+
`~/.plinth/_conflicts/<workspace>/` first and the log names the stash path. The cloud
|
|
56
|
+
copy still wins on boot, as before.
|
|
57
|
+
|
|
58
|
+
**Permanently deleted documents and files no longer survive in an offline mirror and
|
|
59
|
+
come back on the next sync** (#207). The daemon keeps an owner-only journal
|
|
60
|
+
(`permanent-deletions.json`) of each retirement, stashes any unsynced local edit to
|
|
61
|
+
`_conflicts/` before removing the active copy, replays a retirement in two phases so a
|
|
62
|
+
crash part-way is finished cleanly on the next run, and sends a retired-generation
|
|
63
|
+
acknowledgement (`X-Plinth-Retired-Generation`) when a name is deliberately recreated.
|
|
64
|
+
A recreate without it is refused by the server (`409 permanent_name_retired`) rather
|
|
65
|
+
than resurrecting the deleted item. `plinth status` gains a **Deletion** row: nothing
|
|
66
|
+
pending, N pending or feed refreshes required, or BLOCKED when the journal needs
|
|
67
|
+
recovery. **All of this is dormant until the server's rollout flags are switched on.**
|
|
68
|
+
The server side (Plinth #455) is live with every flag off, so no artist can be
|
|
69
|
+
permanently deleted yet and nothing changes for you on 0.23.0 until then.
|
|
70
|
+
|
|
71
|
+
**What is not proven.**
|
|
72
|
+
|
|
73
|
+
- #207's suite, a 101-test focused regression and the packed-install pre-flight passed;
|
|
74
|
+
a bounded joint proof against web `cc8cc1b` and real local Storage covered dirty
|
|
75
|
+
document and file recovery, daemon recreation and old-client file refusal. The live
|
|
76
|
+
race and crash matrix and the old-document-write case are not comprehensively proven.
|
|
77
|
+
- The hand-made-file loss was found live (DELACC, via a permanent deletion) and
|
|
78
|
+
reproduced on 0.22.0 from source; it has not been driven on the packaged app.
|
|
79
|
+
- The three 0.22.0 known gaps (double-save false conflict, revert-to-synced overwrite
|
|
80
|
+
without a copy, long-path re-download every poll) are unchanged.
|
|
81
|
+
|
|
5
82
|
## 0.22.0 - 2026-09-22
|
|
6
83
|
|
|
7
84
|
Four code PRs since `0.21.1` (`v0.21.1..c1bb82e`, #199, #200, #201, #202; #197 and #198
|
package/dist/build-stamp.json
CHANGED