mirror of
https://github.com/openai/codex.git
synced 2026-05-15 08:42:34 +00:00
## Why App-server request handling had a lot of repeated JSON-RPC error construction and one-off `send_error`/`return` branches. This made small handlers noisy and pushed error response details into leaf code that otherwise only needed to validate input or call the underlying API. ## What Changed - Added shared JSON-RPC error constructors in `codex-rs/app-server/src/error_code.rs`. - Lifted straightforward request result emission into `codex-rs/app-server/src/message_processor.rs` so response/error dispatch happens at the request boundary. - Reused the result helpers across command exec, config, filesystem, device-key, external-agent config, fs-watch, and outgoing-message paths. - Removed leaf wrapper handlers where the method body was only forwarding to a response helper. - Returned request validation errors upward in the simple cases instead of sending an error locally and immediately returning. ## Verification - `cargo test -p codex-app-server --lib command_exec::tests` - `cargo test -p codex-app-server --lib outgoing_message::tests` - `cargo test -p codex-app-server --lib in_process::tests` - `cargo test -p codex-app-server --test all v2::fs` - `cargo test -p codex-app-server --test all v2::config_rpc` - `cargo test -p codex-app-server --test all v2::external_agent_config` - `cargo test -p codex-app-server --test all v2::initialize` - `just fix -p codex-app-server` - `git diff --check` Note: full `cargo test -p codex-app-server` was attempted and stopped in `message_processor::tracing_tests::turn_start_jsonrpc_span_parents_core_turn_spans` with a stack overflow after unrelated tests had already passed.
28 lines
885 B
Rust
28 lines
885 B
Rust
use codex_app_server_protocol::JSONRPCErrorError;
|
|
|
|
pub(crate) const INVALID_REQUEST_ERROR_CODE: i64 = -32600;
|
|
pub const INVALID_PARAMS_ERROR_CODE: i64 = -32602;
|
|
pub(crate) const INTERNAL_ERROR_CODE: i64 = -32603;
|
|
pub(crate) const OVERLOADED_ERROR_CODE: i64 = -32001;
|
|
pub const INPUT_TOO_LARGE_ERROR_CODE: &str = "input_too_large";
|
|
|
|
pub(crate) fn invalid_request(message: impl Into<String>) -> JSONRPCErrorError {
|
|
error(INVALID_REQUEST_ERROR_CODE, message)
|
|
}
|
|
|
|
pub(crate) fn invalid_params(message: impl Into<String>) -> JSONRPCErrorError {
|
|
error(INVALID_PARAMS_ERROR_CODE, message)
|
|
}
|
|
|
|
pub(crate) fn internal_error(message: impl Into<String>) -> JSONRPCErrorError {
|
|
error(INTERNAL_ERROR_CODE, message)
|
|
}
|
|
|
|
fn error(code: i64, message: impl Into<String>) -> JSONRPCErrorError {
|
|
JSONRPCErrorError {
|
|
code,
|
|
message: message.into(),
|
|
data: None,
|
|
}
|
|
}
|