From 9ed3e8c83dc7fe9f46e138789bd34347f5daade6 Mon Sep 17 00:00:00 2001 From: "glm-5.3-flash" Date: Wed, 14 Oct 2026 05:33:44 +0000 Subject: [PATCH] =?UTF-8?q?release:=20v0.2.0=20=E2=80=94=20the=20dependenc?= =?UTF-8?q?y-major=20(alkcall=200.9.0=20/=20alktunnels=200.3.0)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Cargo.toml: alkcall 0.8.1 -> 0.9.0 (crates.io, the stub-sweep release) and alktunnels 0.2.1 -> 0.3.0 (its dependency-major ride); 0.1.0 -> 0.2.0 (semver-incompatible dep bumps + public alkcall re-exports -> minor, matching the alktunnels 0.2.1 -> 0.3.0 ride) - fuzz/shared/Cargo.toml: alkcall 0.9.0 (one alkcall version across the path graph) - No code change: zero contact with the 0.9.0 breaking surface (no marked-pub registration, no control-handle subscription, no resource enumerator use, no generic op/register announcements; Establishment::default() is the only Establishment contact, in the session gate) - CHANGELOG: 0.2.0 section + compare links - README: the 0.2.0 note - docs/architecture/overview.md: dep tree + feature table alkcall 0.9.0 / alktunnels 0.3.0 - AGENTS.md: alkcall refs — v0.8.x/0.8.0 pin -> v0.9.x/0.9.0 Verification: cargo test (145 default / 171 all-features), fuzz/shared corpus replay (3/3), clippy --all-targets -D warnings (native + wasm32-unknown-unknown), fmt --check, wasm32 check, cargo doc, and cargo publish --dry-run --allow-dirty all green --- AGENTS.md | 6 +++--- CHANGELOG.md | 34 +++++++++++++++++++++++++++++++++- Cargo.toml | 20 +++++++++++--------- README.md | 8 ++++++++ docs/architecture/overview.md | 6 +++--- fuzz/shared/Cargo.toml | 2 +- 6 files changed, 59 insertions(+), 17 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index b05a1b1..06824c9 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -179,9 +179,9 @@ implementation agents. `Identity`, `IdentityProvider`, `AccessControl`, `OwnershipProvider`, `HandlerError`, `StreamError` come from `alkcall::core`. Do not vendor copies into this crate. alkcall is - v0.8.x — breaking changes are expected at this major-zero stage; + v0.9.x — breaking changes are expected at this major-zero stage; this is an early consumer, so we find and fix issues upstream - rather than working around them. Pin `alkcall = "0.8.0"` and bump + rather than working around them. Pin `alkcall = "0.9.0"` and bump deliberately. The establishment surface (alkcall ADR-049 + amendments) is load-bearing for this crate: SOCKS5 session opens use `register_openable_with_establisher` so a refused/auth-failed @@ -312,7 +312,7 @@ dependency-graph failure is expected. producer/consumer protocol crate on alkcall channels; the backend inversion point, wasm-clean default crate, and feature-gated local backend precedents. - - **alkcall** — `/workspace/@alkdev/alkcall` (v0.8.0, crates.io). The + - **alkcall** — `/workspace/@alkdev/alkcall` (v0.9.x, crates.io). The substrate: call protocol + channels multiplexing. This crate consumes `alkcall::core` types and the channels `ChannelCore`/`ChannelClient`/`register_openable_with_establisher` diff --git a/CHANGELOG.md b/CHANGELOG.md index adeb3aa..2e38c12 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,37 @@ this crate adheres to [Semantic Versioning](https://semver.org/). ## [Unreleased] +## [0.2.0] - 2026-10-14 + +The dependency-major release: the alkcall substrate bumped 0.8.1 → +0.9.0 (the stub-sweep release) and the alktunnels sibling bumped +0.2.1 → 0.3.0. No alksocks API change, no wire change; no code +contact with the 0.9.0 breaking surface at all (compile + suite green +unchanged), which is why this is a minor bump rather than a patch: +the semver-incompatible dependency bumps plus this crate's public +re-exports of alkcall types make it semver-visible to downstream +consumers (matching the alktunnels 0.2.1 → 0.3.0 ride). + +### Changed + +- **alkcall 0.8.1 → 0.9.0** (crates.io). The stub-sweep release: the + marked-pub open contract (S-01), `channel/control` (S-02), + `channel/resources/subscribe` (S-03), and `op/register` + forward-through (S-04) replace the four always-failing stubs. None + of the four stubs were on this crate's paths (no marked-pub + registration, no control-handle subscription, no resource + enumerator use, no generic `op/register` announcements). The 0.9.0 + breaking list (`ManagerError::InvalidAdopt` additive, + `RelayError::PubTypedOpen` removal, the + `register_imported`/`register_imported_all` return change, + `Establishment` dropping its `Debug` derive) is untouched by this + crate's API use — `Establishment::default()` is the only + `Establishment` contact, in the session gate. 145 default / 171 + all-features tests pass; wasm-clean verified. +- **alktunnels 0.2.1 → 0.3.0** (the dependency-major ride on alkcall + 0.9.0). No alktunnels API/wire change; the composed providers see + none of it. + ## [0.1.0] - 2026-09-27 The initial release: SOCKS5 (RFC 1928) as a produced resource on @@ -111,5 +142,6 @@ campaigns clean, no crate bugs. [`AssociateSession`]: https://docs.rs/alksocks/latest/alksocks/consumer/struct.AssociateSession.html [`BindSession`]: https://docs.rs/alksocks/latest/alksocks/consumer/struct.BindSession.html -[Unreleased]: https://git.alk.dev/alkdev/alksocks/compare/v0.1.0...HEAD +[Unreleased]: https://git.alk.dev/alkdev/alksocks/compare/v0.2.0...HEAD +[0.2.0]: https://git.alk.dev/alkdev/alksocks/compare/v0.1.0...v0.2.0 [0.1.0]: https://git.alk.dev/alkdev/alksocks/releases/tag/v0.1.0 \ No newline at end of file diff --git a/Cargo.toml b/Cargo.toml index 1c66aaa..bcd50ab 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "alksocks" -version = "0.1.0" +version = "0.2.0" edition = "2021" rust-version = "1.88" license = "MIT OR Apache-2.0" @@ -28,10 +28,12 @@ composed = ["dep:alktunnels"] [dependencies] # The substrate (convention 11): pinned, bump deliberately, never -# transitively. 0.8.1: the duplicate-adopt/open fix (the alkcall 0.8.1 -# fuzz finding — the consumer sessions' open/adopt paths are exposed to -# the replayed-open-op scenario its changelog names). -alkcall = "0.8.1" +# transitively. 0.9.0: the stub-sweep release (the marked-pub open +# contract, channel/control, channel/resources/subscribe, op/register +# forward-through — none on this crate's paths; zero code contact with +# the breaking surface, this crate's only Establishment use is +# `Establishment::default()` in the session gate). +alkcall = "0.9.0" tokio = { version = "1", default-features = false, features = ["rt", "sync", "io-util", "macros", "time"] } # The fork's declared logging seam (rfc1928.md: upstream `log` calls # were dropped or re-pointed here); no source file references it yet — @@ -46,9 +48,9 @@ futures = { version = "0.3", default-features = false, features = ["std"] } # The sibling crate (the composed egress's direct-op vehicle — ADR-008/ # ADR-009): rides `composed` alone. Pinned; bump deliberately # (convention 11's deliberate-bump rule applies to siblings too). -# 0.2.1: the fuzzing graduation (its wave-1/wave-2 targets + the -# alkcall 0.8.1 bump), bug-fix release, no API/wire change. -alktunnels = { version = "0.2.1", optional = true } +# 0.3.0: the dependency-major (the alkcall 0.9.0 bump), bug-fix ride, +# no alktunnels API/wire change. +alktunnels = { version = "0.3.0", optional = true } [dev-dependencies] tokio = { version = "1", features = ["full", "test-util", "macros"] } @@ -56,4 +58,4 @@ tracing-subscriber = { version = "0.3", features = ["env-filter"] } # The composed suite's topology (the alktunnels direct-op producer) — # dev-only: the test binary gates itself on the `composed` feature # (`#![cfg(feature = "composed")]`), the dev-dep keeps it compiling. -alktunnels = "0.2.1" +alktunnels = "0.3.0" diff --git a/README.md b/README.md index 1177463..1e3e51b 100644 --- a/README.md +++ b/README.md @@ -226,6 +226,14 @@ and the RFC 1928 handshake state machine. Wire-stable surface: the `alk/socks5` ALPN, the `channels/socks5/sub` open op with `{}` params, and the two scope constants — all pinned by ADRs 001–014. +0.2.0 rides the alkcall bump 0.8.1 → 0.9.0 (the stub-sweep release — +the four registered-but-always-failing stubs became real +implementations; none were on this crate's paths) and the alktunnels +bump 0.2.1 → 0.3.0. No alksocks API change, no wire change, zero code +contact with the 0.9.0 breaking surface; minor rather than patch +because the semver-incompatible dependency bumps + this crate's +alkcall type re-exports make it semver-visible downstream. + ## Verification ```bash diff --git a/docs/architecture/overview.md b/docs/architecture/overview.md index b0b95ea..7f40b32 100644 --- a/docs/architecture/overview.md +++ b/docs/architecture/overview.md @@ -120,7 +120,7 @@ protocol layer; crate-level vocabulary is producer/consumer. ``` alksocks (default — wasm-clean) -├── alkcall 0.8.1 (core types: Connection, ProtocolHandler, BiStream, +├── alkcall 0.9.0 (core types: Connection, ProtocolHandler, BiStream, │ AuthContext, Identity, AccessControl, OwnershipProvider; │ channels: ChannelCore/ChannelClient, │ register_openable_with_establisher, pump_bidi, @@ -135,7 +135,7 @@ alksocks (local feature) — non-wasm by design the first-party local backends + front doors alksocks (composed feature) -└── adds: alktunnels 0.2.1 (the direct op egress; the bind-first +└── adds: alktunnels 0.3.0 (the direct op egress; the bind-first listen accept; ADR-008's composed providers) — its default crate is wasm-clean; the composed providers use only the ungated channels surface (verify with the wasm check) @@ -156,7 +156,7 @@ differential-testing behavioral reference. |---------|----------|------| | *(default)* | the RFC 1928 core (`src/rfc1928/`, ADR-013 — codecs, typestate), wire codec, open-op spec, the three seams' traits/types, producer + consumer session types — protocol only; zero kernel-net code, wasm-clean by construction | yes | | `local` | the crate's first-party local backends: TCP dial, UDP egress socket, BIND `TcpListener` accept, the front doors (consumer + producer local shapes); brings `tokio/net` + `socket2` into the graph | no (build error on wasm, the alktty posture) | -| `composed` | the composed providers over alktunnels 0.2.1: direct-op egress (lazy destination→tunnel table), bind-first listen accept — adds the alktunnels dep | yes (alktunnels' default crate is wasm-clean; the composed providers use only its ungated channels surface — verify with the wasm check at implementation) | +| `composed` | the composed providers over alktunnels 0.3.0: direct-op egress (lazy destination→tunnel table), bind-first listen accept — adds the alktunnels dep | yes (alktunnels' default crate is wasm-clean; the composed providers use only its ungated channels surface — verify with the wasm check at implementation) | ## Module Map diff --git a/fuzz/shared/Cargo.toml b/fuzz/shared/Cargo.toml index 2dafecc..ff11899 100644 --- a/fuzz/shared/Cargo.toml +++ b/fuzz/shared/Cargo.toml @@ -6,7 +6,7 @@ edition = "2021" [dependencies] alksocks = { path = "../.." } -alkcall = "0.8.1" +alkcall = "0.9.0" serde_json = "1" bytes = "1" tokio = { version = "1", features = ["rt", "io-util", "macros"], default-features = false }