Expand test_run_service.py from a single stub to a full test suite
using an in-memory SQLite database (same pattern as test_blueprint_service.py).
New test classes cover:
- TestCreateRun: verifies field storage, blueprint_id, execution_mode, created_at
- TestGetRun: existing run retrieval and None for unknown ID
- TestListRuns: empty list, full listing, limit and offset pagination
- TestUpdateRun: status changes, auto-setting completed_at on terminal
statuses (completed/failed), not setting it for non-terminal statuses,
storing final_draft/critic_score/iteration_count, and silently ignoring
unknown field keys via the hasattr guard
All tests use isolated fixtures that create and drop tables per test,
ensuring no state leaks between cases.
https://claude.ai/code/session_01MLq4Vjq9XWKPtu3iX3iqL3