Add Remote Release Channel Check
Nucleic-Session: 7D1A5F60-CF2F-44E6-B060-51C4C2EA79D1 Co-authored-by: Nucleic <[email protected]>
This commit is contained in:
@@ -783,12 +783,12 @@ 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
|
// A channel mismatch means the host and this remote were built from incompatible
|
||||||
// remote were built from incompatible release channels). Surface it as a persistent
|
// release channels. Surface it as a persistent failure with a clear message rather
|
||||||
// failure with a clear message rather than a transient bubble that the follow-on
|
// than a transient bubble; the follow-on `.closed` still schedules a backoff retry,
|
||||||
// `.closed` would paper over with "reconnecting".
|
// so the connection recovers on its own once either side is updated to a matching
|
||||||
|
// channel.
|
||||||
if error.code == .channelMismatch {
|
if error.code == .channelMismatch {
|
||||||
teardown()
|
|
||||||
connectivity = .failed(error.message)
|
connectivity = .failed(error.message)
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user