65 lines
2.0 KiB
Markdown
65 lines
2.0 KiB
Markdown
# 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
|