Skip to content

Gather Claude and Codex into Harness adapters - #441

Merged
JacobStephens2 merged 1 commit into
issue-432from
issue-434
Oct 6, 2026
Merged

JacobStephens2 merged 1 commit into
issue-432from
issue-434

Conversation

@JacobStephens2

@JacobStephens2 JacobStephens2 commented Oct 6, 2026 •

Copy link
Copy Markdown
Owner

Summary

Claude and Codex each own their session protocol behind one Harness adapter. Sessions, Setup and User config use the registered adapters while preserving existing behavior.

src/harness/
├── adapter.rs          # shared interface, prompt delivery and optional hooks
├── claude.rs           # launch, Model check and Setup
├── claude/stream.rs
├── codex.rs            # launch, Model/Effort check and Setup
└── codex/              # catalog and stream

The adapter owns CLI/product names, new-session and Resume arguments, skill loading, skills location, instruction fallback, environment, stop signals, checks and stream parsing. Optional hooks cover instruction-file links and reading final text, usage and outcome after exit. Harness enumeration and choice messages come from adapter registrations.

Closes #434

Evidence

  • Before: issue-432 passed all 55 existing Codex sessions, Harness choice, Setup, User config, progress lines and background work scenario tests.
    After: those same 55 tests pass unchanged through the adapters. Existing Harness, Session, progress, Setup and Codex parser test bodies are unchanged; ticket 1 adds no tests.
  • cargo check --all-targets, cargo fmt --check and cargo clippy --all-targets -- -D warnings pass.
  • UPDATE_PROMPTS=1 cargo test prompts_page: 8 tests pass; regeneration produces no diff in prompts/.
  • cargo test: full suite passes (1086 passed, 0 failed, 0 ignored across 34 test binaries).
  • thirdshift-code-review against issue-432 (d7e4a2c): Standards 0 findings; Spec 0 findings.

Test seams

  • Existing scenario harness: real Runs against fake CLIs, observed through recorded calls, progress lines, logs and Run outcomes.
  • Existing Setup outside-world fake: questions, Model/Effort checks and saved User config.
  • Existing pure parser interfaces: session-stream condensation and Codex catalog parsing/settling.

Unaddressed findings

Standards

None: the review reported no findings.

Spec

None: the review reported no findings.

Merge Danger

Door: two-way

Can be reverted independently.

Blast Radius: Harnesses

Affects Harness selection, Setup and session execution across Runs and Resumes.

Built with codex · gpt-6.1-sol · xhigh

@JacobStephens2
JacobStephens2 merged commit 860f48e into issue-432 Oct 6, 2026
13 checks passed
@JacobStephens2
JacobStephens2 deleted the issue-434 branch October 6, 2026 16:21
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