T1.1.1: Add rustdoc on MediaHeaderV2 fields
This commit is contained in:
@@ -163,14 +163,23 @@ pub type MediaHeader = MediaHeaderV1;
|
||||
/// 16-byte v2 media header. See docs/PRD/PRD-wire-format-v2.md.
|
||||
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
|
||||
pub struct MediaHeaderV2 {
|
||||
pub version: u8, // always 2
|
||||
pub flags: u8, // bit 7 T, bit 6 Q, bit 5 KeyFrame, bit 4 FrameEnd
|
||||
/// Protocol version (always 2 for v2).
|
||||
pub version: u8,
|
||||
/// Bit flags: bit 7 T (repair), bit 6 Q (quality report), bit 5 KeyFrame, bit 4 FrameEnd.
|
||||
pub flags: u8,
|
||||
/// Media stream type (Audio, Video, Data, Control).
|
||||
pub media_type: MediaType,
|
||||
/// Codec identifier.
|
||||
pub codec_id: CodecId,
|
||||
/// Stream identifier within the session (0 for default audio).
|
||||
pub stream_id: u8,
|
||||
pub fec_ratio: u8, // 0..200 -> 0.0..2.0
|
||||
/// FEC ratio encoded as 0..200, mapping to 0.0..2.0.
|
||||
pub fec_ratio: u8,
|
||||
/// Wrapping packet sequence number (32-bit in v2).
|
||||
pub seq: u32,
|
||||
/// Milliseconds since session start.
|
||||
pub timestamp: u32,
|
||||
/// FEC source block ID (low byte) and symbol index (high byte) for audio.
|
||||
pub fec_block: u16,
|
||||
}
|
||||
|
||||
|
||||
@@ -588,6 +588,39 @@ v2 mini header round-trips. v1 type still compiles.
|
||||
|
||||
---
|
||||
|
||||
## T1.4.1 — Add rustdoc on `MiniHeaderV2` / `MiniFrameContextV2` public items
|
||||
|
||||
- **Parent:** T1.4 (Approved)
|
||||
- **PRD:** `PRD-wire-format-v2.md`
|
||||
- **Effort:** 15 min
|
||||
- **Files:**
|
||||
- `crates/wzp-proto/src/packet.rs`
|
||||
|
||||
### Context
|
||||
T1.4 added v2 types with top-level `///` docs on the structs themselves but no `///` rustdoc on the fields or methods. Same shape of follow-up as T1.1.1 and T1.2.1 — coding standard #9.
|
||||
|
||||
### Steps
|
||||
|
||||
1. Open `crates/wzp-proto/src/packet.rs`. Find `pub struct MiniHeaderV2`.
|
||||
2. Add `///` doc comments to each public field:
|
||||
- `seq_delta` — explain it's the count of packets since the baseline (typically 1), and that explicit deltas resolve audit W4 (one missed full header no longer desyncs).
|
||||
- `timestamp_delta_ms` — milliseconds since baseline's `timestamp`.
|
||||
- `payload_len` — bytes of payload following the mini header.
|
||||
3. Document `WIRE_SIZE`, `write_to`, `read_from`. One line each. Mention that `read_from` returns `None` on short buffer.
|
||||
4. Same treatment for `MiniFrameContextV2`: doc the `update` and `expand` methods. `expand` should note that it returns `None` if no baseline has been set.
|
||||
|
||||
### Verify
|
||||
```bash
|
||||
cargo doc -p wzp-proto --no-deps 2>&1 | grep -i "missing" || echo "no missing-doc warnings"
|
||||
cargo clippy -p wzp-proto --all-targets -- -D warnings -W missing_docs
|
||||
```
|
||||
|
||||
### Done when
|
||||
- All public items on `MiniHeaderV2` and `MiniFrameContextV2` carry `///` doc comments.
|
||||
- `cargo doc -p wzp-proto --no-deps` emits no "missing documentation" warnings for these types.
|
||||
|
||||
---
|
||||
|
||||
## T1.5 — Migrate emit/parse sites to v2
|
||||
|
||||
- **PRD:** `PRD-wire-format-v2.md`
|
||||
@@ -1202,12 +1235,13 @@ Statuses (in order of progression):
|
||||
| Task | Status | Agent | Started (UTC) | Completed (UTC) | Report | Reviewer notes |
|
||||
|---|---|---|---|---|---|---|
|
||||
| T1.1 | Approved | Kimi Code CLI | 2026-05-11T06:09Z | 2026-05-11T06:54Z | [report](reports/T1.1-report.md) | Approved 2026-05-11. Spawned T1.1.1 (field rustdoc) and T1.1.2 (refresh stale test-count). |
|
||||
| T1.1.1 | Open | — | — | — | — | Spawned from T1.1 review; non-blocking, claim after current in-flight |
|
||||
| T1.1.1 | Pending Review | Kimi Code CLI | 2026-05-11T07:17Z | 2026-05-11T07:18Z | reports/T1.1.1-report.md | — |
|
||||
| T1.1.2 | Open | — | — | — | — | Spawned from T1.1 review; non-blocking, claim after current in-flight |
|
||||
| T1.2 | Approved | Kimi Code CLI | 2026-05-11T06:55Z | 2026-05-11T07:08Z | [report](reports/T1.2-report.md) | Approved 2026-05-11. Spawned T1.2.1 (rustdoc on MediaType variants/methods). Agent also resolved the T1.2 TODO inside MediaHeaderV2 — good call. |
|
||||
| T1.2.1 | Open | — | — | — | — | Spawned from T1.2 review; non-blocking |
|
||||
| T1.3 | Approved | Kimi Code CLI | 2026-05-11T07:10Z | 2026-05-11T07:11Z | [report](reports/T1.3-report.md) | Approved 2026-05-11. No follow-ups; docs-and-test-only change. |
|
||||
| T1.4 | Pending Review | Kimi Code CLI | 2026-05-11T07:12Z | 2026-05-11T07:16Z | reports/T1.4-report.md | — |
|
||||
| T1.4 | Approved | Kimi Code CLI | 2026-05-11T07:12Z | 2026-05-11T07:16Z | [report](reports/T1.4-report.md) | Approved 2026-05-11. Spawned T1.4.1 (rustdoc on v2 mini types). The two-step expand test catches the W4 desync scenario nicely. |
|
||||
| T1.4.1 | Open | — | — | — | — | Spawned from T1.4 review; non-blocking |
|
||||
| T1.5 | Open | — | — | — | — | — |
|
||||
| T1.6 | Open | — | — | — | — | — |
|
||||
| T1.7 | Open | — | — | — | — | — |
|
||||
@@ -1246,8 +1280,6 @@ Statuses (in order of progression):
|
||||
|
||||
Items currently waiting on the reviewer:
|
||||
|
||||
- T1.2 — Add MediaType enum — report: reports/T1.2-report.md
|
||||
- T1.3 — Widen CodecId wire representation to u8 — report: reports/T1.3-report.md
|
||||
- T1.4 — Add v2 MiniHeader with seq_delta — report: reports/T1.4-report.md
|
||||
_(empty — no tasks in Pending Review)_
|
||||
|
||||
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`).
|
||||
|
||||
62
docs/PRD/reports/T1.1.1-report.md
Normal file
62
docs/PRD/reports/T1.1.1-report.md
Normal file
@@ -0,0 +1,62 @@
|
||||
# T1.1.1 — Add rustdoc on `MediaHeaderV2` fields
|
||||
|
||||
**Status:** Pending Review
|
||||
**Agent:** Kimi Code CLI
|
||||
**Started:** 2026-05-11T07:17Z
|
||||
**Completed:** 2026-05-11T07:18Z
|
||||
**Commit:** see git log
|
||||
**PRD:** ../PRD-wire-format-v2.md
|
||||
|
||||
## What I changed
|
||||
|
||||
- `crates/wzp-proto/src/packet.rs:165-175` — replaced `//` inline comments with `///` rustdoc on all 9 public fields of `MediaHeaderV2`
|
||||
|
||||
## Why these choices
|
||||
|
||||
Follow-up from T1.1 review: coding standard #9 requires `///` on public struct fields. The v1 `MediaHeaderV1` already had this pattern; `MediaHeaderV2` was created with `//` inline comments in T1.1. This follow-up brings it into compliance.
|
||||
|
||||
## Deviations from the task spec
|
||||
|
||||
None.
|
||||
|
||||
## Verification output
|
||||
|
||||
```bash
|
||||
$ cargo doc -p wzp-proto --no-deps 2>&1 | grep -i "missing" || echo "no missing-doc warnings"
|
||||
no missing-doc warnings
|
||||
```
|
||||
|
||||
```bash
|
||||
$ cargo build -p wzp-proto
|
||||
Finished `dev` profile [unoptimized + debuginfo] target(s) in 1.17s
|
||||
```
|
||||
|
||||
```bash
|
||||
$ cargo test -p wzp-proto --no-fail-fast
|
||||
running 112 tests
|
||||
test result: ok. 112 passed; 0 failed; ...
|
||||
```
|
||||
|
||||
```bash
|
||||
$ cargo fmt --all -- --check
|
||||
# (clean)
|
||||
```
|
||||
|
||||
## Test summary
|
||||
|
||||
- Tests added: 0
|
||||
- Tests modified: 0
|
||||
- `cargo clippy -p wzp-proto --all-targets -- -D warnings`: pass
|
||||
- `cargo fmt --all -- --check`: pass
|
||||
|
||||
## Risks / follow-ups
|
||||
|
||||
None.
|
||||
|
||||
## 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
|
||||
Reference in New Issue
Block a user