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: 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"]} -->
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
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):TIME_SPINE(defaultteahubxyz/teahub) through the same API. Every one with aDONE:line becomes a candidate with keyteahub#N, where N is its number there.tm.issuesuses.DONE:line is ranked and never queued; one without aDONE: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.pygreen including the new checks, CI green☁️ The cloud session's branch came home as PR #205. The heartbeat reviews and lands it like any card PR.
⏱️ Time: adopted PR #205, built outside the worker.
haikureviewed it on the PR.⏱️ Time: approved and green, merged PR #205. Card done.