mirror of
https://github.com/openai/codex.git
synced 2026-09-03 14:59:03 +00:00
## Why Code mode wall time should measure the host operation itself, without including client-side response delays or idle time between requests. ## What changed - Measure each execute, wait, and terminate request in the code mode host. - Carry the duration through the stdio and gRPC protocols and use it for model-visible wall time. - Emit a structured `codex.code_mode.host_timing` event correlated with the conversation, turn, tool call, and cell. ## Testing - Cover successful and failed execution timing, delayed response reads, repeated waits, termination, and missing cells across stdio and gRPC. - Verify timing survives protocol serialization and is reflected in app-server model output and structured telemetry. GitOrigin-RevId: d24af30c3fc5820521b4beba1f9970714dad6482
43 lines
1.3 KiB
Rust
43 lines
1.3 KiB
Rust
use codex_code_mode_runtime::ExecuteRequest;
|
|
use codex_code_mode_runtime::InProcessCodeModeSession;
|
|
use codex_code_mode_runtime::RuntimeResponse;
|
|
use codex_code_mode_runtime::V8JitMode;
|
|
use codex_code_mode_runtime::initialize_v8;
|
|
use pretty_assertions::assert_eq;
|
|
|
|
#[tokio::test]
|
|
async fn code_mode_runs_with_jit_disabled() {
|
|
initialize_v8(V8JitMode::Disabled).expect("initialize V8 without JIT");
|
|
|
|
let service = InProcessCodeModeSession::new();
|
|
let started = service
|
|
.execute(ExecuteRequest {
|
|
tool_call_id: "call_1".to_string(),
|
|
enabled_tools: Vec::new(),
|
|
source: "21 * 2;".to_string(),
|
|
yield_time_ms: None,
|
|
max_output_tokens: None,
|
|
})
|
|
.await
|
|
.expect("start code-mode cell");
|
|
let cell_id = started.cell_id.clone();
|
|
let response = started
|
|
.initial_response()
|
|
.await
|
|
.expect("execute code-mode cell");
|
|
|
|
assert_eq!(
|
|
response,
|
|
RuntimeResponse::Result {
|
|
code_mode_host_duration: None,
|
|
cell_id,
|
|
content_items: Vec::new(),
|
|
error_text: None,
|
|
}
|
|
);
|
|
assert_eq!(
|
|
initialize_v8(V8JitMode::Enabled),
|
|
Err("V8 was already initialized with JIT disabled".to_string())
|
|
);
|
|
}
|