The board settings sheet — setup leaves the popover for a home a stray click can't dismiss

The popover/sheet split lands: a board-scoped, titled, sectioned sheet on
the board window hosts everything setup-shaped, opened from the popover's
Board Settings… row and the new Board ▸ Board Settings… menu row. The three
existing setup controls relocate — add-git (whose noteFormVisible lines now
make the sheet the form-anchored failure surface), branch creation (a
standing field; create-and-switch runs the identical settle sequence), and
the commit-identity fields (the 2s visibility-scoped poll rides with them).
The popover keeps the daily face and its postures; its Pro/mode-none
section becomes header + door (.addGit renamed .noRepository). Availability
is derived from the section inventory (Pro + mode none or git), so pro-m2's
sections can't drift from the doors; the sheet's fields join the
caret-chord disable set. The audit suite pins what the free fixture can
reach; the sheet's own audit is manual until a tier override is ruled.

Claude-Session: https://claude.ai/code/session_01CqjXB7ASoWtbyoGod68k97
This commit is contained in:
2026-08-01 12:07:12 -04:00
parent 988a7245a3
commit 8345378972
12 changed files with 1168 additions and 321 deletions
+13 -4
View File
@@ -252,10 +252,15 @@ struct KanbanApp: App {
}
// The Board menu (11-command-nexus.md), complete and in its inventoried row order Open
// Card, Rename, Style, the card moves, the lane moves, the width pair, then the remote pair.
// Its items act on the frontmost board window, which they reach through the focus system
// rather than through the app model see `BoardCommands.swift`, which also owns their
// validation.
// Card, Rename, Style, the card moves, the lane moves, the width pair, the remote pair, then
// Board Settings. Its items act on the frontmost board window, which they reach through the
// focus system rather than through the app model see `BoardCommands.swift`, which also owns
// their validation.
//
// Board Settings sits below a divider rather than beside Pull/Push: the Nexus lists it last
// in this menu, and the two families differ Pull and Push are recurring *operations* on a
// remote, and the sheet is where a board is *set up* (03 Board settings sheet, the
// 2026-07-31 popover/sheet split).
CommandMenu("Board") {
OpenCardCommand()
BoardRenameCommand()
@@ -273,6 +278,10 @@ struct KanbanApp: App {
Divider()
RemoteCommands()
Divider()
BoardSettingsCommand()
}
CommandGroup(after: .windowList) {