Skip to content

[codex] add Rust harness app server#323

Closed
gakonst wants to merge 5 commits into
codex/slackbotv2-session-apifrom
codex/harness-server-rust
Closed

[codex] add Rust harness app server#323
gakonst wants to merge 5 commits into
codex/slackbotv2-session-apifrom
codex/harness-server-rust

Conversation

@gakonst

@gakonst gakonst commented May 31, 2026

Copy link
Copy Markdown
Member

Summary

  • Add a Rust crates/harness-server normalizer/wrapper with harness-server codex|claude-code|amp.
  • Use pinned codex-app-server-protocol types from OpenAI Codex and convert Claude Code/Amp native streaming into Codex App Server V2 events.
  • Add typed backend traits, per-harness modules, JSON-RPC validation, semantic agent-delta validation, and cargo integration tests.
  • Preserve native streaming/steering behavior and select the real Codex app-server binary that supports --listen stdio://.
  • Add the harness-development skill for future harness backend work and differential debugging.
  • Remove the bash harness smoke/compare scripts; real-binary coverage now runs through ignored cargo tests.

Validation

  • cargo fmt --manifest-path crates/harness-server/Cargo.toml
  • cargo test --manifest-path crates/harness-server/Cargo.toml
  • python3 /Users/georgios/.codex/skills/.system/skill-creator/scripts/quick_validate.py .agents/skills/harness-development
  • cargo test --manifest-path crates/harness-server/Cargo.toml real_claude_code_long_streaming_is_anchored_to_native_cli -- --ignored --nocapture
  • cargo test --manifest-path crates/harness-server/Cargo.toml real_amp_long_streaming_is_anchored_to_native_cli -- --ignored --nocapture
  • cargo test --manifest-path crates/harness-server/Cargo.toml real_codex_long_streaming_uses_native_app_server_chunks -- --ignored --nocapture

Streaming Evidence

  • Claude Code native CLI emitted 16 text stream deltas for the 24-line prompt; the wrapper emitted multiple item/agentMessage/delta chunks and the concatenated deltas exactly matched item/completed.item.text.
  • Amp native CLI emitted no text stream deltas and one final assistant message for the same prompt; the wrapper now expands that final assistant text into 17 Codex item/agentMessage/delta chunks, and concatenated deltas exactly match item/completed.item.text.
  • Codex native app-server streamed many small item/agentMessage/delta chunks; the wrapper pass-through preserved many chunks, and concatenated deltas exactly matched the completed item text.

Notes

* wire harness server blocks mode

* feat: wire api-rs harness-server workload
@gakonst

gakonst commented Jun 9, 2026

Copy link
Copy Markdown
Member Author

Closed in favor of the rebuilt branch over PR #344: #463

@gakonst gakonst closed this Jun 9, 2026
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