tui: remove the voice-input crate feature (#16467)

## Why

`voice-input` is the only remaining TUI crate feature, but it is also a
default feature and nothing in the workspace selects it explicitly. In
practice it is just acting as a proxy for platform support, which is
better expressed with target-specific dependencies and cfgs.

## What changed

- remove the `voice-input` feature from `codex-tui`
- make `cpal` a normal non-Linux target dependency
- replace the feature-based voice and audio cfgs with pure
Linux-vs-non-Linux cfgs
- shrink the workspace-manifest verifier allowlist to remove the
remaining `codex-tui` exception

## How tested

- `python3 .github/scripts/verify_cargo_workspace_manifests.py`
- `cargo test -p codex-tui`
- `just bazel-lock-check`
- `just argument-comment-lint -p codex-tui`
This commit is contained in:
Michael Bolin
2026-04-01 13:03:59 -07:00
committed by GitHub
parent d1043ef90e
commit 4d4767f797
6 changed files with 11 additions and 32 deletions

View File

@@ -79,9 +79,10 @@ mod app_event;
mod app_event_sender;
mod app_server_session;
mod ascii_animation;
#[cfg(all(not(target_os = "linux"), feature = "voice-input"))]
#[cfg(not(target_os = "linux"))]
mod audio_device;
#[cfg(all(not(target_os = "linux"), not(feature = "voice-input")))]
#[cfg(target_os = "linux")]
#[allow(dead_code)]
mod audio_device {
use crate::app_event::RealtimeAudioDeviceKind;
@@ -151,9 +152,10 @@ pub mod update_action;
mod update_prompt;
mod updates;
mod version;
#[cfg(all(not(target_os = "linux"), feature = "voice-input"))]
#[cfg(not(target_os = "linux"))]
mod voice;
#[cfg(all(not(target_os = "linux"), not(feature = "voice-input")))]
#[cfg(target_os = "linux")]
#[allow(dead_code)]
mod voice {
use crate::app_event_sender::AppEventSender;
use codex_core::config::Config;