plan(slice-1): adversarial review patches
Verified str0m 0.21 + opus 0.3.1 API surfaces via docs.rs subagents; patched the plan with the real signatures and several design-level fixes. API-surface patches (str0m 0.21, verified): - Global Constraints: full verified API surface documented inline (Rtc::new takes Instant; SdpOffer::from_sdp_string is the entry point, NOT from_str_unchecked; add_local_candidate returns Option<&Candidate>; Writer::write takes rtp_time not media_time; MediaTime has no add(Duration) -> use mt + MediaTime::from(d); payload_params returns impl Iterator; MediaData.data is Arc<[u8]>). - Task 4 accept_offer: rewritten with from_sdp_string + correct error mapping; RtcSessionError::SdpOffer changed to String (collapses parse + accept failures uniformly). - Task 4 loop_driver: MediaTime::add -> + MediaTime::from(Duration); media.data deref coercion documented. Design-level patches: - Task 4: RtcSession::new_for_test -> pub fn new() (single idiomatic constructor, no test/prod split). - Task 4: added accept_offer_transitions_channel_to_connecting test (the transition was claimed but untested in the original plan). - Task 5: dropped reqwest from workspace deps (unused — integration test uses tower::ServiceExt::oneshot); added tower as workspace dep + binary crate dev-dependency. - Task 5: removed duplicate DELETE /v1/sessions route (was incorrectly chained via .delete() on the collection route AND on /v1/sessions/:id — only the latter is correct). - Task 5: clarified pub mod requirement (must be pub because the integration test references modules via absolute paths). - Global Constraints: added task/PR strategy (one commit per task, merged in numeric order, granular history is load-bearing for the learning-codebase goal). Self-review section updated to reflect the patches. Plan is now implementation-ready.
This commit is contained in:
2646
docs/superpowers/plans/2026-06-28-slice-1-webrtc-loopback.md
Normal file
2646
docs/superpowers/plans/2026-06-28-slice-1-webrtc-loopback.md
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user