The tier axis comes out of the git stack — compose unconditional, postures mode-driven
HistoryStore.compose(boardRoot📒) returns non-optional and runs for every session — the nil the gate produced was the only nil it ever had. makeHistoryProvider is a one-axis decision: git-mode boards bind the git provider, everything else native, in every tier; Session.tier stays recorded, dormant. BoardGitSection shrinks to the four mode postures (.absent and .proPointer die, BoardGitNote and the .git probe with them); every board carries all three popover tabs (BoardInfoTab.available retired); the titlebar branch shows on any git-mode board; the settings sheet and card History section stop reading tier. InertGitTests is repurposed as UntouchedGitTests — the file layer still never opens .git, now load-bearing for mode-none boards. The accessibility audit reaches the settings sheet at last: the fixture board hosts it in every tier, so the free-fixture disabled-row test becomes an open-and-audit test. Claude-Session: https://claude.ai/code/session_01SR4XGjmBE16ZUYWpfFHXwY
This commit is contained in:
@@ -39,8 +39,10 @@ import Foundation
|
||||
public enum BoardGitMode: String, Sendable, Equatable, CaseIterable {
|
||||
|
||||
/// No `.git` at the board root and none above it — **every** ancestor check answered not-found,
|
||||
/// "clean none" in 06's own words. The only mode the free tier ships (12-editions.md ▸ Tier
|
||||
/// matrix), the one add-git moves a board out of, and — now that this axis exists — the one mode
|
||||
/// "clean none" in 06's own words. The mode of every board nobody has opted into git for — which
|
||||
/// is what a board without app-managed git *is* now that the tier axis is gone (12-editions.md
|
||||
/// ▸ PIVOT 2026-08-07; it used to be the only mode the free tier shipped, over the retired
|
||||
/// inert-`.git` posture). The one add-git moves a board out of, and — now that this axis exists — the one mode
|
||||
/// add-git's own re-detection requires before it will act: a raced or stale read that turns out
|
||||
/// to be `.unverifiable` or `.repoNested` refuses the init exactly as those modes always did.
|
||||
case none
|
||||
|
||||
Reference in New Issue
Block a user