Severity: medium | Category: infra | Phase: P2.2
Problem
async def handlers call blocking sqlite directly, serializing concurrent requests behind disk I/O on the event-loop thread.
Evidence
codeframe/ui/routers/tasks_v2.py:237, codeframe/ui/routers/costs_v2.py:298
Acceptance criteria
DB work offloaded via asyncio.to_thread, or handlers declared plain def.
Dependencies
blocked by #732 ([P1.5])
Filed from the SaaS launch-readiness audit. Atomic: one developer, one session. Work order: strictly P0.1 → P3.12 (no forward dependencies).
Severity: medium | Category: infra | Phase: P2.2
Problem
async defhandlers call blocking sqlite directly, serializing concurrent requests behind disk I/O on the event-loop thread.Evidence
codeframe/ui/routers/tasks_v2.py:237,codeframe/ui/routers/costs_v2.py:298Acceptance criteria
DB work offloaded via
asyncio.to_thread, or handlers declared plaindef.Dependencies
blocked by #732 ([P1.5])
Filed from the SaaS launch-readiness audit. Atomic: one developer, one session. Work order: strictly P0.1 → P3.12 (no forward dependencies).