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:
@@ -29,9 +29,10 @@ import SwiftUI
|
||||
///
|
||||
/// "Subscribe takes effect at each board's next open ... The purchase flow offers to reopen open
|
||||
/// boards so the upgrade feels immediate" (12 ▸ The entitlement). The offer is raised **once**, from
|
||||
/// here, on the one outcome that means an active subscription just landed — and declining costs
|
||||
/// nothing, today least of all: both tiers bind the native history stack until pro-m1 builds the git
|
||||
/// provider (`AppModel.makeHistoryProvider`).
|
||||
/// here, on the one outcome that means an active subscription just landed — and declining costs a
|
||||
/// gitless board nothing at all: the provider follows the board, so its undo is the same native
|
||||
/// stack before and after (`AppModel.makeHistoryProvider`). What a Not Now defers is the git trail
|
||||
/// on the boards that have a repository.
|
||||
struct ProSettingsSection: View {
|
||||
|
||||
@Environment(AppModel.self) private var appModel
|
||||
|
||||
@@ -23,8 +23,11 @@ public enum Tier: String, Sendable, Equatable, Codable, CaseIterable {
|
||||
/// existing at all.
|
||||
case free
|
||||
|
||||
/// Lanework Pro — an active auto-renewable subscription. Binds the git history provider when
|
||||
/// pro-m1 builds it (06-history-undo.md, 07-sync-collab.md).
|
||||
/// Lanework Pro — an active auto-renewable subscription. It is what puts git on the table; which
|
||||
/// substrate a given board then binds is the *board's* answer, not this case's (re-ruled
|
||||
/// 2026-07-31 — `AppModel.makeHistoryProvider`): the git provider on a git board
|
||||
/// (06-history-undo.md, 07-sync-collab.md), the same native stack the free tier uses on a gitless
|
||||
/// one, nothing on a repo-nested one.
|
||||
case pro
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user