You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Browse filesBrowse the repository at this point in the historyBrowse files
Ovtcharov
committed
fix: round-four findings — the deadlock behind the desync, clamped at the source
The round-three drain fix traded the pipe desync for a deadlock: once a
mid-run terminal error went out, the drain suppressed every later event —
including a permission prompt whose stdio wait is unbounded — so the worker
parked forever and the process never served another turn. Terminal now
cancels the run (the handler's cancelled event breaks both the confirm and
input waits), and the invariant itself moved into CanonicalTranslator:
nothing is emitted after the first terminal event, making every consumer
loop — stdio, HTTP, email — correct by construction, with tests.
The walk bound became a cap instead of a crash: a legitimate repo with a
giant assets/ subtree now indexes what was found (loudly), instead of a
RuntimeError advising the user to do what they had already done. The budget
counts entries after pruning, lives in CodeIndexConfig with the other
limits, and has tests. expanduser now applies to the STORED index root too,
so a '~'-style allowed_paths config can't produce a root that rejects the
very paths the refusal message recommends.
Ctrl+V: a transiently busy Windows clipboard no longer fails a paste whose
caption text was already in hand (a typed busy sentinel distinguishes it
from a real decode failure), and a Linux box with neither wl-paste nor
xclip finally says so instead of a silent no-op. Turns whose final carried
an empty answer keep the user's question in history. SKILL.md now
distinguishes the /query capacity 503 from the init 503 it previously
taught was the only kind. The cancel path uses the shared dead-child reset
helper instead of hand-rolling two-thirds of it.
0 commit comments