Skip to content

fix: re-export PartyMasking from the crate root#27

Merged
wavekat-eason merged 1 commit into
mainfrom
fix/reexport-party-masking
Jun 24, 2026
Merged

fix: re-export PartyMasking from the crate root#27
wavekat-eason merged 1 commit into
mainfrom
fix/reexport-party-masking

Conversation

@wavekat-eason

Copy link
Copy Markdown
Contributor

What

PartyMasking was added to the voice module in #25 (0.0.13) and is used on ShareRecordingRequest, ShareStateResponse, and ShareRecordingResponse — but it was never added to the crate-root pub use voice::{…}. Since voice is a private module, the type is unreachable from a consumer.

The practical effect: wavekat-voice can name ShareRecordingRequest but not the PartyMasking value its party_masking field needs, so it can't set the per-share visibility controls at all. Every other share-control type (ShareVisibility, the request/response structs) is already re-exported; PartyMasking was simply missed.

Change

  • Add PartyMasking to the root re-export, alongside the share types it travels with.
  • Add a compile-time reachability test over all four share-control types (PartyMasking, ShareVisibility, ShareRecordingRequest, ShareRecordingResponse) via the crate:: root path, so a future re-export omission fails here rather than in a downstream crate.

Additive only — no API change, no behavior change. On merge, release-plz cuts 0.0.14, which wavekat-voice then pins to (it's currently consuming this fix via a temporary local [patch.crates-io] while wiring up the controls).

Tests

cargo test green; the new share_visibility_types_are_reachable_from_the_crate_root test passes and would fail to compile if any of the four types lost its root re-export. cargo fmt --all -- --check clean.

🤖 Generated with Claude Code

0.0.13 (#25) added `PartyMasking` to the `voice` module and used it on
`ShareRecordingRequest` / `ShareStateResponse` / `ShareRecordingResponse`,
but never added it to the crate-root `pub use voice::{…}`. Since `voice`
is a private module, the type is unreachable from a consumer: `wavekat-voice`
can name `ShareRecordingRequest` but not the `PartyMasking` value its
`party_masking` field needs, so it can't set the per-share visibility
controls at all.

Add `PartyMasking` to the root re-export (every other share type is already
there) and a compile-time reachability test over all four share-control
types so a future omission fails here, not in a downstream crate.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011v4mQUm4uU4kwf6jGfNptW
@wavekat-eason wavekat-eason merged commit 36b1b40 into main Jun 24, 2026
1 check passed
@wavekat-eason wavekat-eason deleted the fix/reexport-party-masking branch June 24, 2026 09:18
@github-actions github-actions Bot mentioned this pull request Jun 24, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant