# fix\(providers\): address Pi review findings · stienswout/t3code

[View on GitCafe](https://git.cafe/stienswout/t3code/commit/f0c23f1aac089d94edb66bb012c2808fa9af4ba5)

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

Visibility: public

Requested revision: f0c23f1aac089d94edb66bb012c2808fa9af4ba5

Requested commit: f0c23f1aac089d94edb66bb012c2808fa9af4ba5

Commit: f0c23f1aac089d94edb66bb012c2808fa9af4ba5

Tree: 2ccb54f7e33bdbbd7239a1daa06c0c4b3f9ca8c6

Author: Wout Stiens

Committer: Wout Stiens

## Message

```
fix(providers): address Pi review findings

Handles the Macroscope review on the Pi provider:

- startTurn resolves the prompt payload before installing the active turn,
  so an unreadable attachment can no longer wedge the thread with a turn
  that is never terminalized.
- Dialog responses and turn terminalization now share a semaphore, and the
  pending entry is dropped only after `extension_ui_response` is sent, so a
  failed send stays retryable and settlement cannot overtake resolution.
- Selecting "Pi default"/"inherit" again replays the baseline model and
  thinking level captured from the first `get_state`.
- Stop advertising the model-specific `xhigh`/`max` thinking levels, which
  made `set_thinking_level` fail and blocked the turn on models without them.
- Text generation rejects a model slug without a usable `provider/model`
  separator instead of silently running Pi's default model.
- Keep the raw RPC error payload as `cause` rather than in the message.
- Web Pi icon is a theme-aware glyph, matching its peers and the mobile icon.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

```

## Parents

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

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