A fixes-only release. It ships two contributions from @isamu and the correctness work that came out
of reviewing them.
Contributed
- A repository can describe itself. Ship a
repo.jsonat the root and Repomon adopts it when the
repo is added: the declared name fills the display label when nobody on this machine has set one,
and the declared colour becomes a pane-accent token, so a project keeps its stripe on every
machine. Its identity name is never touched, because notes directories, MCP lookups and worktree
paths derive from it. - Japanese, Chinese and Korean input works in the composer. The Enter that confirms an IME
candidate no longer sends the message half-converted. WebKit firescompositionendbefore that
keydown, soisComposingis already false, and Tauri on macOS is WebKit.
Fixed
- A
repo.jsonread for one repository could be written onto another.repos.idhas no
AUTOINCREMENT, so SQLite reuses a deleted row's id; the application is now bound to the
registration it was read for, in one transaction that returns the authoritative row. - Renaming a project back to its folder name is a choice, and the next add no longer undoes it.
- A declared name carrying bidi controls, zero-width characters or line separators is refused. Those
reach aria-labels, tooltips and notifications, and the length cap did not touch them. - A declared colour now reaches panes that are already open, instead of waiting for a remount.
- Confirming a Japanese filename in the editor's New File or Rename no longer creates the file
half-converted. - IME confirmation is detected per event rather than on a timer, so composing in one field can no
longer suppress Enter on an unrelated button, and a lostcompositionendcan no longer leave
every Enter dead until reload.
Known
- Two
repo.jsonapplications whose file reads finish out of order can still write oldest-last. - An unparseable
repo.jsonpreserves what is stored and says so in the log; a parseable one
declaring an unusable colour is a declaration of no colour, and clears the accent. - A label set by rename has no route back to the declared name yet.