# mistral: Fix default for \`object\` field in StreamResponse \(\#62517\) · gitcafe/zed

[View on GitCafe](https://git.cafe/gitcafe/zed/commit/38c5dd7c98b20826cf6f8da24d4116a58c3a6a75)

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

Visibility: public

Requested revision: 38c5dd7c98b20826cf6f8da24d4116a58c3a6a75

Requested commit: 38c5dd7c98b20826cf6f8da24d4116a58c3a6a75

Commit: 38c5dd7c98b20826cf6f8da24d4116a58c3a6a75

Tree: 90b10c447b2293ce48c4f0e25492e48bbaf32e3b

Author: ummon-v

Committer: GitHub

## Message

````
mistral: Fix default for `object` field in StreamResponse (#62517)

# Objective

- Streaming completions fail for any model served through Mistral that
omits `object` in its stream chunks. Zed's `StreamResponse` requires the
field, so the response is rejected before any text is rendered and the
agent panel shows `missing field object at line 1 column 167`.
- This now matters because Mistral serves Z.ai's GLM 5.2 (`glm-5-2` /
`zai-glm-5-2`), which is usable in Zed via a custom model entry, but is
unreachable today because of this deserialization failure. Its first
stream chunk omits `object`, while every subsequent chunk includes it.
- No linked issue.

## Solution

- Mark `StreamResponse::object` as `#[serde(default)]` in
`crates/mistral/src/mistral.rs`.
- The field is never read anywhere in the codebase, so defaulting it to
an empty string when absent loses nothing and keeps the struct's shape
unchanged for serialization.

## Testing

- `cargo check -p mistral` passes.
- Verified end to end in Zed: with the settings below, selecting "GLM
5.2" in the agent panel and sending a message previously errored
immediately; after this change the response streams normally.

  ```json
  "language_models": {
    "mistral": {
      "available_models": [
        {
          "name": "zai-glm-5-2",
          "display_name": "GLM 5.2",
          "max_tokens": 1048576,
          "supports_tools": true,
          "supports_images": false,
          "supports_thinking": true
        }
      ]
    }
  }
  ```

- Tested on macOS only. The change is platform-independent, so no
platform-specific risk is expected.

## Self-Review Checklist:

- [x] I've reviewed my own diff for quality, security, and reliability
- [x] Unsafe blocks (if any) have justifying comments (none added)
- [x] The content adheres to Zed's UI standards
([UX/UI](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
and
[icon](https://github.com/zed-industries/zed/blob/main/crates/icons/README.md)
guidelines) (no UI change)
- [ ] Tests cover the new/changed behavior
- [x] Performance impact has been considered and is acceptable
(deserialization only, no measurable cost)

---

Release Notes:

- Fixed streaming failing for Mistral-hosted models that omit the
`object` field in stream chunks, such as GLM 5.2.

Co-authored-by: Bennet Bo Fenner <bennet@zed.dev>
````

## Parents

- [96382d8e7e3a63c373a248b4f2895440026ec9f3](https://git.cafe/gitcafe/zed/commit/96382d8e7e3a63c373a248b4f2895440026ec9f3?format=markdown)

[Source at this commit](https://git.cafe/gitcafe/zed/tree/38c5dd7c98b20826cf6f8da24d4116a58c3a6a75?format=markdown)
