Collapse the edition split — one target, twins merged, verify-editions retired
Phase 1 of the 2026-07-30 one-app pivot (DESIGN 0bec9a6, card c3a3ddd5):
the KanbanPro target, LaneworkPro scheme, KanbanProTests module-alias
bundle, KanbanPro/ source root and scripts/verify-editions.sh retire
wholesale. project.yml reads as a single-target file again (anchors
inlined, header rewritten in tier vocabulary).
The edition twins merge: EditionTypes -> PasteboardTypes (one
UTType(exportedAs:) home — the one app owns the family types),
EditionAbout -> AboutBox (the quiet Pro signpost survives as the About
box's one line; "…in Settings" deferred until the StoreKit phase gives
it somewhere to point). InertGitTests drops its Base prefix — the
inert-.git posture is unconditional app behavior, unsubscribed and
lapsed being one state.
Entitlements gain com.apple.security.network.client, declared now and
dormant until Pro's remotes use it; no keychain access group. The App
Group key deliberately stays — it goes with AppGroup.swift in phase 2,
since pulling it first would silently drop the app into the fallback
container. README/RELEASE.md build-and-pipeline prose updated to the
one-record world; the subscription story lands with phase 3.
1893 tests in 322 suites green.
Claude-Session: https://claude.ai/code/session_01SR4XGjmBE16ZUYWpfFHXwY
This commit is contained in:
@@ -603,15 +603,14 @@ public enum BoardLoader: Sendable {
|
||||
/// § Fractal layout ▸ Rules: "on git boards, the path history already tracks outranks the
|
||||
/// newcomer (both tracked: the path that entered history first)").
|
||||
///
|
||||
/// A seam rather than an implementation because the first rung of that ladder is unbuildable in
|
||||
/// base: base Lanework links no git machinery at all (12-editions.md; `scripts/verify-editions.sh`
|
||||
/// scans the base binary to prove it), so the loader consults an injected ranker and falls through
|
||||
/// to birth date and traversal order when there is none — which is every base board, and every Pro
|
||||
/// board without a repo.
|
||||
/// A seam rather than an implementation because the first rung of that ladder is unreachable
|
||||
/// without git: the free tier runs no git machinery at all (12-editions.md ▸ The inert posture),
|
||||
/// so the loader consults an injected ranker and falls through to birth date and traversal order
|
||||
/// when there is none — which is every free-tier board, and every Pro board without a repo.
|
||||
///
|
||||
/// Deliberately one closure and no protocol: the loader asks one question — "how early did this
|
||||
/// path enter history" — and pro-m1's implementation answers it from `git log --diff-filter=A
|
||||
/// --follow`-shaped plumbing behind the edition seam. `nil` means "untracked, or no history
|
||||
/// --follow`-shaped plumbing behind the provider seam. `nil` means "untracked, or no history
|
||||
/// here", which the rule reads as *outranked by anything tracked*.
|
||||
///
|
||||
/// - Parameter rank: keyed by the occurrence's **board-root-relative path**, which is what a
|
||||
|
||||
Reference in New Issue
Block a user