Skip to content

Kubyl Desktop

Changelog

Every release, newest first. Generated from the commit history; the full list lives on GitHub.

  1. v0.9.0

    2026-10-15Latest

    Bug Fixes

    • OIDC browser sign-in shows connection refused; rejected tokens look like sign-in required (#55) 748303f

    Features

    • K9s XRay and Pulses views, :po /filter and label commands (#56) ff85ccd
  2. v0.8.0

    2026-10-14

    Bug Fixes

    • Install elfutils so flatpak-builder can strip the binary 1f93e2d

    Documentation

    Features

    • A dismissible Kubyl Mobile hint on the Welcome tab 8ae3e90
  3. v0.7.0

    2026-10-14

    Bug Fixes

    • Keep the exec status on clusters without the v5 exec protocol (#47) 6638efb
    • Join node names through a unique node_uname_info (#51) 56e95e6

    Documentation

    Features

    • Build a Flatpak bundle and publish it to silo (#48) 9f0be9c
    • Host hooks for child environments, agent capabilities and agent notices (#50) b3f3729
    • Export any resource table as CSV 9188a10
    • A local shell tab with the cluster's context b4e7279
    • An Applications view grouped by app.kubernetes.io labels 5a5da3a
    • Ask the agent about any resource with canned questions 7d3ce61
    • A Security Center over Trivy Operator reports 5e00c29
    • Cost monitoring with OpenCost 1b9f05c
    • Discover EKS, AKS and GKE clusters across accounts 34ea059

    Miscellaneous

    • Update all dependencies, GPUI 0.3.8 and gpui-component 0.7.1 (#46) 54be4f6

    Testing

    • The missing-CLI test must not find the CI image's az and gcloud f617e1e
  4. v0.6.0

    2026-10-08

    Bug Fixes

    • Address CodeRabbit review on phase 21 (review) 5f60d44

    Features

    • Agents over ACP with Kubyl's cluster tools (phase 21) 96ddb5f
    • One Credentials handle for every stored secret, with optional scopes a14a655
    • Scoped credential handles ignore tokens written into the kubeconfig 6740fdb
    • Flux CD sources, Kustomizations, HelmReleases, reconcile and suspend (phase 23) ac26db5
    • Charts, install, upgrade, rollback and uninstall (phase 22) 9546aef
    • Device resources, admission policies, Gateway API, VPA and EndpointSlice views (phase 24) (#45) 2fa5584
  5. v0.5.0

    2026-10-06

    Bug Fixes

    • Base64-encode the client certificate of an exec plugin 5770b18
    • Let service leases cross threads and stores be copied from other threads eab38a4
    • Address CodeRabbit review on phase 20 0ee88c9

    CI

    • Sync winget-pkgs fork before submitting manifest (#34) 5cf2f4a

    Documentation

    • Require the contributor license agreement on kubyl.dev (#35) 989df60
    • Mark phase 18 (Prometheus) as done 7f286d0
    • Add phase 19, split domain logic from the UI a6142b1
    • Phase 19 progress and the core-crates decision 2a784fe
    • Phase 19 status, workspace layout and where logic goes e894102
    • Phase 19 checked against the dev cluster cb18ffc
    • The core-crates check in AGENTS.md and CLAUDE.md fae3e7a
    • Git rules for a public repo with PRs and the CLA 1d4873a
    • Phase 20, the rest of the services on Host e2567ff

    Features

    • Let an app install its own credential store a2a720b
    • Let TestHost run until a condition holds c93bf9d
    • Let features reach a Service through a trait 1d3b0aa
    • Store sources, change sets and the built-in columns in the core b7b8d00
    • Report a session's exit code 43ce089

    Miscellaneous

    • Cargo.lock for the new crate dependencies d755f06

    Refactor

    • Add kubyl_base, the GPUI-free foundation 8c8c35e
    • Add kubyl_settings_core 1b5b576
    • Move kubeconfig, auth, clients and discovery to kubyl_kube_core f7a8434
    • Move the ConnectionManager state machine to kubyl_kube_core 17d495b
    • Add kubyl_resources_core ab80227
    • SharedString, ActiveForward in kubyl_base 770ed64
    • Add kubyl_logs_core ccfdcfe
    • Add kubyl_terminal_core 2307e8c
    • Add kubyl_portforward_core 1cbf3d3
    • Add kubyl_yaml_core 4cf8d35
    • Move discovery, queries and transports to kubyl_metrics_core 14a2810
    • Add kubyl_charts_core 69e9573
    • Move the metrics cache to kubyl_metrics_core ce2727c
    • Move clients, model, matchers and rows to kubyl_alerts_core b0e7559
    • Move the API, model, health, trees and ops to kubyl_argocd_core 288230b
    • Add kubyl_operators_core 9c15fb2
    • Move providers, checks and pre-flight to kubyl_updates_core 8c75824
    • Move fetches, model and completion to kubyl_prometheus_core 7b08233
    • Move backends, model, filters and topology to kubyl_netflow_core 32b6504
    • Add kubyl_files_core fd3b3e1
    • Add kubyl_kubeconfig_core 51a2e69
    • Add kubyl_selfupdate_core 5a2f5a2
    • Add kubyl_palette_core 4c49fb3
    • Add kubyl_overview_core with the event rows and settings bbeb9e4
    • Add kubyl_webview_core 089eb72
    • Add kubyl_explorer_core with RBAC checks and settings 71da1bf
    • The check/download state machine runs on Host 663ff1e
    • Move server kinds, access and discovery to the core 8ee7a3d
    • Move update states and building providers to the core f19b142
    • Move counts, sources and the fetch-and-merge to the core 626b14f
    • Move flow states and Relay TLS rules to the core 884fa69
    • Move settings, app rows and operations to the core 022af54
    • Move OLM availability, snapshots and watch problems to the core 339f20b
    • The updates service is UpdatesCore on a Host 2ebec6f
    • The flow service is FlowsCore on a Host a994367
    • The Argo CD service is ArgoCore on a Host 2f42fd4
    • The alerts service is AlertsCore on a Host 296acda
    • The Prometheus service is PrometheusCore on a Host ed0fe49
    • The OLM and Helm services are OlmCore and HelmCore on a Host c00304e
  6. v0.4.0

    2026-10-03

    Bug Fixes

    • Copy buttons for dialog values that can't be selected 9851100
    • Selection bookkeeping resets itself, holds runs weakly 411dc4d
    • A value that wraps stays on its key's line when copied aacad27
    • Only a row-high content mask is replaced for drag scrolling 7226cfd
    • Cmd+A in the resource list selects the last pane pressed in 10c7081
    • No ticking duration for a finished or suspended Job without an end time 5b69c9f
    • Job history orders by creation and shows store problems 9eadfe4
    • Dedupe equal ids per frame generation, prune closed scopes 5df5895

    Documentation

    • Selection model and screenshot steps dbea448

    Features

    • Selectable text with per-frame document order, scopes and select-all 49c7774
    • Selection frame and select-all wiring 2ae9b5b
    • Selectable details, Describe tab and table Cmd+C d25988b
    • Select text in the alerts, Argo CD, netflow, OperatorHub, updates and web view panes cfbd126
    • Shared job helpers and kubectl status order 66d117e
    • Job history in CronJob details 6dcdb3a
    • Double and triple click screenshot steps 1dc19ae

    Miscellaneous

    • Update Flatpak manifest to v0.3.10 de16e34
    • Drop Flathub/Flatpak packaging and point README at the docs site b6c906d

    Testing

    • Font-independent selection tests 9c56430
  7. v0.3.10

    2026-10-03

    Miscellaneous

    • Update Flatpak manifest to v0.3.9 2abdace

    Plans

    • Note the XWayland probe and DMA-BUF workaround 76b19ca
  8. v0.3.9

    2026-10-02

    Miscellaneous

    • Update Flatpak manifest to v0.3.8 0dfc6da

    Build

    • Link the MSVC runtime statically on Windows 3127470

    Kubyl_alerts

    • Sign in to Alertmanagers behind basic auth fda94a2

    Kubyl_argocd

    • Keep the password of a password sign-in to renew the session dd5b720

    Kubyl_metrics

    • Tell a basic-auth 401 apart from other 401s aa868c0

    Kubyl_prometheus

    • Sign in to Prometheus servers behind basic auth e1271b3

    Plans

    • Decide how basic-auth credentials are handled 5a31383
  9. v0.3.8

    2026-09-30

    Bug Fixes

    • Show Argo CD on clusters whose argoproj.io prefers another version 21bce48

    Miscellaneous

    • Update Flatpak manifest to v0.3.7 a3b55a7

    Kubyl

    Kubyl_explorer

    • Favorite any view; reorder sidebar folders and clusters e0bd276

    Kubyl_prometheus

    • A Prometheus web UI for Prometheus, Thanos Query and VictoriaMetrics d0f97fd

    Kubyl_ui

    • Add the Flame icon 3d1ff25
    • TabBar::tab_element for tabs wrapped in another element 0b95af5
  10. v0.3.7

    2026-09-30

    Miscellaneous

    • Update Flatpak manifest to v0.3.6 7b597c7

    Kubyl_kube

    • Only watches and log follows share the HTTP/2 connection 9a8e383
    • Re-run discovery only when a CRD changes what discovery sees 75b70f4
    • Forget cached CRD shapes that changed during a relist (review) ba82fba
  11. v0.3.6

    2026-09-29

    Miscellaneous

    • Update Flatpak manifest to v0.3.5 abe0c71

    Terminal

    • Bound the output queue so Ctrl+C stops a flood promptly 1fcb54b

    Kubyl

    • Raise the open-file limit at startup 40992c7
    • Log when the open-file limit can't be raised (review) f5aeda9

    Kubyl_kube

    • HTTP/2 to API servers, one connection per cluster 8a1f17e
  12. v0.3.5

    2026-09-29

    DataTable

    • Rows fill the width so cells line up with the header bd78836

    Logs

    • Unwrapped lines scroll sideways, with a horizontal scrollbar 7600610

    Miscellaneous

    • Update Flatpak manifest to v0.3.4 a40a293

    Topology

    • Nodes keep their place and the view its fit across refreshes c583fd8
  13. v0.3.4

    2026-09-28

    Bug Fixes

    • No panic completing after a multi-byte space in the flow filter 9a4e9dd
    • Check read-only, RBAC and PROD for every cluster in a selection 0b6177e
    • Never let a container file name escape the download folder 31948f9
    • Reject unsafe entry names in drag-out staging and image preview 269b868
    • Keep draining tar stdout when local extraction fails ece1069
    • Don't truncate container files on a failed write 7ffd036
    • Only resume a partial download of the same remote file d567a68
    • Don't panic when the preview temp folder can't be created 1e14d37
    • Move blocking local filesystem calls off the UI thread 8ebd388
    • Strip every ESC from bracketed pastes 2e7ae57
    • Cap terminal output batches at 256 KiB f50456d
    • Clean up privileged node-shell pods on quit, failure and aborted create 4477c91
    • Refuse cmd.exe metacharacters in cloud CLI arguments ff7ec16
    • Validate the EKS region before building the endpoint host af33a6b
    • SUC updates only to versions from the fetched channel list 00a50c6
    • Confirm dialog waits for the pre-flight run and follows its results 41137a7
    • A rekey during a write no longer leaves the cluster busy 54d2dce
    • EKS reads describe every update and report describe errors d96c025
    • No integer overflow on server-supplied versions 331f392
    • CAPI read fails when KubeadmControlPlanes can't be listed cb98223
    • OpenShift patch clears a stale desiredUpdate.image f30a054
    • Cache short-lived cloud credentials for part of their life f40a621
    • Typed confirmation for Scale on PROD from list/palette 9771bb5
    • Mask Secret data in Copy YAML d88175b
    • Include the cluster id in list RowId 24cfd61
    • Loopback OAuth callback tolerates idle connections and checks state on errors e76f116
    • Only drop the OIDC refresh token on invalid_grant 0fc8f33
    • Keep a pending or confirmed scale when the details target changes 487534a
    • Report skipped items when part of a bulk action didn't run 430204f
    • Ignore stale kubeconfig reload results 2a076fe
    • Plan and start the kubeconfig watcher off the UI thread 39db6f0
    • Repeat RBAC checks after a reconnect or a failed check cc93f18
    • Keep PROD and read-only flags while a cluster is disconnected 593ff9f
    • Reject OpenShift tokens the API server treats as anonymous cc73347
    • Serialize dev file credential store updates 71613b8
    • Confirm Cordon/Uncordon, typed on PROD 5c4b040
    • Key alert selection by (cluster, fingerprint) 9e53a9f
    • Copied helm commands carry --kubeconfig 3c75908
    • Uninstall with CRDs keeps CRDs another CSV owns aaadab2
    • Clamp sync-window duration and bound the walk 28425ee
    • Confirm Terminate and switching sync policies on 2b7d67e
    • Sign-out cancels a sign-in in progress acf28cf
    • Record the API forward at once and match ids in forward_stopped 5a10314
    • Iterative glob_match c83d504
    • Only keep http(s) argocd-cm urls 06bf5c3
    • Drop in-flight API requests on connect/disconnect c3376a1
    • Check patch RBAC before a Kubernetes-mode delete and bind it to the UID f9c0f66
    • Fill_between can't index past a shorter baseline f8d8b6c
    • Short_repo strips credentials up to the last @ before the path 60e271f
    • Never overwrite an unparsable settings.json 01e033a
    • Don't panic when a settings section is not an object ab9fdca
    • Unique temp file and ordered, serialised settings/state writes 68bdb07
    • Wait for in-flight settings/state writes on quit 392b719
    • Private config dir when there is no platform config dir fa4c23c
    • Read the wizard's certificate file off the UI thread 7a162fd
    • Exec-plugin consent covers where a relative command points 037df1d
    • Verify existing Secret and bindings before importing a service-account token 0a946d1
    • Don't keep every finished load task in the editor a8beee0
    • Preview update channel falls back to stable; manifest channel is checked df5fb5e
    • A panic while applying an update no longer crashes the app 63c23b2
    • Pin the signing identity when verifying a downloaded macOS bundle 94b07e5
    • Step past a full page of already-sent Loki records ca41ba8
    • Do not request a Loki URL the FlowCollector chose 132bbe8
    • Park an idle web view on about:blank 8a36034
    • Re-create the web view when Private changed during creation 7c89358
    • Do not save accepted certificates in Private mode 12312c2
    • Ask before a page opens the system browser 785f40b
    • Escape quotes and backslashes in LogQL regex values f7ae474
    • No unchecked arithmetic on Loki/metrics numbers fe3a5b6
    • Stop the replaced state's relay forward on Rekeyed 851ac58
    • Keep Seen counts exact past 2000 values 22f1283
    • Mask more credential headers 9a53edd
    • Parse E/Ei quantity suffixes 119b1c9
    • Avoid underflow with an oversized recent list 7ec2f4f
    • Treat a pod as unlimited when any container lacks a limit f74a725
    • Stop port-forwards when their cluster disconnects or is removed 3ecf677
    • Gate the write-script test helper to unix cbf2158
    • Treat rooted exec commands as absolute on Windows 65b57be
    • Restart alerts state on cluster rekey 5a0431f
    • Bump generation on drop_cluster, stop old forwards on discovery 16deed4
    • Keep previous alerts when every Alertmanager read fails cd2cf72
    • Do not start a refetch while a read is in flight ceba62c
    • Keep the silences list and report the error when the read fails 9c38116
    • Skip target check without a namespace, encode path segments cc77e4b
    • Expire the PrometheusRule lookup cache 9b8a8c0
    • Report failed silence undo, check read-only in recreate_now a89817d
    • Cache decoded CSV icons 1307025
    • Ignore uninstall submit while one is running 3dd5693
    • Only list CRDs the uninstall will delete 3db69ef
    • Restart an in-flight OperatorHub fetch on rekey f7e2e04
    • Refresh Secret originals when only the masked render is unchanged 9108163
    • Cap YAML alias expansion 4003566
    • Cap log line length, fetch size and JSON level parsing 52fff30
    • Bound the gone-pod chips in the logs view d49bb99
    • Bracket IPv6 hosts and use the bind address in active() 7925d52
    • Bind the one-click forward's port off the UI thread, no probe race 2b862e4
    • Enforce read-only on saved and auto-start forwards 775bd0d
    • Re-read the client after resolving a workload selector 43d24ce
    • Pass the new fallback flag in the netflow live test defff9d
    • Address review feedback on phase 17 fixes e654b2a
    • Gate the unusable-fallback settings test to unix 4e03162

    Documentation

    • Add phase 17 code-review fixes checklist eb9f538
    • Tick all phase 17 findings and update handoff log 58f3f5e

    Miscellaneous

    • Update Flatpak manifest to v0.3.3 af6b722
  14. v0.3.3

    2026-09-28

    Miscellaneous

    • Update Flatpak manifest to v0.3.2 3d52b61
  15. v0.3.2

    2026-09-27

    Bug Fixes

    • Move Flathub manifest update into release.yml as a job b0be571
    • Run manifest/artifact fetches on the Tokio runtime (#18) 3ec09da

    Miscellaneous

    • Update Flatpak manifest to v0.3.1 3780a0a
  16. v0.3.1

    2026-09-27

    Bug Fixes

    • Install minisign via apt, not taiki-e/install-action 0e77618
  17. v0.3.0

    2026-09-27

    Bug Fixes

    • Import Cursor for the Linux test module too edd0c23
    • Replace the whole app bundle on macOS, add HTTP timeouts fe35140
    • Publish-flathub committed to a detached HEAD, not main e9c1e60
    • Correct binary path, add aarch64 and Metainfo, fix update script 2bda980
    • Vendor the GTK plugin, fail loudly on a missing WebKit helper 6d142f8

    CI

    • Prevent Windows CRLF normalization on signed test fixtures 40f9c7e

    Documentation

    • Winget PR submitted, PR #16 merged 7b58785

    Features

    • Add Linux AppImage packaging d128ecd

    Packaging

    • Add Flathub manifest and auto-update workflow ee23b69

    Plans

    • Update phase 09 with distribution and auto-update status cecb0cd
    • Kubyl.dev is registered and live 5fff87f
    • README badges/contributing/license already done 0337700
    • Log the CodeRabbit review pass and Windows CI fix 0790223

    Release

    • Sign the update manifest and publish to winget and silo 00420b8

    Selfupdate

    • Add kubyl_selfupdate crate for app auto-update d97903f
  18. v0.2.5

    2026-09-27

    Plan

    • Filter every Flow field in the network flows table, not a subset 8119e83

    README

    • Features, install, build, contributing, sponsoring 955c5f7
    • Sponsoring without tiers, any amount helps f17703b

    Design

    • Board 18 (network flows: live table with filter chips, completion and flow details; topology at namespace and workload zoom; Calico Whisker and NetObserv without Loki; no flow source and a forbidden port-forward) 7e350b3
    • Phase 16 screenshots of every board 18 frame on the kind clusters 49af0ec

    Kubyl_charts

    • Force-directed graph layout with warm starts and fitting (kubyl_charts::graph, phase 16) df47f55
    • Layouts that don't depend on node order, and grouped layouts (phase 16) 732f71d

    Kubyl_explorer

    • Namespace views other crates add to the favorites menu (catalog::register_namespace_view, phase 16) 576c01d

    Kubyl_metrics

    • Transport::get_lines streams a response line by line (server-sent events for Calico Whisker, phase 16) 231b7e3
    • Transport::loopback for HTTP over a temporary port-forward (phase 16) ed0d2ec

    Kubyl_netflow

    • Stub crate (phase 16) with the vendored Hubble API (Cilium v1.20.2 protos, generated by protox in build.rs) b44ff51
    • Flow model, filter language with completion, ring buffer, topology aggregation, detection and the Hubble Relay, Calico Whisker and NetObserv backends (live tests against the netflow-dev.sh clusters) 6abf794
    • The Network Flows view, its service, actions and details section (phase 16) eb70169
    • Whisker over a temporary port-forward; blocking states like board 18 (phase 16) 5d297f8
    • The view against board 18 on the kind clusters (phase 16) 5347ce0
    • Only the blocked count is red in the details section (phase 16) 2f46f66
    • Review fixes (phase 16, review) 7f98939

    Kubyl_ui

    • Waypoints icon (network flows, phase 16) 1936496

    Plans/16

    • Correct the plan after the spike (Whisker's HTTP API instead of Goldmane's mTLS gRPC, Calico 3.30+, Hubble's policy fields, isolation vs deny rules, NetObserv through Loki and its metrics, gRPC through forwards only) 117eedd

    Plans/README

    • Phase 16 decisions (flow model and providers, detection and overrides, transports, buffer and streaming, filter language, topology layout, sensitive fields, read-only clusters) 09e12c3

    Script

    • Netflow-dev.sh (kind clusters with Cilium and Hubble Relay, NetObserv with Loki, Calico with Whisker; payments and storefront traffic, an isolating NetworkPolicy and a deny rule) 81d43a8

    Workspace

    • Tonic, prost and protox for the Hubble Relay client, fjadra for the topology layout (phase 16) b43bf0e

    Zed

    • Run task uses the file credential store 8740ee4
  19. v0.2.4

    2026-09-27

    AGENTS.md

    • Phase 13 live tests, cloud provider fixtures and mock endpoints 1d3017c

    CI

    • Clippy and test the cloud update providers' features, cargo-deny with all features (phase 13) 3832633
    • Cargo-deny keeps the action's default --all-features (review) f31b819

    Design

    • Board 8 frames (OpenShift channel, update graph, pre-flight, progress, confirmation, EKS, k3s, read-only, credentials) and the Route frames (Routes under Network, Route web view) 2c08474
    • Phase 13 Routes screenshots 2cf0f0f
    • Phase 13 screenshots (OpenShift updates, channel, graph, pre-flight, progress, confirmation, EKS, k3s, self-managed, read-only, credentials missing, provider not built, 403, Route details) 8bf209a

    Kubyl

    • Forward the cloud update provider features (updates-eks, updates-gke, updates-aks) 87c3d90

    Kubyl_argocd

    • Route keys stay masked in live/desired diffs (phase 13) bedca86
    • The TLS key note covers a stale last-applied copy (review) 7044cd7

    Kubyl_explorer

    • Routes under Network with their own details (phase 13) 27b2c50
    • Route details resolve numeric target ports through the endpoints (phase 13) 3910027

    Kubyl_metrics

    • Read monitoring Routes through the shared Route model (phase 13) 2bc41db

    Kubyl_operators

    • Mask inline Route keys in Helm manifests (phase 13) c036b4a

    Kubyl_palette

    • Route and Service references (phase 13) 1d47bc0

    Kubyl_portforward

    • Forward a Route's or Ingress's backend Service (phase 13) f3266e1
    • Route forwards read the backend's EndpointSlices (phase 13) 188c1f9
    • The Route live test takes namespaces without Ingresses (real clusters) 44ed669
    • Backend forwards match the API group as well as the resource (review) 342a17c
    • The Route live test fails when a backend doesn't resolve (review) 8d4a895

    Kubyl_resources

    • Route model, columns and target port resolution (phase 13) 27c0d35
    • Resolve numeric Route target ports through the endpoints (phase 13) 6dc7a3b
    • A Route's named target port reports the number its endpoints serve (phase 13) b6122dc
    • Wider Services and Admitted columns for Routes (phase 13) 07893ee
    • Mask a Route's last-applied copy when it still holds a key taken out of spec (review) 8856f0c

    Kubyl_ui

    • Route icon (OpenShift Routes, phase 13) 67e5912

    Kubyl_updates

    • Provider trait, detection, model, versions, removed-API table, settings bf19337
    • OpenShift, k3s/RKE2 (system-upgrade-controller), Cluster API and read-only providers, pre-flight checks, the update service and the Cluster Updates tab 0dcec4a
    • Provider override in settings, live tests against the dev clusters 26bcdd6
    • Shared cloud provider plumbing (CLIs, HTTP, errors, exec plugin, credential cache) 64ed5d5
    • Amazon EKS update provider (updates-eks) 12dc54f
    • Cloud API endpoint overrides (KUBYL_UPDATES_{EKS,GKE,AKS}_ENDPOINT) 962b53f
    • Google GKE update provider (updates-gke) 21881ae
    • Azure AKS update provider (updates-aks) e09175a
    • The read-only OpenShift live test runs the pre-flight checks too 3f2b4d2
    • Operators and pools first while an update runs, wait for Prometheus discovery before the checks, node pools follow the control plane, write hints only where the provider can write, wrapping and graph fixes f667089
    • Live test that updates the k3d cluster through its Plans and follows it 11f2571
    • One recorded-response bundle per cloud (tests/fixtures/{eks,gke,aks}.json) 3f1ec7d
    • Review fixes: the last-applied scan picks the kind's own group and never passes on an incomplete scan, pre-releases sort before their release, a pre-flight run without inputs finishes, one note for failed EKS add-on versions, AKS pools target only newer versions 75892bf
    • Pre-release stages order before their numbers (ec < fc < rc) (review) f2873b9

    Kubyl_webview

    • Web views of Route backends (phase 13) 659df65
    • Route web views resolve numeric target ports through the endpoints (phase 13) a6a502b

    Kubyl_yaml

    • Route template and inline TLS key masking (phase 13) 330b578
    • Stale Route keys in the last-applied copy stay masked in the editor, manifests and apply history (review) 50aab37

    Plans/12

    • OpenShift check done on the user's test cluster 3525e80

    Plans/13

    Plans/README

    • Phase 13 decisions (update providers, writes, removed and deprecated APIs, cloud credentials, features, Routes) 42c17c0
    • Phase 13 extension points (update state, provider trait, Route helpers) and the cloud providers' details 0d3180c

    Script

    • Updates-dev.sh (PDB and removed-API Helm release on kind, a fake OpenShift cluster with ClusterVersion, operators, pools, APIRequestCounts and Routes, a k3s cluster with system-upgrade-controller) 54236b6

    Workspace

    • Hmac for SigV4 signing of the EKS update provider (phase 13) 5e7b7ca
  20. v0.2.3

    2026-09-26

    Bug Fixes

    • Data protection keychain for release builds, no more keychain prompts 3362bb0

    Design

    • Phase 12 screenshots (Operators, OperatorHub, upgrade review, Helm releases, states) 66b9c32

    Kubyl_explorer

    • Helm Releases row under Administration, not gated on OLM (phase 12) 2951c8f

    Kubyl_operators

    • OLM and Helm data layer b2d3718
    • Services, views and dialogs e27e4bd
    • Live tests; icons, plain-text descriptions, transient ResolutionFailed, review order, dialog focus ff2b54d
    • Release tabs wait for their cluster, OLM v1 template without installer accounts, 5,000-row test; olm-dev.sh --reset-manual and v1 with any cert-manager namespace; docs a74cb12
    • OLM v1 condition tones and Retrying, tab title follows the sub-tab, no list hints on blocking states, plain-word RBAC hints; olm-dev.sh v1 sample grafana-operator d814250
    • Live tests point at olm-dev.sh --reset-manual af01a14
    • Loading until discovery is known; History loads revisions as they arrive (review) 65c0472
    • Only Subscription and CSV watches block api::installed; Helm watch errors before the scope; OperatorHub's installed filter follows subscriptions; v1 banner matches the template (review) fadb0d0

    Kubyl_ui

    • Anchor icon (Helm releases, phase 12) fcd7c34

    Kubyl_yaml

    • Open_draft opens a new-resource editor with given text and a note (for phase 12's operator examples) 0152b96

    Mockups

    • Board 7 frames for OperatorHub, install, upgrade review, alm-examples, install plans, subscriptions, Helm releases and the OLM states 2373161

    Olm-dev.sh

    • --delete removes only a cert-manager --v1 installed, and operator-controller's CA where it went; plans: PROD confirmation per write (review) 4d9ee19
    • --delete removes only what the script installed (marked namespaces); waits for a running cert-manager's webhook and retries operator-controller's apply (review) ad06856

    Plans

    • Phase 12 decisions (OLM data and joins, upgrade review sources, OperatorHub, install/uninstall, OLM v1, Helm, views) 2236c0e
    • Phase 12 done (checkboxes, handoff log; Operators views and OLM v1 rows) 566557f

    Release.yml

    • Sign with the certificate the provisioning profile names, fail on an expired profile (review) 50fb698

    Workspace

    • Flate2 for gzip-encoded Helm releases and OLM bundles (phase 12) 182ab96
  21. v0.2.2

    2026-09-26

    Cargo.lock

    • Kubyl_alerts at the workspace version 0.2.1 (after merging main) 467ee10

    Design

    • Boards 16 · alerts and 17 · cluster status, grouped contexts, ConfigMap data; status dots on every sidebar bbba219

    Kubyl

    • Tabs follow their cluster when its id changes (grouped contexts) and are saved with current ids 37543f0
    • Tabs with unsaved changes aren't rebuilt when cluster ids change (review) b97bee3

    Kubyl_alerts

    • Stub crate for alerts (phase 14) 5decb38
    • Settings, model and parsers, matchers, merge, discovery and the Alertmanager client (phase 14) 012b8d8
    • The alerts service, the Alerts view (alerts, silences, rules), the silence editor and the chrome; alertmanager-dev.sh and live tests (phase 14) 5622f62
    • Readable values, source column, collapsible rule groups; tests for transitions, notifications, optimistic writes, 5,000 alerts and Debug output (phase 14) 3b636a5
    • List silenced and inhibited alerts after the active ones, marked as firing with a bell-off or eye-off icon (phase 14) c661964
    • Silence dialog and filters at the UI text size, the preview visible, wrapped PROD warning; overview card aligned with the tiles (phase 14) 62a9b44
    • Keychain headers keyed by the API URL (with path, without trailing slash); no overflow in durations; service updates don't keep hidden tabs at the fast pace (review) 4bf427e

    Kubyl_argocd

    • Confirmed installs keep their key when contexts are grouped (phase 15 follow-up) dee001c

    Kubyl_core

    • ClusterIds resolves out-of-date cluster ids; ViewRegistry::build uses current ids (phase 15) 569a5bc

    Kubyl_explorer

    • Connection status slot and tooltip on cluster rows, faint favorites while disconnected, cluster order and "connected only"; expanded roots connect once kubeconfigs are loaded 51599d7
    • ConfigMap data in the details (blocks per key, formats, YAML highlighting, binaryData, key filter, copy all), "Used by" for ConfigMaps and Secrets, multi-line revealed Secret values 3474e1b
    • Grouped clusters in the sidebar (member tooltip, show separately), favorites and the namespace picker resolve to entries eb0bcef
    • Rows other crates add under each cluster (register_view_row, with a badge, following group_order and hidden_groups) and markers on cluster root rows (phase 14) aede899
    • Keep the watched ConfigMap/Secret object on repeated selections, escape backticks in .env exports, no "Show as One Cluster" while grouping is off (review) e0ac831

    Kubyl_kube

    • One entry per cluster and user (context grouping), resolve and settings_keys, re-keying without reconnecting 790d091
    • The grouping test doesn't assume '/' as path separator (Windows CI) (phase 15) 33ea948
    • Contexts of a group shown separately keep the group's Production and Read-only flags; turning one off keeps it for the siblings (review) 5dc04f5

    Kubyl_metrics

    • Metrics.prometheus and the keychain header through settings_keys (phase 15 follow-up) 631dbb9
    • The transport becomes a public module (service proxy, direct with bearer, roots and TLS server name, external URL with header and mTLS, get/post/delete); through_route takes the probe path; PromClient::api and MetricsService::prometheus (phase 14) 884b718

    Kubyl_palette

    • @ contexts show the connection state like the sidebar (phase 15) 03c9acf
    • @ finds a group by its contexts' names and opens it in that namespace 055f2be

    Kubyl_portforward

    • Saved forwards start on their grouped cluster (phase 15 follow-up) fa15398

    Kubyl_ui

    • Pulsing status dots, tooltips on tree rows, an end slot in section headers (phase 15) d124ca8
    • Siren, bell-off and list-checks icons (phase 14) 2e9a075
    • Rustfmt the toast action button (phase 14) 110de50

    Kubyl_webview

    • Web view stores of a group keep their key through oc project (phase 15 follow-up) 55e6864

    Kubyl_yaml

    • Apply history recorded before contexts were grouped still shows (phase 15 follow-up) 2081bed
    • Apply history combines the entry's and its former contexts' histories (review) 98c13c6

    Plans

    • Decisions of phases 14 and 15 (context grouping, alerts, Alertmanager credentials) 1ad5371
    • Phase 15 parts 1-3 done (handoff so far) 703c132

    Script

    • Oc-contexts-dev.sh writes oc-style contexts for the kind cluster to a scratch kubeconfig c52d9a5
    • Oc-contexts-dev.sh refuses to overwrite its source kubeconfig or write into ~/.kube, also for files that don't exist yet (review) 935c9e5
  22. v0.2.1

    2026-09-26

    AGENTS.md

    • Gotchas for dialogs in GPUI tests and on_next_frame on macOS be1191c

    Design

    • Board 11 · kubeconfig editor (form, YAML and test results, wizard, save preview and exec consent) ad00be5
    • Phase 11 screenshots (kubeconfig editor, test, wizard, save, consent) 8f888ea

    Kubyl

    • "New kubeconfig…" in the Explorer's + menu cb2ec15

    Kubyl_core

    • ViewRequest::for_path, NewKubeconfig and EditKubeconfig actions 30aeebd

    Kubyl_kube

    • Context_info for kubeconfigs that aren't loaded, move_context_settings 735bc4a
    • Open the kubeconfig editor from the Clusters tab; proxy helpers public 4f530a8
    • Pasted kubeconfigs list their exec plugins and need trust 389b149

    Kubyl_kubeconfig

    • Stub crate for the kubeconfig editor (phase 11) 88aca01
    • Document model, comment-preserving writer, atomic saves with backups, certificates, TLS checks and CA fetch 98b64b2
    • Editor tab, forms, YAML tab, connection test panel, dialogs, wizard, imports 4c68f44
    • Save through the editor, folders from the global, editor and live UI tests 953e430
    • Polish from the screenshots, service-account live test e082caa
    • Live test for OIDC sign-in from the connection test df356f6
    • Fix an unused variable in a files test on Windows 92846a3
    • Review fixes 3155bef
    • The wizard counts a test only once it ran 6309333

    Plans

    • Phase 11 decisions: which kubeconfigs Kubyl writes, comments, credentials, consent 050fcac
    • Phase 14, alerts (Alertmanager) 37d61b2
    • Phase 15, polish (connection dots, context grouping, ConfigMap data) 757852f
    • Phase 11 done (handoff log, decisions, extension points) c0951b3
    • Phase 15 label examples with made-up hosts and user 66341f6
    • Phase 11 handoff and decision table: second hash check, masks a5e5c3a

    Workspace

    • Rustls, rustls-pki-types and tokio-rustls as direct dependencies (versions and features kube already uses) 239c382
  23. v0.2.0

    2026-09-25

    Design

    • Argo CD boards (applications, resource tree, history and rollback, sync) 0d8c65d

    Kubyl

    • Show tab dots, close tabs that ask for it 79c460c
    • Web view snapshots in harness screenshots 8bd0132
    • Screenshot runs opt out of App Nap (macOS) 2d46cc7
    • Screenshot waits don't depend on dispatch timers 59cf4c1

    Kubyl_argocd

    • Stub crate for phase 10 (Argo CD) 4807e50
    • Model, Kubernetes-mode actions, API client, detection ff79abd
    • Applications, application tab, dialogs, dock, actions 8c4505a
    • Fixes from running against kind bfdcff5
    • UI follows the CRDs; live UI test 563b824
    • Rollback options align; mode tooltip says what API mode adds eeaaed0
    • SSO sign-in, and the Argo CD UI opens signed in 3d5cb79
    • SSO sign-in survives the dialog; explains confidential clients 1ff7df6
    • Fixes from review e2357b3
    • SSO in the browser only; Argo CD UI at its own URL for SSO d3461c5
    • Signing out revokes the Argo CD session 48ce535

    Kubyl_core

    • Button cells and extra columns for existing kinds f8f8c19
    • Argo CD caps, list/object view overrides, edit notices f3bb46c

    Kubyl_explorer

    • Contributed tree groups, kind-specific object views e0226dd
    • PVC details list the pods using the claim 001daf5
    • Rustfmt 7daf460

    Kubyl_kube

    • Fill ClusterCaps::argocd from discovery 09f1647
    • Re-run discovery until new CRDs are served 33ea83b
    • Loopback redirect helpers and jwt_expiry are public 23f9d79

    Kubyl_logs

    • Open_filtered opens a log view with a search applied 809643b
    • Open_filtered can search with a regular expression 4e632b5

    Kubyl_palette

    • Open kinds and objects in their registered views 3243d20

    Kubyl_portforward

    • Temporary forwards for other crates 3f52024

    Kubyl_ui

    • Icons for Argo CD (branch, commit, fork, history, rollback…) 781c32c
    • Check icon 6b1517d

    Kubyl_webview

    • Stub crate for phase 08 b8f285f
    • Service web views over temporary port-forwards a3c6d80
    • Linux web views, macOS fixes d4d1a6d
    • Idle and download fixes, timings 0d3c943
    • Typing a path in the address bar, closed tabs let go e23adcb
    • Review fixes 3be0951
    • Don't abort on a page without a URL (macOS) 49ab311
    • Session cookies from crates holding a session for a target cfb2b8a
    • Session cookies on macOS without blocking b3cb5f5
    • MacOS session cookies that older WebKit takes 5d0bb15
    • Session cookies try wry's set_cookie first on macOS 79afd27
    • Live_webview says what the store holds when a session cookie is missing 7f4fbdd
    • MacOS session cookies are secure only for https b214310

    Kubyl_yaml

    • Reusable diff view, edit notices as a banner c6f6b93

    Plans

    • Phase 08 done, web view decision and screenshots 8c0fe67
    • Phase 10 done (Argo CD), screenshots, README decisions and extension points 8cad2ac
    • Phase 10 SSO, signed-in Argo CD UI, PVC pods; screenshots cab6c74
    • Phase 10 sign-out revokes the session f93dfe8

    Script

    • Webview-dev.sh for trying service web views 7b8dbfa
    • Argocd-dev.sh installs Argo CD with sample apps on kind f38132f

    Workspace

    • Web view dependencies 84a2595
    • Gtk and webkit2gtk for Linux web views e88cef7
    • Wry's devtools feature 35f33e5
  24. v0.1.2

    2026-09-25

    AGENTS.md

    • Rewrap the screenshot steps 59e4a0e

    Shared

    • Harness drag and file-drop steps, dialog Enter fix, board 9 mounts debf90e
    • ForwardPort/StopForward actions and the ActiveForwards global 9354d85
    • Scroll step for the screenshot harness a8c5f47

    Workspace

    • Activating a dock panel un-zooms the pane c6b32ae
    • Wrap long messages in the notification history 2113775

    Kubyl_charts

    • Line, area and stacked charts, sparklines, time ranges 8033f0d
    • Binary value axes for byte charts c842f9b
    • Fix the binary axis test expectation 0bbdc14
    • 8 series colors, ColorRegistry, compact charts 6b82231

    Kubyl_core

    • DetailsSection extension point ba08c2f

    Kubyl_explorer

    • Files sub-tab, ports with one-click forwards, scale buttons ff667ed
    • Usage sparklines, metrics re-sort, Events and namespace overview routes b7394d3
    • Render contributed details sections 6cd6e22

    Kubyl_files

    • Remote listing, capability probe, transfers and queue 2a6a693
    • File browser view, drag and drop, preview and edit in place 18d2400
    • Narrow layout for the details dock 2751e05
    • Fixes from review edcab62

    Kubyl_kube

    • Remove sources, toggle the default kubeconfig, delete pasted ones 971acf4
    • Expose the user's bearer token per cluster ff2af88
    • Keep the sign-in dialog open on Enter cb34ca9
    • OpenShift OAuth sign-in c638703
    • OpenShift OAuth review fixes 8970514

    Kubyl_logs

    • Finish the log view, streams and Active Sessions panel 43355c8
    • Detect levels after timestamps, stack traces keep their level 17c0ba1
    • Fixes from review 3a6cff2

    Kubyl_metrics

    • Prometheus discovery and client, metrics-server fallback 9e0a604
    • Network, disk and pressure metrics in the details a95fbea
    • Fetch less on busy clusters 605e62d
    • OpenShift monitoring through its Route 73a73fc
    • Review fixes 8f502f6
    • Only trusted Routes get the user's token 7bdd567

    Kubyl_overview

    • Cluster overview, events stream and Events view 6e4e956
    • Format the live test 0c3037e
    • Fit the Events toolbar and namespace tiles at dock width 371d3d2
    • Open the Events dock with the overview, label cordoned nodes cf35449
    • Shared series colors, network/throttling/disk/drop charts 9ae4286
    • The namespace overview asks only for its pods' usage 22185cf
    • Review fixes 5893693

    Kubyl_portforward

    • Port picker, saved forwards, reconnect state, browser buttons 522a26d
    • Format the live test 6362d18
    • One-click forwards and the shared forward list 0a6c26b
    • Fixes from review 8a67329

    Kubyl_resources

    • List watches, pause and resume them 0e37dec
    • Metrics::changed revision for usage observers 6fd06db
    • MetricsProvider::source_status 6a9233b

    Kubyl_terminal

    • Cell-grid renderer, attach, debug containers, node shells, dock panel e2c9208
    • Fixes from review d5b518a

    Plans

    • Phase 05 done f5c563b
    • Phase 13, kubeconfig editor a97a9d7
    • Phase 06 done 29f44b2
    • Phase 13 security notes from review 75eee88
    • Phase 07 done; metrics, charts and events decisions and extension points d4561ec
    • Phase 07 metrics details, shared chart colors, DetailsSection b4f425d
    • Phase 07 handoff before merge 9ca9da8
    • Phase 07 handoff for OpenShift and the review fixes f696700
    • Renumber the phases after 07 78ab878
    • Phase 07 security notes, phase 13 reference ac993f6

    Script

    • Prometheus-dev.sh (metrics-server and kube-prometheus-stack on kind) 0364718
  25. v0.1.1

    2026-09-25

    Kubyl

    • Fix macOS app icon not being bundled 09347d2

    Kubyl_explorer

    • Inline YAML/Logs/Terminal sub-tabs and Secret value reveal 04eca7a
    • Full-width YAML/Logs/Terminal sub-tabs in Details view 864ad46
    • Drop the 980px width cap on all Details sub-tabs 33b3403

    Kubyl_kube

    • Fix the cluster switcher (and other title-bar actions) doing nothing 7ac4ab0

    Kubyl_logs

    • Log streaming, search, level detection, active sessions 2d01b7c
    • Fix CodeRabbit findings from PR #1 review f8bbf56

    Kubyl_portforward

    • Pod/Service/workload forwarding, connection manager 10e286f
    • Fix CodeRabbit findings from PR #1 review c9481e1
    • Fix second CodeRabbit pass findings 809b531

    Kubyl_terminal

    • Alacritty_terminal grid, exec bridge, shell view 1b17e87
    • Fix CodeRabbit findings from PR #1 review 417f975

    Kubyl_ui

    • Add EyeOff icon for masked-value reveal/hide toggles 912c47c

    Plans

    • Update phase 05 status and handoff log d7c37b9
    • Log the Details pane sub-tabs and Secret reveal feature 8298b31

    Release

    • Fix version-bump push to protected main 58dd940
  26. v0.1.0

    2026-09-24

    Kubyl

    • Native Kubernetes desktop client 839a3dc

CHANGELOG.md on GitHub