2 Commits
Author SHA1 Message Date
glm-5.3-flash e3d7f6f3f2 chore: bump to 0.8.1, changelog for the alkcall 0.10.1 adoption
- alkcall requirement 0.10.0 -> 0.10.1 (same-family version-only bump:
  the adoption-window ordering fix, private fix surface, no type alktty
  touches); lockfiles updated in both the root and fuzz workspaces
- AGENTS.md pin refreshed from the stale 0.9.0 note

Verification: cargo test 113 default / 137 all-features (unchanged from
the 0.8.0 baseline); fuzz corpus replay 9 green; clippy stable + wasm
(-D warnings); fmt; doc; wasm32-unknown-unknown check; publish dry run
(43 files)
2026-10-22 06:22:33 +00:00
glm-5.3-flash 56d0556240 feat: alkcall 0.10.0 adoption — bump to 0.8.0
The gateway ownership seam release touches no surface alktty uses:
the loud unwired-spine default applies only to `resource_type`-gated
ops served through `GatewayDispatch`, and alktty consults the
OwnershipProvider seam directly (direct-ALPN scope gate + channels
establisher). Dependency bump only — no source change in alktty.

- alkcall requirement 0.9.0 -> 0.10.0; lockfile bumped
- version 0.7.0 -> 0.8.0 (0.x ecosystem-coordination minor; raising
  the minimum requirement is breaking)
- changelog entry for 0.8.0

Verification: cargo test (113 default), cargo test --all-features
(137), clippy --all-targets + wasm clippy (-D warnings), fmt --check,
cargo doc, wasm32-unknown-unknown check, fuzz corpus replay (11/11).
2026-10-19 03:39:55 +00:00
5 changed files with 74 additions and 14 deletions

No files matched your search

