The prose catches up with the one-version app — tier qualifiers retired, the entitlement comment carried over

The excision's follow-up sweep: present-tense prose that still implied an edition axis now reads
correctly under one version ("in every tier" clauses dropped or turned substrate-shaped, the
announcer's "every free-tier bracket today" is "every bracket today" — nothing passes a phrase),
and forward-looking promises pinned to the mooted pro-m1/pro-m2 milestones now name the thing
itself (the change narrator in Kanban/Changes/, the foreign-change journal successor) or fall to
past tense. Kanban.entitlements' network-client comment sheds its "dormant until Pro ships"
framing for the pivot's own reasoning: the key stays because the sync capability to come needs
it regardless. Untouched on purpose: the storage layer's coerce/tolerate/refuse tiers, the
chooser's bundled/user/keyless tiers, verbatim design-doc quotations, and genuine past-tense
record. One dangling reference repaired en route: EndToEndVerification.md cited the long-renamed
InertGitTests. Comment-only throughout; 2,686 unit tests green, unchanged.

Claude-Session: https://claude.ai/code/session_014PtZdPwqZuqEDLc6wZMtEy
This commit is contained in:
2026-08-08 13:40:13 -04:00
parent df986566e5
commit 2d919b8131
21 changed files with 58 additions and 50 deletions
+9 -7
View File
@@ -45,8 +45,8 @@ public struct HarvestedReceipt: Sendable, Equatable {
// MARK: - EchoLedger
/// **What the app wrote, so a landing reload can tell its own echo from someone else's edit**
/// 02-architecture.md Components EchoLedger, built here in base ahead of Pro's committer
/// (ruled 2026-07-29).
/// 02-architecture.md Components EchoLedger, built in the store layer ahead of any consumer
/// that would record what it says (ruled 2026-07-29).
///
/// ### The one thing it is not
///
@@ -153,10 +153,11 @@ public final class EchoLedger: Sendable {
/// messages, ruled 2026-07-29: "the Writer's heal operations drop heal-marked receipts in
/// the EchoLedger attribution machinery like the author split, never message tagging").
///
/// **Inert in base beyond the ledger itself.** Nothing here reads it and nothing renders it;
/// it is the flag pro-m1's committer reads to split a heal's paths into their own commit,
/// and it is stored rather than derived because by commit time the only thing that still
/// knows a path was healed is the receipt.
/// **Inert beyond the ledger itself.** Nothing here reads it and nothing renders it; it is
/// the flag whatever records history next the foreign-change journal
/// (`strategy/01-git-excision.md` Successors) is the candidate would read to split a
/// heal's paths out from a user's own, and it is stored rather than derived because by the
/// time anything asks, the only thing that still knows a path was healed is the receipt.
var isHeal: Bool = false
}
@@ -584,7 +585,8 @@ extension EchoLedger {
/// handed it is something the two snapshots identify. An item whose folder, whose `index.md`
/// bytes, or whose attachment listing differs between them is precisely a changed file (or set
/// of them) that this reload observed, and the item is the unit every consumer downstream the
/// digest, the vanishing-focus sentence, pro-m1's commit message actually speaks in.
/// digest, the vanishing-focus sentence, the change narrator's message (`Kanban/Changes/`)
/// actually speaks in.
///
/// The bytes come from the snapshot rather than from a second read of the disk:
/// `FrontmatterDocument` owns a byte-identical round trip, so `document.serialized()` **is** the