Files
lanework/CHANGELOG.md
T
rzen 1fd19dfb12 The undo command surface rebuilds — app-owned rows and explicit toolbar targets over FocusedValues
Edit ▸ Undo/Redo become the app's own replaced rows and the board toolbar
pair takes explicit targets, both reading the focused session's
BoardUndoManager through FocusedValues.undoStack (board windows publish the
session's manager, card windows their own) — the nil-target route died with
the SwiftUI window latch, 13-native-undo.md ▸ Rules ▸ command surface,
re-ruled 2026-08-08. The rows enact the routing predicate themselves: text
focus routes ⌘Z to the first responder's own manager, title and enablement
included, re-derived at fire time with a beep for the stale window.
NativeHistoryProvider turns @Observable so both surfaces re-derive on stack
changes; a checkpoint-notification ticker covers plain text managers.
.responderAction leaves ToolbarItemSpec with its only user;
windowWillReturnUndoManager stays wired for AppKit's own asks.

Live-probed on the fixture board (21/21): the row retitles to "Undo Add
Lane" and crosses via real ⌘Z key events, ⇧⌘Z redoes via a window-server
chord, the toolbar pair validates and fires, search-field and body-editor
⌘Z stay text undo with board stacks untouched, and a card window crosses
its own stack with no fall-through. 2698 unit tests green.

Claude-Session: https://claude.ai/code/session_014PtZdPwqZuqEDLc6wZMtEy
2026-08-08 18:55:34 -04:00

4.6 KiB

August 2026

Edit ▸ Undo, ⌘Z, and the toolbar's Undo and Redo buttons now work on board changes — they had been silently disabled.

The board's symbol now appears in the title bar beside the board's name, in its chosen tint.

The board's symbol can now wear a color: the symbol picker carries a row of tints below the glyphs, with None to clear it.

The board popover's new Theme tab dresses the board in a solid color or a generated pattern: filter by light or dark, colors and saturation, then pick from eight hues.

The board popover is now organized into tabs — Info with the board's vital statistics, and Theme for backgrounds.

The rubber band now highlights cards the moment it touches them, instead of lagging behind on large boards.

The app's appearance can now be set to Light, Dark, or Auto from the View menu or the toolbar's new Appearance item.

A board can now wear a background image, painted across the whole window with a frosted strip keeping the title bar legible.

The background field is now written as a mapping — {color: green} instead of a bare green — and a board's may name an image beside the color.

Clicking a card or lane now selects it immediately, instead of pausing for about half a second.

July 2026

Version 2.0: Lanework's first release — a kanban app whose boards are ordinary folders of Markdown files on your Mac.

Edit a board from any other app, script, or AI agent and the open window updates live; outside edits are first-class, never overwritten.

Cards open in their own window with a formatted preview, a Markdown editor with checkable task lists, and a raw-source view.

Attach files to a card by dropping them onto its face or into its card window.

Drag cards and lanes to rearrange them, move or copy them between boards, or drop files from Finder to create new cards.

Cut, copy, and paste cards and lanes — within a board, across boards, or as plain text into other apps.

Deleted cards land in a trash lane you can show beside your lanes; drag a card out (or cut and paste it) to restore it.

Undo and redo cover every board action, including bringing back a deleted lane with all its cards.

A card window keeps its own undo trail while open; closing it folds everything you did there into one board-level undo step.

Start new boards from ten bundled templates, or save any board as a template of your own.

Search filters the board as you type, and new cards you create clear the filter so they never vanish under it.

Style cards and lanes from a twelve-color palette, tint lanes with a band, and give each board its own background.

The whole app works from the keyboard — arrow-key navigation, drag-free card moves, and Full Keyboard Access on every control.

VoiceOver reads boards as lanes of cards, announces outside changes in one polite digest, and names a focused card that was deleted externally.

Every board gets a guide file teaching AI agents the folder format, kept up to date automatically.

A hand-made card file no longer needs an order or schema line — the card simply lands at the end of its lane until you place it.

Every board carries a .gitignore naming which files count as noise, so system files like .DS_Store stay put instead of being gathered into a card's attachments.

Boards open into their own window right away, with a quiet spinner while a large one is read, and ⌘W cancels an open in progress.

A board that won't open now explains itself in that window, listing every problem file by file and grouped by what's wrong.

Each listed file offers Reveal in Finder and Open in Editor, so you can fix it yourself and press Re-check.

Repair and Open makes the fixes that are safe to make — a folder missing its board file, a board missing its format line — and opens the board.

You can skip a file Lanework can't fix and open the board without it; the board then names what was left out, and asks again next time.

Every card can carry a comment thread, shown beside or below the card's text in its window.

The comment composer keeps its draft inside the board itself, so a half-written comment is waiting whenever and wherever you reopen the card.

Comments render Markdown like the card body, take file drops of their own, and note when they've been edited.

Board search now matches comment text, and ⌘F in a card window steps through matches across the whole thread.

Deleting a comment takes effect immediately, stays undoable in the card's window, and board-level undo can still bring it back after the window closes.

Zoom the board in and out from the View menu (⌘+ and ⌘−, ⌘0 for actual size), and the size you settle on is remembered across launches.