Router: rank teahubxyz/teahub's cards too (shown, not queued, until a worker can build there) #173

Closed
opened 2026-10-19 00:59:52 +00:00 by teahubxyz · 3 comments
Owner

Part of #72. Follows #168. New functionality for the platform itself lives in the spine (teahubxyz/teahub: Tea MCP, the Pages server, the Gitea look). The router only sees Time's own repo, so that work never competes.

Changes (astra.py, router.py):

  • Astra also reads the open issues of TIME_SPINE (default teahubxyz/teahub) through the same API. Every one with a DONE: line becomes a candidate with key teahub#N, where N is its number there.
  • In the table, those rows are marked "spine: not queued (Time builds in this repo only)". They are never labelled from here. Their value tells the owner or the CEO what the spine needs next.
  • Gitea answers a filter on an unknown label with everything, so the spine's issues get the same label check tm.issues uses.
  • Tests: a spine card with a DONE: line is ranked and never queued; one without a DONE: line is skipped; a read failure on the spine is a log line, not a failed tick.

DONE: PR open with the code above, python3 .github/time/test_time.py green including the new checks, CI green

Part of #72. Follows #168. New functionality for the platform itself lives in the spine (`teahubxyz/teahub`: Tea MCP, the Pages server, the Gitea look). The router only sees Time's own repo, so that work never competes. Changes (`astra.py`, `router.py`): - Astra also reads the open issues of `TIME_SPINE` (default `teahubxyz/teahub`) through the same API. Every one with a `DONE:` line becomes a candidate with key `teahub#N`, where N is its number there. - In the table, those rows are marked "spine: not queued (Time builds in this repo only)". They are never labelled from here. Their value tells the owner or the CEO what the spine needs next. - Gitea answers a filter on an unknown label with everything, so the spine's issues get the same label check `tm.issues` uses. - Tests: a spine card with a `DONE:` line is ranked and never queued; one without a `DONE:` line is skipped; a read failure on the spine is a log line, not a failed tick. DONE: PR open with the code above, `python3 .github/time/test_time.py` green including the new checks, CI green
time added the cloud label 2026-10-19 16:47:51 +00:00
time added ready and removed cloud labels 2026-10-20 01:00:43 +00:00

☁️ The cloud session's branch came home as PR #205. The heartbeat reviews and lands it like any card PR.

☁️ The cloud session's branch came home as PR #205. The heartbeat reviews and lands it like any card PR. <!-- time {"cloud":"home","pr":205} -->

⏱️ Time: adopted PR #205, built outside the worker. haiku reviewed it on the PR.

⏱️ Time: adopted PR #205, built outside the worker. `haiku` reviewed it on the PR. <!-- time {"beat":"pr","pr":205,"adopted":true,"launched":false,"seat":"haiku","as":"seat","review":"venice","seats":["haiku"]} -->
time closed this issue 2026-10-20 01:08:04 +00:00

⏱️ Time: approved and green, merged PR #205. Card done.

⏱️ Time: approved and green, merged PR #205. Card done. <!-- time {"beat":"merged","pr":205} -->
Sign in to join this conversation.
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: teahubxyz/time#173