docs(maestro): fix disabled-unstable-variant claim in STRUCTURED-VIEW.md
A SessionUpdate variant gated behind an unstable ACP feature this build doesn't enable is compiled out of the enum, not decoded into a Notice. It fails deserialization the same as a genuinely unknown future tag.
This commit is contained in:
+10
-9
@@ -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:<seq>`. |
|
||||
|
||||
`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
|
||||
|
||||
Reference in New Issue
Block a user