The git surfaces leave the glass — tab, trail, branch line, and the remote pair, peeled
Step 3 of strategy/01-git-excision.md: the popover strip is Info/Theme/Sync, the titlebar widget says the name alone, the card window's History section and its slot go, Board ▸ Pull/Push comes out with the RemoteCommands scaffold, and View ▸ History re-tags from the commit trail to the deferred foreign-change journal. The Sync placeholder re-annotates to the future ops-based sync service. Four git test suites leave with the surfaces they pinned (BoardGitSetup, BoardInfoPopover, BranchSwitch, GitUndo). The git engine still compiles underneath, unreferenced by UI. 2,890 tests green. Claude-Session: https://claude.ai/code/session_014PtZdPwqZuqEDLc6wZMtEy
This commit is contained in:
@@ -718,38 +718,19 @@ struct BoardWindowHost: View {
|
||||
// card windows share that machinery and have no board to describe. It goes in after the
|
||||
// load rather than at attach because it carries the store; the controller installs it once,
|
||||
// whichever of the two arrives second.
|
||||
//
|
||||
// The git state comes from the **session**, which `start()` began a moment ago, rather than
|
||||
// from the entitlement or the disk: a board's popover must describe the board as it opened
|
||||
// (12-editions.md ▸ The entitlement, "an open board finishes with the provider it composed";
|
||||
// 06-history-undo.md ▸ Rules, mode is an open-time fact). A `nil` session cannot happen on
|
||||
// this path — `beginSession` precedes `configureWindow` — and reads as a board with no
|
||||
// repository, which is the harmless direction.
|
||||
//
|
||||
// **The tier is no longer passed down** (12 ▸ PIVOT 2026-08-07): git is tier-independent, so
|
||||
// every one of these surfaces reads the board's mode and nothing else. `BoardSession.tier`
|
||||
// still exists and is still recorded — it just has no git-facing consumer here.
|
||||
//
|
||||
// The settings sheet used to adopt the same fact here, so its two doors could validate on it
|
||||
// (2026-07-31 → 2026-08-07). The sheet is retired and the popover is the one configuration
|
||||
// home, so the git state is handed to exactly one surface again — this widget — and the
|
||||
// mid-session transition 06 sanctions (add-git flipping the mode) re-resolves the Git tab's
|
||||
// postures under it live, with no second reader to disagree.
|
||||
let session = appModel.session(for: ref)
|
||||
windowController.installTitlebarAccessory(
|
||||
boardInfoTitlebarAccessory(
|
||||
store: store,
|
||||
recents: appModel.styleRecents,
|
||||
git: session?.git,
|
||||
presentation: boardInfo
|
||||
)
|
||||
)
|
||||
// The widget above now says the board's name (and, on a git-mode board, its branch)
|
||||
// itself, so the system title display would only repeat it — the card-window seam
|
||||
// (`CardWindowHost.configureWindow`, `HostedWindowController.hideTitle`), applied here for
|
||||
// the same reason. `.navigationTitle(windowTitle)` a few lines up in `body` is untouched —
|
||||
// `window.title` keeps feeding the Window menu, Exposé, VoiceOver and restoration; only the
|
||||
// title bar's own rendering of that string is suppressed.
|
||||
// The widget above now says the board's name itself, so the system title display would only
|
||||
// repeat it — the card-window seam (`CardWindowHost.configureWindow`,
|
||||
// `HostedWindowController.hideTitle`), applied here for the same reason.
|
||||
// `.navigationTitle(windowTitle)` a few lines up in `body` is untouched — `window.title`
|
||||
// keeps feeding the Window menu, Exposé, VoiceOver and restoration; only the title bar's own
|
||||
// rendering of that string is suppressed.
|
||||
//
|
||||
// **After the load, and only after it**, which is why it is not in the loading half above:
|
||||
// this line and the widget it defers to are one exchange, and a loading window that hid its
|
||||
|
||||
Reference in New Issue
Block a user