Both requirements.txt and requirements-dev.txt had conflicting
minimum-version specs for pytest-asyncio (>=0.23 vs >=0.24).
pip resolved to latest available which may have breaking changes
(pytest-asyncio 0.25+ changed asyncio_mode behavior).
Pin to exact known-good versions:
- pytest==8.3.4 (last stable 8.3.x)
- pytest-asyncio==0.24.0 (matches asyncio_default_fixture_loop_scope)
- aiosqlite==0.20.0 (pinned for SQLite CI compatibility)
https://claude.ai/code/session_01W1rJthWDkasijTdXCfxVHs
Root cause: pytest/pytest-asyncio/aiosqlite minimum version pins (>=X)
allowed pip to install latest versions that may have breaking changes.
The first CI run (a319feb) passed because it ran before the update;
all subsequent runs failed with exit code 4 (collection error).
Fix: Pin upper bounds on test dependencies:
- pytest>=8.0.0,<8.4.0
- pytest-asyncio>=0.24.0,<0.26.0
- aiosqlite>=0.20.0,<0.21.0
- httpx>=0.28.1,<0.29.0
Also restore architecture_brief.py to CI pipeline (was removed
during debugging, now restored since issue was deps not script).
https://claude.ai/code/session_01W1rJthWDkasijTdXCfxVHs