# fix\(server\): unblock OpenCode approvals and stop \(\#9653\) · gitcafe/t3code

[View on GitCafe](https://git.cafe/gitcafe/t3code/commit/01f3e50eca5102ccd881de6f942a98fe6a518ad4)

Repository: [gitcafe/t3code](https://git.cafe/gitcafe/t3code)

Visibility: public

Requested revision: 01f3e50eca5102ccd881de6f942a98fe6a518ad4

Requested commit: 01f3e50eca5102ccd881de6f942a98fe6a518ad4

Commit: 01f3e50eca5102ccd881de6f942a98fe6a518ad4

Tree: ac5ae9ace2bc0f97029793d703ccf19bc977747b

Author: Theo Browne

Committer: GitHub

## Message

```
fix(server): unblock OpenCode approvals and stop (#9653)

OpenCode could show an Approval badge with no controls, appear stuck on TodoWrite, and keep showing a running turn after Stop.

- Show every permission, including old saved requests. Keep failed replies retryable and close completed requests even when reply events are lost.
- Keep OpenCode output pipes drained and automatic replies out of the event loop. Handle disconnects, reconnects, and confirmed stops without stale requests or running states.
- Show native task progress and command results. Do not treat TodoWrite or approval history as file edits or executed commands.
- Ignore late aborts and task updates after a turn finishes.

Fixes #4795
Fixes #7113
Fixes #5760

Created with GPT-6 Astra (preview) in Codex. Reviewed and merged with Claude Fable 5.1 in Claude Code.
```

## Parents

- [f0347322441f3b8e473a8d13ea7006cbcb4fb761](https://git.cafe/gitcafe/t3code/commit/f0347322441f3b8e473a8d13ea7006cbcb4fb761?format=markdown)

[Source at this commit](https://git.cafe/gitcafe/t3code/tree/01f3e50eca5102ccd881de6f942a98fe6a518ad4?format=markdown)
