Files
alkssh/tasks/implementation/review-wave-3.md
T
glm-5.3-flash d1f755f2d9 docs(tasks): decompose wave 3 — the server mappings
Six implementation tasks + the gate under tasks/implementation/,
chained sequentially (the mappings replace stubs in the same Handler
impl and share the decline-matrix test binaries):

- w3-seam-config: the serve-config's per-feature seam handles
  (alktty backends/ownership/selector; the alkgit quartet/pipeline/
  push-options flag) + the optional sibling deps — wave 3's first
  course correction to the wave-1 config surface
- w3-decline-tracing: the wave-2 gate's booked finding — the
  decline/serve-path tracing vocabulary, landed before the mappings
- w3-git-mapping: the full exec grammar replaces the wave-2 probe +
  the serve_duplex_resolved dispatch + the store-and-take handoff
- w3-tty-session: the translation bridge + the exit-derivation
  contract (rules 1-6, the signum table)
- w3-tunnel-direct: the route-1 bridge (accept only after the fabric
  open succeeds) + set_identity propagation + the capacity-across-
  fabric-window mechanics
- w3-tunnel-listen: the -R listen flow + the forwarded-tcpip data
  leg (the POC-untested leg; the stop-and-book provision)
- review-wave-3: the gate

The plan carries the wave-3 decomposition record with four
interpretations flagged for the gate (the serve-config course
correction, the already-discharged server-side sftp bullet, the
w3-tunnel-listen open mechanics, the booked-items' wave-3 homes).
taskgraph validate: 26 tasks, clean.

Sibling pins verified against crates.io at decomposition time:
alktty 0.8.1 / alkgit 0.1.0 / alktunnels 0.4.1 / alkcall 0.10.1.
2026-10-28 12:32:13 +00:00

4.1 KiB
Raw Blame History

id, name, status, depends_on, scope, risk, impact, level
id name status depends_on scope risk impact level
review-wave-3 Wave 3 gate — the server-mappings review pending
w3-seam-config
w3-decline-tracing
w3-git-mapping
w3-tty-session
w3-tunnel-direct
w3-tunnel-listen
narrow low phase review

Description

The wave-3 review gate. The server mappings are the crate's spine landed in wire-capable form — the wave-4 client direction reuses the same grammar/rows pointed upstream, wave 5 builds the full matrix on these rows, and the published crate freezes this surface. The gate reads the landed mappings against the architecture line by line:

  • mapping.md line-by-line — each of the spine's server rows (session/pty/shell/pipe; git exec; direct-tcpip; direct-streamlocal; forwarded-tcpip; the global listen rows; the request-level table) read against the landed code; the §exit derivation contract rules 1–6 verified in code + rows; the decline matrix green per feature build through the harness (including the unset-field rows — feature on, handle unset).
  • ADR-006 — route-1 bridge (accept only after the fabric open succeeds; ConnectFailed on failure), exec-only git (no subsystem dispatch anywhere in the grammar), parse-only dispatch still structural (no request-less serving), spawn-and-return over the real serving paths (the wave-2 constraint re-pinned over mappings, not stubs).
  • ADR-003 — the per-build matrices; honest advertisement unchanged (an unfeatured type declines; the sftp feature still gates nothing, its rows still decline in every build — OQ-13); x11/auth-agent never-feature rows untouched.
  • Auth.md / identity — the identity ride observable at every seam (alktty/alkgit params; the channels connection for tunnels), set_identity once-only mechanics recorded; the parked wave-2 auth_succeeded item verified discharged; no username anywhere.
  • OQ resolutions in code — OQ-08 (unset-declines on shell/wrapper rows), OQ-09 (env declined), OQ-10 (derivation rules + the PTY-path fidelity limit documented), OQ-11 (runtime-Unix gates compile-everywhere + clean off-Unix declines), OQ-13 (sftp rows unchanged).
  • Bounded resources — no new unbounded shape: the cap across the fabric window (release-on-failure pinned), the listener bookkeeping bounded, the control-row surfaces bounded, the bridge adapters bounded.
  • Tracing — the uniform event vocabulary across all landed serve/decline paths; the safety posture held (no secrets, no username).
  • The smokes — the three real-tool postures recorded honestly (required/conditionally-skipped with reason); nothing silently green.
  • Wave-2 gate's booked items — every one discharged or explicitly re-booked (decline tracing = landed; acceptor vocabulary = landed in w3-tunnel-listen; identity landing = discharged; the inherited-auth-agent-open watch item = unchanged or re-read at any pin touch).
  • Docs honesty — module docs name what each replaced stub now is, what remains wave-4/5 material, and any new upstream notes (portable-pty's PTY-path exit shape; the take_call_connection semantics reading).

Verdict: green (wave 4 decomposes, absorbing corrections) or findings booked (remediation before wave 4 decomposes).

Acceptance Criteria

  • Every ADR/mapping surface above read and confirmed (or corrected with the correction landed)
  • The decline matrix verified per build through the harness; the derivation contract verified against its rules; the spawn-and-return constraint re-pinned over real serving paths
  • Full verification set green (cargo test, --all-features, clippy ×2 -D warnings, fmt, cargo doc --no-deps)
  • taskgraph validate clean
  • Verdict recorded; wave 4 decomposition unblocked or findings booked

References

  • docs/plans/implementation.md (wave 3 section + this gate's role)
  • docs/architecture/mapping.md, auth.md, client.md (the mirror), overview.md, open-questions.md, ADRs 002/003/004/005/006
  • docs/research/poc-3-mapping-bakeoff.md (stages A/C/D — the evidence the contract tests re-land)

Notes

To be filled at gate time.