This release establishes DShell as the published protocol-core crate for SSH-compatible sessions over DHTTP/3 WebTransport. The GitHub repository remains genmeta/dssh, while the crates.io package and Rust crate name are now dshell.
Highlights since v0.2.0:
- Rename the public Cargo package and Rust crate from dssh to dshell, including version metadata and release workflow handling for the initial dshell crates.io publication.
- Move DShell transport to WebTransport-only operation by removing the legacy raw SSH3 stream protocol path and standardizing the well-known DShell CONNECT route.
- Add WebTransport conversation and connect helpers, including typed client/server negotiation, peer-version validation, custom connect paths, and control-stream/channel-stream separation.
- Make Conversation own the WebTransport session directly, with typed open/accept construction and shared global request, global notification, and channel helpers.
- Generalize forwarding and session plumbing around typed conversation streams, including local, remote, dynamic/SOCKS5, TCP, and Unix forwarding semantics.
- Rework server-side IPC around receiver-chosen h3x WebTransport FD transfer, replacing the older DShell manage-stream/control-socket machinery.
- Strengthen session close semantics so server output, exit-status/exit-signal notifications, EOF, close, and writer shutdown are drained more reliably before returning.
- Align QUIC/H3 dependencies with the released h3x 0.3.1 and dquic 0.5.1 registry graph used by downstream release builds.
- Add release CI for format, clippy, tests, crates.io dry-run/publish gating, PAM development library setup, and initial-publication-safe registry checks.
- Refresh and expand tests for WebTransport session mocks, conversation fixtures, forwarding behavior, session output ordering, version negotiation, auth parsing, config parsing, PTY/session helpers, and the absence of legacy raw DShell protocol exports.
- Add Apache-2.0 license metadata required by crates.io for the dshell 0.3.0 initial publication.
Publication:
- Published to crates.io as dshell 0.3.0.
- Tag points at the merged main commit that contains the final crates.io metadata.