Part of EPIC #193. Depends on #194, #201.
Description
Implement application(_:open:) on AppDelegate to route external open triggers: folder drag onto the Dock icon, open -a Relay <path> from the terminal, and the relay://project?path=X URL scheme. For each URL, canonicalize → ProjectID → openWindow(value: projectID). Deduplication is then guaranteed by SwiftUI. URL scheme parsing is a basic placeholder (path extraction); full command support is deferred post-MVP.
Acceptance Criteria
Module / Layer
Relay / AppDelegate
Complexity
Medium
Part of EPIC #193. Depends on #194, #201.
Description
Implement
application(_:open:)onAppDelegateto route external open triggers: folder drag onto the Dock icon,open -a Relay <path>from the terminal, and therelay://project?path=XURL scheme. For each URL, canonicalize →ProjectID→openWindow(value: projectID). Deduplication is then guaranteed by SwiftUI. URL scheme parsing is a basic placeholder (path extraction); full command support is deferred post-MVP.Acceptance Criteria
open -a Relay ~/projectfrom the terminal behaves identicallyrelay://project?path=/path/to/projectURL opens the projectModule / Layer
Relay / AppDelegate
Complexity
Medium