docs(architecture): ADR-017 — consumer half, GitSession as typed client (review 001 A-5)
- 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
This commit is contained in:
1 parent
41b0894740
commit
82653c31b6
10 files changed
+223
-20
No files matched your search
@@ -27,7 +27,9 @@ blocks nothing in v1). ADR-015 resolved
|
||||
review 001's A-1 (the repo-op gate) with the `manage` grant tier; ADR-016
|
||||
resolved its A-3 (the native session preamble — `{repo, service}`
|
||||
open-op params, the git-daemon request line on the direct path, and the
|
||||
service dimension in the session tuple).
|
||||
service dimension in the session tuple); ADR-017 resolved its A-5 (the
|
||||
consumer half: `GitSession` is a real typed fetch/push client in v1 —
|
||||
the direct-connection primitive for the p2p replicator deployment).
|
||||
|
||||
## Architecture Documents
|
||||
|
||||
@@ -59,6 +61,7 @@ service dimension in the session tuple).
|
||||
| [014](decisions/014-v2-negotiation-ack-loop.md) | V2 negotiation ack loop (no `ready`, wait-for-done stays) | Accepted |
|
||||
| [015](decisions/015-manage-grant-and-op-gate.md) | Manage grant tier + repo-op gate (admin scope OR manage grant) | Accepted |
|
||||
| [016](decisions/016-native-session-preamble.md) | Native session preamble (`{repo, service}` params, request line, service in tuple) | Accepted |
|
||||
| [017](decisions/017-consumer-half-git-session.md) | Consumer half — `GitSession` typed fetch/push client (custom alkcall Transport + gix-protocol, hand-rolled push) | Accepted |
|
||||
|
||||
## Open Questions
|
||||
|
||||
|
||||
Reference in new issue
Block a user