Worker: build where the card says (Base: <branch>), finish what it starts (the cap gates launches), oldest card first
#118
Closed
teahubxyz
wants to merge 3 commits from
ceo/worker-base-and-slack into main
pull from: ceo/worker-base-and-slack
merge into: teahubxyz:main
teahubxyz:main
teahubxyz:gh-pages
teahubxyz:havre/catalog-18-plus-20261024
teahubxyz:havre/byok-unfiltered-20261024
teahubxyz:time/card-260
teahubxyz:typy/context-words-254
teahubxyz:typy/center-target-254
teahubxyz:typy/inline-preview-254
teahubxyz:typy/smooth-typing-254
teahubxyz:typy/v0-254
teahubxyz:modern-havre
teahubxyz:uncensor-havre
teahubxyz:havre-split-hide
teahubxyz:havre-split
teahubxyz:havre-model-sort
teahubxyz:time/card-244
teahubxyz:time/card-223
teahubxyz:havre-art-and-snap
teahubxyz:havre-remix-edit
teahubxyz:havre-voice-in-tools
teahubxyz:havre-asmr-mode
teahubxyz:havre-update-pill
teahubxyz:havre-whisper
teahubxyz:claude/card-202-truncated-review-2wh43h
teahubxyz:time/card-211
teahubxyz:claude/card-198-superseded-cards-p3jqzg
teahubxyz:havre-live
teahubxyz:havre-open
teahubxyz:claude/taskmaster-haggle-checkout-f57aux
teahubxyz:havre-memory
teahubxyz:havre-photoshoot
teahubxyz:havre-workflows
teahubxyz:claude/card-173-rank-spine-cards
teahubxyz:ceo/sync-back-union
teahubxyz:claude/card-171-router-optimization-7t2dp6
teahubxyz:claude/router-pick-outcomes-99zcnh
teahubxyz:time/card-48
teahubxyz:time/card-98
teahubxyz:time/card-170
teahubxyz:time/card-89
teahubxyz:time/card-160
teahubxyz:time/card-114-gh-pages
teahubxyz:time/card-113-gh-pages
teahubxyz:time/card-96-gh-pages
teahubxyz:time/card-85
teahubxyz:havre-next2
teahubxyz:havre-cast
teahubxyz:time/card-82
teahubxyz:time/card-80
teahubxyz:time/card-79
teahubxyz:time/card-87
teahubxyz:time/card-94
teahubxyz:chatgpt/parallel-api
teahubxyz:time/card-95
teahubxyz:time/card-71
teahubxyz:mention-ledger-token
teahubxyz:astra-board
teahubxyz:havre-next
teahubxyz:venture/slyng
teahubxyz:havre-brutalist
teahubxyz:ship-from-repo
teahubxyz:time/card-63
teahubxyz:time/card-60
teahubxyz:time/card-61
No Reviewers
Labels
Clear labels
accessibility
andon
astra
bug
cloud
documentation
duplicate
enhancement
good first issue
help wanted
invalid
needs-human
planned
question
queued
ready
signal
signup
spec
venture
venture-batch
wontfix
Barrier affecting people with disabilities
Something isn't working
Improvements or additions to documentation
This issue or pull request already exists
New feature or request
Good for newcomers
Extra attention is needed
This doesn't seem right
Further information is requested
Time picks this up on the next heartbeat
👍 = I want the next version
early-access signup for a venture
This will not be worked on
No labels
Milestone
No items
No Milestone
Projects
Clear projects
No projects
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: teahubxyz/time#118
Reference in new issue
Block a user
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.
Two gaps in the worker loop that today's wave exposed, and one ordering fix.
Base: <branch>in a card. Every worker branched frommainwhatever the card said, and the ventures live ongh-pages(an orphan branch, no shared history). That is why #60 and #63 ran out of turns, #95 died at 43 steps and #109 opened the right files against the wrong branch. Nowcard_base()reads aBase: <branch>line;Handscuts the branch from it (git_commit(..., base=)), names ittime/card-N-<base>so a stale branch cut frommainis never resumed, the worker's rules say where the files live, andopen_prtargets the base. Cards without the line are unchanged (time/card-N, default branch).A launched worker finishes.
budget_check()gains a slack that only applies insidefinishing(): the worker's model calls and the review of a PR that is already open may run past the daily cap, up toTIME_CAP_SLACKx it (default 1.5). A new launch is still refused at the cap, and the monthly cap is hard everywhere. #87's run was launched at $3.80 and stopped at step 27 when the cap crossed, its spend lost; the reviews of #109/#110 sat unreviewed for the same reason.TIME_CAP_SLACK=1is the old behaviour. The doctor lists the knob.Oldest ready card first.
tick()sorts cards by number, the orderpromote_nextalready uses, instead of the newest-first the API returns.Tests:
14b(base, branch name, PR target, the rules' wording,card_baseparsing) and57(the run finishes under the slack;TIME_CAP_SLACK=1stops it; a new launch gets no slack; the monthly cap stops a run; a review runs at $6 of $5 and is refused at $8; oldest first). Suite:ALL OK 57locally with the fake World; CI runs the same.Closes #117
🤖 Generated with Claude Code
https://claude.ai/code/session_017K4vyY3yUD3GsvoZaAtKkD
teahubxyz referenced this pull request2026-10-18 04:25:38 +00:00
Superseded by #121: the same change re-cut from main after #110 and #116 landed (this branch collided with #116's change to
review()). Closing.Pull request closed