Problem
Agents that wait for pull-request CI, review activity, or merge completion currently have to poll from model turns. That consumes inference while no reasoning is needed and loses the watch when a live tool call or server process stops.
Proposed capability
Add a Codex host tool that registers a durable GitHub waitpoint and returns immediately. T3 Code stores the waitpoint in SQLite, polls the pull request through the user's authenticated gh CLI, and starts one normal continuation turn when the requested condition is observed.
Initial conditions:
- all reported checks have settled (success or failure)
- new review or comment activity
- pull request merged or closed
The local T3 server remains the worker, so this version needs neither T3 Connect nor a public webhook endpoint. Pending work catches up after a restart. Delivery should use a lease plus an idempotent orchestration command, and a waitpoint should expire rather than inject stale work if the user has advanced the thread.
Scope boundaries
- Codex first, using its dynamic host-tool surface
- local
gh polling rather than a GitHub App or webhook receiver
- no hosted monitoring while the local server remains offline
- no generic arbitrary webhook callback
- no new bespoke frontend waiting state; normal orchestration makes the thread active on delivery
The implementation is intentionally stacked on the host-managed live-wait work in #4262.
Problem
Agents that wait for pull-request CI, review activity, or merge completion currently have to poll from model turns. That consumes inference while no reasoning is needed and loses the watch when a live tool call or server process stops.
Proposed capability
Add a Codex host tool that registers a durable GitHub waitpoint and returns immediately. T3 Code stores the waitpoint in SQLite, polls the pull request through the user's authenticated
ghCLI, and starts one normal continuation turn when the requested condition is observed.Initial conditions:
The local T3 server remains the worker, so this version needs neither T3 Connect nor a public webhook endpoint. Pending work catches up after a restart. Delivery should use a lease plus an idempotent orchestration command, and a waitpoint should expire rather than inject stale work if the user has advanced the thread.
Scope boundaries
ghpolling rather than a GitHub App or webhook receiverThe implementation is intentionally stacked on the host-managed live-wait work in #4262.