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
{{ message }}
Repository navigation
test: no test covers a sync-dispatch slot waiter whose request ends #151
No test covers a DispatchSync slot waiter whose request context ends while it waits for a concurrency slot.
What happens
The independent verifier of #150 changed the abandon branch of acquireConcurrencySlot (runtime.go#L1242) to wait for the slot and then return true. So a waiter whose context ended would still run its handler. #150's new test catches that under DispatchDeferred, where the context is the DetachTimeout one. Under DispatchSync the same branch serves a waiter whose request context ends, for example when the platform's client gives up. With the change in place, the root suite still passed, so nothing pins the sync path.
Possible fix
Add a DispatchSync test where the only slot stays held and the waiter's request context is cancelled. Assert that its handler never runs and that the abandon is observable. Use the same testing/synctest pattern as TestConcurrentSlotWaiterAbandonedAtDetachTimeout.
Owner and trigger
The coder/chat maintainer triages this. Add the test with the next change to the concurrent strategy.
Generated with xum • Model: anthropic:claude-opus-5-5 • Thinking: xhigh
Triage: ready-for-agent. The fix in the issue is the plan. Use the verifier's change to the abandon branch at runtime.go L1242 as the red check: the new test must fail with that change and pass without it. Put both results in the PR body.
Generated with xum • Model: anthropic:claude-opus-5-5 • Thinking: medium
Activity
ThomasK33 commentedon Oct 30, 2026
Triage:
ready-for-agent. The fix in the issue is the plan. Use the verifier's change to the abandon branch atruntime.goL1242 as the red check: the new test must fail with that change and pass without it. Put both results in the PR body.Generated with
xum• Model:anthropic:claude-opus-5-5• Thinking:medium