With TIME_ASTRA_PITCH set, every planning seat proposes a slate of cards; the slates merge into one
field (the same issue or title from two seats is one card with both proposers), the board seats
(TIME_ASTRA_BOARD, default the pitching seats) rank the field with the venture board's own tally and
`top` (Borda 3/2/1, quorum of two), and only the top picks are queued or created, under the single
planner's guards and caps. A card one seat alone wants is never opened. Unset, Astra is unchanged.
The Astra log carries the slates, the score/backer table and each seat's reason.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LaVWDr6h62YJk9LJqvQH7k
time/worker-run python3 - <<'EOF'
p=".github/time/test_time.py"
s=open(p).read()
old='import concurrent.futures as c
Gitea 1.24 also refuses the Actions identity label edits (removing a label is a 500), which crashed
promote_next and stalled the queue. gh() now uses TIME_TOKEN for every write except comments (Time's
beats are gitea-actions' comments) and commit statuses; the time user never counts as trusted and
mention replies ignore it; astra.yml gets TIME_TOKEN.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017fTCFiw6ohysUDcWoPsTys