Skip to content

app-server: harden realtime tests against nondeterminism#17376

Closed
euroelessar wants to merge 1 commit into
mainfrom
codex/test-hardening-realtime-nondeterminism
Closed

app-server: harden realtime tests against nondeterminism#17376
euroelessar wants to merge 1 commit into
mainfrom
codex/test-hardening-realtime-nondeterminism

Conversation

@euroelessar

@euroelessar euroelessar commented Apr 10, 2026

Copy link
Copy Markdown
Collaborator

Summary

Hardens realtime conversation tests by asserting command output semantically instead of relying on brittle aggregate ordering.

Motivation:
Realtime tests were sensitive to deterministic JSON object key order in multipart request bodies and exact shell output in delegated command execution. Neither behavior is part of the contract those tests are intended to validate.

Summary:
Compare the multipart session payload as parsed JSON while preserving the SDP framing checks, and assert delegated shell output contains the expected command result instead of requiring an exact string match.

Testing:
- cargo test -p codex-app-server --test all realtime_webrtc_start_emits_sdp_notification
- cargo test -p codex-app-server --test all webrtc_v1_start_posts_offer_returns_sdp_and_joins_sideband
- cargo test -p codex-app-server --test all webrtc_v2_tool_call_delegated_turn_can_execute_shell_tool
- cargo test -p codex-app-server
euroelessar added a commit that referenced this pull request Apr 14, 2026
## Summary

- Refactors `MessageProcessor` and per-connection session state so
initialized service RPC handling can be moved into spawned tasks in a
follow-up PR.
- Shares the processor and initialized session data with
`Arc`/`OnceLock` instead of mutable borrowed connection state.
- Keeps initialized request handling synchronous in this PR; it does
**not** call `tokio::spawn` for service RPCs yet.

## Testing

- `just fmt`
- `cargo test -p codex-app-server` *(fails on existing hardening gaps
covered by #17375, #17376, and #17377; the pipelined config regression
passed before the unrelated failures)*
- `just fix -p codex-app-server`
@github-actions

Copy link
Copy Markdown
Contributor

Closing this pull request because it has had no updates for more than 14 days. If you plan to continue working on it, feel free to reopen or open a new PR.

@github-actions github-actions Bot closed this Apr 25, 2026
Oreoxp pushed a commit to Oreoxp/codex-cli that referenced this pull request May 7, 2026
## Summary

- Refactors `MessageProcessor` and per-connection session state so
initialized service RPC handling can be moved into spawned tasks in a
follow-up PR.
- Shares the processor and initialized session data with
`Arc`/`OnceLock` instead of mutable borrowed connection state.
- Keeps initialized request handling synchronous in this PR; it does
**not** call `tokio::spawn` for service RPCs yet.

## Testing

- `just fmt`
- `cargo test -p codex-app-server` *(fails on existing hardening gaps
covered by openai#17375, openai#17376, and openai#17377; the pipelined config regression
passed before the unrelated failures)*
- `just fix -p codex-app-server`
AIALRA-0 pushed a commit to AIALRA-0/codex-turn-engine that referenced this pull request Jun 10, 2026
## Summary

- Refactors `MessageProcessor` and per-connection session state so
initialized service RPC handling can be moved into spawned tasks in a
follow-up PR.
- Shares the processor and initialized session data with
`Arc`/`OnceLock` instead of mutable borrowed connection state.
- Keeps initialized request handling synchronous in this PR; it does
**not** call `tokio::spawn` for service RPCs yet.

## Testing

- `just fmt`
- `cargo test -p codex-app-server` *(fails on existing hardening gaps
covered by openai#17375, openai#17376, and openai#17377; the pipelined config regression
passed before the unrelated failures)*
- `just fix -p codex-app-server`
AIALRA-0 pushed a commit to AIALRA-0/codex-turn-engine that referenced this pull request Jun 10, 2026
## Summary

- Refactors `MessageProcessor` and per-connection session state so
initialized service RPC handling can be moved into spawned tasks in a
follow-up PR.
- Shares the processor and initialized session data with
`Arc`/`OnceLock` instead of mutable borrowed connection state.
- Keeps initialized request handling synchronous in this PR; it does
**not** call `tokio::spawn` for service RPCs yet.

## Testing

- `just fmt`
- `cargo test -p codex-app-server` *(fails on existing hardening gaps
covered by openai#17375, openai#17376, and openai#17377; the pipelined config regression
passed before the unrelated failures)*
- `just fix -p codex-app-server`
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant