Skip to content

fix(sol-loop): bound each review round with a wait timeout instead of waiting forever (#8) - #17

Open
dhruv1220 wants to merge 1 commit into
t3dotgg:mainfrom
dhruv1220:fix/sol-loop-bounded-wait
Open

dhruv1220 wants to merge 1 commit into
t3dotgg:mainfrom
dhruv1220:fix/sol-loop-bounded-wait

Conversation

@dhruv1220

Copy link
Copy Markdown

Fixes #8.

Each sol-loop round starts with delegate_task in mode: "async" and then says "Wait for the notice. Do not poll." The notice only comes when the child's run ends, and nothing sets a deadline, so "Timeout, error, or no reply is not approval" can never trigger. When a Sol child keeps compacting after it has printed its verdict, the parent waits forever — the reporter saw 9 to 10 hours, five times in one night.

This bounds every round, using tools T3 already has (verified against T3 Code's own orchestrator docs and source: delegate_task accepts mode: "async" | "wait" and timeoutMs, and t3_thread_read, t3_thread_wait, task_cancel all exist):

  • Start each round with delegate_task in mode: "wait", timeoutMs: 600000 (10 min), saving taskId and childThreadId.
  • A wait that times out leaves the child running: t3_thread_read its thread. Once a VERDICT: line appears, task_cancel the child and use that verdict, because the child's turn may never end. Otherwise t3_thread_wait 10 more minutes and read again.
  • After 30 minutes with no verdict, cancel, run one fresh round, then stop and report. A miss is still never approval.
  • The round-1 brief now says: "Read only the diff and the files it touches. Reply as soon as you have a verdict, then stop." — so the child is told to finish promptly instead of compacting past its verdict.

No test suite exists in this repo; verification is the tool-surface check above plus a re-read of the edited section for consistency with the rest of the skill (the "Do not edit scoped files while review runs" and "Timeout, error, or no reply is not approval" rules are unchanged, and section 4's "Use a fresh delegate_task" inherits the new mode since section 2 says "every round").

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

sol-loop: async review round has no deadline, so the parent waits forever if Sol never ends its turn

1 participant