Repository navigation
Make fast-time-server --strict serve exactly the configured protocol revisions - #10
Merged
Merged
Conversation
Previously --strict only rejected initialize requests for unsupported versions, so a server started with --protocol 2026-07-28 --strict would still accept an initialize handshake for 2025-11-25. Strict mode now serves exactly the revisions named with --protocol (defaulting to 2025-11-25 when none are given): the legacy revision is no longer implicitly available, every non-conformant interaction is rejected, and initialize is refused unless 2025-11-25 was explicitly enabled. Rejections name the exact supported set, per the draft spec's guidance for modern-only servers. Non-strict behavior is unchanged: 2025-11-25 remains implicitly available for fallback. Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai> Signed-off-by: Jonathan Springer <jps@s390x.com>
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai> Signed-off-by: Jonathan Springer <jps@s390x.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Follow-up to #9. A conformance test flagged that a server started with
--protocol 2026-07-28 --strictwould still accept aninitializehandshake for2025-11-25. Strict mode is now exact-set: the server serves only the revisions named with--protocoland rejects every non-conformant interaction.Behavior change
--protocol 2026-07-28 --strictinitializefor2025-11-25accepted (legacy still implicitly available)2026-07-28server: allinitializecalls rejected with-32602,data.supported: ["2026-07-28"]--strict(no--protocol)2025-11-25only, other versions rejected--protocol 2025-11-25 --protocol 2026-07-28 --strict2025-11-25was explicitly enabled2025-11-25implicitly available for fallbackThis also matches the draft spec's guidance that a modern-only server SHOULD name its supported versions in any error returned to an
initializerequest — andserver/discoverplus all error payloads now advertise the exact strict set rather than claiming2025-11-25is served when it isn't.Verification
cargo test: 35/35 passing (3 new tests: strict exact-set parsing, strict dual-era parsing, reject-all-initializein modern-only strict mode)cargo clippy --all-targets: clean--protocol 2026-07-28 --strictrejectsinitializefor both2025-11-25and2024-11-05with-32602+supported: ["2026-07-28"], whileserver/discoverworks and advertises only2026-07-28Commits
b73767bMake --strict serve exactly the configured protocol revisions2edc269Document exact-set --strict semantics for fast-time-server