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:
1 parent
8f73da5d12
commit
74029207e6
3 files changed
+45
-5
No files matched your search
@@ -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)
|
All unresolved questions are tracked in [open-questions.md](open-questions.md)
|
||||||
with stable OQ-IDs, priorities, and cross-references. Highest-priority opens:
|
with stable OQ-IDs, priorities, and cross-references. Highest-priority opens:
|
||||||
OQ-01 (http adapter home / composability, blocks ADR-006 finalization),
|
OQ-09 (slim-crate model: doors as family infrastructure — may supersede
|
||||||
OQ-06 (metadata store backing), OQ-08 (identity sources per front door).
|
ADR-006/001 shape), OQ-04 (receive-pack validation), OQ-06 (metadata store
|
||||||
|
backing), OQ-08 (identity sources per front door).
|
||||||
|
|
||||||
## Document Lifecycle
|
## Document Lifecycle
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,9 @@
|
|||||||
# ADR-006: HTTP adapter composition — router factory in alkgit-http
|
# ADR-006: HTTP adapter composition — router factory in alkgit-http
|
||||||
|
|
||||||
## Status
|
## 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
|
## Context
|
||||||
|
|
||||||
@@ -84,8 +86,8 @@ hatch here is enough.
|
|||||||
reconciliation path).
|
reconciliation path).
|
||||||
|
|
||||||
## References
|
## 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"
|
- `docs/research/vision.md` §"ALPN as a service", §"Sub-crate shape"
|
||||||
- alkcall ADR-027 (precedent and its limits)
|
- alkcall ADR-027 (precedent and its limits)
|
||||||
- ADR-001 (crate decomposition), ADR-002 (session boundary), ADR-007/008/009
|
- 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)
|
||||||
@@ -23,6 +23,7 @@ when their impacts say so; it records how careful the resolution must be.
|
|||||||
|
|
||||||
| OQ | Status | Blocked on / investigation |
|
| 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-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-06 | deferred(scope) | concrete metadata-scale requirements (feeders: OQ-07, OQ-08 outputs) |
|
||||||
| OQ-05 | deferred(scope) | ecosystem need for sha256 |
|
| 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
|
- **Resolution path**: one dedicated session once OQ-08's identity model
|
||||||
exists (the ops' shapes depend on what identities/credentials mean).
|
exists (the ops' shapes depend on what identities/credentials mean).
|
||||||
- **Cross-references**: ADR-007, OQ-08, alkgitd.md §admin API
|
- **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
|
||||||
Reference in new issue
Block a user