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.
4.1 KiB
4.1 KiB
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 |
|
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;
ConnectFailedon 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_identityonce-only mechanics recorded; the parked wave-2auth_succeededitem 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_connectionsemantics 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 validateclean- 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.