diff options
| author | Danilo M. <danix@danix.xyz> | 2026-10-16 20:46:50 +0200 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-10-16 20:46:50 +0200 |
| commit | 53a6051c1d74e48d9a065ce0765dc49a75c9d711 (patch) | |
| tree | dd95954a5328b7d5bcc97c1722ff96366b8b545b /desktop/modules/appearance | |
| parent | fe7dcb389e0df86aadbe481646ca9202dfcca9dc (diff) | |
| download | quickshell-53a6051c1d74e48d9a065ce0765dc49a75c9d711.tar.gz quickshell-53a6051c1d74e48d9a065ce0765dc49a75c9d711.zip | |
notes: in-drawer editor with commit-on-save and git pull
The editor, and the write and git path behind it. Save is two clicks and
each does one thing: the first writes the note and only then arms the
button as 'Commit & push?', so a quick second click cannot commit a note
the first has not written yet.
The write path refuses when db.json cannot be read as the index. That is
not hypothetical: git pull --rebase --autostash resolves a remote db.json
change against a local uncommitted one, the stash pop conflicts, git still
exits 0, and the file is left full of merge markers. Reading that as 'no
notes' and writing it back deleted every title in a probe; Notes.valid now
distinguishes it from an empty store and the write reports instead. parse
stays tolerant for display. Stamping lastpull also only follows a pull
that worked, and only when git is on at all.
Db reads that a write is based on go through reload() plus waitForJob():
blockLoading does not make reload() blocking, contrary to the note in
AGENTS.md, and reading text() straight after reload() returns the old
contents. A body is written with a plain setText, which needs no prior
load; only reading text() before a load would.
Diffstat (limited to 'desktop/modules/appearance')
0 files changed, 0 insertions, 0 deletions
