- new ADR-017: GitSession is a real typed client in v1 (ls_refs/fetch/
push), grounded in the two deployment use cases — the p2p replicator
is the named downstream and needs the client protocol layer; the
thin-wrapper reading is superseded
- fetch client reuses gix-protocol (async-client) over a custom
alkcall gix_transport::client::Transport impl (handshake writes the
ADR-016 request line on the direct path; the channels open-op params
carry it otherwise); push hand-rolled to ADR-013's shapes (gitoxide
has no send-pack client)
- storage-agnostic: packs stream both ways to caller-owned consumers;
no in-session credentials (alkcall transport authenticates); client
sessions carry ADR-009 Limits (client is also internet-facing)
- manifest: gix-protocol/gix-transport gain async-client features
(verified against published tree, MSRV 1.88)
- amend ADR-010 (consumer-half bullet) and ADR-012 §4 (the deferred
gix-protocol call — resolved; rider superseded); backend/transport/
overview/doors wording; review 001 A-5 marked resolved
verification: cargo check (default, --all-features, --no-default-features,
--features sha256), cargo +1.88 check, cargo test, clippy
-D warnings, fmt --check — clean across the matrix