Releases: agentclientprotocol/agent-client-protocol
v0.8.0
Some follow-up changes from 0.7.0. Most of the changes were in the Rust schema to make things a bit easier to work with.
However, there were some further cleanups to the JSON schema to remove some $ref indirection where possible to have the schema be a bit flatter.
There are also some fixes that were causing issues with code generators related to Extension methods, these now have concrete types in the schema as well.
Rust: There are some breaking changes to the OutgoingMessage types and other low-level RPC types to make them generate clearer JSON schema representations. Likely these are only used by SDKs, but they moved to tuple enum variants.
Also, rather than having free-floating V0 and V1 constants, these are now associated constants on the ProtocolVersion type itself.
Fixed
- Broken doctest and test in CI (#267)
Other
- Remove some nesting of the JSON schema (#278)
- Easier ids in constructors (#275)
- Exhaustive RPC types (#272)
- Easier
newmethods for ExtRequest + ExtNotification (#271) - Protocol Version constants (#270)
- Cleanup Rust example from schema docs (#269)
- Introduce helper methods to get the corresponding method name of a (#268)
v0.7.0
What's Changed
This is a big release as we move towards a v1.0 release of the JSON Schema.
This should be the final form, we just want to go through the motions of upgrading all of the SDKs to verify no further changes are needed.
NOTE: The Protocol version is already, and remains, 1. This is just for the JSON Schema itself. There are no breaking changes to the protocol, we just reworked the schema representation to be more compliant with code generation tooling for the various SDKs.
We also now have two variants of the schema attached to the release:
Stable
- schema.json
- meta.json
Unstable
- schema.unstable.json
- meta.unstable.json
As we have more RFD implementations in progress, this will allow us to iterate on the schema without requiring SDKs to churn through the changes.
For SDK authors, it is important if you use the unstable version, to make sure the unstable features are behind a flag of some kind with clear direction to your users about the state of these features. But this will also allow teams to start testing the unstable features and provide feedback to the RFD authors.
Rust
The Rust crate, agent-client-protocol-schema has major breaking changes. All exported type are now marked as #[non_exhaustive]. Since the schema itself is JSON, and we can introduce new fields and variants in a non-breaking way, we wanted to allow for the same behavior in the Rust library.
All enum variants are also tuple variants now, with their own structs. This made it nicer to represent in the JSON Schema, and also made sure we have _meta fields on all variants.
This upgrade will likely come with a lot of compilation errors, but ideally upgrading will be more painless in the future.
New Contributors
- @rumpl made their first contribution in #215
- @ahmedhesham6 made their first contribution in #211
- @RAIT-09 made their first contribution in #220
- @amateurhuman made their first contribution in #227
- @jtpio made their first contribution in #228
- @PsiACE made their first contribution in #229
- @stippi made their first contribution in #230
- @josevalim made their first contribution in #232
- @evalstate made their first contribution in #247
- @nerzhulart made their first contribution in #248
- @phil65 made their first contribution in #253
- @xxchan made their first contribution in #255
- @wiedymi made their first contribution in #262
Full Changelog: v0.6.3...v0.7.0
v0.6.3
v0.6.2
Protocol
- Fix incorrectly named
_metafield onSetSessionModeResponseby @benbrandt in #197
Full Changelog: v0.6.1...v0.6.2
v0.6.1
Protocol
No changes.
Rust
- Make Implementation fields pub by @benbrandt in #195
Full Changelog: v0.6.0...v0.6.1
v0.6.0
Protocol
- Add ability for agents and clients to provide information about their implementation #192
New Contributors
Full Changelog: v0.5.0...v0.6.0
v0.5.0
Protocol
- JSON Schema: More consistent inlining for enum representations to fix issues with code generation in language tooling.
- Provide more schema-level information about JSON-RPC format.
- Provide missing
_metafields on certain enum variants.
Rust
- More consistent enum usage. Enums are always either newtype or struct variants within a single enum, not mixed.
Full Changelog: v0.4.11...v0.5.0
v0.4.11
Protocol
- No changes
Rust
- Make id types easier to create and add
PartialEqandEqimpls for as many types as possible by @benbrandt in #179
Full Changelog: v0.4.10...v0.4.11
v0.4.10
What's Changed
Protocol
- No changes
Rust
- Export
Resulttype with a default ofacp::Error
Full Changelog: v0.4.9...v0.4.10
v0.4.9
Fix schema publish
Full Changelog: v0.4.8...v0.4.9