# YAML Diff, Resource Compare & Explain

_2026-10-16 · v0.33.0_

This release is about seeing what changed: review your YAML edits as a diff, compare two resources side by side, and browse any Kind's schema like `kubectl explain`.

This release is about seeing what changed: review your YAML edits as a diff, compare two resources side by side, and browse any Kind's schema like `kubectl explain`.

![Reviewing YAML edits in Zapkube's side-by-side diff view](https://assets.zapkube.com/changelog/v0.33.0/zapkube-yaml-diff.jpg)

## 🔀 YAML Diff

- **View changes** (⇧⌘S, or the **+N −M** count in the action bar) opens your edits against the original in a side-by-side diff, with **Apply** (⌘↵) right there.
- **Change markers** in the YAML editor's gutter, with **Next / Previous change** (⌥F5 / ⇧⌥F5).
- **Out-of-sync detection**: if someone changes the resource on the cluster while you edit, the editor flags your draft as **Stale**. **⌘R** shows what moved on the cluster, and **Use latest** replays your edits onto the live version, listing any field you both changed, for review before you apply.
- **Deleted on the cluster** is flagged in red: Apply is turned off, but you can still copy your YAML.
- **Status-only updates don't count**: changes to server-set fields (status, resourceVersion…) don't mark your draft as stale.
- **The GitOps drift warning** is now a compact chip naming the controller (Flux or Argo CD), with details on hover.

## ⚖️ Compare Two Resources

- **Select two rows and Compare** them from the row menu or the command palette: both sides stay live, even across clusters and namespaces.
- **Open the comparison in a tab or panel**: it restores with your layout and has a shareable `zapkube://` link.
- **Diff view toolbar**, each with its own key: **Include server-set fields** (⌥S), **Only differences** (⌥D) collapses unchanged lines, **Decode values** (⌥V) shows a Secret's data in plain text, and **Swap sides** (⌥X).

## 📖 Explain

- **The Explain page**, Zapkube's `kubectl explain`: any Kind's field tree, read from the cluster's OpenAPI schema, with types, required fields, enum values and defaults. Works for CRDs too.
- **Open it from anywhere**: the API resources list, the sidebar, or the palette (**Explain…** for any Kind, **Explain this kind** from a resource list or detail page).
- **Keyboard-first browsing**: arrows to move, expand and collapse, **/** to filter by field path, and **Expand all**, **Collapse all** and **Copy field path** in the palette.
- **Field docs in a peek card** that follows your pointer or cursor; fields it lists are one click away in the tree.
- **One context · version picker**: switch between the clusters and API versions serving the Kind, with **deprecated versions** flagged with their warning.
- **Copy kubectl explain** and **Open list** from the page's menu.

## ✨ Other Improvements

- **View YAML** now opens in a dialog with syntax highlighting.
- **Toasts can carry an action**: a conflict on Apply offers **View changes**.
- **The Settings dialog** has a close button.

## 🐛 Fixes

- **Toasts** now show above an open dialog instead of under it.

## 🧹 Misc / Chore

- Bumped frontend and Go dependencies.

---

More machine-readable entry points: [/llms.txt](https://zapkube.com/llms.txt) (site index), [/agents.md](https://zapkube.com/agents.md) (when to use Zapkube), [/sitemap.xml](https://zapkube.com/sitemap.xml) (every URL).

Every page on this site also serves Markdown: send `Accept: text/markdown`, or append `.md` to the path.