Skip to content
Changelog

v1.7.0-rc.2

Released: August 24, 2026

The second release candidate for the 1.7 line, and the larger of the two. Kunobi's MCP integration is rebuilt: a shared broker and a tiny per-client relay replace the Node hub, so connecting four AI clients costs 8 MB instead of 1.2 GB and starts in a tenth of the time. Extensions get a Marketplace of their own. Every update indicator in the app collapses into one status-bar pill, the tray becomes a real branded menu, and Flux can finally answer "what will this reconcile actually change?" against a live cluster.

Heads Up — Kunobi's MCP server no longer runs through npx

The Node-based MCP hub is gone. Kunobi now ships two native binaries inside the app — a shared broker and a 330 KB per-client relay — and your AI clients talk to those instead of downloading a package at launch.

Your client configuration is migrated for you the first time this build runs; entries are merged rather than replaced, so any timeout or proxy settings you added survive. You do not need to do anything.

One thing to avoid: running npx @kunobi/mcp upgrade afterwards rewrites a migrated entry back to the old shape, and Kunobi will detect and re-migrate it. That command is no longer part of the setup — remove it from any scripts that call it.

Windows is supported through relay sidecars. Linux, macOS and Windows all get the same broker.

What's New

  • MCP that costs almost nothing to connect — the Node hub spawned a full process per AI client. A shared broker plus a tiny relay replaces it, and the difference is not incremental: with four clients connected, memory drops from 1,179 MB to 8.3 MB, the marginal cost of each additional client goes from 293 MB to 1.4 MB, startup falls from 2,485 ms to 115 ms, and idle CPU from 2% to zero. The relay is 330 KB with no dependencies, enforced at build time. Nine defects that no passing test caught were found by running it for real — among them tool schemas being discarded so that every prefixed tool was uncallable, and nothing noticing a dead upstream, which left 21 tools published forever after the app quit.

  • A Marketplace for extensions — a top-level page with a category rail, grid and table views, a shared filter bar, keyboard navigation and a per-extension detail panel becomes the one place to discover and manage extensions. The redundant Settings › Extensions tab is gone. Whether an extension is Pro is now declared in its own manifest and carried by the catalog, so reclassifying one no longer needs an app release.

  • Any extension can ship a guided setup flow — a generic step sequencer that extensions contribute as data, with no host changes and no bespoke UI. Cluster Connect is the first adopter: target a cluster, enroll, invite, summary, in a modal wizard. Completion is re-derived from evidence every time the flow opens rather than restored from a saved flag, so reopening a half-finished setup lands on the first thing genuinely left to do — and a finished step can't offer to redo itself, which for enrollment would have minted a second cluster and started another install.

  • One pill for every update — four separate indicators (app version, extension updates, MCP updates, build variant) collapse into a single status-bar pill, and ten notification cards that all rendered into the same corner with no queue collapse into one slot that shows at most one card at a time. The running version is finally visible as permanent text instead of hidden behind an icon you had to click. Update state now lives in Rust and actually checks, and the digest is throttled per domain so a minor extension update can't suppress a critical app release found five minutes later.

  • A real tray menu — left-clicking the tray icon opens a branded popover with the product logo, variant badge, version header and iconed sections, instead of the unstyleable native menu. On macOS it uses AppKit Popover material for the rounded shape, blur and shadow, and sizes itself exactly to its content so no invisible always-on-top area blocks clicks behind it. Right-click keeps the native menu everywhere, and Linux stays native-only by design.

  • Flux computes drift against your live cluster — Kunobi answers "what will this reconcile actually change?" for a Kustomization without dropping to flux diff. The plan is computed as the identity Flux would reconcile as, not as whoever is holding the laptop — a dry run as the desktop user produces a plan the real reconcile could never reproduce, showing changes the controller can't make or hiding a denial you need to see. Kunobi makes zero writes on this path. Flux can also discover labeled ecosystem CRDs behind an opt-in setting, read-only by construction, and renders observed timelines alongside native history.

  • A hover-to-expand nav rail — the left rail goes from a permanent 64px labeled strip to a 52px icon gutter that expands to 240px on hover or keyboard focus, giving pages back horizontal space. The expanded panel floats over content so nothing reflows, with a 120ms hover-intent so a passing cursor doesn't trigger it.

Improvements

  • Collapse becomes something you can see — a collapsible node in a graph was pixel-identical to a leaf, and the only way to open it was an undocumented double-click. Nodes now show ▾ web open and ▸ web (12) collapsed. The hidden count was already computed and threaded all the way to the renderer, then discarded by every one of them; it now reaches you in all three render paths, including the widget that draws extension maps.
  • Search works the same everywhere — Flux, the Kubernetes drilldown and extension maps now share one search implementation for matching, cycling, reveal and centering. Searching under a collapsed branch expands every ancestor and centers what it found, and matches that can't be reached on a truncated view fail closed rather than advertising a result you can't get to.
  • Notifications report what actually happened — passive notifications, declared follow-up buttons and toasts that dismiss themselves, plus enrollment progress toasts for extensions.
  • Monaco loads when you need it — the editor is lazy-loaded on first mount with unused language services dropped, and editors lay out correctly after mounting in a hidden tab instead of rendering at zero size.
  • A desktop visual consistency and polish pass across the app.
  • Kubernetes CRD discovery is read-only by construction, not by convention.
  • Cluster Connect offers agent images that are actually published, instead of listing tags that would fail on pull.
  • Git history is isolated per repository, so one repo's history no longer bleeds into another's.
  • Graph reads are enforced at the boundary — RBAC filters before derivation across the read paths, rather than deriving first and filtering the result.
  • MCP calls are bounded — quotas, timeouts and metrics are enforced at the dispatch boundary, every tool declares whether it only reads (20 of 20, up from 3), and nested calls draw from a reserved pool so a call can no longer wait on a permit its own parent is holding.

Bug Fixes

  • macOS stops flagging Kunobi as an Intel app — the app declared a minimum system version old enough that macOS 26 degraded it to a legacy kind and warned about ending Intel support. It is a native arm64 app and now says so.
  • The status-bar pill opens the update center it was pointing at, and the per-row progress line is back.
  • A dev tool's update offer clears once its upgrade lands, instead of persisting after the work is done.
  • Graph collapse layouts stay put instead of shifting positions on recompute.
  • MCP stays faithful under load — progress and transport fidelity are preserved, the latest progress survives backpressure, stateful bridge calls route to one window, and process-owned state is centralized rather than scattered.
  • The theme provider hydrates before the backend gate, so the app no longer flashes the wrong theme on start.
  • Telemetry fails closed on app start rather than depending on callers running in the right order, and declining analytics no longer strips headers the manifest needs.
  • Canvas cards stop resizing themselves in a loop when auto-placed, and canvas mutations accept revision preconditions with history exposed over MCP.
  • Multi-window and tray actions route safely, with state ownership enforced rather than assumed.

Installation

This is an unstable pre-release. Install it from the unstable channel, or update from within the app if you are already on unstable.

Feedback

We'd love to hear your thoughts!

Available for:
Apple macOS logomacOSMicrosoft Windows logoWindowsLinux logoLinux
Download Kunobi