v1.7.0-rc.1
Released: August 14, 2026
The first release candidate for the 1.7 line, and a broad one. Flux gets the largest update it has had — reconciliation health, ordered ResourceSet steps, drift plans, and reconcile-with-source — while classic Helm moves onto a typed read model. Your extensions finally get their data drawn as a map beside the table, rather than published into the knowledge graph with no way to see it. Canvas grows the missing half of its lifecycle: you can create, duplicate and rename boards yourself, export what a card is showing, and an agent's canvas can render inside your AI chat instead of only in Kunobi. The home screen is redesigned around wherever you were headed next.
Heads Up — the last synthetic Kubernetes kinds are gone
kunobi.ninja/v1/Helm and kunobi.ninja/v1/HelmHistory no longer exist. Classic Helm releases and their history are now a typed read model backed by the cluster's own Helm storage, finishing the removal of virtual kunobi.ninja kinds that began in v1.6.0. The Helm views behave the same and behave better — but anything scripted against those kind names needs updating.
The change also fixes three long-standing Helm defects: an RBAC denial or API error used to render as "this cluster has no Helm releases", a single failed poll wiped rows that were still valid, and the table silently discarded every update, so upgrades and rollbacks were invisible until you reopened the view.
What's New
-
A redesigned home screen — a command deck built around what you were about to do: an "Ask Kunobi" bar, quick access, recent clusters, latest canvases, your installed extensions and the blog, in one adaptive screen that fits without scrolling and only shows the sections that have something in them. Everything is one click into the app — a source or installed extension deep-links straight to its own workspace, and the ask bar opens the terminal's AI tab already seeded with what you typed.
-
Create, duplicate and rename a canvas yourself — every canvas previously had to originate from an agent or a JSON file, so anyone without one had no way in. All three verbs are now in the ActionBar and the command palette, with Duplicate also on each tile's overflow menu. Duplicate copies the spec and your arrangement — grid, deleted cards, collapses, renames, notes — plus the underlying data, so the copy is what you were actually looking at. A rename you make now sticks: the agent's next republish keeps your title instead of silently reverting it.
-
Canvas answers render inside your AI chat — a canvas built from a
canvastool call now appears inline in the conversation in MCP Apps hosts like Claude Desktop, ChatGPT and Cursor, instead of only opening a tab in Kunobi you had to switch applications to find. Clients without MCP Apps support receive exactly the same result they do today. -
Get data out of a canvas — Table, JSON, Code, Markdown, Log, Stat and KeyValue cards each publish what they are showing, offered as Copy in the card's ⋯ menu. Tables also export their rows as CSV, and charts export as CSV or SVG. Read-only canvases get that menu for the first time — previously the surfaces where results are actually read had no card actions at all.
-
A canvas can read your filesystem — a card can be fed from a local file or folder, so a board can show what is actually on disk alongside cluster and extension data.
-
Flux reports reconciliation health — all four view modes (table, flow and both split layouts) now show real reconciliation health instead of graph-plumbing counters, and the status tooltip retains the five most recent failures with their reasons, messages and transition times.
-
Flux drift plans — a searchable, read-only view of what has drifted from desired state, computed as an SSA dry run that honours ignore and prune semantics, with staleness evidence so you can see how current the answer is.
-
Reconcile with source — trigger a Kustomization or HelmRelease to reconcile against its source directly from Kunobi, and see ordered ResourceSet steps with each step's name, resource count, template presence and timeout in reconciliation order. Kunobi surfaces the operator's own progress and readiness messages and never infers a step state it wasn't told.
-
Compare two HelmRelease revisions — a read-only, historical diff of any two recorded revisions, computed entirely from the cluster's own Helm storage, without leaving Kunobi. Secret values are structurally redacted before reaching any view or log, and the client makes no Kubernetes writes at all. It is explicitly a comparison of what was recorded, never a prediction of the next reconcile.
-
Your extensions' data gets a map — ten extensions (NATS, Ceph, Cloudflare, Agent Gateway, Redfish, Cilium, SNMP, GitHub, GitLab, Bitbucket) were already publishing entities and relationships into the knowledge graph with no way to see any of it; graph and split view modes existed only on Kubernetes GitOps views. Extension entities now render as a map on the Data surface, beside the table, with node cards built from each extension's own display fields. RBAC, Substrate and a reference Demo extension join in this release, bringing 14 of 16 extensions into the graph.
-
See where a credentialed source came from — single-declaration sources render their provenance graph, so the chain behind a connection is visible rather than implied.
-
NATS: account-scoped JetStream browsing — the Streams view now lists streams through the account's client-protocol API, so you get the whole account regardless of which cluster node you land on. Against a real clustered deployment that is a stable 98 streams instead of a different partial slice on every poll. Configuring a
:4222connection can now pick an existing localnatscontext or.credsfile and connect in one step, with ineligible contexts shown disabled and the reason why. You can drill into a single message for its full payload, page back through older history, and see which cluster node your client last reached. This is a Pro-plan feature. -
Auto-approved AI actions announce themselves — while a temporary approval window is open, covered calls used to execute with no on-screen trace; the only way to notice was opening the Audit page afterwards. A new "Notify on Auto-Approval" setting under AI & MCP → Approval offers Toast or Silent, and defaults to Toast.
Improvements
- Big graph sources stop being a cliff — indexing a few-thousand-entity source used to abort outright, and commit time grew quadratically with source size. Three separate quadratics are fixed: 4,000 entities now commit in about 10 seconds instead of 30, and growth is linear.
- A dismissed approval is no longer stranded — closing the popup used to leave the operation pending and blocking the AI call until it timed out, with nothing on screen and no way back. It now collapses into a badge naming how many operations are still waiting; clicking it restores the card while there is still time to decide. Reloading no longer loses them either, and approve affordances now retire at the deadline rather than lingering past the point they can do anything.
- Kubernetes actions tell you when they fail — a rejected delete was previously indistinguishable from the app doing nothing. Permission denials now read as plain sentences, and every one of the confirm dialogs reports failure rather than just greying out and coming back.
- The right sidebar follows the selected resource instead of freezing on the snapshot taken when you clicked the row, so status, conditions and fields stay live — and the sidebar can no longer disagree with the table about a resource's state.
- Agent Gateway forms and the tool-access editor — six verified defects fixed across the forms, tools and tool-access editing surfaces, and the gateway now tracks upstream v1.4.1 instead of a fork.
- Extension keyboard shortcuts stop colliding with built-ins — extension actions move into their own modifier namespace, so a built-in shortcut never changes meaning inside an extension view, and shortcuts that were silently dead now fire.
- RBAC grants describe themselves accurately — scope is stated per action, so a rule granting delete on one named object no longer reads as a restriction on everything else, and a failed permission check is distinguishable from genuinely having no permissions.
- Sources are ordered and readable — extensions list alphabetically and stably instead of reshuffling as they connect, late-connecting extensions appear immediately rather than after a remount, stacked Add/Edit dialogs no longer overlap, and connection errors are legible.
- Crash reports become useful — crashes now carry a PII-free fingerprint so they can be grouped and tracked across releases, released builds are counted separately from local ones, Rust panics get their own categories, and crash-file handling no longer prompts for keychain access or grows without bound.
- Honest telemetry consent — the notice now describes exactly what is and is not sent, and the exporter refuses to start without approval rather than trusting each caller to check. Update checks still always go out, but carry no analytics identity without consent.
- Agents can ask for just the part of the canvas contract they need — requesting a single widget costs about 4% of the full schema payload, leaving more of the conversation for the actual answer.
- Edit Profile opens the web profile popup directly instead of the bare homepage.
Bug Fixes
- An update no longer looks like a crash — when the app updates underneath a running window, it reloads and carries on instead of raising a crash dialog.
- A held key no longer repeats a destructive action — confirm dialogs ignore OS key auto-repeat, so drain, cordon, rollback and delete run once.
- Canvas layouts survive being used — drag, reset, card deletion and export all keep your arrangement instead of quietly dropping it, and the maximize dialog stays inside the canvas area.
- A corrupt file no longer costs your canvas library — bad files are quarantined rather than emptying the gallery.
- Canvas mutations are durable and ordered — create, replace and upsert are distinct operations, card patches merge instead of clobbering, and an agent's writes are revision-matched so two updates can't land out of order.
- Two canvas authority holes closed — an agent-authored canvas could reach a local repository or watch a whole cluster with no consent step. Privileged sources are now gated behind consent rather than mount.
- Canvas cards are honest — empty canvases say so, stalled cards offer a retry, and unfinished widgets stop looking finished. Large boards stay responsive.
- Graph data stops going missing — partial snapshots no longer retract entities, reads are reauthorized against the current policy epoch, and a repair lane heals relationships the background sweep had dropped.
- MCP bridge commands can't hang — every command carries a deadline and cancellation, and re-delivery is idempotent.
- Ceph — dead keyboard shortcuts, a misrouted delete, and assorted form and column defects.
- Git providers — credential and snapshot defects across GitHub, GitLab and Bitbucket.
- Kubernetes node conditions resolve deterministically, and extension packages keep manifest fields the registry didn't model.
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!