mirror of
https://github.com/openai/codex.git
synced 2026-11-06 00:30:29 +00:00
Remove core protocol dependency [2/2] (#20325)
## Why With the local model layer and app-server routing in place from PR1, this PR moves the active TUI runtime onto app-server notifications. The affected pieces share the same event flow, so the command surface, session state, bottom-pane prompts, chat rendering, history/status views, and tests move together to keep the stacked branch buildable. This PR also removes the obsolete compatibility surface that is no longer used after the migration. The proposed protocol-boundary verifier layer was dropped from the stack; enforcing that final boundary will be simpler once `codex-tui` no longer needs any `codex_protocol` references. This PR is part 2 of a 2-PR stack: 1. Add TUI-owned replacement models and extract app-server event routing. 2. Move the active TUI flow to app-server notifications and delete obsolete adapter code. ## What changed - Rewired app command and session handling to use app-server request and notification shapes. - Moved approval overlays, request-user-input flows, MCP elicitation, realtime events, and review commands onto the app-server-facing model surface. - Updated chat rendering, history cells, status views, multi-agent UI, replay state, and TUI tests to use app-server notifications plus the local models introduced in PR1. - Deleted `codex-rs/tui/src/app/app_server_adapter.rs` and the superseded `chatwidget/tests/background_events.rs` fixture path. ## Verification - `cargo check -p codex-tui --tests` - Top of stack: `cargo test -p codex-tui`
This commit is contained in:
1 parent
5cc5f12efc
commit
f2bc2f26a9
76 files changed
+5078
-9951
No files matched your search
@@ -1,20 +1,23 @@
|
||||
//! Exercises `ChatWidget` event handling and rendering invariants.
|
||||
//!
|
||||
//! These tests treat the widget as the adapter between `codex_protocol::protocol::EventMsg` inputs and
|
||||
//! the TUI output. Many assertions are snapshot-based so that layout regressions and status/header
|
||||
//! changes show up as stable, reviewable diffs.
|
||||
//! These tests cover both app-server-native inputs and focused widget helpers. Many assertions are
|
||||
//! snapshot-based so that layout regressions and status/header changes show up as stable,
|
||||
//! reviewable diffs.
|
||||
|
||||
pub(super) use super::*;
|
||||
pub(super) use crate::app_command::AppCommand;
|
||||
pub(super) use crate::app_command::AppCommand as Op;
|
||||
pub(super) use crate::app_event::AppEvent;
|
||||
pub(super) use crate::app_event::ExitMode;
|
||||
#[cfg(not(target_os = "linux"))]
|
||||
pub(super) use crate::app_event::RealtimeAudioDeviceKind;
|
||||
pub(super) use crate::app_event_sender::AppEventSender;
|
||||
pub(super) use crate::approval_events::ApplyPatchApprovalRequestEvent;
|
||||
pub(super) use crate::approval_events::ExecApprovalRequestEvent;
|
||||
pub(super) use crate::bottom_pane::LocalImageAttachment;
|
||||
pub(super) use crate::bottom_pane::MentionBinding;
|
||||
pub(super) use crate::bottom_pane::QueuedInputAction;
|
||||
pub(super) use crate::chatwidget::realtime::RealtimeConversationPhase;
|
||||
pub(super) use crate::diff_model::FileChange;
|
||||
pub(super) use crate::history_cell::UserHistoryCell;
|
||||
pub(super) use crate::legacy_core::config::Config;
|
||||
pub(super) use crate::legacy_core::config::ConfigBuilder;
|
||||
@@ -25,6 +28,8 @@ pub(super) use crate::test_backend::VT100Backend;
|
||||
pub(super) use crate::test_support::PathBufExt;
|
||||
pub(super) use crate::test_support::test_path_buf;
|
||||
pub(super) use crate::test_support::test_path_display;
|
||||
pub(super) use crate::token_usage::TokenUsage;
|
||||
pub(super) use crate::token_usage::TokenUsageInfo;
|
||||
pub(super) use crate::tui::FrameRequester;
|
||||
pub(super) use assert_matches::assert_matches;
|
||||
pub(super) use codex_app_server_protocol::AddCreditsNudgeCreditType;
|
||||
@@ -34,16 +39,20 @@ pub(super) use codex_app_server_protocol::AdditionalNetworkPermissions as AppSer
|
||||
pub(super) use codex_app_server_protocol::AdditionalPermissionProfile as AppServerAdditionalPermissionProfile;
|
||||
pub(super) use codex_app_server_protocol::AppSummary;
|
||||
pub(super) use codex_app_server_protocol::AutoReviewDecisionSource as AppServerGuardianApprovalReviewDecisionSource;
|
||||
pub(super) use codex_app_server_protocol::CodexErrorInfo;
|
||||
pub(super) use codex_app_server_protocol::CollabAgentState as AppServerCollabAgentState;
|
||||
pub(super) use codex_app_server_protocol::CollabAgentStatus as AppServerCollabAgentStatus;
|
||||
pub(super) use codex_app_server_protocol::CollabAgentTool as AppServerCollabAgentTool;
|
||||
pub(super) use codex_app_server_protocol::CollabAgentToolCallStatus as AppServerCollabAgentToolCallStatus;
|
||||
pub(super) use codex_app_server_protocol::CommandAction as AppServerCommandAction;
|
||||
pub(super) use codex_app_server_protocol::CommandExecutionRequestApprovalParams as AppServerCommandExecutionRequestApprovalParams;
|
||||
pub(super) use codex_app_server_protocol::CommandExecutionSource as ExecCommandSource;
|
||||
pub(super) use codex_app_server_protocol::CommandExecutionSource as AppServerCommandExecutionSource;
|
||||
pub(super) use codex_app_server_protocol::CommandExecutionStatus as AppServerCommandExecutionStatus;
|
||||
pub(super) use codex_app_server_protocol::ConfigWarningNotification;
|
||||
pub(super) use codex_app_server_protocol::CreditsSnapshot;
|
||||
pub(super) use codex_app_server_protocol::ErrorNotification;
|
||||
pub(super) use codex_app_server_protocol::ExecPolicyAmendment;
|
||||
pub(super) use codex_app_server_protocol::FileUpdateChange;
|
||||
pub(super) use codex_app_server_protocol::GuardianApprovalReview;
|
||||
pub(super) use codex_app_server_protocol::GuardianApprovalReviewAction as AppServerGuardianApprovalReviewAction;
|
||||
@@ -73,6 +82,7 @@ pub(super) use codex_app_server_protocol::McpServerStatusDetail;
|
||||
pub(super) use codex_app_server_protocol::McpServerStatusUpdatedNotification;
|
||||
pub(super) use codex_app_server_protocol::ModelVerification as AppServerModelVerification;
|
||||
pub(super) use codex_app_server_protocol::ModelVerificationNotification;
|
||||
pub(super) use codex_app_server_protocol::NonSteerableTurnKind;
|
||||
pub(super) use codex_app_server_protocol::PatchApplyStatus as AppServerPatchApplyStatus;
|
||||
pub(super) use codex_app_server_protocol::PatchChangeKind;
|
||||
pub(super) use codex_app_server_protocol::PermissionsRequestApprovalParams as AppServerPermissionsRequestApprovalParams;
|
||||
@@ -85,16 +95,26 @@ pub(super) use codex_app_server_protocol::PluginMarketplaceEntry;
|
||||
pub(super) use codex_app_server_protocol::PluginReadResponse;
|
||||
pub(super) use codex_app_server_protocol::PluginSource;
|
||||
pub(super) use codex_app_server_protocol::PluginSummary;
|
||||
pub(super) use codex_app_server_protocol::RateLimitReachedType;
|
||||
pub(super) use codex_app_server_protocol::RateLimitSnapshot;
|
||||
pub(super) use codex_app_server_protocol::RateLimitWindow;
|
||||
pub(super) use codex_app_server_protocol::ReasoningSummaryTextDeltaNotification;
|
||||
pub(super) use codex_app_server_protocol::ReviewTarget;
|
||||
pub(super) use codex_app_server_protocol::ServerNotification;
|
||||
pub(super) use codex_app_server_protocol::SkillSummary;
|
||||
pub(super) use codex_app_server_protocol::ThreadClosedNotification;
|
||||
pub(super) use codex_app_server_protocol::ThreadItem as AppServerThreadItem;
|
||||
pub(super) use codex_app_server_protocol::ThreadRealtimeClosedNotification;
|
||||
pub(super) use codex_app_server_protocol::ThreadRealtimeErrorNotification;
|
||||
pub(super) use codex_app_server_protocol::ToolRequestUserInputOption;
|
||||
pub(super) use codex_app_server_protocol::ToolRequestUserInputParams;
|
||||
pub(super) use codex_app_server_protocol::ToolRequestUserInputQuestion;
|
||||
pub(super) use codex_app_server_protocol::Turn as AppServerTurn;
|
||||
pub(super) use codex_app_server_protocol::TurnCompletedNotification;
|
||||
pub(super) use codex_app_server_protocol::TurnError as AppServerTurnError;
|
||||
pub(super) use codex_app_server_protocol::TurnStartedNotification;
|
||||
pub(super) use codex_app_server_protocol::TurnStatus as AppServerTurnStatus;
|
||||
pub(super) use codex_app_server_protocol::UserInput;
|
||||
pub(super) use codex_app_server_protocol::UserInput as AppServerUserInput;
|
||||
pub(super) use codex_app_server_protocol::WarningNotification;
|
||||
pub(super) use codex_config::AppRequirementToml;
|
||||
@@ -116,16 +136,18 @@ pub(super) use codex_otel::RuntimeMetricsSummary;
|
||||
pub(super) use codex_otel::SessionTelemetry;
|
||||
pub(super) use codex_protocol::ThreadId;
|
||||
pub(super) use codex_protocol::account::PlanType;
|
||||
pub(super) use codex_protocol::approvals::GuardianAssessmentAction;
|
||||
pub(super) use codex_protocol::approvals::GuardianAssessmentDecisionSource;
|
||||
pub(super) use codex_protocol::approvals::GuardianAssessmentEvent;
|
||||
pub(super) use codex_protocol::approvals::GuardianAssessmentStatus;
|
||||
pub(super) use codex_protocol::approvals::GuardianCommandSource;
|
||||
pub(super) use codex_protocol::approvals::GuardianRiskLevel;
|
||||
pub(super) use codex_protocol::approvals::GuardianUserAuthorization;
|
||||
pub(super) use codex_protocol::config_types::CollaborationMode;
|
||||
pub(super) use codex_protocol::config_types::ModeKind;
|
||||
pub(super) use codex_protocol::config_types::Personality;
|
||||
pub(super) use codex_protocol::config_types::ServiceTier;
|
||||
pub(super) use codex_protocol::config_types::Settings;
|
||||
pub(super) use codex_protocol::items::AgentMessageContent;
|
||||
pub(super) use codex_protocol::items::AgentMessageItem;
|
||||
pub(super) use codex_protocol::items::PlanItem;
|
||||
pub(super) use codex_protocol::items::TurnItem;
|
||||
pub(super) use codex_protocol::items::UserMessageItem;
|
||||
pub(super) use codex_protocol::models::FileSystemPermissions;
|
||||
pub(super) use codex_protocol::models::MessagePhase;
|
||||
pub(super) use codex_protocol::models::NetworkPermissions;
|
||||
@@ -139,73 +161,8 @@ pub(super) use codex_protocol::parse_command::ParsedCommand;
|
||||
pub(super) use codex_protocol::plan_tool::PlanItemArg;
|
||||
pub(super) use codex_protocol::plan_tool::StepStatus;
|
||||
pub(super) use codex_protocol::plan_tool::UpdatePlanArgs;
|
||||
pub(super) use codex_protocol::protocol::AgentMessageDeltaEvent;
|
||||
pub(super) use codex_protocol::protocol::AgentMessageEvent;
|
||||
pub(super) use codex_protocol::protocol::AgentReasoningDeltaEvent;
|
||||
pub(super) use codex_protocol::protocol::AgentReasoningEvent;
|
||||
pub(super) use codex_protocol::protocol::AgentStatus;
|
||||
pub(super) use codex_protocol::protocol::ApplyPatchApprovalRequestEvent;
|
||||
pub(super) use codex_protocol::protocol::BackgroundEventEvent;
|
||||
pub(super) use codex_protocol::protocol::CodexErrorInfo;
|
||||
pub(super) use codex_protocol::protocol::CollabAgentSpawnBeginEvent;
|
||||
pub(super) use codex_protocol::protocol::CollabAgentSpawnEndEvent;
|
||||
pub(super) use codex_protocol::protocol::CreditsSnapshot;
|
||||
pub(super) use codex_protocol::protocol::ErrorEvent;
|
||||
pub(super) use codex_protocol::protocol::Event;
|
||||
pub(super) use codex_protocol::protocol::EventMsg;
|
||||
pub(super) use codex_protocol::protocol::ExecApprovalRequestEvent;
|
||||
pub(super) use codex_protocol::protocol::ExecCommandBeginEvent;
|
||||
pub(super) use codex_protocol::protocol::ExecCommandEndEvent;
|
||||
pub(super) use codex_protocol::protocol::ExecCommandSource;
|
||||
pub(super) use codex_protocol::protocol::ExecCommandStatus as CoreExecCommandStatus;
|
||||
pub(super) use codex_protocol::protocol::ExecPolicyAmendment;
|
||||
pub(super) use codex_protocol::protocol::ExitedReviewModeEvent;
|
||||
pub(super) use codex_protocol::protocol::FileChange;
|
||||
pub(super) use codex_protocol::protocol::GuardianAssessmentAction;
|
||||
pub(super) use codex_protocol::protocol::GuardianAssessmentDecisionSource;
|
||||
pub(super) use codex_protocol::protocol::GuardianAssessmentEvent;
|
||||
pub(super) use codex_protocol::protocol::GuardianAssessmentStatus;
|
||||
pub(super) use codex_protocol::protocol::GuardianCommandSource;
|
||||
pub(super) use codex_protocol::protocol::GuardianRiskLevel;
|
||||
pub(super) use codex_protocol::protocol::GuardianUserAuthorization;
|
||||
pub(super) use codex_protocol::protocol::ImageGenerationEndEvent;
|
||||
pub(super) use codex_protocol::protocol::ItemCompletedEvent;
|
||||
pub(super) use codex_protocol::protocol::ModelVerification as CoreModelVerification;
|
||||
pub(super) use codex_protocol::protocol::ModelVerificationEvent;
|
||||
pub(super) use codex_protocol::protocol::NonSteerableTurnKind;
|
||||
pub(super) use codex_protocol::protocol::Op;
|
||||
pub(super) use codex_protocol::protocol::PatchApplyBeginEvent;
|
||||
pub(super) use codex_protocol::protocol::PatchApplyEndEvent;
|
||||
pub(super) use codex_protocol::protocol::PatchApplyStatus as CorePatchApplyStatus;
|
||||
pub(super) use codex_protocol::protocol::RateLimitReachedType;
|
||||
pub(super) use codex_protocol::protocol::RateLimitSnapshot;
|
||||
pub(super) use codex_protocol::protocol::RateLimitWindow;
|
||||
pub(super) use codex_protocol::protocol::RealtimeConversationClosedEvent;
|
||||
pub(super) use codex_protocol::protocol::RealtimeConversationRealtimeEvent;
|
||||
pub(super) use codex_protocol::protocol::RealtimeEvent;
|
||||
pub(super) use codex_protocol::protocol::ReviewRequest;
|
||||
pub(super) use codex_protocol::protocol::ReviewTarget;
|
||||
pub(super) use codex_protocol::protocol::SessionConfiguredEvent;
|
||||
pub(super) use codex_protocol::protocol::SessionSource;
|
||||
pub(super) use codex_protocol::protocol::SkillScope;
|
||||
pub(super) use codex_protocol::protocol::StreamErrorEvent;
|
||||
pub(super) use codex_protocol::protocol::TerminalInteractionEvent;
|
||||
pub(super) use codex_protocol::protocol::ThreadRolledBackEvent;
|
||||
pub(super) use codex_protocol::protocol::TokenCountEvent;
|
||||
pub(super) use codex_protocol::protocol::TokenUsage;
|
||||
pub(super) use codex_protocol::protocol::TokenUsageInfo;
|
||||
pub(super) use codex_protocol::protocol::TurnCompleteEvent;
|
||||
pub(super) use codex_protocol::protocol::TurnStartedEvent;
|
||||
pub(super) use codex_protocol::protocol::UndoCompletedEvent;
|
||||
pub(super) use codex_protocol::protocol::UndoStartedEvent;
|
||||
pub(super) use codex_protocol::protocol::ViewImageToolCallEvent;
|
||||
pub(super) use codex_protocol::protocol::WarningEvent;
|
||||
pub(super) use codex_protocol::request_permissions::RequestPermissionProfile;
|
||||
pub(super) use codex_protocol::request_user_input::RequestUserInputEvent;
|
||||
pub(super) use codex_protocol::request_user_input::RequestUserInputQuestion;
|
||||
pub(super) use codex_protocol::request_user_input::RequestUserInputQuestionOption;
|
||||
pub(super) use codex_protocol::user_input::TextElement;
|
||||
pub(super) use codex_protocol::user_input::UserInput;
|
||||
pub(super) use codex_terminal_detection::Multiplexer;
|
||||
pub(super) use codex_terminal_detection::TerminalInfo;
|
||||
pub(super) use codex_terminal_detection::TerminalName;
|
||||
@@ -264,7 +221,6 @@ macro_rules! assert_chatwidget_snapshot {
|
||||
|
||||
mod app_server;
|
||||
mod approval_requests;
|
||||
mod background_events;
|
||||
mod composer_submission;
|
||||
mod exec_flow;
|
||||
mod goal_menu;
|
||||
|
||||
Reference in new issue
Block a user