docs(tasks): decompose wave 4 — the client direction
Eight implementation tasks + the gate under tasks/implementation/, folding the wave-3 gate's four booked findings in as dedicated tasks (the gate's own disposition — wave-4 material, not wave-3 backports). Hardening set (server-side, independent of the client chain, scheduled first as cheap remediation): - w4-git-exit-close: booked item 1 — the git row's status-before-close by construction (the seam/shape decided + recorded in-task; the saturated-buffer scenario pinned on the wire) - w4-channel-not-held-rows: booked item 2 — the guard's wire rows on git/tty pipe/shell, per build (test-only) - w4-tty-coverage: booked item 3 — the channel_close-fired cancel path + the Closed/Break no-exit-chunk rows + the write_all no-deadline known-limit record - w4-router-collision: booked item 4 — the ListenRouter token-collision fail-closed pre-check Client chain (sequential logistically — one client Handler impl): - w4-dial: the russh client stack + the connection handle + the client Handler skeleton at fail-closed defaults, over an in-process fake-sshd server double - w4-op-rows: exec/pty, direct-tcpip, git exec over the shared grammar, the sftp client-side decline — the POC-3 §D.3 mechanics - w4-reverse-listen: the -R leg — forward requests + the acceptor registry + late-install (the wave's highest-risk task) - w4-lifecycle: the OQ-12 primitives (cancellable handles, clean disconnect, no reconnect policy) review-wave-4 depends on all eight. The gate's item 5 (upstream asks) stays booked with its owners — no task. Plan wave-4 section carries the decomposition record + four flagged interpretations; wave table status updated. Verification: taskgraph validate ✓ (35 tasks)
This commit is contained in:
1 parent
930d9c1996
commit
dba64d65d3
10 files changed
+820
-3
No files matched your search
@@ -0,0 +1,63 @@
|
||||
---
|
||||
id: w4-tty-coverage
|
||||
name: Wave 4 — tty coverage minors (wave-3 gate booked item 3)
|
||||
status: pending
|
||||
depends_on: [w4-channel-not-held-rows]
|
||||
scope: narrow
|
||||
risk: low
|
||||
impact: component
|
||||
level: implementation
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
Close the wave-3 gate's booked finding item 3
|
||||
(`review-wave-3` §Booked findings — "minors, one ticket's worth"):
|
||||
|
||||
- **The `channel_close`-fired per-channel cancel path is
|
||||
unexercised on the wire** — only the teardown signal is. Land the
|
||||
wire row: a channel closing (client-side close on a served tty
|
||||
row) fires the per-channel cancel path (the cap release + the
|
||||
per-channel state teardown observed — the disjoint release sites
|
||||
the gate verified per row, now wire-witnessed for this path).
|
||||
- **The Closed/Break no-exit-chunk close shape has no wire row** —
|
||||
land the row(s): a session ending via the Closed/Break close shape
|
||||
emits **no exit chunk** (the derivation contract's close-shape
|
||||
class — the absent-report posture pinned, not just the happy
|
||||
paths).
|
||||
- **The tty stdout `write_all` carries no deadline** — record as a
|
||||
**known limit only** (module docs): backpressure is bounded, liveness
|
||||
is covered by the inactivity timeout; no code change (the gate's
|
||||
recorded disposition — a deadline here is a behavior change, not a
|
||||
coverage minor).
|
||||
|
||||
Depends on `w4-channel-not-held-rows` to keep `tests/tty_mapping.rs`
|
||||
single-writer (that task's rows land first; these land into the
|
||||
settled file).
|
||||
|
||||
## Acceptance Criteria
|
||||
|
||||
- [ ] Wire row: the `channel_close`-fired per-channel cancel path
|
||||
(cap release + state teardown observed on the wire)
|
||||
- [ ] Wire row(s): the Closed/Break no-exit-chunk close shape
|
||||
- [ ] The stdout `write_all` no-deadline limit recorded in module
|
||||
docs (no code change)
|
||||
- [ ] `cargo test` (+ per-feature + `--all-features`), clippy ×2
|
||||
(`-D warnings`), fmt, `cargo doc --no-deps` pass
|
||||
|
||||
## References
|
||||
|
||||
- tasks/implementation/review-wave-3.md §Booked findings item 3
|
||||
- docs/architecture/mapping.md §The exit derivation contract (the
|
||||
close-shape classes; the PTY-path rule-5 limit — the docs-posture
|
||||
template), src/tty_map.rs, src/channel_cap.rs (the release sites
|
||||
the rows witness)
|
||||
- tests/tty_mapping.rs (the per-build matrix the rows join)
|
||||
|
||||
## Notes
|
||||
|
||||
> To be filled by implementation agent
|
||||
|
||||
## Summary
|
||||
|
||||
> To be filled on completion
|
||||
Reference in new issue
Block a user