Skip to content

Release 0.2.1 - #12

Merged
pathscale merged 1 commit into
masterfrom
release/0.2.1
Jul 29, 2026
Merged

Release 0.2.1#12
pathscale merged 1 commit into
masterfrom
release/0.2.1

Conversation

@pathscale

Copy link
Copy Markdown
Owner

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: AuthState and AuthStatus added, 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:

  • The default format changed from Json to Stream
  • Request::session no longer pins a format
  • Event::Text is 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 package and cargo publish --dry-run both 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.

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.
@pathscale
pathscale merged commit cd38bf3 into master Jul 29, 2026
2 checks passed
@pathscale
pathscale deleted the release/0.2.1 branch July 29, 2026 01:07
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.

1 participant