Risk register: docs/02-architecture.md §22 R-10, open. Not a 1.0 blocker, but the decision is overdue, and the mitigation that actually retires the row is one nobody has taken.
Exposure
D-13.4 pins a forked cpal by commit. Two costs:
- Rebase burden, corrected upward at M11: the diff is 2867 insertions / 144 deletions across 11 files, of which
src/host/wasapi/device.rs (546/130) will conflict on a rebase.
- NFR-SEC-040 reproducibility: this is the tree's first non-registry dependency.
deny.toml carries a narrow named allow-git allowance, and cargo deny check sources gates it (added at M11 — before that, nothing did).
Why this is more tractable than it looks
M11's note materially improves the picture and should not be lost: upstream wants this feature in this shape. cpal issue #1220 lists exclusive mode under extension traits, and PR #843 was self-closed and never reviewed — it must not be cited as a refusal. What the exit lacks is a date and an agreed API, not upstream willingness.
Ask
Open the upstream conversation — an issue or a draft PR against cpal proposing the extension-trait shape — so the fork has a defined end. Until then every rebase is unbounded work, and R-10's own text carries a warning worth repeating: a rebase that compiles and passes CI is not evidence that the Windows audio path still works. Each rebase requires re-running docs/manual-tests/fr-io-020-wasapi-exclusive-mode.md on real hardware.
Risk register:
docs/02-architecture.md§22 R-10, open. Not a 1.0 blocker, but the decision is overdue, and the mitigation that actually retires the row is one nobody has taken.Exposure
D-13.4 pins a forked
cpalby commit. Two costs:src/host/wasapi/device.rs(546/130) will conflict on a rebase.deny.tomlcarries a narrow namedallow-gitallowance, andcargo deny check sourcesgates it (added at M11 — before that, nothing did).Why this is more tractable than it looks
M11's note materially improves the picture and should not be lost: upstream wants this feature in this shape. cpal issue #1220 lists exclusive mode under extension traits, and PR #843 was self-closed and never reviewed — it must not be cited as a refusal. What the exit lacks is a date and an agreed API, not upstream willingness.
Ask
Open the upstream conversation — an issue or a draft PR against
cpalproposing the extension-trait shape — so the fork has a defined end. Until then every rebase is unbounded work, and R-10's own text carries a warning worth repeating: a rebase that compiles and passes CI is not evidence that the Windows audio path still works. Each rebase requires re-runningdocs/manual-tests/fr-io-020-wasapi-exclusive-mode.mdon real hardware.