docs(architecture): record OQ-09 — slim-crate model under discussion

New open question capturing the doors-as-family-infrastructure
direction: alkssh (planned) becomes the ssh door for git, git is a
payload service exposed by downstream doors (alkhttp, alkssh, alknet),
and the crate set may slim to protocol crates + http adapter (kept in
alkgit, Slim-A, or promoted to an alkhttp git feature, Slim-B).

OQ-09 carries the three sub-decisions (alkgit-ssh deletion vs
temporary russh scaffolding; http adapter home; alkgitd consumption
path) and cross-references ADR-006 (now flagged as possibly superseded
before finalization) and OQ-01. Deferred summary table updated.
This commit is contained in:
glm-5.3-flash committed 2026-09-21 04:31:11 +00:00
1 parent 8f73da5d12
commit 74029207e6
3 files changed
+45 -5

No files matched your search

+3 -2
View File
@@ -52,8 +52,9 @@ Note: ADR-001's crate table and ssh.md record the v1 ssh-door decision
All unresolved questions are tracked in [open-questions.md](open-questions.md)
with stable OQ-IDs, priorities, and cross-references. Highest-priority opens:
OQ-01 (http adapter home / composability, blocks ADR-006 finalization),
OQ-06 (metadata store backing), OQ-08 (identity sources per front door).
OQ-09 (slim-crate model: doors as family infrastructure — may supersede
ADR-006/001 shape), OQ-04 (receive-pack validation), OQ-06 (metadata store
backing), OQ-08 (identity sources per front door).
## Document Lifecycle
@@ -1,7 +1,9 @@
# ADR-006: HTTP adapter composition — router factory in alkgit-http
## Status
Proposed (recommendation recorded; final call pending user review — OQ-01)
Proposed (recommendation recorded; final call pending user review — OQ-01,
and now also OQ-09, whose slim-crate model may supersede this ADR's
shape entirely)
## Context
@@ -84,8 +86,8 @@ hatch here is enough.
reconciliation path).
## References
- `docs/research/poc3-findings.md` §"alkhttp fit" (with_extra_routes surface), follow-up 1
- `poc3-findings.md` §"alkhttp fit" (with_extra_routes surface), follow-up 1
- `docs/research/vision.md` §"ALPN as a service", §"Sub-crate shape"
- alkcall ADR-027 (precedent and its limits)
- ADR-001 (crate decomposition), ADR-002 (session boundary), ADR-007/008/009
- http.md, OQ-01, OQ-08
- http.md, OQ-01, OQ-08, OQ-09 (may supersede this ADR)
+37
View File
@@ -23,6 +23,7 @@ when their impacts say so; it records how careful the resolution must be.
| OQ | Status | Blocked on / investigation |
|---|---|---|
| OQ-09 | open (discussion) | slim-crate model: doors as family infrastructure; subsumes OQ-01 if Slim-B |
| OQ-04 | deferred(unclear) | receive-pack walkthrough (capabilities, shallow, thin-pack, CAS timing) + push POC |
| OQ-06 | deferred(scope) | concrete metadata-scale requirements (feeders: OQ-07, OQ-08 outputs) |
| OQ-05 | deferred(scope) | ecosystem need for sha256 |
@@ -176,3 +177,39 @@ when their impacts say so; it records how careful the resolution must be.
- **Resolution path**: one dedicated session once OQ-08's identity model
exists (the ops' shapes depend on what identities/credentials mean).
- **Cross-references**: ADR-007, OQ-08, alkgitd.md §admin API
### OQ-09: Slim-crate model — doors as family infrastructure, git as a payload service
- **Origin**: user session (2026-09-21); ADR-006, ADR-001, ssh.md
- **Status**: open — under discussion, no commitment
- **Door type**: one-way once anything is published (crate deletion and
feature-promotion are wire/registry-visible to dependents)
- **Priority**: high
- **Impacts**: blocks ADR-006 finalization (OQ-01 is subsumed by this if
Slim-B is chosen); reshapes ADR-001 (crate set), ssh.md (delete or
defer), OQ-08 (narrows: git consumes door identity), alkgitd's assembly
surface, and publish sequencing (alkhttp `git` feature requires
alkgit-transport on crates.io first).
- **Context**: the alk family shares doors — alkhttp exists, alkssh is
planned (after alksocks), alknet rewrite coming. Doors wrap alkcall
producer/consumer in their wire protocol; services (git, tty, tunnels,
socks) are payloads doors optionally expose. git should be a service
exposed by downstream consumers rather than owning its own doors:
candidate end-state is protocol crates (core + transport) + http adapter
either in alkgit or as an alkhttp `git` feature (Slim-B) or kept as
alkgit-http (Slim-A). alkssh is where git-over-ssh belongs when it
exists — the temporary russh-in-alkgitd decision (ssh.md) is scaffolding
either way.
- **Sub-decisions**: (1) delete `alkgit-ssh` now and defer git-over-ssh to
alkssh, or keep temporary russh scaffolding in alkgitd until then
(hinges on whether our deployment needs git-over-ssh before alkssh
lands); (2) http adapter home — Slim-A (keep alkgit-http, ADR-006
Option A as written) vs Slim-B (alkhttp 0.6 `git` feature; requires
alkgit published first); (3) if Slim-B, whether `alkgitd` keeps an
internal factory consumption path or consumes the alkhttp feature like
any downstream.
- **Resolution path**: dedicated discussion session; decide the three
sub-decisions, then rewrite ADR-001/006 and ssh.md (a new ADR superseding
the affected parts, per ADR stability rules), and re-scope OQ-08.
- **Cross-references**: OQ-01, OQ-03, OQ-08, ADR-001, ADR-006, ssh.md,
alkgitd.md