- AppState: loads credential from Keychain on launch, persists on pair - ContentView: switches PairingFlowView ↔ MainTerminalView on credential - PairingFlowView: onDismiss → onSuccess(credential) callback - MainTerminalView: auto-resolves/creates session, connects WebSocket stream to TerminalViewController, ModifierBar wired to SessionConnection.send() - piRemoteApp: AppState injected as environmentObject |
||
|---|---|---|
| .. | ||
| App | ||
| Core | ||
| UI | ||