Remove the App Group wholesale — one sandbox, one bookmark, one flag
Phase 2 of the one-app pivot (DESIGN 12 ▸ App-side state, re-ruled
2026-07-30; reworks 566deab). AppGroup retires; what remains is
AppStateHome — ordinary sandbox Application Support as the one home for
the registry, clipboard staging and template stores, keeping the
unit-test-host redirect (the test host is the app and would sweep real
state). Scalar defaults return to UserDefaults.standard.
BoardRecord's per-edition grant slots and openNow flags collapse to one
bookmark + one isOpenNow; the legacy-key decode and adopt-in-memory
paths go (nothing shipped with group-era records), while the founding
four-keys-required / defaults-for-everything-since decode policy stays —
a bookmarkless record decodes as the born-orphan row rather than
quarantining the list. needsReopen and the pre-anchored re-grant panel
are removed whole: the only state that flow served — a record granted by
a sibling sandbox — is unrepresentable now, and a dead bookmark of our
own was already the orphan case by explicit comment. The
indexOfRecord path fallback dies with it; path is never a key again.
The cross-process freshness stamp (mtime+size re-read) and
BoardEditionPresence with its popover "Also open in…" line retire; the
clipboard prune keeps its atomic .sweeping/ claim-then-delete, reframed
for crash residue and open -n copies rather than sibling editions. The
application-groups entitlement key is gone.
1880 tests in 317 suites green (13 cross-edition tests retired with
their subject).
Claude-Session: https://claude.ai/code/session_01SR4XGjmBE16ZUYWpfFHXwY
This commit is contained in:
+4
-4
@@ -86,12 +86,12 @@ targets:
|
||||
PRODUCT_BUNDLE_IDENTIFIER: dev.rzen.indie.Kanban
|
||||
MARKETING_VERSION: "2.0"
|
||||
INFOPLIST_FILE: Kanban/Info.plist
|
||||
# `Kanban/Kanban.entitlements` — sandbox, user-selected files, app-scope bookmarks, the
|
||||
# App Group (removed with the app-side-state collapse, a later phase), and
|
||||
# `Kanban/Kanban.entitlements` — sandbox, user-selected files, app-scope bookmarks, and
|
||||
# `com.apple.security.network.client`, which is **declared now and dormant until Pro
|
||||
# ships**: the one binary carries the key, and nothing exercises it until the git
|
||||
# provider's remotes do under an active subscription (12 ▸ The target). No keychain
|
||||
# access group — groups exist to share items *between* apps, and there is one app.
|
||||
# provider's remotes do under an active subscription (12 ▸ The target). No App Group and
|
||||
# no keychain access group — groups exist to share *between* apps, and there is one app,
|
||||
# so app-side state homes in the ordinary sandbox container (`AppStateHome`).
|
||||
CODE_SIGN_ENTITLEMENTS: Kanban/Kanban.entitlements
|
||||
GENERATE_INFOPLIST_FILE: false
|
||||
SWIFT_STRICT_CONCURRENCY: complete
|
||||
|
||||
Reference in New Issue
Block a user