tui: remove the voice-input crate feature

## 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/audio cfgs with pure Linux-vs-non-Linux cfgs
- shrink the workspace-manifest verifier allowlist to remove the remaining `codex-tui` exception
This commit is contained in:
Michael Bolin
2026-04-01 12:47:10 -07:00
parent d1043ef90e
commit e464a36dc6
6 changed files with 9 additions and 32 deletions
+1 -4
View File
@@ -121,10 +121,7 @@ impl AppCommand {
Self(Op::RealtimeConversationStart(params))
}
#[cfg_attr(
any(target_os = "linux", not(feature = "voice-input")),
allow(dead_code)
)]
#[cfg_attr(target_os = "linux", allow(dead_code))]
pub(crate) fn realtime_conversation_audio(params: ConversationAudioParams) -> Self {
Self(Op::RealtimeConversationAudio(params))
}
+1 -4
View File
@@ -313,10 +313,7 @@ pub(crate) enum AppEvent {
},
/// Persist the selected realtime microphone or speaker to top-level config.
#[cfg_attr(
any(target_os = "linux", not(feature = "voice-input")),
allow(dead_code)
)]
#[cfg_attr(target_os = "linux", allow(dead_code))]
PersistRealtimeAudioDeviceSelection {
kind: RealtimeAudioDeviceKind,
name: Option<String>,
+1 -4
View File
@@ -63,10 +63,7 @@ impl AppEventSender {
));
}
#[cfg_attr(
any(target_os = "linux", not(feature = "voice-input")),
allow(dead_code)
)]
#[cfg_attr(target_os = "linux", allow(dead_code))]
pub(crate) fn realtime_conversation_audio(&self, params: ConversationAudioParams) {
self.send(AppEvent::CodexOp(
AppCommand::realtime_conversation_audio(params).into_core(),
+4 -4
View File
@@ -79,9 +79,9 @@ 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")]
mod audio_device {
use crate::app_event::RealtimeAudioDeviceKind;
@@ -151,9 +151,9 @@ 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")]
mod voice {
use crate::app_event_sender::AppEventSender;
use codex_core::config::Config;