# Read-Only Mode

_2026-08-26 · v0.25.0_

This release adds a safety net for browsing production clusters, plus quality-of-life improvements to pod actions and the detail view.

This release adds a safety net for browsing production clusters, plus quality-of-life improvements to pod actions and the detail view.

![Read-only mode](https://assets.zapkube.com/changelog/v0.25.0/read-only-mode.jpg)

## 🔒 Read-Only Mode

- **Read-only mode** — flip a single toggle in the status bar (or hit the new shortcut) to block every write action across the app: apply, delete, scale, restart, exec, attach, and more. Blocked actions surface as a clear toast instead of failing silently.
- **Pairs with kubectl command copy**: when an action is blocked, copy the equivalent `kubectl` command straight from the pod menu, so you can review it and run it yourself in a terminal when you actually need to mutate a resource.
- The toggle is self-correcting: it reflects the live state even if a snapshot fails to load, and it's exposed identically whether the app talks to Kubernetes directly or through a future headless mode.

## 🖥️ Pod Attach

- **Attach** joins Exec and Logs as a first-class pod action, available from every launcher surface (menu, dropdown, keyboard), and reuses the same terminal launchers as Exec.
- The generated `kubectl attach` command now respects the flags the container actually declares (stdin/tty), and the pod menu leads with Port-Forward for quicker access to the most common action.

## 🧩 Linux External Terminal Support

- **Nine Linux terminal emulators are now supported for Exec and Attach**: GNOME Terminal, Konsole, Xfce Terminal, Terminator, Ptyxis, Alacritty, kitty, WezTerm, and Ghostty — detected automatically and launchable straight from the app.
- **Warp and Tabby** also join the terminal launchers on macOS.
- Terminal detection is more resilient: the app no longer offers a terminal it hasn't confirmed is installed, and launch failures that happen after the terminal starts are now reported instead of swallowed.

## 🐛 Fixes

- **Overview split** — the drag-resizable column split between a resource's Overview and detail aside is more reliable: it no longer commits on a click that never dragged, no longer rejects wide-panel drags after a restart, and properly ends the drag on pointer cancel.
- **Theme** — replaced remaining hardcoded status colors (red/amber/rose/emerald) with theme tokens, and raised dark-mode border contrast against panels for better readability.
- **Shortcuts** — fixed the Cmd+2/7/9 tab-switch shortcuts not working on AZERTY keyboards.
- **Status bar** — the port-forward icon now shows an inline count and a theme-aware tone.
- **Namespaces** — the namespace dropdown stays live and in sync across clusters, fixing several edge cases where it could show stale or duplicated data after a reconnect.
- **Carina volumes** — fixed incorrect claim/volume binding display and bounded a request fan-out that could slow down the Pinned Volumes view.

## 🧹 Misc / Chore

- Bumped Go dependencies and added a supply-chain security policy.

---

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.