Part of EPIC #193. Depends on #194.
Description
Find every site that compares projects by .path: String and replace with ProjectID. Key spots: MainFeature._openProject:127-129 (dedup of existing project), WelcomeFeature.swift:200 (touchProject), ActiveProject wrapper (add projectID: ProjectID).
Acceptance Criteria
Module / Layer
Relay / AppFeature + MainFeature + WelcomeFeature
Complexity
Small
Part of EPIC #193. Depends on #194.
Description
Find every site that compares projects by
.path: Stringand replace withProjectID. Key spots:MainFeature._openProject:127-129(dedup of existing project),WelcomeFeature.swift:200(touchProject),ActiveProjectwrapper (addprojectID: ProjectID).Acceptance Criteria
ast-index usages "path"/ grep for== .pathshows all project-equality checks now go throughProjectIDMainFeature._openProjectcalled with an already-open project (via a symlinked path variant) correctly deduplicatesswiftlint lint --strictcleanModule / Layer
Relay / AppFeature + MainFeature + WelcomeFeature
Complexity
Small