Add Remote Release Channel Check
Nucleic-Session: 7D1A5F60-CF2F-44E6-B060-51C4C2EA79D1 Co-authored-by: Nucleic <[email protected]>
This commit is contained in:
@@ -783,6 +783,15 @@ final class RemoteStore: ObservableObject {
|
|||||||
openDiff = diff
|
openDiff = diff
|
||||||
diffLoading = false
|
diffLoading = false
|
||||||
case .wireError(let error):
|
case .wireError(let error):
|
||||||
|
// A channel mismatch is a permanent, connection-fatal condition (the host and this
|
||||||
|
// remote were built from incompatible release channels). Surface it as a persistent
|
||||||
|
// failure with a clear message rather than a transient bubble that the follow-on
|
||||||
|
// `.closed` would paper over with "reconnecting".
|
||||||
|
if error.code == .channelMismatch {
|
||||||
|
teardown()
|
||||||
|
connectivity = .failed(error.message)
|
||||||
|
break
|
||||||
|
}
|
||||||
// Not fatal — surface as a transient bubble (the Mac's last-error overlay).
|
// Not fatal — surface as a transient bubble (the Mac's last-error overlay).
|
||||||
// Losing an approval race isn't an error worth interrupting for; the card
|
// Losing an approval race isn't an error worth interrupting for; the card
|
||||||
// collapses on the matching `approvalResolved`.
|
// collapses on the matching `approvalResolved`.
|
||||||
|
|||||||
Reference in New Issue
Block a user