Files
wz-phone/vault/Reports/T1.5.1-report.md
Siavash Sameni ed8a7ae5aa docs: protocol audit 2026-05-25, update architecture + Obsidian vault
Audit:
- docs/AUDIT-2026-05-25.md: full protocol audit covering 8 findings
  (4 critical, 2 high, 5 medium, 4 low) with code references and fix
  effort estimates
- vault/Audit/Tasks.md: Obsidian Tasks plugin file tracking all audit
  items with priorities, due dates, and per-step checklists

Architecture docs updated for Wire format v2 and Wave 5/6 features:
- ARCHITECTURE.md: adds wzp-video to dependency graph and project
  structure; wire format updated to v2 (16B header, 5B MiniHeader);
  relay concurrency section corrected (DashMap+RwLock is current, not
  a future optimization); test count 571→702; Android note
- PROGRESS.md: Wave 5 and Wave 6 sections appended; test count 372→702;
  current status and open blockers as of 2026-05-25
- ROAD-TO-VIDEO.md: implementation status table inserted (/🟡/🔴/🔲
  per phase); 6-step critical path to first video call
- WZP-SPEC.md: MediaHeader updated to v2 (16B byte-aligned); MiniHeader
  updated to 5B with seq_delta; codec IDs 9-12 added (H.264/H.265/AV1);
  version negotiation section added

Obsidian vault (vault/):
- 114 files across Architecture/, PRDs/, Reports/, Android/,
  Reference/, Audit/ with YAML frontmatter
- 00 - Home.md index note with wiki links
- .obsidian/app.json config

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-25 06:00:17 +04:00

3.2 KiB

tags, type, status
tags type status
report
wzp
report Approved

T1.5.1 — Remove unwrap() from encode_compact

Status: Approved Agent: Kimi Code CLI Started: 2026-05-11T10:09Z Completed: 2026-05-11T10:15Z Commit: 30d26fc PRD: ../PRD-wire-format-v2.md (cleanup)

What I changed

  • crates/wzp-proto/src/packet.rs:256-296 — Restructured encode_compact to use if let Some(base) = ctx.last_header() instead of ctx.last_header().unwrap(). When no baseline exists (fresh context), the code falls through to emit a full frame, establishing the baseline implicitly.
  • crates/wzp-proto/src/packet.rs:2020-2033 — Added encode_compact_fallback_to_full_without_baseline test: constructs a fresh MiniFrameContext, calls encode_compact with frames_since_full = 1, and asserts a full frame is emitted rather than panicking.

Why these choices

The recommended approach from the task spec was to fall back to a full frame when no baseline exists. This makes the invariant explicit in code rather than implicit. Using if let Some(base) eliminates the unwrap entirely while preserving the same behavior for all existing callers (who always start with frames_since_full = 0).

Deviations from the task spec

None.

Verification output

$ cargo test -p wzp-proto encode_compact -- --nocapture
running 5 tests
test packet::tests::encode_compact_fallback_to_full_without_baseline ... ok
test packet::tests::mini_frame_encode_decode_sequence ... ok
test packet::tests::mini_frame_disabled ... ok
test packet::tests::mini_frame_periodic_full ... ok
test packet::tests::mini_frame_quality_report_roundtrip ... ok

test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 108 filtered out
$ cargo clippy -p wzp-proto --all-targets -- -D warnings
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.11s
$ grep -n "\.unwrap()" crates/wzp-proto/src/packet.rs | grep -v "#\[cfg(test)\]" | grep -v "mod tests" | grep -v "^\s*//"
# (no output — no unwraps in non-test code)

Test summary

  • Tests added: 1 (encode_compact_fallback_to_full_without_baseline)
  • Tests modified: 0
  • Workspace test count before: 571 / after: 572
  • 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 — unwrap replaced with if let Some(base), falls through to full-frame on missing baseline
  • Verification output is real — re-ran cargo test -p wzp-proto encode_compact (passes), confirmed only test-code unwraps remain in packet.rs
  • No backward-incompat surprises — public signature of encode_compact unchanged
  • Tests cover the new behavior — encode_compact_fallback_to_full_without_baseline is the right shape
  • Approved

Reviewer notes (2026-05-11)

Approved. Clean fix. The Cargo.lock delta (1054 lines) is patch-version churn from cargo build resolving newer compatible deps (bitflags 2.11.0→2.11.1, aws-lc-rs 1.16.2→1.16.3, etc.) — legitimate per standard #8. Worth disclosing in "What I changed" next time, but it's a real build artifact not a hand edit.