Problem
An incompatible environment is presented as only “Client not supported”, losing the compatibility error that explains whether the mobile app or host needs an update.
This is a diagnostic-loss bug, separate from the expected V1/V2 incompatibility documented in #14871. It does not request interoperability between those protocols.
User-reported reproduction
- Install T3 Code on an iPhone from the App Store and sign in with the same GitHub account as the desktop.
- Run the preview desktop. The locally inspected host was
0.0.46-preview.20261002.2598, orchestration protocol 2.
- On the same local network, open mobile Settings → Environments. The host appears under T3 Connect but cannot be enabled.
- Scan the host's connection QR code. The user reports that scanning succeeds and the incompatibility appears after pressing Connect.
The user reports an empty “No environments connected” screen while task notifications and Dynamic Island activity still arrive. The exact iPhone version/build is unknown; its installation channel was confirmed as App Store. These physical-phone observations have not been independently reproduced.
Source reproduction
orchestrationProtocolCompatibilityError already returns directional recovery text, but connectionStatusText discarded it for the unsupported phase. Mobile availableCloudEnvironmentPresentation separately hardcoded the same generic status.
Before: unsupported connections with actionable errors show only “Client not supported”.
Expected: retain the negotiated compatibility message, including “Update your app” for a newer server and “Update T3 Code on [host]” for an older server. Keep incompatible connections disabled and retain the generic fallback when no error detail exists.
Four focused regression cases failed on this lost-detail behavior before the repair. The fix and affected compatibility/onboarding/resolver cases now pass: 52 tests across seven files, plus targeted lint, formatting and typechecks for client-runtime, mobile and web.
Recovery and scope
The user selected V2 TestFlight with the current preview desktop, following #14871. App Store V1 and preview V2 cannot connect merely because GitHub authentication and network discovery succeed. The proposed repair preserves the existing compatibility checks and makes their recovery guidance visible. Related reverse-direction report: #14901.
Problem
An incompatible environment is presented as only “Client not supported”, losing the compatibility error that explains whether the mobile app or host needs an update.
This is a diagnostic-loss bug, separate from the expected V1/V2 incompatibility documented in #14871. It does not request interoperability between those protocols.
User-reported reproduction
0.0.46-preview.20261002.2598, orchestration protocol 2.The user reports an empty “No environments connected” screen while task notifications and Dynamic Island activity still arrive. The exact iPhone version/build is unknown; its installation channel was confirmed as App Store. These physical-phone observations have not been independently reproduced.
Source reproduction
orchestrationProtocolCompatibilityErroralready returns directional recovery text, butconnectionStatusTextdiscarded it for the unsupported phase. MobileavailableCloudEnvironmentPresentationseparately hardcoded the same generic status.Before: unsupported connections with actionable errors show only “Client not supported”.
Expected: retain the negotiated compatibility message, including “Update your app” for a newer server and “Update T3 Code on [host]” for an older server. Keep incompatible connections disabled and retain the generic fallback when no error detail exists.
Four focused regression cases failed on this lost-detail behavior before the repair. The fix and affected compatibility/onboarding/resolver cases now pass: 52 tests across seven files, plus targeted lint, formatting and typechecks for client-runtime, mobile and web.
Recovery and scope
The user selected V2 TestFlight with the current preview desktop, following #14871. App Store V1 and preview V2 cannot connect merely because GitHub authentication and network discovery succeed. The proposed repair preserves the existing compatibility checks and makes their recovery guidance visible. Related reverse-direction report: #14901.