- real git 2.43 clones/fetches/tag-checkouts over http:// through the full alkcall -> alkhttp path (Connection::from_bidi(http/1.1) -> HttpAdapter -> axum custom routes); h2c clone also verified - request bodies stream (measured): BodyDataStream yields one hyper-read chunk per poll_next; dribble probe + git's forced-chunked POST path - pack responses stream under back pressure: bounded mpsc -> Body::from_stream, O(counts) RSS on a 60k-object clone (peak ~8 MB above idle at 5.33 MB pack) - protocol correction for git-protocol.md: http V2 responses end at the flush; the 0002 response-end pkt is synthesized by remote-curl, never on the wire; first POST carries the cached capability dump; flush-only POST (probe_rpc) wants 200 + empty body - POC-3 outcome recorded in pocs.md; alk-stack.md item 2 resolved Verification: cargo test / clippy -D warnings / fmt --check clean
alkgit Research Index
Phase 0 (exploration) research. Feeds phase 1 (architecture).
| Doc | Topic | Status |
|---|---|---|
| vision.md | Vision, guiding principles, non-goals, phase-0 checklist | draft v1 |
| gitoxide.md | gitoxide (gix) capability + version alignment | initial pass complete |
| alk-stack.md | alk stack fit, integration surface, gitea-lesson constraints | initial pass complete |
| git-protocol.md | Server-side git smart protocol inventory (what we own) | initial pass complete |
| reference-policy.md | Licenses, reference projects, reuse policy | complete |
| pocs.md | POC plan (what to validate before architecture commits) | planned |
Key findings so far
- gitoxide covers storage + pkt-line; the server half of the smart protocol is ours to write (gix-protocol/transport are client-side).
- Published gix 0.87.1 == local clone base; pin crates.io versions.
- alkcall
BiStreamis the natural substrate under pkt-line for both ssh and http paths. - The incompatible-license prior art confirms feasibility but contributes nothing; policy in reference-policy.md.
gixwithdefault-features = falserequires an explicit hash feature; workspace pinssha1with asha256passthrough feature everywhere.
Convergence criteria (phase 0 → phase 1)
Phase 0 is done when POC-1..3 have results and a recommended-approach
summary is written here (append below). Then the Architect produces
docs/architecture/ per sdd_process.