Bind the undo provider to the board, not the tier
The 2026-07-31 re-ruling: gitless boards bind the native stack in every tier — a Pro upgrade no longer removes undo from mode-none boards — and Pro git boards bind the git provider; repo-nested stays the no-undo case under Pro, while the free tier (which never runs detection) binds native there too, per 12's inert posture. Add-git now swaps a live native substrate mid-session: the in-flight stack is cleared with the discarded provider, the git trail seeds from the root commit, and the same BoardUndoManager instance keeps nil-target menu validation fresh. 2405 tests in 413 suites green. Claude-Session: https://claude.ai/code/session_01CqjXB7ASoWtbyoGod68k97
This commit is contained in:
@@ -605,8 +605,9 @@ struct BoardSessionHistoryTests {
|
||||
defer { tearDown() }
|
||||
|
||||
// 12-editions.md ▸ The entitlement: the tier is read at composition, once, and handed to the
|
||||
// root that binds the provider. Both tiers bind the native stack until pro-m1 — what this
|
||||
// pins is that the *argument arrives*, so the milestone that switches on it is a closure body.
|
||||
// root that binds the provider. What this pins is that the *argument arrives* — the matrix it
|
||||
// feeds is `GitUndoBindingTests`', since after the re-ruling of 2026-07-31 the tier decides
|
||||
// only whether a git state is composed at all, and the mode decides the substrate.
|
||||
var seen: [Tier] = []
|
||||
model.currentTier = { .pro }
|
||||
model.makeHistoryProvider = { _, tier, _ in
|
||||
|
||||
Reference in New Issue
Block a user