Follow-up the #559 Talos review asked for (LOW, deferred to the verification PR by its own suggestion): offline mock-server tests pinning the delete surface's error mapping — the 400 active-job refusal must surface as ValueError carrying the server's message (naming the blocking job), the success and not-found paths must map per the documented table, and the wire shapes (DELETE /rl/clusters/{name}, /rl/jobs/{id}, auth header) must be asserted. The live contract e2e proves this against staging; this adds the offline pin so a mapping regression fails in CI without a staging round-trip. Extends tests/test_rl_client.py's existing recorder harness (needs do_DELETE wired).
Follow-up the #559 Talos review asked for (LOW, deferred to the verification PR by its own suggestion): offline mock-server tests pinning the delete surface's error mapping — the 400 active-job refusal must surface as ValueError carrying the server's message (naming the blocking job), the success and not-found paths must map per the documented table, and the wire shapes (DELETE /rl/clusters/{name}, /rl/jobs/{id}, auth header) must be asserted. The live contract e2e proves this against staging; this adds the offline pin so a mapping regression fails in CI without a staging round-trip. Extends tests/test_rl_client.py's existing recorder harness (needs do_DELETE wired).