From 74a423567f95b095dd12365eecdc3a6f5f811ac9 Mon Sep 17 00:00:00 2001 From: Miguel Palhas Date: Sat, 5 Sep 2026 05:35:19 +0100 Subject: [PATCH] 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. --- docs/STRUCTURED-VIEW.md | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) 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