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:
@@ -213,7 +213,9 @@ final class CardWindowSession: CardSessionFlushing {
|
||||
// net effect, and the `comments/.trash/` purge, which must not run while a board step's undo
|
||||
// still restores comments out of it. Registering answers whether the step took the purge on —
|
||||
// and a board whose substrate keeps no steps has already run it by the time that answer comes
|
||||
// back, which is how Pro keeps purging at the close flush without a word about tiers here.
|
||||
// back, which is how a git board keeps purging at the close flush without a word about tiers
|
||||
// here (and there is none to say since 12-editions.md ▸ PIVOT 2026-08-07 — the substrate is
|
||||
// the board's mode, not a subscription).
|
||||
//
|
||||
// **This window stops owning its card's comment trash first** (ruled 2026-08-06 — the
|
||||
// open-window carve-out). While the window is open the store defers every purge of this
|
||||
@@ -418,9 +420,11 @@ struct CardWindowHost: View {
|
||||
/// **This card's commit trail, or nothing at all** (05-card-window.md ▸ History).
|
||||
///
|
||||
/// `nil` is the section's absence rule, read from the board's own git state rather than from a
|
||||
/// flag: no `HistoryStore` means the free tier (12-editions.md — where the section never exists),
|
||||
/// and a mode other than `git` means a board the app manages no history for. The object is held
|
||||
/// by this host so it survives every snapshot, `thumbnails`' reason exactly.
|
||||
/// flag: a mode other than `git` means a board the app manages no history for, on any tier. The
|
||||
/// question stopped having a tier half at 12-editions.md ▸ PIVOT 2026-08-07 — every session
|
||||
/// composes a git state now, so what decides the section is whether *this board's* history is
|
||||
/// git-backed. The object is held by this host so it survives every snapshot, `thumbnails`'
|
||||
/// reason exactly.
|
||||
private var cardHistory: CardHistory? {
|
||||
guard appModel.session(for: ref.board)?.gitMode == .git else { return nil }
|
||||
return history
|
||||
|
||||
Reference in New Issue
Block a user