Commit Graph
7 Commits
Author SHA1 Message Date
glm-5.3-flash 70815e22a0 docs(research): record POC-3 outcome — phase 0 gates all pass
- pocs.md: POC-3 marked complete/proceed with result summary; sequencing
  status updated
- alk-stack.md: verify item 2 (HTTP smart protocol shape) resolved,
  pointing at poc3-findings.md
2026-09-21 02:45:08 +00:00
glm-5.3-flash 8ef833430e docs(research): POC-3 complete — smart-http through alkhttp verified
- 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
2026-09-21 02:44:25 +00:00
glm-5.3-flash 3e68cb5b68 docs(research): POC-2 complete — server-side pack generation verified
POC-2 (standalone mode, /workspace/alkgit-poc2) confirms the fetch crux:
gitoxide's own generation pipeline streams valid packs to any io::Write,
and real git 2.43 clones/fetches over the POC-1 bridge with fsck --strict
passing on every clone.

- Findings: docs/research/poc2-findings.md (proceed)
- git-protocol.md: pack-generation option list resolved ((b) wins);
  record two-stage closure (commit ancestry -> TreeContents), odb handle
  prerequisites, bundle::write's real role (receive-pack indexing),
  missing-delta-synthesis note
- gitoxide.md: generation pipeline + gix-odb API contract notes
  (Cache !Sync, prevent_pack_unload, missing_objects check)
- pocs.md: POC-2 outcome recorded; POC-3 is the remaining phase-0 gate

Verification: cargo run -- selftest (gen -> bundle roundtrip ->
index-pack --strict -> verify-pack -> unpack-objects --strict -> fsck ->
closure cross-check -> sideband wire decode); 10k-commit/60k-object
fixture: closure 60000==60000, pack 5.33MB in 5.5s at ~11MB extra RSS;
real git clones (loose and packed sources) + tag checkout + incremental
fetch all fsck-clean over git:// through the alkcall Connection/BiStream
path
2026-09-20 18:36:11 +00:00
glm-5.3-flash 665f701133 docs(research): POC-1 complete — pkt-line over alkcall BiStream verified
Full V2 fetch handshake (ls-refs + fetch with done + sideband pack) runs
between real git 2.43 and a Rust listener over the alkcall
Connection -> BiStream -> tokio-util compat -> gix-packetline path.

Verification: git ls-remote, git clone (fsck --strict clean), incremental
git fetch, annotated-tag checkout, in-process duplex selftest. All over
alkcall 0.8 core types; the flagged futures-io risk resolved with a
two-line tokio-util compat adapter.

Findings: docs/research/poc-1-findings.md (deliverable; POC source stays
disposable at /workspace/alkgit-poc1 per the standalone POC mode).

Also records in the research docs:
- git-protocol.md: observed done-path shape (no acknowledgments section),
  git:// first-request framing, advertise-once rule
- gitoxide.md: gix-packetline async stop-delimiter + reset() contract
- alk-stack.md: POC-1 verification item marked resolved
- pocs.md: POC-1 status -> proceed
2026-09-20 12:18:04 +00:00
glm-5.3-flash b9ab5e4c9e docs: two POC modes — branch vs standalone scratch project
- pocs.md: define both modes + per-POC assignment (POC-1/2 standalone at
  /workspace/alkgit-pocN, POC-3 branch mode); findings are the
  deliverable, POC source never merges to main
- sdd_process.md: phase 0 + POC Specialist sections cover both modes
- poc-specialist.md: mode determination up front, standalone environment
  section, 'stay in your lane' principle updated
- AGENTS.md: lifecycle status describes the two modes

Verified: none needed (markdown only)
2026-09-19 17:35:58 +00:00
glm-5.3-flash 4d3ec3cc63 docs: composability boundary + public-clone deployment anchor
- vision: 'ALPN as a service' section (core is front-door-blind; v1
  reduces to storage + ACL + protocol adapters); primary deployment
  target = public anonymous fetch, authenticated push, minimal ACL
- alk-stack: concrete composability boundary (core+transport depend on
  alkcall types only; adapters replaceable)
- AGENTS.md: convention 15 codifies the boundary

Verified: none needed (markdown only)
2026-09-19 17:07:25 +00:00
glm-5.3-flash a3cdef909b feat: workspace skeleton + phase 0 research docs
- Cargo workspace with 5 sub-crates: alkgit-core (storage),
  alkgit-transport (smart protocol), alkgit-http, alkgit-ssh, alkgitd
  (binary); sha1 pinned through the gix stack, sha256 passthrough feature
- docs/research/: vision, gitoxide alignment, alk stack fit, server-side
  protocol inventory, license/reference policy, POC plan
- AGENTS.md: conventions mirroring alkcall (no comments, thiserror, tokio,
  no secrets on wire/at rest, visible-surface=authorized-surface,
  gitoxide-only serving path, bounded resources, registry-resolved repos)

Verified: cargo build, clippy -D warnings, fmt, test, check --all-features
2026-09-19 15:36:21 +00:00