Changelog

Fresh off the board.

2026.09.15

This release sets up a self-hosted Claude code review workflow running on the omarchy runner, including the review comment script, tests, and documentation.

This release ships two new Plus features — a Copy Polish wand for AI-assisted writing and an invite-and-assign flow for bringing new collaborators onto a card — alongside a thorough overhaul of the Recap panel's unread counting, fixes to card sizing when comments are present, and expanded GitHub collaborator repository access. Under the hood, the companion's memory ceiling recovery is corrected, local storage is hardened for gVisor sandboxes, and PR validation moves into merv's own sandbox.

New

  • Copy Polish wand available for Plus subscribersA new wand button in the card editor lets Plus subscribers run AI-assisted copy polish on their card descriptions and comments. A stale polish result is discarded rather than applied if the card has changed since the request was made. b6c9a1c b964e88 d5f9d71 eda05b5
  • Invite a new member and assign them to a card in one stepThe card owner picker now offers an "Invite & assign" option so you can bring someone onto the board and hand them the card without a separate invitation flow. Owner changes propagate to all open boards over SSE, and the server guards against races — a card that already has an owner or a pending invitation rejects a second claim. 5d635fe 7826423 33ff56f f2234b5 60739c4 16c1f99 9789ddd
  • Mark all recap items as read in one clickA "Mark all read" action is now available in the Recap panel, letting you clear the unread state for every item on the board at once. 9382e15 ae54340
  • Due date tooltips show the weekdayHovering over a due date pill or date field now shows the day of the week alongside the date, making it easier to judge proximity at a glance. 0f9ccb6 ec276f3
  • GitHub collaborator repositories included in agent grantsClaudia can now access repositories where you are a collaborator, not only repositories belonging to installations you own directly. The GitHub installation model is refactored so github_installation_users is the single source of truth, eliminating a backfill-on-every-boot and a race that could resurrect a removed connection. 87586ac d4d3a61 5ef92ae b46b55d 87a380a 6b95612

Improved

  • Card author hidden on solo boardsThe card author byline is now suppressed on single-member boards where it adds no information. f70313b 784db2e

Fixed

  • Recap unread count now covers your full history, not just the loaded pageThe "N unread" badge and Unread lens previously counted only the rows paged into the panel, so items in older months were invisible to the tally. The count is now computed server-side over the board's entire history and delivered with the summary, so the number is always accurate. A "Loading…" placeholder replaces the premature "Nothing here yet" message while older months are still being fetched. 4fdb407 44fe89a cdd61b7 b47a732 22b56ee 441bda1 fc3d476 3cce9a0 52a1156 ce47e5d 8cf0636 c058dea
  • Card width expands correctly when a comment thread is longA card with a short description but a long comment thread now opens at the wider size immediately, rather than jumping from 560 px to 640 px the moment you click Comments. An offscreen probe measures the thread before the card paints, so the first render is already the right size. 6497258 f8588be 112866c 5444987
  • Agent avatar no longer flashes on every card at loadOn board load, cards assigned to an agent briefly showed an avatar and then dropped it once the first status poll arrived. The bootstrap now seeds agent job state from the same rows the poll uses, so the first paint is already correct. 6f8193a fd7f227
  • Keyboard cursor stays visible on completed cards in searchArrowing through search results could not be followed when the highlighted row was a completed card, because the strikethrough styling consumed the same channel used to show selection. Both the underline and the strikethrough now render together on a selected completed row. a1a7582
  • Mobile card stays inside the viewportCards on narrow screens no longer overflow horizontally or escape the viewport bounds. f413bd5 f978e82
  • Board command palette points the cursor instead of marking the cardPicking a card from the board ⌘K palette previously left the card wearing the "about to be moved" marquee after you closed it. The palette now sets the keyboard cursor without marking the card, matching the behaviour of every other way to open a card. 74f2ebf
  • Recap hierarchy and dim overlay cleaned upFixed the visual hierarchy in the Recap "right now" section and removed the board chrome dim overlay that was no longer needed. dc23a9f 85c33fc
  • Companion memory ceiling recovers after a lean measurementA companion that reported a low memory reading during pressure previously pinned the entire shared pool to that floor permanently. Each companion now owns its own row keyed by device name and overwrites it on every capacity read, so a later roomier measurement wins. Rows unseen for a week are dropped as belonging to removed companions. 7ff13d8
  • Local storage hardened for gVisor sandboxesStorage publication now falls back to a named temporary file with an atomic renameat2(RENAME_NOREPLACE) rename when the kernel refuses O_TMPFILE (as gVisor does). Directory descriptors are also verified against their unfollowed names to guard against symlink substitution. 802b8fa