1. contracts.md: add TaskCostSummary to active schemas table
2. MCP: rename colibri_get_task_cost → colibri_get_task
(returns full task with cost, not just cost fields)
3. heartbeat: try_lock() instead of lock().unwrap()
- WouldBlock → warn + defer to next tick
- Poisoned → into_inner() recover (SQLite WAL protects data)
Sam & Hermes