## Summary ## How was it tested? ## Checklist - [ ] `uv run ruff format .` and `uv run ruff check .` pass - [ ] `uv run pytest` passes - [ ] No secrets, API keys, or private/user data added (see [SECURITY.md](../SECURITY.md)) - [ ] Frontend user-facing text has no em-dashes (see [AGENTS.md](../AGENTS.md)) - [ ] Updated docs (AGENTS.md / etc.) if behavior or structure changed