ci / test (push) Successful in 34s
Router v1: the factory ranks its own next work, dry to start (#169) Astra's seat judges every candidate (kind, value, size); router.py ranks them with the owner's weights per kind (time/router.json), a restless boost and card age. dry posts the table; live queues from the top within the day's money and the heartbeat promotes queued cards in ranked order. Astra reads the last 14 days of its log. Closes #168. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017K4vyY3yUD3GsvoZaAtKkD