T2.1: Add SignalMessage::TransportFeedback

This commit is contained in:
Siavash Sameni
2026-05-11 19:06:45 +04:00
parent 0ef1f574ff
commit fe1f9484bd
5 changed files with 148 additions and 2 deletions

View File

@@ -1312,8 +1312,8 @@ Statuses (in order of progression):
| T1.5.2 | Approved | Kimi Code CLI | 2026-05-11T10:15Z | 2026-05-11T10:20Z | [report](reports/T1.5.2-report.md) | Approved. PROTOCOL-AUDIT.md known-debt section present; standard #3 amended; report template updated. |
| T1.6 | Approved | Kimi Code CLI | 2026-05-11T10:20Z | 2026-05-11T11:05Z | [report](reports/T1.6-report.md) | Approved. Clean impl, both sides tested, T1.5 gap-fixes folded in with explicit disclosure — good course-correction from the T1.5 scope-creep review. |
| T1.7 | Approved | Kimi Code CLI | 2026-05-11T11:05Z | 2026-05-11T16:29Z | [report](reports/T1.7-report.md) | Approved. W5 invariant already encoded in `to_bytes()` order; regression test pins it. Guards future encryption wiring. |
| T1.8 | Pending Review | Kimi Code CLI | 2026-05-11T16:41Z | 2026-05-11T16:59Z | [report](reports/T1.8-report.md) | |
| T2.1 | Open | — | — | — | — | — |
| T1.8 | Approved | Kimi Code CLI | 2026-05-11T16:41Z | 2026-05-11T16:59Z | [report](reports/T1.8-report.md) | Approved. Per-stream/per-MediaType windows; AEAD-first then anti-replay; plaintext rollback on detection. W11 resolved. |
| T2.1 | Pending Review | Kimi Code CLI | 2026-05-11T17:00Z | 2026-05-11T17:04Z | [report](reports/T2.1-report.md) | — |
| T2.2 | Open | — | — | — | — | — |
| T2.3 | Open | — | — | — | — | — |
| T2.4 | Open | — | — | — | — | — |
@@ -1348,5 +1348,6 @@ Statuses (in order of progression):
Items currently waiting on the reviewer:
- T1.8 — Per-stream anti-replay window with configurable size — report: reports/T1.8-report.md
- T2.1 — Add `SignalMessage::TransportFeedback` — report: reports/T2.1-report.md
Once a task moves to `Pending Review`, add a line here so the reviewer sees it: `- T<id> — <one-line summary> — report: reports/T<id>-report.md`. The reviewer removes the line when they mark it `Approved` (or moves it back to the agent on `Changes Requested`).

View File

@@ -0,0 +1,64 @@
# T2.1 — Add `SignalMessage::TransportFeedback`
**Status:** Pending Review
**Agent:** Kimi Code CLI
**Started:** 2026-05-11T17:00Z
**Completed:** 2026-05-11T17:04Z
**Commit:** (see git log)
**PRD:** ../PRD-transport-feedback-bwe.md
## What I changed
- `crates/wzp-proto/src/packet.rs` — Added `TransportFeedback` variant to `SignalMessage`:
```rust
TransportFeedback {
#[serde(default)] version: u8,
stream_id: u8,
acked_seqs: Vec<u32>,
nacked_seqs: Vec<u32>,
remb_bps: u32,
recv_time_us: u64,
}
```
- `crates/wzp-proto/Cargo.toml` — Added `bincode = "1"` to `[dev-dependencies]` for forward-compat serialization tests.
## Why these choices
`#[serde(default)]` on `version` ensures old senders that omit the field deserialize cleanly (version = 0). `bincode` is already used elsewhere in the workspace (e.g., `wzp-crypto` tests), so adding it as a dev-dependency carries no supply-chain risk.
## Deviations from the task spec
None.
## Verification output
```bash
$ cargo test -p wzp-proto transport_feedback
running 2 tests
test packet::tests::transport_feedback_roundtrip ... ok
test packet::tests::transport_feedback_default_version ... ok
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 113 filtered out; finished in 0.00s
```
## Test summary
- Tests added: 2
- `transport_feedback_roundtrip` — JSON + bincode serialization/deserialization
- `transport_feedback_default_version` — verifies omitted `version` field defaults to 0
- Tests modified: 0
- `wzp-proto` test count: 115 (was 113 before T2.1)
- `cargo clippy -p wzp-proto --all-targets -- -D warnings`: pass
- `cargo fmt --all -- --check`: pass
## Risks / follow-ups
- No production code consumes `TransportFeedback` yet — T2.2/T2.3 will wire the BWE layer to produce and ingest it.
## Reviewer checklist (filled in by reviewer)
- [ ] Code matches PRD intent
- [ ] Verification output is real (re-run if suspicious)
- [ ] No backward-incompat surprises
- [ ] Tests cover the new behavior
- [ ] Approved