Releases: ekhodzitsky/kimi-wire
Releases · ekhodzitsky/kimi-wire
Release list
v0.5.0
v0.4.2
Changed
- CI: bump
codecov/codecov-actionfrom 6 to 7 inci.yml(#26).
v0.4.1
What's Changed
Fixed
- All
clippy::nurserywarnings resolved:option_if_let_else,unnecessary_struct_initialization,unused_map_closure. - All
clippy::pedanticwarnings resolved:uninlined_format_args,doc_markdown,manual_let_else,empty_stringin tests. - CI permissions restricted to
contents: readinci.ymlandrelease.yml. - Dead
masterbranch references removed fromsecurity-audit.yml.
Full Changelog: v0.4.0...v0.4.1
kimi-wire 0.4.0
See CHANGELOG.md for full details.
kimi-wire 0.3.0
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
[Unreleased]
0.3.0 - 2026-05-25
Added
- CI: add cargo-audit security audit workflow (#12).
- CI: add GitHub dependency review action (#13).
- CI: add macOS and Windows runners to the test matrix (#14).
- Supply chain: expand
deny.tomlconfiguration for license and advisory checks (#15). - CI: add typos-cli spell check workflow (#16).
- DX: add lefthook pre-commit and pre-push hooks (#17).
- CI: add benchmark regression detection with cargo-criterion baselines (#18).
- CI: add automated changelog generation via git-cliff (#19).
0.2.0 - 2026-05-25
Added
TransportWireClient::with_default_timeout(Duration)and matching field on
InMemoryWireClient— applies to everyread_responsecall. Without it,
read_responsewaits indefinitely for the expected id (existing behavior).transport::MAX_PENDING_MESSAGES(1024) — caps out-of-order buffer to
prevent unbounded memory growth from a misbehaving peer.Transport::shutdowndefault method.ChildProcessTransportoverrides it
to close stdin, wait 3 seconds for child exit, then kill.- Wire protocol v1.10 support:
StepRetryevent (v1.10),BtwBegin/BtwEndevents (v1.9), andis_summaryfield onDisplayBlock::Diff(v1.8). - Unit and integration tests for
InMemoryWireClient,TransportWireClient,ChannelTransport, builders, and error conversions. CONTRIBUTING.md,CODE_OF_CONDUCT.md,SECURITY.md, issue/PR templates.- CI coverage job via
cargo-tarpaulin+ Codecov upload. - Release workflow for automatic crates.io publish on git tags.
rustfmt.toml,clippy.toml, andJustfilefor local development.- Fuzz targets for
Event,Request, andRawWireMessageserde roundtrip (cargo-fuzz). - CI jobs:
cargo-semver-checks,cargo-hackfeature powerset,cargo-fuzzbuild. - Dependabot configuration for Cargo and GitHub Actions.
docs/architecture.mdcovering protocol lifecycle, bidirectional flow, object-safety, and design rationale.
Fixed
TransportWireClient::read_responseno longer hangs forever when a default
timeout is set, closing a production hazard called out byAGENTS.md.TransportWireClient::shutdownnow forwards toTransport::shutdowninstead
of being a silent no-op.Event::ToolCallenvelope type was incorrectly"function"instead of"ToolCall". The payload now correctly preserves the innertype: "function"discriminator per the v1.10 spec.- Removed unused
ApprovalPolicyenum. It was not referenced by any protocol struct and is not present in the official spec. Event::ContentPartserde roundtrip: the innerContentPartcarries its own"type"field, which conflicted with theEventenvelope format.TransportWireClient::read_responseinfinite loop when out-of-order messages filledpending_messages— now reads directly from transport when the expected id is not in the pending buffer.
Changed
- BREAKING:
JsonRpcVersionis now a unit type. Its single field (which was
pub String) is gone; construct viaJsonRpcVersion::V2or
JsonRpcVersion::default(). Read viaJsonRpcVersion::as_str(). The wire
format is unchanged (still serializes as the string"2.0"). - BREAKING: All public enums (
WireError,Event,Request,ContentPart,
PromptStatus,ReplayStatus,SteerStatus,SetPlanModeStatus,
DisplayBlockType,TodoStatus,ApprovalResponseKind,HookAction,
SourceKind) are now#[non_exhaustive]. Externalmatchstatements on
these enums must include a wildcard arm. This enables forward-compatible
variant additions without further breaking changes. tokiois now a required dependency (was optional underprocess).WireClientandInMemoryWireClientneed it unconditionally.processstill gatesChildProcessTransportandTransportWireClient.
Fixed
JsonRpcVersiondeserialization now rejects any value other than"2.0"
instead of silently accepting arbitrary strings.
0.1.0 - 2026-05-21
Added
- Initial release with typed Wire protocol structs.
WireClienttrait withprompt,replay,steer,set_plan_mode,cancel.InMemoryWireClientfor testing.Transporttrait withChildProcessTransportandChannelTransport.TransportWireClientadapter connectingTransporttoWireClient.- Optional secret redaction via
redact_secretsandscrub_secret_patterns. - Comprehensive serde round-trip tests.