Skip to content

feat(protocol): negotiate versions during initialization - #35

Open
manavanandani wants to merge 1 commit into
mainfrom
feat/protocol-version-negotiation
Open

manavanandani wants to merge 1 commit into
mainfrom
feat/protocol-version-negotiation

Conversation

@manavanandani

Copy link
Copy Markdown
Collaborator

Summary

  • introduce independent MAJOR.MINOR protocol version negotiation in agent/initialize
  • preserve versionless agents as legacy protocol 0.1 with one warning per run
  • abort before step execution on incompatible major versions with VERSION_UNSUPPORTED (-32001)
  • update conformance tooling, the pytest fixture, Inspector initialization, audit metadata, schemas, and documentation

Compatibility

  • differing minor versions negotiate to the lower supported minor
  • agents without protocol_version continue to run under the legacy 0.1 assumption
  • the current SDK remains compatible with pre-negotiation runtimes
  • malformed or explicitly null versions are rejected as invalid parameters (-32602)

Validation

  • python -m unittest discover -s runtime/python/tests — 84 tests
  • python -m unittest discover -s sdk/python/tests — 42 tests
  • ruff check runtime/python/src runtime/python/tests sdk/python/src sdk/python/tests examples/protocol_demo.py
  • mkdocs build --strict
  • node --check server/src/server.js
  • Draft 2020-12 validation for all JSON Schemas and current/legacy initialize payloads
  • runtime and SDK source-distribution and wheel builds
  • real stdio interoperability checks for legacy agents, minor negotiation, and major-version aborts

Closes #25

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add protocol version negotiation to agent/initialize

1 participant