+5 -6
View File
@@ -320,12 +320,11 @@ release and after touching `src/wire.rs`, `src/negotiation.rs`,
`BiStream`, `BidiStreamSource`, `AuthContext`, `Identity`,
`IdentityProvider`, `AccessControl`, `OwnershipProvider`,
`OwnershipStore`, `InMemoryOwnershipStore`, `HandlerError`,
`StreamError`) come from `alkcall::core`. alkcall is v0.9.x —
`StreamError`) come from `alkcall::core`. alkcall is v0.10.x —
breaking changes are expected at this major-zero stage; this is the
first real consumer, so we find and fix issues upstream rather than
working around them. Pin `alkcall = "0.9.0"` (0.9.0 is the stub-sweep
release: the marked-pub open contract, `channel/control`,
`channel/resources/subscribe`, and `op/register` forward-through are
real implementations; `register_openable*` now refuses `Pub`-typed
specs — alktty's op is `Sub`-typed and unaffected) and bump
working around them. Pin `alkcall = "0.10.1"` (0.10.1 is the
adoption-window ordering fix: the `adopt_channel` install→drain
window is atomic, so a routed chunk can no longer jump ahead of
parked early arrivals or get parked forever past the drain — and bump
deliberately.
+61
View File
@@ -4,6 +4,65 @@ All notable changes to this crate are documented here. The format is
based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and
this crate adheres to [Semantic Versioning](https://semver.org/).
## [0.8.1] - 2026-10-22
The alkcall 0.10.1 adoption: a dependency bump only — no source change
in alktty. alkcall 0.10.1 is the adoption-window ordering fix (review
013, routed from alkgit's wave-2 gate): a chunk routed by the demux
inside the `adopt_channel` install→drain window could be delivered
ahead of earlier-parked early arrivals (inverting the channel's
byte-stream order) and a related chunk could sit parked forever past
the drain. alktty adopts channels only as a consumer-side client
(`TtySession::open_via_channels`, which opens and then adopts the
session channel), so the fix applies to every channels-path session
under multi-process load — the reassembled chunk stream now preserves
wire-arrival order through the adoption window. The surface of the fix
is private to alkcall (`ChannelState` and the `install_locked` path):
no API, wire-format, or documented-cap change; the behavior only
strengthens. The direct-ALPN path does not touch the adopt machinery
at all.
### Changed
- **`alkcall` requirement updated to `0.10.1`; lockfile bumped from
0.10.0 to 0.10.1.** Version-requirement-only (0.10.1 is inside the
`0.10` caret family; alkcall 0.10.1 changed no type alktty touches
— the fix surface is private). alktty's public signatures reference
alkcall types, so downstream crates composing alktty with the fixed
alkcall pick this patch bump up on their next `cargo update`.
## [0.8.0] - 2026-10-19
The alkcall 0.10.0 adoption: a dependency bump only — no source change
in alktty. alkcall 0.10.0 is the gateway ownership seam release
(`GatewayDispatch::with_ownership_provider`, the declared
static-fallback opt-in, and the loud unwired-spine default). All of it
touches surfacing alktty never uses: alktty consults the
`OwnershipProvider` seam directly on its own paths (the direct-ALPN
scope gate and the channels establisher), not through the gateway
dispatch spine, and the wire surface and `OperationContext` shape are
unchanged. The wire format, the direct-ALPN path, the `TtyBackend`
trait, and alktty's public API surface are unchanged.
### Changed
- **BREAKING (ecosystem-coordination) — `alkcall` bumped to 0.10.0.**
alkcall 0.10.0 changed no type that alktty touches: the seam alktty
exercises (`ChannelCore`/`register_openable_with_establisher`/
`OpenEstablisher`/`OpenHandler`/`Establishment`, `ChannelClient`,
`OwnershipProvider`/`OwnershipStore`/`InMemoryOwnershipStore`) is
shape-identical to 0.9.0 — the loud unwired-spine default applies
only to `resource_type`-gated ops served through `GatewayDispatch`,
which alktty never registers against. alktty's public signatures
reference alkcall types, so downstream crates must now unify on
alkcall 0.10.0. Minor bump per the 0.x ecosystem-coordination rule
(raising the minimum requirement is breaking — hence 0.8.0, not a
patch release).
- **`alkcall` requirement updated to `0.10.0`; lockfile bumped from
0.9.0 to 0.10.0.** Verification counts are unchanged from the 0.7.0
baseline (113 default / 137 all-features) — the adoption required no
source change in alktty.
## [0.7.0] - 2026-10-14
The alkcall 0.9.0 adoption: a dependency bump only — no source change
@@ -439,6 +498,8 @@ alknet mono-repo.
the client→backend pump is aborted at session end instead of
lingering until the client disconnects.
[0.8.1]: https://git.alk.dev/alkdev/alktty/releases/tag/v0.8.1
[0.8.0]: https://git.alk.dev/alkdev/alktty/releases/tag/v0.8.0
[0.7.0]: https://git.alk.dev/alkdev/alktty/releases/tag/v0.7.0
[0.6.0]: https://git.alk.dev/alkdev/alktty/releases/tag/v0.6.0
[0.5.0]: https://git.alk.dev/alkdev/alktty/releases/tag/v0.5.0
Generated
+3 -3
View File
@@ -27,9 +27,9 @@ dependencies = [
[[package]]
name = "alkcall"
version = "0.9.0"
version = "0.10.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a3562f1f7b348cdeb3d9181eaf57b0a2fb3f988d4280e8e225dadfd7f763cb84"
checksum = "690d747f42baf385dc22cd120f79d43cf1ea239bc426675e0e1e225b57fc031a"
dependencies = [
"async-trait",
"bytes",
@@ -48,7 +48,7 @@ dependencies = [
[[package]]
name = "alktty"
version = "0.7.0"
version = "0.8.1"
dependencies = [
"alkcall",
"async-trait",
+2 -2
View File
@@ -1,6 +1,6 @@
[package]
name = "alktty"
version = "0.7.0"
version = "0.8.1"
edition = "2021"
rust-version = "1.88"
license = "MIT OR Apache-2.0"
@@ -29,7 +29,7 @@ default = []
local = ["dep:portable-pty", "dep:tokio-util", "tokio/process", "tokio/rt-multi-thread"]
[dependencies]
alkcall = "0.9.0"
alkcall = "0.10.1"
# Minimal, wasm-clean tokio features. `local` adds `process` +
# `rt-multi-thread` (non-wasm). Do NOT use `features = ["full"]` — it
# pulls in `signal`/`fs`/`net` which break `wasm32-unknown-unknown`.
+3 -3
View File
@@ -27,9 +27,9 @@ dependencies = [
[[package]]
name = "alkcall"
version = "0.9.0"
version = "0.10.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a3562f1f7b348cdeb3d9181eaf57b0a2fb3f988d4280e8e225dadfd7f763cb84"
checksum = "690d747f42baf385dc22cd120f79d43cf1ea239bc426675e0e1e225b57fc031a"
dependencies = [
"async-trait",
"bytes",
@@ -48,7 +48,7 @@ dependencies = [
[[package]]
name = "alktty"
version = "0.7.0"
version = "0.8.1"
dependencies = [
"alkcall",
"async-trait",