docs: resolve OQ-TN-14 — unix in via local, stdio out (alktty owns process stdio)
Split the last open substrate-placement question: - Unix: ships with the local feature v1 (dial_unix — same halves shape as TCP; the wire enum already carried unix per ADR-001; the params task's schema list includes all three values) - Stdio: OUT of scope — a spawned process's stdin/stdout/stderr IS alktty's pipe mode (LocalTtyBackend + tokio::process + Stdio::piped, alktty tty-local.md): three multiplexed logical streams + the exit-code control chunk (alktty ADR-004) + signal forwarding (REQ-TTY-02). A stdio bridge here would be alktty's runner mode with the terminal stripped out — a strictly worse duplicate that also drops the semantics that matter (a byte tunnel has neither exit codes nor signals). Remote command execution composes via alktty on the same channels substrate. Updated: open-questions.md OQ-TN-14 (resolved), overview.md feature gate + deps + OQ summary, producer.md OQ ref, OQ-TN-10 promotion (#3 split), phase-0-findings + both POC summaries' resolution notes, params task (schema enum includes unix), local-socket-halves task (unix ships, stdio does NOT — with the composition rationale), oq-tn-14-tracker task repurposed (boundary-maintenance: re-opens only if a consumer needs stdio-without-process-semantics — which would need its own ADR, or if the alktty/alktunnels boundary needs sharpening). Verified: taskgraph valid (12 tasks, no cycles)
This commit is contained in:
@@ -150,9 +150,10 @@ OQ-TN numbering. Format per `docs/sdd_process.md`.
|
||||
- **Priority**: low
|
||||
- **Status**: resolved — UDP POC DONE (2026-09-06, 17 tests),
|
||||
reverse-flow POC DONE (2026-09-07, 14 tests; re-validated over
|
||||
alkcall 0.7.0, 16 tests). #3 (unix/stdio) folds into the real
|
||||
crate's test suite (pump agnosticism confirmed twice); #4 (helper
|
||||
spike) resolved by alkcall ADR-050. Findings F-1 (plan payloads
|
||||
alkcall 0.7.0, 16 tests). #3 split (OQ-TN-14): unix ships with the
|
||||
`local` feature; stdio is OUT — alktty's pipe mode owns process
|
||||
stdio (exit codes + signals are tty semantics). #4 (helper spike)
|
||||
resolved by alkcall ADR-050. Findings F-1 (plan payloads
|
||||
`Send + Sync` — documented upstream) and F-2 (UDP codec mandatory)
|
||||
recorded; W1 filed upstream and RESOLVED (CF-005/CF-006).
|
||||
- **Cross-references**: ADR-003, OQ-TN-05, OQ-TN-06
|
||||
@@ -215,13 +216,27 @@ OQ-TN numbering. Format per `docs/sdd_process.md`.
|
||||
### OQ-TN-14: Unix-socket and stdio substrate placement
|
||||
|
||||
- **Origin**: OQ-TN-10 #3 (the cheap un-POC'd item)
|
||||
- **Status**: open
|
||||
- **Priority**: low
|
||||
- **Impacts**: the `local` feature's module surface (whether unix
|
||||
dial/listen helpers ship in v1); not a wire/ADR question (the wire
|
||||
enum already carries `unix` per ADR-001).
|
||||
- **Resolution**: pending — both POCs confirm pump agnosticism; unix
|
||||
is cheap (same halves shape as TCP); stdio bridging is a different
|
||||
lifecycle (no dial — the pipe IS the resource). Fold into the
|
||||
backend module task; unix leans yes for v1, stdio leans deferred.
|
||||
- **Cross-references**: ADR-003, ADR-004, overview.md
|
||||
- **Status**: **resolved 2026-09-07 (split by substrate):**
|
||||
- **Unix: in scope for the `local` feature v1** — same halves shape
|
||||
as TCP (`dial_unix`), cheap, wire enum already carries `unix`
|
||||
(ADR-001). Implemented by `tunnels/local-socket-halves`.
|
||||
- **Stdio: OUT of scope — alktty owns it.** A spawned process's
|
||||
stdin/stdout/stderr IS a terminal session in alktty's model:
|
||||
`LocalTtyBackend`'s pipe mode (`tokio::process::Command` +
|
||||
`Stdio::piped()`, alktty `tty-local.md`) is exactly the stdio
|
||||
case — three multiplexed logical streams + the exit-code
|
||||
control chunk (alktty ADR-004) + signal forwarding (REQ-TTY-02).
|
||||
A "stdio bridge" here would be alktty's runner mode with the
|
||||
terminal stripped out: a strictly worse duplicate that also
|
||||
drops the semantics that matter (exit code, signals — a byte
|
||||
tunnel has neither). Consumers needing to run commands remotely
|
||||
compose: alkcall dial → alktty session (pipe mode) — the two
|
||||
crates are siblings on the same channels substrate, not
|
||||
competitors. (The OQ-TN-10 #3 "cheap item" was scoped before the
|
||||
sibling relationship was this clear.)
|
||||
- **Impacts**: `tunnels/local-socket-halves` (unix yes, stdio no);
|
||||
the wire enum's `unix` value now has a v1 implementation path.
|
||||
- **Cross-references**: ADR-003, ADR-004, overview.md; alktty
|
||||
`tty-local.md` §pipe mode, alktty ADR-004 (exit code on a control
|
||||
chunk)
|
||||
Reference in New Issue
Block a user