Skip to content

a320-bench serve + loader value/domain validation (#19) - #82

Merged
Santisoutoo merged 1 commit into
devfrom
feat/19-bench-serve
Jul 24, 2026
Merged

a320-bench serve + loader value/domain validation (#19)#82
Santisoutoo merged 1 commit into
devfrom
feat/19-bench-serve

Conversation

@Santisoutoo

Copy link
Copy Markdown
Owner

Follow-up on the #19 epic after the real-model smokes.

What

  • a320-bench serve --scenario X --result out.json (bench/a320_bench/serve.py): productizes the path used for the subscription smoke — privileged setup + injection + validity gate in-process, then the benchmark tool surface over stdio for an external MCP client that owns its own agent loop (above all claude -p on a Claude subscription). The harness's success evaluation is written to --result at shutdown. Documented honestly as the demo/dev path: the trajectory is the client's transcript, and the client's system prompt is a confound for model-vs-model baselines, which stay on a320-bench run.
  • Loader hardening (reviewer follow-ups from Scenario schema + APU GEN FAULT scenario + validated loader (#69) #75/litellm provider adapter + a320-bench CLI (#71) #79): (1) every (control, value) pair in world_controls/set_controls/procedure/optional/forbidden is validated by the core's own set() on a throwaway catalog Sim — the valid_values catalog strings are human-facing, BadValueError is the machine truth (D-017 spirit); apu_gen: 7 now fails at load time. (2) set_controls rejects domain=world controls, symmetric to world_controls rejecting cockpit ones.

Tests

56 passed (pytest bench/tests mcp/tests -q): new end-to-end serve test over the real stdio protocol (spawns a320-bench serve as a subprocess, sees the benchmark surface + the failed aircraft, resolves it, and asserts the shutdown verdict JSON), parser coverage, and the two hardening cases.

🤖 Generated with Claude Code

https://claude.ai/code/session_014JCrwRbtN7UA5ijn13vPmm

…tes values and set_controls domain

serve productizes the subscription smoke: privileged setup + injection +
validity gate in-process, then the benchmark tool surface on stdio for a
client that owns its own agent loop (claude -p), with the harness verdict
written to --result on shutdown. Demo/dev path, stated as such: the
trajectory is the client's transcript and its system prompt is a confound
for baselines, which stay on a320-bench run.

Loader hardening (reviewer follow-ups from #75/#79): control values are
validated by the core's own set() on a throwaway catalog Sim (the
valid_values strings are for humans; BadValueError is the machine truth),
and set_controls now rejects domain=world controls symmetrically to
world_controls rejecting cockpit ones.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014JCrwRbtN7UA5ijn13vPmm
@Santisoutoo
Santisoutoo merged commit a5f8745 into dev Jul 24, 2026
4 checks 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