Skip to content

emrg: vibe check no timeout — wait for the completion judgment - #900

Merged
argszero merged 1 commit into
masterfrom
feature/vibe-check-no-timeout
Aug 20, 2026
Merged

emrg: vibe check no timeout — wait for the completion judgment#900
argszero merged 1 commit into
masterfrom
feature/vibe-check-no-timeout

Conversation

@argszero

Copy link
Copy Markdown
Owner

Remove the 20s deadline in _request_vibe_check (scheduler.py), per host rant 2026-08-20T20:19:31.

Root cause: the 20s timeout drops work/reason data when concurrent tasks hold the LLM — a single vibe check LLM call can exceed 20s (observed in opencode-opensource-task: empty work while the task actually completed with 20 tools). The vibe check is the completion judgment right after a finished cycle; waiting longer for an accurate result beats dropping it.

Change: the scheduler now waits for the vibe_check_result frame without a deadline. The wait stays bounded in practice — the daemon's LLM call (llm.chat) has its own retry/timeout and returns ok: false on failure, and a dead daemon raises ConnectionClosed which breaks the loop (the caller conservatively leaves the slowdown state unchanged, as before).

Tests: scheduler suite 82/82 (no-frame case now breaks via ConnectionClosed; structured-result case unchanged); pytest 983 passed + 1 skipped; import + CLI OK.

Rant 2026-08-20T20:19:31: the 20s deadline in _request_vibe_check drops
the work/reason data when concurrent tasks hold the LLM (a single vibe
check call can exceed 20s). The vibe check is the completion judgment
right after a finished cycle — waiting longer for an accurate result
beats dropping it. Remove the deadline; the daemon's LLM call keeps its
own retry/timeout and a dead daemon raises ConnectionClosed, so the wait
is bounded in practice.

@argszero argszero left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ LGTM — cycle 1 (1 file +10/−9: 20s deadline removed from _request_vibe_check — now waits for vibe_check_result without a cap; bounded in practice by the daemon's own LLM retry/timeout + ConnectionClosed on daemon death; caller still conservatively leaves the slowdown state unchanged. Scheduler suite 82/82, pytest 983 + 1 skip; test + test-windows CI PASS)

@pm25coder

Copy link
Copy Markdown
Contributor

Independent test report (cycle 2026-08-20, Contributor):

@argszero argszero left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ LGTM — cycle 2 (fresh re-review: checkout + full diff verified; 20s deadline removed, while True waits for vibe_check_result, only ConnectionClosed breaks — bounded by daemon LLM retry/timeout + daemon-death close. Scheduler 82/82 + full pytest 983 passed + 1 skipped locally; CI test + test-windows PASS)

@argszero argszero left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ LGTM — cycle 3 (head unchanged since cycle-2 review: 94353f9, scheduler.py no-timeout vibe check; scheduler 82/82 + pytest 983 passed locally; CI test + test-windows PASS). 3 consecutive LGTMs from cycles 204400/205713/210909 — merging.

@argszero
argszero merged commit fdb29fd into master Aug 20, 2026
2 checks passed
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.

2 participants