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:
@@ -8,14 +8,22 @@
|
||||
<true/>
|
||||
<key>com.apple.security.files.bookmarks.app-scope</key>
|
||||
<true/>
|
||||
<!-- The family App Group (12-editions.md ▸ Distribution, ruled 2026-07-29). Every edition
|
||||
declares this same group id, and the board registry with its app-wide peers — the
|
||||
clipboard's staging store, the shared defaults suite — homes in its container from day
|
||||
one, so a paying upgrader launches Pro onto their own recents rather than an empty
|
||||
screen. **It must be in base's shipped entitlements**: base ships first, and an edition
|
||||
that joined the group later would have a migration to do. Security-scoped bookmarks are
|
||||
the stated exception — they never cross sandboxes, group or not, which is why each
|
||||
edition holds its own grant slot on the shared record. -->
|
||||
<!-- Remotes: pull/push and auth (07-sync-collab.md), which only the git provider ever makes.
|
||||
**Declared now, dormant until Pro ships** — the one-app collapse traded "the free app
|
||||
provably has no network access" for "no network use until you subscribe", with eyes open
|
||||
(12-editions.md ▸ The target, re-ruled 2026-07-30). It sits in the shipped entitlements
|
||||
from the start because a key added later is a new provisioning profile and a new review
|
||||
surface for what is meant to be a StoreKit-only change. No `keychain-access-groups`
|
||||
alongside it: a group shares items *between* apps, and there is one app — Pro's
|
||||
credentials go to the sandbox's own keychain, which needs no key at all. -->
|
||||
<key>com.apple.security.network.client</key>
|
||||
<true/>
|
||||
<!-- The App Group, on borrowed time. 12-editions.md ▸ App-side state (re-ruled 2026-07-30)
|
||||
removes it wholesale — the board registry and its Application Support peers home in the
|
||||
ordinary sandbox container once there is one app — but the removal is the *code's* to
|
||||
make, not this file's: `AppGroup.swift` still resolves its container through this key,
|
||||
and pulling it first would silently drop the app into the fallback home. It goes with
|
||||
that code. -->
|
||||
<key>com.apple.security.application-groups</key>
|
||||
<array>
|
||||
<string>group.dev.rzen.indie.Kanban</string>
|
||||
|
||||
Reference in New Issue
Block a user