Cards adopt an open PR that already closes them: review and land it instead of dispatching a worker #93
Closed
opened 2026-10-18 01:17:32 +00:00 by teahubxyz
·
10 comments
No Branch/Tag Specified
main
gh-pages
havre/catalog-18-plus-20261024
havre/byok-unfiltered-20261024
time/card-260
typy/context-words-254
typy/center-target-254
typy/inline-preview-254
typy/smooth-typing-254
typy/v0-254
modern-havre
uncensor-havre
havre-split-hide
havre-split
havre-model-sort
time/card-244
time/card-223
havre-art-and-snap
havre-remix-edit
havre-voice-in-tools
havre-asmr-mode
havre-update-pill
havre-whisper
claude/card-202-truncated-review-2wh43h
time/card-211
claude/card-198-superseded-cards-p3jqzg
havre-live
havre-open
claude/taskmaster-haggle-checkout-f57aux
havre-memory
havre-photoshoot
havre-workflows
claude/card-173-rank-spine-cards
ceo/sync-back-union
claude/card-171-router-optimization-7t2dp6
claude/router-pick-outcomes-99zcnh
time/card-48
time/card-98
time/card-170
time/card-89
time/card-160
time/card-114-gh-pages
time/card-113-gh-pages
time/card-96-gh-pages
time/card-85
havre-next2
havre-cast
time/card-82
time/card-80
time/card-79
ceo/worker-base-and-slack
time/card-87
time/card-94
chatgpt/parallel-api
time/card-95
time/card-71
mention-ledger-token
astra-board
havre-next
venture/slyng
havre-brutalist
ship-from-repo
time/card-63
time/card-60
time/card-61
No results found.
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
ready
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#93
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.
Why. Work built outside Time's worker — Codex's #75 (acceptance card #84), #69, #70, and any PR a seat opens from a chat — cannot enter Time's review-and-landing path:
tick()only reviews PRs it dispatched a worker for, and areadycard with no beats would launch a worker to build the thing again. So externally built PRs wait for a human merge, which is the last place a human sits in the loop.Change (
.github/time/time.py,tick()). For areadycard with no real beats (stateNone), before dispatching: look for an open PR whose body closes the card (linked_prs()). If one exists, adopt it: post theprbeat ({"beat": "pr", "pr": N, "adopted": true}) and runreview()on it in the same tick, exactly as if a worker had opened it. The next beats then land it throughland()on Approve + green like any other card PR — engine paths included, sinceTIME_PROTECTEDnow allows them. No launch is counted, no worker budget is spent; the review books to the ledger as usual. Areadycard whose body saysPR: #Nexplicitly is adopted the same way even when the PR body lacksCloses #N. In dry-run the beat says what it would adopt.Tests. A
readycard with an open PR closing it →prbeat withadopted, a review posted, no worker launched,launches_todayunchanged; the same card withTIME_AUTOMERGE=on, an Approve and green checks → merged on the next tick; areadycard with no PR → dispatched as today; a closed PR is not adopted;PR: #Nin the body adopts withoutCloses.CHANGELOG line under "### Added". Once this lands, #84 labelled
readyputs #75 through haiku's review andtime's merge with no hand on it.DONE: PR open with the code above,
python3 .github/time/test_time.pygreen including the new checks, CI green⏱️ Time: Claude Sonnet (Anthropic) is working on this now, on branch
time/card-93.⏱️ Time:
sonnetopened PR #110 (14 steps, claude-sonnet-5-5). Review and landing follow on the next beat.⏱️ Time: today's spend is $5.01 of the $5.00 cap; carrying on tomorrow. Nothing is lost; this card resumes once there is budget.
⏱️ Time: PR #110 is up for this card.
haikureviewed it on the PR.⏱️ Time: the reviewer objected on PR #110. Over to a human (or comment
/time retryto send it back to the worker with the review attached)./time retry
The objection is right and small: the adoption guard must also accept
would-dispatch(a dry-run marker) andneeds-done, since neither means a worker ran; add the dry-run→live test haiku asked for. The two non-blocking points are worth taking in the same round: say in the PR body that adoption trusts the reviewer gate (any open PR whose body closes the card, whoever opened it), and make thePR: #Nline match only when it is the whole line.⏱️ Time: Claude Sonnet (Anthropic) is answering the review on PR #110 now, on branch
time/card-93.⏱️ Time:
sonnetpushed its answer to PR #110 (7 steps, claude-sonnet-5-5). Review and landing follow on the next beat.⏱️ Time: PR #110 is up for this card.
haikureviewed it on the PR.⏱️ Time: approved and green, merged PR #110. Card done.