Todo 52.1 Benchmark URL Control Characters Plan
Status: done
Goal
Keep malformed benchmark targets inside the configuration error boundary instead of leaking an httpx.InvalidURL during live client construction.
Scope
- Reject ASCII and Unicode characters whose category is control/format, including NUL, CR, LF, and tab.
- Retain the existing HTTP(S), no-userinfo, no-query, and no-fragment requirements.
- Add focused valid/invalid URL regression tests.
Files
- Modify:
src/agent_lab/application/benchmark.py
- Modify:
tests/test_benchmark_config.py
Verification
uv run pytest tests/test_benchmark_config.py tests/test_tool_invocation_comparison.py -q
uv run pytest
git diff --check
Observe / Update
- Control-category characters are rejected before transport construction while printable internationalized URLs remain covered.
- Focused tests passed (
67 passed) and the full suite passed at this checkpoint (472 passed).