Skip to content
Developer Preview

SessionViewHealthChangedParams

session/viewHealthChanged params: the named session’s live view stream became unavailable, and why, or (ADR 32557 D5) it is back after the host re-loaded the view, so the client re-reads and re-subscribes.

Best-effort: ordered after already-queued view frames and may be dropped (for example when the connection is closing), so a client MUST NOT assume a guaranteed push and still reads history.noneReason on its next resume/read.

  • health
  • noneReason
  • sessionId
Source

schema/msp/experimental/msp.schema.json#/types/SessionViewHealthChangedParams

{
"description": "`session/viewHealthChanged` params: the named\nsession's live view stream became unavailable, and why, or (ADR 32557 D5)\nit is back after the host re-loaded the view, so the client re-reads and\nre-subscribes.\n\nBest-effort: ordered after already-queued view frames and may be dropped\n(for example when the connection is closing), so a client MUST NOT assume a\nguaranteed push and still reads `history.noneReason` on its next\nresume/read.",
"properties": {
"health": {
"$ref": "#/$defs/SessionViewHealth",
"description": "The new view-health state: `Unavailable`, or `Healthy` once the host\nre-loaded a failed view."
},
"noneReason": {
"$ref": "#/$defs/HistoryNoneReason",
"description": "Why the view is unavailable — the SAME typed `HistoryNoneReason`\nvocabulary the pull path stamps on `history.noneReason`, so a client reuses one handler for push and pull.\n`projectionUnavailable` when the view fails, then\n`projectionRebuildFailed`, which the pull path never stamps: it rides\nonly a `session/viewHealthChanged` notification, after the host's one\nre-load of a failed live view fails or right after a fork child's live\nfail-close; present only when `health` is\n`Unavailable`. Open on the client side: an unknown reason decodes\nconservatively and renders generically."
},
"sessionId": {
"description": "The session whose live view health changed.",
"type": "string"
}
},
"required": [
"health",
"sessionId"
],
"type": "object"
}