Skip to content

A turn with no path to a terminal event: Pi's settle probe never re-arms, OpenCode drops unresolvable child asks #16846

Description

@Adamulek123

Problem

Two paths leave a turn with no route to a terminal event.

  • PiAdapterV2.ts:1919-1927 — a settle probe that succeeds but reports isStreaming, a compact in progress, or a non-zero pendingMessageCount returns without calling finalizeTurn and without calling scheduleSettleProbe. So the probe fires once, decides the work is still busy, and never re-arms. The turn stays open forever. Contrast the probeFailed branch at 1908-1913, which does retry.
  • OpenCodeAdapterV2.ts:1996-2005 — an unresolvable child ask is retried 5 times with min(200 * 2**retry, 2000) backoff, about 5 seconds total, then abandoned. Effect.ensuring only clears the dedupe key; no failure event reaches the UI. The user asked for something and gets silence.

Why these are unambiguous

Unlike the interrupt-timeout and Stop questions, neither of these needs a product decision — both are simply cases where the retry/settle loop fails to re-arm. A reviewer can approve these without choosing a policy.

Impact

Both produce a turn or request that is silently abandoned: no terminal event, no error surfaced. For the Pi probe this is indistinguishable from a genuinely stuck provider.

Environment

Found by static audit of the merged orchestrator-v2 work (#2829). Re-verified present at main. Grouped with A6b because both are "a turn with no path to terminal", which is the same class of defect even though they sit in different adapters.

Not filed as a PR only because the audit grouped seven findings into one bundle; these two are the subset with a single correct answer.

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething is broken or behaving incorrectly.via-triageFiled through npx t3 triage

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions