Files
alkgit/docs/architecture
glm-5.3-flash 70694708ee docs(architecture): the wave-10 release gate — green; substrate/lfs flip stable
The substrate release gate (substrate/review-wave-10) verdict, landed:
- OQ-21 outcome confirmed (posture evidenced; build deferral stands
  verbatim; OQ-03's substrate publish-side blocker stays dropped)
- the substrate-side OQ-03 freeze inventory settled and reconciled
  against the crate root's actual re-export list (recorded for
  w10-publish to freeze)
- the release-readiness surface verified (docs, matrix incl. the three
  off-matrix clippies, CHANGELOG/README, dry-run re-run; F-w10-B4/B5
  + N-3 dispositions confirmed)
- all flagged recorded interpretations confirmed (O-g future work,
  the through-store probe stamp, mem_registry removal, testutil home,
  LIVE_GATE stay)
- the test evidence read green; review 006 R-1..R-7 verified absorbed

Inline findings fixed in-session:
- D-1: the architecture README's status-index cells were stale since
  the wave-5 flip; made truthful with the substrate.md/lfs.md
  `stable` flips
- D-2/D-3: two task-record slips (the test-evidence Summary's
  O-b/O-c cross-reference; the placement task's unticked ACs)
- D-4: DEFAULT_SCHEMA + LOCKED_OUT_RETRY_SECS promoted to the
  crate-root re-export list (both module-path-public, never root
  re-exported — the freeze authority byte-exact; additive pre-freeze)

Verification: cargo test (376/186), --all-features 379, the live-pg
harness run 212 passed 0 skips, the fuzz corpus gate 13 targets,
fmt + five clippy passes (-D warnings), cargo doc 0 warnings,
publish dry-run green, taskgraph validate (90 tasks).
2026-10-24 21:54:12 +00:00
..

status, last_updated
status last_updated
reviewed 2026-10-20

alkgit Architecture

Phase 1 (SDD) output for alkgit — the git payload service of the alk family: a pure protocol crate on alkcall channels (the alk/git ALPN), following the alktty/alktunnels template (ADR-010). Phase 0 research lives in docs/research/; every design claim here traces to a POC finding or research doc, or is flagged as an open question.

Current State

Phase 1, substrate re-baseline cycle (2026-10-19; extended by the crate-shape round, 2026-10-20 — ADR-025, the two-crate workspace below). The committed architecture through ADR-018 was written against the pre-substrate storage assumptions (registry-file, gix-on-disk); the family has since landed the crates the design leaned on abstractly (alkstore 0.1, alkblobs 0.2 — both published), and the recomposition round validated the composition with four POCs (POC-L/O/R/X — the ledger and DQ dispositions in docs/research/substrate-recomposition.md). The re-baseline ADR package landed: ADR-019 (storage substrate re-baseline — objects in alkblobs under the git-object derivation family, refs in row-CAS tables, the co-tenant reactive registry, registry-file scrapped, storage_root dropped, reactive halves wired by default), ADR-020 (receive-pack duplex amendments — packless delete-only pushes via the bounded peek; unpack-to-loose ingestion with the pin bridge), ADR-021 (feature graph — substrate-only engines, wire-layer-only build; later superseded by ADR-025), ADR-022 (LFS — media under GitObjectSha256 identity keying, the alkhttp lfs door, wired liveness), ADR-023 (replication v1 — protocol-native via GitSession), ADR-024 (registry schema migrations).

The ADR-018 trait signatures held with zero drift through POC-O and POC-X — the seam survived the re-baseline unchanged; the implementation story beneath it changed (see substrate.md, the new composition spec, and lfs.md). The re-baseline review settled 2026-10-20 (review-003: two criticals — unamended pre-substrate compositions in ADR-013/ADR-018 — and five warnings, all fixed same-day; OQ-19 reclassified deferred(scope); the specs flipped reviewed). Decomposition into implementation tasks resumes wave-based per docs/plans/implementation.md (the alkblobs/ADR-025 rhythm: one wave decomposed at a time, each ending in a review gate; the protocol core's track runs first and its publish anchors the substrate track).

The crate-shape round landed 2026-10-20 (ADR-025): the single-crate granularity from ADR-010 was relitigated once the substrate re-baseline had made the shipped backend a first-class subsystem, and superseded with a two-crate workspace — the protocol core alkgit (wire layer, halves, backend traits, ops — substrate-free by construction) and the shipped composition alkgit-substrate (ADR-019's entirety, engine twins as features). ADR-021's feature graph is superseded (re-partitioned; the placement table is ADR-025's centerpiece); OQ-03's freeze inventory re-partitions per crate — the core's surface can freeze and publish before the composition's.

Architecture Documents

Doc Area Status
overview.md Cross-cutting: crate shape, halves, security invariants stable
transport.md Wire layer: substrates, V2 state machines, upload/receive-pack stable
backend.md Backend traits + record/ref schemas, crate/feature model stable
substrate.md The shipped composition: objects, refs, reactive registry, GC stable
lfs.md LFS: media keying, batch/transfer mapping, liveness stable
doors.md Door mappings: alkhttp git/lfs features, alkssh, native path reviewed (re-baseline + crate-shape)
open-questions.md Centralized OQ tracker —

ADRs

ADR Decision Status
001 Workspace crate decomposition (5 crates) Superseded (ADR-010)
002 Session boundary (identity, repo, stream, limits) Accepted
003 Protocol V2-first with honest capability advertisement Accepted
004 Pack pipeline (data::output gen / data::input ingestion) Accepted
005 Session substrate types (duplex + stateless APIs) Accepted
006 HTTP adapter composition (alkgit-owned router factory) Superseded (ADR-010)
007 ACL runs before any advertisement/ref line Accepted
008 Wire repo names are registry IDs, never paths Accepted (no path exists — ADR-019 §8)
009 Bounded-resources budget model Accepted
010 Pure protocol crate (alktty/alktunnels template) Accepted (granularity superseded: ADR-025)
011 Per-repo authorization (grants in records, policy in core) Accepted
012 Registry backing, write surface, CRUD ops, feature split Accepted (§1–2 superseded by ADR-019)
013 receive-pack state machine (V0-framed push, thin-pack, unpack-first CAS) Accepted (§3/§6 amended: ADR-020)
014 V2 negotiation ack loop (no ready, wait-for-done stays) Accepted
015 Manage grant tier + repo-op gate (admin scope OR manage grant) Accepted
016 Native session preamble ({repo, service} params, request line, service in tuple) Accepted
017 Consumer half — GitSession typed fetch/push client Accepted (construction simplified: ADR-023 §2)
018 Backend trait signatures + StorageError model Accepted (signatures held with zero drift)
019 Storage substrate re-baseline (alkstore + alkblobs; reactive-by-default) Accepted
020 receive-pack duplex amendments (packless deletes; unpack-to-loose) Accepted
021 Feature graph + dependency posture (substrate-only engines) Superseded (ADR-025)
022 LFS (identity-family media keying; alkhttp door; wired liveness) Accepted
023 Replication v1 (protocol-native via GitSession) Accepted
024 Registry schema migrations (construction-run, version-stamped, additive-first) Accepted
025 Two-crate workspace (protocol core + substrate composition; the feature placement rule) Accepted

Open Questions

All unresolved questions are tracked in open-questions.md with stable OQ-IDs, priorities, and cross-references. Remaining: OQ-03 (publish freeze inventory — partially resolved: the core's surface waits on OQ-19's wire-validation sessions; the substrate crate's architecture blocker cleared 2026-10-24 — OQ-21's composition POC resolved with its posture evidenced — and both additionally wait on first-publish timing), OQ-05 (sha256, deferred on ecosystem need), OQ-16 (grant-key identity namespace, deferred on the distributed phase), OQ-19 (implementation-phase wire validations: unborn-HEAD rider + common_haves over the substrate odb — deferred(scope) on the booked wave item, per review-003's reclassification; gated on nothing but implementation), OQ-20 (per-oid LFS reference-row pruning, deferred on row-volume need), OQ-21 (the LFS lock server — build deferred on a client need; its composition-validation POC resolved 2026-10-24, posture evidenced). The substrate re-baseline resolved the recomposition DQ ledger (ADR-019..023); OQ-17 (schema migrations) resolved as ADR-024; OQ-06 (registry-file backing) is superseded by ADR-019.

Document Lifecycle

Status Meaning Transitions
draft Under active development; may change significantly → reviewed when its OQs are resolved or every unresolved OQ is a properly-tracked deferral with a concrete non-circular blocker (the gate review's standard — review 001 finding D-1's remediation cycle and review 002 set this precedent; deferred-on-release-timing OQs like OQ-03 do not hold specs in draft)
reviewed Architecture final; implementation may begin; changes need review → stable when implementation verified
stable Locked; changes require review, may warrant an ADR → deprecated when superseded
deprecated Superseded; kept for reference Removed when no longer referenced