The summary editor allowed attaching files but never sent them, so the
link ended up in the summary while the file never reached the COB.
Verdict changes and task toggles also sent no embeds, which would drop
them again once a summary has some.
Heartwood doesn't cache custom COBs, so every board read replayed the
board's whole history, about 2.5 s for 3,000 ops. Evaluated boards are
now kept in `boards.db` next to radicle-artifact's cache, keyed by the
board's ref tips, so a read with nothing new takes a few milliseconds and
an op fetched from any peer still triggers a fresh evaluation.
The port lists, creates and renames boards, edits their columns, and
applies a batch of card moves and removals as one op, so a burst of
changes costs one update of the signed refs. Changes the board would
ignore are refused before writing and reported back, and boards are only
written on the test network or in private repositories for now.
Co-authored-by: Rūdolfs Ošiņš <rudolfs@osins.org>
A board arranges a repository's issues and patches in columns and stores
only where each card sits, as `works.monadic.board` in its own crate so
other clients can reuse it. Moves follow the issue and patch access
rules, ops that fail them are ignored rather than rejected, and positions
are fractional keys so concurrent moves converge. ADR 0005 records the
decisions.
Co-authored-by: Rūdolfs Ošiņš <rudolfs@osins.org>
Views can hold back writes to batch them, which would be lost if the
window closed in the meantime. The first close is held until registered
views have flushed, writing locally without announcing, with a 5 second
fallback. On macOS, Quit goes through the same path instead of
terminating the app directly.
- Decide in ADR 0004 to always open releases on Delegates
- Drop the fallback to Others in lists and releases
- Show the Others filter whenever it has content
- Name the scope in the empty artifacts message
- Open Others in the e2e test of an artifact by a non-delegate,
which no longer opens there by itself