The pasteboard UTType constants become edition twins — Pro stops claiming ownership it doesn't have
Latent since the m7 split: base's Info.plist exports the three family pasteboard types (cards, lanes, clipboard) and Pro's imports them, but the shared constants declared all three UTType(exportedAs:) — a claim of ownership the system checks against the running app's plist. In Pro that claim is false, and the first touch (the clipboard type, via the launch sweep) raised a runtime fault that blocked board loading under the debugger. EditionAbout's twin-file pattern, applied to an initializer: the constants move to Kanban/App/EditionTypes.swift (exportedAs) with a KanbanPro/Edition/EditionTypes.swift twin (importedAs, identifiers verbatim); project.yml excludes base's copy from Pro. Type identity is the string, so payloads cross editions unchanged. Verified: Pro fixture launch opens the board with zero UTI warnings; both suites green; verify-editions 30/30. Claude-Session: https://claude.ai/code/session_01SR4XGjmBE16ZUYWpfFHXwY
This commit is contained in:
@@ -109,6 +109,11 @@ targets:
|
||||
# Quiet signposts); Pro compiles its own `KanbanPro/Edition/EditionAbout.swift` twin
|
||||
# without it — the edition split's file-level doctrine, applied to a string.
|
||||
- App/EditionAbout.swift
|
||||
# Base declares the family pasteboard types `UTType(exportedAs:)` to match its
|
||||
# UTExportedTypeDeclarations; Pro's plist *imports* them (12-editions.md ▸ Targets), so it
|
||||
# compiles its own `KanbanPro/Edition/EditionTypes.swift` twin using `importedAs` — the
|
||||
# same doctrine, applied to an initializer.
|
||||
- App/EditionTypes.swift
|
||||
# Pro's own source root — reserved now, filled by pro-m1. See KanbanPro/Edition/ProEdition.swift.
|
||||
- path: KanbanPro
|
||||
excludes:
|
||||
|
||||
Reference in New Issue
Block a user