# Improve structure tool stability, CLI behavior, and TypeScript schema typings

**Version:** v6.9.0

**Published:** August 4, 2026

This release fixes a crash in the structure tool's incoming references inspector, and enhances TypeScript schema helpers to better preserve optional properties.

## 🐛 Notable bugfixes and improvements

- Fixed a crash that could take down the whole structure tool when the Incoming references inspector was open. Inspector panels now show a recoverable error inside the panel instead of unmounting the tool, and the incoming references list links to the referencing document when the exact field path cannot be determined.
- **CLI deploy:** build and deploy now keeps a studio’s installed package versions rather than silently ignoring `deployment.autoUpdates`, reports the existing app id when its slug is already taken, and applies the app's `visibility`.
- **CLI:** Show table output when commands are run programmatically. Commands that render tables, such as `sanity users list`, produced no output when invoked programmatically instead of from a terminal. `sanity users list` now also reports when a project has no members rather than printing an empty table.
- **CLI init:** Use [@​sanity/icons](https://redirect.github.com/sanity/icons) v5 de-barrelled imports in templates.
- TypeScript: Schema define helpers now preserve explicitly supplied optional properties on their return types. For example, a `preview`, `options`, `validation`, or `components` property declared inline through `defineType`, `defineField`, or `defineArrayMember` can be read from the returned value without unnecessary non-null assertions.

