Release 0.2.1 - #12
Merged
Merged
Conversation
Patch rather than minor, deliberately. The behaviour changes here would normally earn a minor bump: the default output format changed, and Event::Text is now token-level on Claude rather than message-level, which changes what a consumer renders rather than only what it receives. By the rule set at 0.2.0 that is a minor. Overruled on the grounds that nothing depends on this crate yet, and marching toward 1.0 in an afternoon signals maturity the crate has not earned. That is a fair trade while the consumer count is zero, and it stops being fair the moment it is not. The compensation is that the changelog carries what the version number does not: the 0.2.1 entry opens by saying it contains minor-worthy changes and names the three a caller would notice. The policy note at the top of the file now says the same thing, rather than claiming behaviour changes always go in a minor, which this release would have contradicted. Public API is purely additive since 0.2.0: AuthState and AuthStatus added, nothing removed or renamed, so any 0.2 code still compiles.
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.
Version bump and changelog for everything on master since 0.2.0 was published.
Why 0.2.1 and not 0.3.0
The public API is purely additive since 0.2.0:
AuthStateandAuthStatusadded, nothing removed or renamed, so any 0.2 code still compiles.The behaviour changes are the awkward part, and by the rule set at 0.2.0 they would earn a minor:
JsontoStreamRequest::sessionno longer pins a formatEvent::Textis token-level on Claude, not message-level — a transcript appending one Text event per line now receives"po","ng"where it received"pong"That third one changes what a consumer renders, not just what it receives, which is a larger change than the auth behaviour that justified 0.2.0 over 0.1.1.
Called as a patch anyway, on the grounds that nothing depends on this crate yet and reaching 1.0 in an afternoon would signal maturity it has not earned. That is a fair trade at zero consumers and stops being fair the moment there is one.
The compensation is in the changelog. The 0.2.1 entry opens by stating it contains minor-worthy changes and names the three a caller would notice. A version number that under-signals is only acceptable if the changelog over-signals, so it does.
I also corrected the policy note at the top of
CHANGELOG.md, which claimed behaviour changes always go in a minor. This release would have contradicted it on the same page.Contents
Structured output (
Request::schema/Outcome::structured),AuthStatus, streaming by default with token-level Claude text, the Copilot unauthenticated-wording fix, and the error-reporting fix that reports a cause rather than a status line.Verification
117 unit tests, clippy clean under
-D warnings,cargo packageandcargo publish --dry-runboth verify, and the full live suite passes 14/14 against all three real agents.Not published yet — awaiting the go-ahead, since a publish is permanent. Opened complete; I will not push further commits to this branch.