You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
build: dev does not compile on Xcode 27 — SwiftUI.Document now collides with InterlinedDomain.Document #98
dev does not build on Xcode 27. This blocks every open PR and every new one.
What happened
Xcode was updated on this machine at 12:23 on 2026-09-15, mid-session — builds from the same commit succeeded before it and fail after.
The macOS 27 SDK adds a Document protocol to SwiftUI:
SwiftUI.Document:4:17: note: found this candidate
public protocol Document : ReadableDocument, WritableDocument {
InterlinedDomain has exported a Documentstruct since M4. Any file that imports both — which is every documents-feature view — now has an ambiguous Document in scope.
Every one is import SwiftUI + import InterlinedDomain with a bare Document used as a type.
Note the view models are unaffected — they import Foundation, Observation and InterlinedDomain, not SwiftUI. It is exactly the SwiftUI-importing files, which is what makes the diagnosis unambiguous.
Fix
Qualify the domain type at the use sites: InterlinedDomain.Document.
Considered and rejected:
Renaming the domain type.Document is the correct domain name and it is right across the Kit/Domain/Persistence layers and their tests. Renaming a core model to dodge a name collision in one consumer is the tail wagging the dog.
A module-level typealias ILDocument = InterlinedDomain.Document. Shorter at the use sites, but it introduces a second name for one concept, and the next reader has to learn that ILDocument and Document are the same thing. Explicit qualification says exactly what it means.
Dropping import SwiftUI. Not possible; these are SwiftUI views.
Worth knowing for the future
This is a standing hazard, not a one-off. Any domain type sharing a name with a SwiftUI symbol is one SDK update away from the same break. Current domain models at risk by name: Document, Message, List-adjacent names, Section-adjacent names. Nothing to do pre-emptively, but the diagnosis is worth writing down so the next occurrence takes minutes rather than an afternoon.
Eleven sites across eight files, all App/Features/** — two more than the first error list showed, because PublicUserDocumentsView and SearchRootView only surfaced once the earlier errors stopped short-circuiting compilation.
Every edit is a type position; no user-facing string or other Document-containing identifier is touched.
⚠️This should merge before the other open PRs. They all branch from dev before the fix, and their gates were run before the Xcode update — green at the time, but they will each need dev merged in to build on Xcode 27.
Activity
Adron commentedon Sep 16, 2026
Implemented in PR #99. Work continues on the PR.
Eleven sites across eight files, all
App/Features/**— two more than the first error list showed, becausePublicUserDocumentsViewandSearchRootViewonly surfaced once the earlier errors stopped short-circuiting compilation.Every edit is a type position; no user-facing string or other
Document-containing identifier is touched.devbefore the fix, and their gates were run before the Xcode update — green at the time, but they will each needdevmerged in to build on Xcode 27.merge: the Xcode 27 Document disambiguation (#98 / PR #99)