mirror of
https://github.com/openai/codex.git
synced 2026-06-01 19:02:59 +00:00
[codex] Add response.processed websocket request (#21284)
## Summary - Add a `response.processed` websocket request payload and sender for Responses API websockets. - Send `response.processed` from `try_run_sampling_request` after a response completes, local turn processing succeeds, and the session-owned feature flag is enabled. - Add websocket coverage for both enabled and disabled feature-flag behavior. ## Validation - `just fmt` - `cargo test -p codex-core response_processed` - `cargo test -p codex-api responses_websocket` - `cargo test -p codex-features responses_websocket_response_processed_is_under_development` - `git diff --check` - `just fix -p codex-api -p codex-core -p codex-features` - `git diff --check origin/main...HEAD`
This commit is contained in:
@@ -231,6 +231,8 @@ pub enum Feature {
|
||||
ResponsesWebsockets,
|
||||
/// Legacy rollout flag for Responses API WebSocket transport v2 experiments.
|
||||
ResponsesWebsocketsV2,
|
||||
/// Send `response.processed` over Responses API websockets after a turn response is recorded.
|
||||
ResponsesWebsocketResponseProcessed,
|
||||
/// Enable remote compaction v2 over the normal Responses API.
|
||||
RemoteCompactionV2,
|
||||
/// Enable workspace dependency support.
|
||||
@@ -1139,6 +1141,12 @@ pub const FEATURES: &[FeatureSpec] = &[
|
||||
stage: Stage::Removed,
|
||||
default_enabled: false,
|
||||
},
|
||||
FeatureSpec {
|
||||
id: Feature::ResponsesWebsocketResponseProcessed,
|
||||
key: "responses_websocket_response_processed",
|
||||
stage: Stage::UnderDevelopment,
|
||||
default_enabled: false,
|
||||
},
|
||||
FeatureSpec {
|
||||
id: Feature::RemoteCompactionV2,
|
||||
key: "remote_compaction_v2",
|
||||
|
||||
@@ -129,6 +129,22 @@ fn remote_compaction_v2_is_under_development() {
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn responses_websocket_response_processed_is_under_development() {
|
||||
assert_eq!(
|
||||
Feature::ResponsesWebsocketResponseProcessed.stage(),
|
||||
Stage::UnderDevelopment
|
||||
);
|
||||
assert_eq!(
|
||||
Feature::ResponsesWebsocketResponseProcessed.default_enabled(),
|
||||
false
|
||||
);
|
||||
assert_eq!(
|
||||
feature_for_key("responses_websocket_response_processed"),
|
||||
Some(Feature::ResponsesWebsocketResponseProcessed)
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn builtin_mcp_is_under_development() {
|
||||
assert_eq!(Feature::BuiltInMcp.stage(), Stage::UnderDevelopment);
|
||||
|
||||
Reference in New Issue
Block a user