diff --git a/docs/STRUCTURED-VIEW.md b/docs/STRUCTURED-VIEW.md index 92400cf..852e5f8 100644 --- a/docs/STRUCTURED-VIEW.md +++ b/docs/STRUCTURED-VIEW.md @@ -116,15 +116,16 @@ crate. | `Notice` | The raw JSON of any `session/update` variant the ACP dependency already decodes but the projection does not special-case. | `notice:`. | `Notice` covers known-but-unspecialized `SessionUpdate` variants: ones the -`agent-client-protocol` dependency's schema already deserializes (it currently -also folds `available_commands_update` and `session_info_update` there, -alongside anything gated behind an unstable ACP feature this build doesn't -enable) but the projection's `match` doesn't fold into one of the other seven -kinds. It is not a wire-level forward-compatibility seam: `SessionUpdate` is -an internally-tagged enum with no unknown-variant fallback, so a -`session/update` whose `sessionUpdate` tag this build's dependency has never -heard of fails to deserialize before the projection ever runs, rather than -becoming a `Notice`. A genuinely new ACP variant needs the +`agent-client-protocol` dependency's schema already deserializes (it +currently folds `available_commands_update` and `session_info_update` +there) but the projection's `match` doesn't fold into one of the other +seven kinds. It is not a wire-level forward-compatibility seam: +`SessionUpdate` is an internally-tagged enum with no unknown-variant +fallback, so a `session/update` whose `sessionUpdate` tag this build's +dependency has never heard of — including a variant gated behind an +unstable ACP feature this build doesn't enable, which is compiled out of +the enum entirely — fails to deserialize before the projection ever runs, +rather than becoming a `Notice`. A genuinely new ACP variant needs the `agent-client-protocol` dependency upgraded (and, typically, the projection's `match` taught about it) before it can appear on this transcript at all — see `projection.rs`'s test asserting that an unrecognised `sessionUpdate` tag is a