Skip to content

fix: use WAA server for /evaluate instead of fragile socat proxy#115

Merged
abrichr merged 1 commit intomainfrom
fix/restore-stable-baseline
Mar 7, 2026
Merged

fix: use WAA server for /evaluate instead of fragile socat proxy#115
abrichr merged 1 commit intomainfrom
fix/restore-stable-baseline

Conversation

@abrichr
Copy link
Member

@abrichr abrichr commented Mar 7, 2026

Summary

  • The /evaluate endpoint is already available on the WAA Flask server (port 5000), accessed via a single reliable SSH tunnel (local:5001 → VM:5000)
  • The separate evaluate chain (local:5050 → VM:5051 → socat → docker exec → container:5050) was fragile — socat died mid-trial causing 6/7 infrastructure failures in Core4 Trial 1
  • Default --evaluate-url to None so it falls back to --server URL (one port, one tunnel, no socat)
  • Remove _setup_eval_proxy() and port 5050 SSH tunnel from run_dc_eval.py
  • Make done-gate non-fatal when evaluate returns infrastructure error (accept "done" instead of forcing agent to continue pointlessly)

Root cause analysis

The Codex session (commit 9071fca) completed all 40 runs because the socat proxy happened to stay alive. Our trial (HEAD) had 6/7 infra failures because socat died mid-run. The evaluate code itself is identical between versions — the fragile proxy chain was the sole cause.

Port 5050 inside the container is the same Flask app as port 5000 (confirmed: curl http://localhost:5050/probe returns 200). There is no reason to maintain a separate proxy chain.

Test plan

  • All existing tests pass (926 passed, pre-existing failures unchanged)
  • Run Core4 ZS-only trial to validate 0 infrastructure failures
  • Verify 0e763496 scores 1.0 (confirms evaluate works via server_url)

🤖 Generated with Claude Code

The evaluate endpoint (/evaluate) is already available on the WAA Flask
server (port 5000), which is accessed via a single reliable SSH tunnel
(local:5001 → VM:5000). The separate evaluate chain
(local:5050 → VM:5051 → socat → docker exec → container:5050) was
fragile and caused infrastructure failures when socat died mid-trial.

Changes:
- Default --evaluate-url to None (falls back to --server URL)
- Remove socat proxy setup (_setup_eval_proxy) from run_dc_eval.py
- Remove port 5050 from SSH tunnel forwarding
- Make done-gate non-fatal when evaluate returns infrastructure error
- All scripts pass --evaluate-url only when explicitly set

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@abrichr abrichr merged commit 8bd1b43 into main Mar 7, 2026
1 check passed
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