You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
1285b99 ci(release): gate tag releases on vet and tests, and exercise release-notes.sh against the last tag in ci
3e41b52 docs(browse): correct the flux reconcile comment that claimed the will-run line and patch share one timestamp
1854406 docs(claude): note that pod effective requests honour pod-level resources and in-place resize
543d1a0 docs(claude): say confirm keys route through controller.handleconfirmkey instead of per-screen y/n handling
2c90768 docs(claude): say the job rerun and cronjob run-now staging live in the shared jobactions package
8e9801e docs(design): note ready unknown as reconciling progress and the with-source reconcile's partial-failure behaviour
bac4383 docs(design): say 4c's r re-probes the switch context list
a836acd docs(design): show the argo cd sync patch crediting operation.initiatedBy in the 33a mockup
4c67c40 docs(design): specify the keybar's still running line for a write in flight past one second
c227c66 docs(design): spell every key chord in the design spec and claude.md as ctrl+x, matching the keybar
07aa0be docs(helm): correct comments that still call the release cache cluster-wide
efc3e03 docs(kube): name a forward's pod-event pods get as a sanctioned one-shot read and note forwards from another context rely on their tunnel failing
8c78c97 docs(kube): note that the exec-plugin stderr swap races unsynchronised os.stderr readers
d92b51c docs(lazy-informers): bring the kindsynced signature, helm scope and breadth-first consumer list in line with the code
759a2e8 docs(readme): describe ctrl+k force delete and the always-modal namespace and crd delete
c1515ac docs(review): add feature-by-feature whole-app review and summary
0d7aac7 docs(site): list the debug clean-up, job attempt diff and failed-only, secret paste, and label remove and copy keys in the keyboard reference
768bbeb docs(site): match the website's light palette to the app's raised-contrast theme colours
a73ba95 docs(site): spell every key chord in the guide as ctrl+x, matching the keybar
44853c8 docs(timeline): correct the claim that pairing a flux commit subject never starts a source informer
30b7946 docs(timeline): say argo sync resolution starts the application informer on first read instead of claiming it reads only started caches
5a31a0a docs(tui): correct the labels/annotations and secret editors' comments that still name ctrl-d as the removal key
f873108 docs(verbs): name the registry's D delete and R rollout-restart keys in code comments and pin the docs' key mentions to the registry
84e08bd docs(verbs): say a keybar key may never be a string literal, only its label
5aab87f docs(website): correct the guide's key bindings to match the app
b683188 feat(config): let argo cd's u find the dashboard url in a control-plane namespace set by argoCDNamespace in config.yaml
4437536 feat(tui): find and switch to kubeconfig contexts by typing their name in the jump palette
019f388 feat(tui): follow a flux reconcile failure past the failing workload to its worst pod and show the real reason, like exit 137, oomkilled
7f5d7c9 feat(tui): jump to a custom resource's owner from its detail view with 1
2597b5a feat(tui): page the nodes list and node detail's pods with pgdown/pgup, so paging down never opens a drain confirm
dcdfa09 feat(tui): show a still running line on the keybar while a slow write is in flight instead of nothing
8364adb fix(app): keep lists refreshing while a kind changes faster than every 250ms
c31f684 fix(app): keep r working on the unreachable-cluster screen after a reconnect or context switch fails to build the new cluster
e121e7c fix(app): make a kubeconfig path typed on the setup screen work under --kubeconfig, and reconnect to the launch context, namespace and kind instead of the file's current-context
627465d fix(app): print the crash footer below bubble tea's stack trace for a panic in a background command
9103042 fix(app): restore the terminal and write a crash report when a background goroutine panics, instead of leaving the shell in raw mode on the alt screen
41e8a1f fix(app): save session state when the terminal window is closed instead of losing it
b32bb12 fix(app): stop a double enter or r on the unreachable-cluster screen leaking a second running cluster, and stop its reconnect racing the screen it replaces
f641a13 fix(app): stop restoring the location kute crashed on at the next launch
529c9d5 fix(cli): reject an unknown --theme, stray arguments and invalid namespace names, and warn when --demo ignores --context or --kubeconfig
593f9d5 fix(config): make ctrl+p change only prodContexts in config.yaml, keeping comments, unknown keys and edits made since startup, writing atomically, and never saving --no-update-check
a433b5c fix(config): read config.yaml from XDG_CONFIG_HOME when it is set, still honouring an existing ~/.config file
7396c50 fix(config): stop a config.yaml typo silently un-prodding every context, now valid keys are kept, an unreadable prodContexts treats every context as prod with a header warning, and ctrl+p won't overwrite the broken file
ed401e6 fix(demo): describe a helm rollback's new revision as rollback to n and supersede every deployed revision, as helm does
3dacd62 fix(demo): stop demo-mode writes racing the screens reading the same objects, and report a drain's blocked evictions as the real cluster does
2bedc25 fix(diag): never write a crash report through a symlink planted at its name in a shared temp dir
3b2b7d2 fix(diag): scrub tokens and the home directory from the log and crash report, and cap exec plugin stderr
028eaac fix(install): stop the installers skipping signature verification when a signed release's signature bundle is missing
d8d8a6d fix(kube): clear the offline pill as soon as you switch away from a context that was offline or logged out
1671886 fix(kube): escape an apostrophe in a will-run kubectl patch line so the printed command pastes into a shell intact
db96889 fix(kube): keep the credential plugin's own message (like run aws sso login) on the unauthenticated banner instead of replacing it with client-go's generic exit-code error
0f22fd0 fix(kube): make service port-forwards reach the pod's target port instead of the service port
a8b98b6 fix(kube): make timeline rollback restore the old revision's pod template exactly instead of merging newer env vars, containers and annotations into it
ddd4981 fix(kube): project the demo cluster's events like a live cluster's, reading series counts and last-seen times and breaking same-second ties the same way
17551ee fix(kube): refuse a rollout restart of any kind other than a deployment, statefulset or daemonset instead of restarting a same-named deployment
17126a2 fix(kube): run kubectl exec/debug/edit and helm rollback against kute's active context, not the kubeconfig's current-context
1dcd662 fix(kube): show a port-forward to a deleted pod as reconnecting instead of active
b519b45 fix(kube): show printer columns on custom kinds whose name collides with a built-in, and stop flux, argo cd and certificate lists downloading their full crd
b22c06d fix(kube): show the crd count in the goto palette instead of a permanent dash
23094a4 fix(kube): show the unreachable-cluster screen on the first timed-out probe of a cluster that has never answered instead of a 90 s connecting spinner
ef41be0 fix(kube): stop --demo logs printing every line twice or the same lines for every container, and give a demo pod an ephemeral debug container
30401d0 fix(kube): stop a context switch during the first connect's discovery filling the new cluster's crd kinds and server version from the old one
a4ae843 fix(kube): stop a forward stopped or restarted just as it connects leaving its local port bound until kute exits
8f55fec fix(kube): stop a knative service or istio gateway crd hiding the built-in services or gateway api gateways list
074b392 fix(kube): stop a label, annotation, image or resources edit holding a control character or flag emoji being rejected as invalid json
da2b741 fix(kube): stop a late event from the previous context marking a newly switched, unreachable context as reached
22e98b3 fix(kube): stop a list in flight during a context switch leaving a forbidden or failing kind's screen spinning forever on the new cluster
0dab65c fix(kube): stop a mistyped or stale context reporting no kubeconfig found against a valid file, or connecting kute running in a pod to its own cluster under that context's name
466d4e3 fix(kube): stop a service or deployment port-forward reconnecting to a terminating or not-yet-running pod after its pod is replaced
255f138 fix(kube): stop another context's credential plugin output, or a warning from a successful login, appearing as the active cluster's unauthenticated reason
65e738a fix(kube): stop deleting a job orphaning its running pods, and make job replace wait for the old job before recreating it
3765e78 fix(kube): stop every credential failure freezing the ui for a tenth of a second while kute reads the plugin's error
b4743e8 fix(kube): stop the header flashing reconnecting every time an informer's watch routinely rotates
c927cf0 fix(kube): stop the offline banner quoting the expired-token error after you've re-authenticated and pressed r
97e8202 fix(release): stop homebrew warning that the kute cask's postflight is deprecated
1c767a4 fix(setup): show the kubeconfig path editor's connect key as ↵, as every other keybar spells enter
34dee8e fix(state): fsync state.json before renaming it so a power loss can't leave it empty
10e8f96 fix(state): keep every kute window's per-context location, recents and dismissed updates when several exit, instead of the last one discarding the rest
7aa9daf fix(state): stop an older kute wiping a newer version's recents and per-context state when it exits
3a597f2 fix(tui): advertise esc as cancel on the debug panel's confirms, matching every other confirm keybar
35b349a fix(tui): age node detail's pressure conditions from the screen's own clock tick instead of reading the wall clock while rendering
7bbfcfc fix(tui): answer R on a first-revision or still-loading helm release with nothing to roll back to instead of a revision 0 or -1 confirm
018f8ce fix(tui): ask who-can about secrets for helm releases and a discovered kind's real plural, not its display name
48d451f fix(tui): bring back the typed secret value, masked as it was, when a prod confirm is cancelled instead of discarding it
aa5d4ab fix(tui): count only ready, non-terminating pods as an ingress or route backend's ready endpoints, and flag a service port the service doesn't declare as no such port
a3f5067 fix(tui): count pod-level requests and in-place resizes in node detail's requested bars, matching kubectl describe node
92304d6 fix(tui): count root-reserved blocks in node detail's disk bar so it matches the nodefs eviction signal
3de5f7c fix(tui): count workloads that mount a configmap through a projected volume as its consumers, so ctrl-r restarts them too
f29b11e fix(tui): credit a cronjob run-now or job rerun to the identity the api server reports for you, not the kubeconfig user entry
7654a08 fix(tui): credit an argo cd sync started with S to you, or to kute, instead of leaving argo with no initiator
ae53bf9 fix(tui): divide the nodes list's and overview's cluster cpu/mem by only the nodes reporting usage, and say how many when some don't
ba5429b fix(tui): draw the drain confirm's border in red and the quit confirm's in its palette color instead of uncolored
02dc3c2 fix(tui): exec into a single-container pod with the shell x found, so an image with bash but no sh opens a shell
6ac5b51 fix(tui): filter routes to the gateway, not to a literal *, on enter over a gateway listener with no hostname
009c219 fix(tui): find a tls certificate stored in an opaque secret when the secrets list is already loaded, instead of calling it not found
c69d7de fix(tui): fit the help overlay on short terminals, folding overflowing key columns into a +N more row so the footer and esc close stay visible
fb5689d fix(tui): flag a ready certificate past its expiry as failing instead of a healthy green row
28e7f0d fix(tui): hide the update chip when update checks are turned off instead of showing a stale version
eba39aa fix(tui): judge an http route's attachment across every parent gateway, mark a status older than the route as stale, and stop p jumping to a service parent as a gateway
bdc6b52 fix(tui): keep a covered screen's live metrics, clocks and spinners running when esc brings it back
38140d6 fix(tui): keep a filtered resource list in its sort order, so all-namespaces mode stops showing a namespace twice or collapsing a crashlooping row as healthy
aa21442 fix(tui): keep another controller's OperationCompleted event in the timeline instead of dropping it as an unmatched argo sync
be58d5e fix(tui): keep counting every kind in the jump palette when crd discovery lands while its counts are still loading
c60bd68 fix(tui): keep following a container's logs after showing no logs found, so lines it writes later appear
e95f57a fix(tui): keep helm history's revision ages ticking off the screen's own clock instead of reading it mid-render
c97c13e fix(tui): keep node detail's and overview's cpu/mem usage on a failed metrics poll, and stop calling a forbidden or flaky metrics-server not installed
4368776 fix(tui): keep node detail's cursor on the same pod after a reload when two of its pods share a name across namespaces
3ca00b3 fix(tui): keep o jumping to a flux object's source when kute has no write access wired
d0db067 fix(tui): keep pod detail's cpu and memory bars live on the sync interval instead of frozen on a quiet pod, and stop every watch event querying metrics-server
bb9532d fix(tui): keep set resources' selected field after an apply, name the applied values in its result line, and stop calling its usage sample the metrics poll
d21383c fix(tui): keep the cluster overview's cpu and memory capacity live on the sync interval, and stop an older reload putting stale nodes and pods back on screen
3bd5107 fix(tui): keep the connection badge in the header when a long context like an eks arn fills it, shortening the context instead
2c05285 fix(tui): keep the cronjob and job lists' NEXT countdown and DURATION ticking after a watch event
47eef96 fix(tui): keep the flux detail's failure age and retry countdown ticking after returning from another screen
975f889 fix(tui): keep the flux tree showing what it can read when one flux kind is forbidden, naming the unreadable kind instead of failing the whole screen
af38a84 fix(tui): keep the flux tree's reconcile from aborting when its source is missing or can't be annotated
3b34d66 fix(tui): keep the forwards list's reconnect countdown, uptime and idle time ticking every second instead of freezing until the next state change
65d2e3a fix(tui): keep the helm release diagnostics spinner turning when a refresh drops back to loading
e32132e fix(tui): keep the helm rollback confirm's will-run line on the keybar instead of dropping it when the --kubeconfig path makes it too long
be3c0af fix(tui): keep the selected row on screen when the resource list is offline or showing a loading or follow note
159fcf1 fix(tui): keep the session on the listed kind after jumping to overview, who-can, the flux tree or events so it isn't restored or ranked as current
f48e8ce fix(tui): label a rerun of a helm hook job as a manual run instead of the hook it was cloned from
8626595 fix(tui): let the jump palette find every cached object by name instead of only the first 50
9fe4528 fix(tui): let ↑/↓ step between objects in crd detail like j/k and stop an undocumented V opening set resources
3c57a61 fix(tui): list a configmap's binarydata keys read-only in its data view instead of hiding them and calling a binary-only configmap empty
69dd12b fix(tui): list a configmap's job, cronjob and bare pod consumers as not restartable so ctrl+r doesn't look like it covers them
a457c9a fix(tui): list same-named service accounts from different namespaces separately in who-can and show each one's namespace
1f4b139 fix(tui): make a helm rollback in a prod context require typing the release name instead of a single y
3d032e8 fix(tui): make a label edit ask y/n while the namespace's services are still loading or unreadable instead of applying without checking it detaches pods from a service
0bfa4ba fix(tui): make adding a secret or configmap key that already exists ask y/n before overwriting it, and report it as updated instead of added
a066c2e fix(tui): make an empty all-namespaces list say no resources in any namespace instead of naming a blank namespace, and stop claiming a deleted namespace exists
427f25f fix(tui): make argo cd's u find the dashboard url in argo's own namespace and say the config is still loading instead of not configured, without blocking the screen
a0f9436 fix(tui): make configmap ctrl-r ask y/n before restarting every consumer, and type the name in prod, like a single rollout restart
9147edb fix(tui): make deleting a node always require the type-the-name modal, not an inline y/n outside prod
80687ea fix(tui): make enter on a flux helmrelease's event or timeline row open the flux object instead of the helm releases list
249cdad fix(tui): make enter on an ephemeral debug container reattach to its shell, and say when it has exited instead of failing in kubectl
8d83c2b fix(tui): make esc from a helm release's pods return to your namespace instead of leaving the session in all-namespaces mode
7da743e fix(tui): make force delete and namespace or crd deletes always require the type-the-name modal, and make ctrl-k actually force delete
fc0f573 fix(tui): make j/k on a custom resource's detail screen in all-namespaces mode open the next object in its own namespace instead of reporting it deleted
82fad09 fix(tui): make o on a flux list jump to a source in another namespace instead of an empty list in the row's own, and name that namespace in source
7e7cde5 fix(tui): make r retry the connection while offline on deployments, flux, argo cd, certificate and forward lists instead of opening their own r action
7e3d4cb fix(tui): make the drain confirm count only the pods drain evicts, not the daemonset and static pods it leaves running
481e1d9 fix(tui): make the what's-new panel show command copied, opened in browser, skipped and check failed instead of dropping every feedback line
efad2ca fix(tui): measure pod and object detail event cells and cert chain failure wrapping by display width so non-ascii text isn't cut mid-character
935bf12 fix(tui): move node detail's filtered pod list with ctrl+j/ctrl+k and toggle a job rerun's create/replace choice with j/k
306ca93 fix(tui): name ctrl-x, not m, as the reveal and re-mask key on a secret value being edited
318438d fix(tui): name esc, not n, as the cancel key in the edit, stop-all-forwards and reveal-all confirm prompts
a7fd303 fix(tui): name the created job after a run-now from cronjob detail and spell the restage key as R, not ctrl+r
9079410 fix(tui): name the current context in the logs screen after a context switch, and fail instead of streaming from default when a pod's namespace is unknown
450d098 fix(tui): name the kind a confirm prompt asks about by its api kind, not kute's internal registry key
c73af62 fix(tui): name the pod's own grace period, like 30s, in pod detail's prod delete confirm
f863686 fix(tui): name the screen in crash reports as browse.Model instead of *browse.Model
08ba216 fix(tui): offer clean up for a debug copy pod when kubectl debug exits with an error after creating it
b8d9f8b fix(tui): offer clean up for the node debugger pod instead of usually missing it and leaving it running
0083c44 fix(tui): omit the secret data view's will-run band while an edit is still unchanged, as the spec says, instead of a no-changes line
b99da3d fix(tui): open a context switched to for the first time on its kubeconfig namespace instead of default
c2e7fd9 fix(tui): open a flux source, alert, provider or image policy in the generic detail view with its conditions and events instead of the reconciler screen
50d7987 fix(tui): open logs, detail, exec, debug and delete on the selected pod when same-named pods share an all-namespaces list
8ca4748 fix(tui): open the binding behind who-can's granted (you) row on enter instead of doing nothing
f31f708 fix(tui): open the context palette instantly instead of freezing on credential plugins when there are more than 8 contexts
32079c0 fix(tui): open the filter on / over a revisited list's dimmed cached rows instead of running the typed query as shortcuts
f493c6f fix(tui): pad screen chrome with the hardened cell-width helpers so malformed text can't shift a line and truncation shows … instead of ...
931a3d0 fix(tui): pin who-can's (you) row to the identity the api server reports for you, not the kubeconfig user entry, on token and exec-plugin clusters
d2f6930 fix(tui): put the cursor on the row a filter matches best, so typing api and enter opens api-… rather than a failing row sorted above it
d1d2433 fix(tui): raise dim hint text to readable contrast in both themes
fafaa51 fix(tui): raise the light theme's status and error colours and the offline ramp to readable contrast on selected rows
49df875 fix(tui): re-probe the unreachable-cluster screen's switch context list on r instead of showing its first probe forever
2a78d15 fix(tui): read a helm hook's evidence from its own namespace and show hook run times as ages instead of a dateless clock time
12be5c9 fix(tui): read a replicaset's or pod's controlling owner, not whichever owner reference is listed first, for rollouts, rollback and the timeline
91b8ebd fix(tui): refresh the certificate chain when its first acme order or challenge is created, not only once one is already shown
aa57985 fix(tui): refresh the timeline when a deployment, argo application or flux source changes instead of waiting for an unrelated pod or event
4e4e367 fix(tui): refuse helm rollback to the current revision and name the target's status in the confirm, warning when it never went live
f762552 fix(tui): refuse the debug panel's launch and clean-up delete while the cluster is offline, like every other mutating action
de02e39 fix(tui): refuse the timeline's R on the current revision instead of confirming a rollback that changes nothing
34babd6 fix(tui): reopen on the flux, gateway or other custom kind you quit on instead of falling back to pods and forgetting it
b633425 fix(tui): resolve gateway api backends and listener certificates in the namespace they name, and show refused cross-namespace or non-service backends honestly
e16e9ee fix(tui): say on an empty helm list that only helm's default secret storage is read, not that the cluster has no releases
699fb1e fix(tui): say so in the context palette when ctrl+p can't save config.yaml instead of failing silently
9756b3c fix(tui): say who-can counts only cluster-wide grants when asked about all namespaces
4fa5c95 fix(tui): show a certificate that expired within the last day as expired instead of expiring in 0d
1b3403f fix(tui): show a certificate's issuer as its namespaced issuer when kind is omitted, and external issuers as-is instead of a missing clusterissuer
3af60be fix(tui): show a context whose probe got a 403 as reachable and one with an expired login as needs login instead of unreachable
50f273a fix(tui): show a crash-looping container's last run in the logs screen instead of waiting for it to start
5788392 fix(tui): show a crash-looping init container's status and termination banner on the pod detail screen, matching the pods list
9adaf31 fix(tui): show a custom resource list's own printer columns again instead of only name and age
0be2c39 fix(tui): show a custom resource list's short kind name like CERTS in the keybar pill and name kinds like ingress and networkpolicy correctly in delete confirms
d6810f8 fix(tui): show a deployment rollback in the timeline when it happened, labelled with the revision it restored, instead of at the old replicaset's creation date
9cc161a fix(tui): show a flux object mid-reconcile with ready unknown as reconciling instead of a warning
b194219 fix(tui): show a multi-source argo application's revision as its source count and sync each source to its own target instead of a bogus HEAD
d4804aa fix(tui): show a route rule's header-only and grpc method matches and a +n count for extra matches instead of calling it match-all
e58a518 fix(tui): show a suspended flux helmrelease or cross-namespace dependency as suspended on the flux detail screen
04cf75f fix(tui): show a suspended flux object as suspended on its detail screen instead of reconcile failed with a retry that never comes
9928b39 fix(tui): show an ingress's default backend and resource backends in its routing table and backends count instead of claiming it has no routes
bb9fa36 fix(tui): show every failed delete, drain, cordon, restart or other mutation on the keybar instead of closing the confirm as if it succeeded, and stop a late result wiping a newer confirm
6d76e49 fix(tui): show failed deletes in a marked set on the red result line instead of a dim note
8f052ed fix(tui): show how long a debug copy or node debugger pod has been running on the clean up prompt
7ba8060 fix(tui): show live container usage in the set resources panel instead of always reading metrics unavailable
c0716ed fix(tui): show offline and disable mutations on every screen opened or returned to while the cluster is unreachable
820e900 fix(tui): show switching… in the header while a context switch runs and say why on the keybar when one fails, instead of nothing
fb000e9 fix(tui): show the debug panel's access denial and who-can on rbac clusters instead of offering a launch the api server will refuse
bb8b3d5 fix(tui): show when the list last loaded on the error and 403 cards instead of always saying never
e528869 fix(tui): show which consumers restarted when one ctrl-r restart fails, instead of reopening the configmap editor as if the applied value never landed
e51f9a7 fix(tui): show which cronjob runs stop in the prod suspend modal from the list, and stop it overrunning the screen from detail
9bdb159 fix(tui): show which pods a drain will lose for good before you confirm it — unmanaged pods and emptyDir data
6dfb254 fix(tui): show – instead of 0 in the crds list's count column until a kind's instances are actually counted, and keep the count live
6fe5045 fix(tui): shrink a long header badge to its glyph before squeezing breadcrumbs to unreadable four-cell stubs
c56214e fix(tui): spell every on-screen key chord as ctrl+x, matching the keybar, instead of mixing in ctrl-x
bec11c1 fix(tui): spell the flux tree's expand key tab, as flux detail and every other fold toggle do
3034339 fix(tui): stop --keycast showing the keys typed into a secret value buffer
e592911 fix(tui): stop a capital R typed into a configmap value applying and restarting every consumer, now ctrl-r
80b367c fix(tui): stop a context switch and an unreachable-cluster reconnect running at once and reviving the cluster just replaced, refusing whichever comes second
cf3dfb1 fix(tui): stop a context switch briefly showing the previous cluster's rows as cached
df58501 fix(tui): stop a custom resource's detail screen showing no events or jumping to yaml before its events have loaded, and keep its events live
9722978 fix(tui): stop a failed context switch tearing down the healthy cluster for nothing or leaving the list frozen after a rollback, and stop a switch in flight reloading the old list against the new cluster
c254d53 fix(tui): stop a goto to the kind or namespace you came from leaving the new list stuck on loading
55b0524 fix(tui): stop a key pressed while the cronjob or job detail screen loads, or a held ] walking siblings, closing the screen
e73aec0 fix(tui): stop a marked-set delete running while offline, and keep only the rows that failed to delete marked
af64148 fix(tui): stop a pod detail reload landing after [ or ] showing the previous pod under the new pod's name
446fd9c fix(tui): stop a recreated pod's detail showing its same-named predecessor's events and a node timeline pulling in a same-named pod's events from another namespace
48f730e fix(tui): stop a second rerun from the job attempts screen failing with already exists, now it proposes the next free -rerun-N name
23a7fbb fix(tui): stop a second x during the shell check opening a second shell after the first exits, and say the check is running
6579c76 fix(tui): stop a slow earlier timeline load overwriting a newer one after a burst of cluster changes
6c6bcdd fix(tui): stop a slow flux tree reload putting an older tree back on screen
96b680e fix(tui): stop a slow node detail reload putting an older pod list back over a newer one
a9753a5 fix(tui): stop an empty helm releases list downloading every release in the cluster to fill its hints
f6b053c fix(tui): stop an event on a service or other object turning red because a same-named pod is failing
a448248 fix(tui): stop an unrelated cronjob event reverting the schedule editor to the pre-apply schedule, and rediff what changes after an external edit
35e89de fix(tui): stop configmap and secret key edits silently overwriting a change someone else made while the editor was open
5f59895 fix(tui): stop crd detail claiming an object was deleted when it comes back or its cache failed to list
41cb47f fix(tui): stop editing a configmap or secret key again right after saving it failing with changed on the server
7bec8d5 fix(tui): stop editing a configmap value with tabs or crlf line endings rewriting every tab and line ending, now it points you to E instead
eb956f5 fix(tui): stop enter-enter on a multi-line or binary secret value or annotation silently rewriting it flattened
8f5d102 fix(tui): stop every reconnect from the unreachable-cluster screen leaving a goroutine parked on the replaced cluster's events
7704d05 fix(tui): stop g and n opening the goto and namespace palettes on the setup screen, where a pick was silently dropped
7bc0f50 fix(tui): stop g, n, c and ? escaping to the shell while a cronjob run-now or resume prompt is open
4b2d0ef fix(tui): stop jumping to a node from its events or timeline moving the session to the default namespace
a805c86 fix(tui): stop n and q opening the namespace palette or quit confirm over a pending cert renew, helm rollback or secret and configmap key removal
6b22892 fix(tui): stop opening the context palette running every context's credential plugin, which could pop a browser login per context, and probe those only on ctrl+r
2c309a8 fix(tui): stop pod detail claiming no events while its event cache is still loading or forbidden, and show why instead
8c6c277 fix(tui): stop pod detail reporting a pod deleted while its namespace's pod cache is still loading, and clear the banner once the pod is found
307db2c fix(tui): stop pod detail's cpu and memory bars overstating usage when a sidecar has no limit, and name the oomkilled container's own memory limit
68e0863 fix(tui): stop r in the context palette and y/u in the cronjob schedule editor firing actions instead of typing, now ctrl-r, ctrl-t and ctrl-z
2b7da05 fix(tui): stop resume claiming a long-suspended cronjob may start a missed run immediately when its starting deadline has already passed
556feb8 fix(tui): stop run-now jobs after a context switch from the resource list being stamped with the previous context's user
c3ab55d fix(tui): stop same-second timeline rows swapping places on every reload
d6e6ff8 fix(tui): stop set image offering repo:latest as history for a digest-pinned workload
d578912 fix(tui): stop tagging a same-named pod on another cluster as a debug copy
d9178e0 fix(tui): stop the cronjobs list showing no retained runs and a no-conflict run-now when job history is forbidden, now marked unavailable
59c98c4 fix(tui): stop the flux detail failure card reading retry in now forever once a failure is older than one interval
08ac27f fix(tui): stop the flux detail screen claiming an object no longer exists while its cache loads or is forbidden, and stop folding unread inventory rows as ready
f19b6c6 fix(tui): stop the flux detail screen cutting a curly quote or ellipsis in half when wrapping a condition message
51f7c61 fix(tui): stop the flux inventory dropping rbac objects whose names contain a colon
fc37742 fix(tui): stop the flux inventory reading a knative service as a core service or a flux helmrelease as a helm release, and listing every inventory kind cluster-wide
a6c8d3e fix(tui): stop the helm list showing a release as rolling out forever when its statefulset or daemonset uses ondelete or a partition
a931482 fix(tui): stop the help overlay at 80 columns cutting every list key's label to …, now all columns shorten evenly
f008b0b fix(tui): stop the labels/annotations editor showing the old value under its updated result line until reopened, now it catches up when the change lands
cd6f4ff fix(tui): stop the logs screen showing the last second of history twice when it starts following
47c22e5 fix(tui): stop the namespace palette on the helm releases list starting a release informer in every namespace
91bc758 fix(tui): stop the port-forward picker offering or starting on a local port another forward already owns, and treat a port held on ::1 as busy
5ba964f fix(tui): stop the secret yaml view showing values under quoted keys like "true" or "1" and in the last-applied-configuration annotation, and mask that annotation in the labels/annotations editor
33b8e0c fix(tui): stop the set resources panel freezing the app while metrics-server is slow, and stop every workload change re-querying it while the panel is open
809aeb6 fix(tui): stop the timeline crediting a manual argo cd sync to auto-sync and stamping every older sync row with the newest sync's commit and initiator
0463b36 fix(tui): stop the timeline's flux revision rows showing an older commit's subject when a source fetched two commits within the hour
7bf0c9c fix(tui): stop the unreachable-cluster screen running every sibling context's credential plugin on open, showing those as not probed
e28ac1b fix(tui): stop tls and certificate chain screens calling secrets, issuers and chain steps missing when their cache is still loading or forbidden
35c07be fix(tui): stop typing in the goto palette starting the full crd informer before the crds list was ever opened
ba31dd3 fix(tui): stop who-can counting a rule in another api group, like metrics.k8s.io pods, as a grant on the resource asked about
9f118ad fix(tui): stop who-can listing a subject limited to named objects as able to list or create the whole resource, and mark its other grants with the names they cover
aecd79d fix(tui): stop who-can pinning you as denied on token and exec-plugin clusters, and count grants every authenticated user holds
b811ff9 fix(tui): stop who-can's closest miss quoting a non-resource url rule as granting on nothing, and match */scale-style subresource wildcards
9ad99ee fix(tui): stop x and enter on the pod detail screen in --demo running a real kubectl exec against the kubeconfig's cluster
868a08a fix(tui): stop y copying a broken http:///path url for an ingress rule with no host or a wildcard host, and hide the hint there
7fdde5d fix(tui): time out set resources' pre-flight dry-run and drop it on a context switch instead of letting it hang
90143b8 fix(tui): title the setup screen context not found or kubeconfig couldn't be loaded instead of no kubeconfig found for every kubeconfig error
28effe4 fix(tui): treat an ingress rule host covered by a wildcard tls host as https in the routing table instead of plain http with no tls cell
89a540f fix(update): cap release-feed and changelog responses at 1 MiB
0c04a32 fix(update): reap the browser process 'o' launches and open urls on windows without re-parsing them through cmd
917a59d fix(update): retry a failed update check at most once an hour instead of on every launch
a9f527f fix(update): show intel mac homebrew installs brew upgrade --cask instead of the curl installer, which overwrote homebrew's symlink
4577f1c fix(update): stop opening the update panel during the startup check from firing a second release-feed request
9dad70e fix(update): strip control characters from changelog entries so a tampered changelog can't write terminal escapes
8cb68ae fix(update): suggest go install for a kute installed with go install instead of the install script
9f86603 perf(helm): read a repo index's chart versions without building its whole yaml tree, cutting the first helm list load's parse about eightfold
d602a44 perf(helm): serve a namespace's helm releases from the already-synced all-namespaces cache instead of listing them again
92321dc perf(kube): stop draining a node listing every pod in the cluster, now only that node's pods
1d1a9b3 perf(tui): make a resource list frame cost only the rows on screen, not every loaded row
e31962d perf(tui): make the helm releases list decode only each release's newest revision, once per load
b0e50e3 perf(tui): rebuild the kind registry only when a custom kind's columns arrive, not once per crd while the crds list loads
5f7c526 perf(tui): stop a change in another namespace reloading the list you're on under --namespace-scoped or for helm releases
a2a91ca perf(tui): stop a change in another namespace reloading the list you're on, which the event batching had been undoing
33e2d8d perf(tui): stop node detail querying metrics-server for every pod in the cluster every 2s and on every pod or node change, now only its pods' namespaces on the sync interval
b231f1b perf(tui): stop opening a tls ingress, gateway or cert chain downloading every secret in the cluster to read one certificate
87673df perf(tui): stop the container picker re-running the shell check on every container x already checked
4a9c2fb perf(tui): stop the helm release diagnostics screen downloading every secret in the cluster to check a chart's secret
40c372e perf(tui): stop the helm release diagnostics screen re-decoding every release in the namespace on each event, now one debounced read of its own release
6845dfe perf(tui): stop the ingress list re-reading every service and pod for each backend path on every reload
104bb93 perf(tui): stop the nodes list warming a pod cache for the active namespace under --namespace-scoped that it never reads
07e5fca perf(tui): stop the set image panel starting statefulset, daemonset and cluster-wide deployment informers to list other workloads' tags
3fd0164 perf(tui): stop the yaml view re-fetching managedfields from the api server on every change to its kind, only when the object itself changed
7a7d58e perf(tui): wrap and style only the on-screen rows of the helm release diagnostics table on each frame
d07a206 refactor(actions): add one confirm-key router and keybar hint builder keyed from the verbs registry
50d8f15 refactor(actions): gate a marked-set modal confirm on the typed count inside the controller instead of trusting browse to check it
a9f776e refactor(app): assert at compile time that tui.Model feeds the crash snapshot
0b182df refactor(browse): route confirm keys and hints through the shared controller router
94dce4f refactor(browse): take inline-editor, error-card and staged-run keybar keys from the verbs registry
64759c0 refactor(debugpanel): take every field key and its handler from the verbs registry
baca292 refactor(helmdetail): route e and y through the verb registry's keys
c1a1c92 refactor(jobactions): share cronjob run-now and suspend/resume staging between the cronjobs list and cronjob detail
82cf704 refactor(jobactions): share the job rerun choice between the jobs list and the attempt ledger
5d72285 refactor(kube): drop the never-assigned failed and no-cluster connection phases
8b4a5f9 refactor(kube): move test-only watch wrappers to export_test.go and drop the register-every-kind form
be64614 refactor(kube): read the cluster's kubeconfig context under its lock through contextsnapshot
e0d6520 refactor(kube): resolve a custom kind's cache scope once per read instead of twice
1ed7893 refactor(kube): share one flux sourceref, condition and revision reader across the flux screens
27d58d1 refactor(setup): take the setup screen's keybar keys and handlers from the verbs registry
a09ec7d refactor(tui): give the pod debug launch its own verb policy instead of borrowing node debug's
f055cec refactor(tui): render crd detail's condition and event ages from a load-time stamp instead of reading the clock
81c8780 refactor(tui): render pod detail's event ages from a load-time stamp instead of reading the clock
9c159a8 refactor(tui): resolve every confirm tier in one verbs policy table that actions.Begin applies itself
da53366 refactor(tui): route poddetail, objectdetail, nodedetail and cronjobdetail confirms through the shared router
4f42c20 refactor(tui): route secretdata and configmapdata confirms through the shared router
0e8cd41 refactor(tui): route the namespace palette and browse sync checks through tui.KindsSynced and drop app's interface mirrors
4effede refactor(tui): route timeline, helmhistory, jobattempts and certchain confirms through the shared router
5a39b41 refactor(tui): run the marked-set delete through the shared confirm controller instead of its own state machine
832047c refactor(tui): simplify the keycast mask condition for staticcheck
9290812 refactor(tui): take detail-screen, who-can and rerun keybar keys from the verbs registry
79c84da refactor(tui): take events, timeline, podlogs and nodedetail keybar keys from the verbs registry
2a8efc2 refactor(tui): take the configmap and secret data keybar keys from the verbs registry
80b4cba refactor(tui): take the flux detail and overview keybar keys from the verbs registry
cfec6d3 refactor(tui): take the meta panel, forward picker and exec picker keybar keys from the verbs registry
49ef0fa refactor(update): take the what's-new panel's keys and handlers from the verbs registry
89e701c refactor(verbs): list the timeline verb in all so byid and the keyboard reference check see it
a50add3 refactor(verbs): register shared navigation keys and every screen-local keybar key
7389b1f refactor(verbs): register the job attempt ledger's diff and failed-only keys and render its keybar from the registry
4649591 refactor(verbs): register the secret, configmap and labels editors' mask, paste, buffer-apply, remove and copy keys and render their hints from the registry
81a6675 refactor(yamlview): take every keybar key and its handler from the verbs registry
bf9d0ac refactor(yamlview): take the reveal-all confirm's key and hints from the verbs registry
1e0dcfa style(kube): gofmt the discovered kind struct
7a9138d style(tui): gofmt node detail's golden test open-exec stub
600def7 style(tui): gofmt the namespace palette file
c2750a3 test(actions): fail any controller screen that hand-routes confirm keys or hand-builds confirm hints
0b18c65 test(app): use the test's context in the hangup test
e3815f2 test(e2e): expect argo detail's truncated event reason to end in an ellipsis
aaf594a test(e2e): match the exec and debug will-run lines now that kubectl's context flags precede the verb
b97dda9 test(e2e): match the secret editor's ctrl+x re-mask hint as the keybar now spells it
51f0011 test(e2e): open set resources with r and expect its result line to name the applied values
4a01cbc test(e2e): read a deleted row's absence from the table, not the frame the keybar's result line still names it in
94a0a25 test(e2e): wait for the secret editor's changed on the server conflict line instead of the old wording
d061bfc test(fake): give the fake cluster a countlive so --demo and tests exercise the production palette-count path
2b79549 test(tui): make the set resources goldens open the panel instead of recording a rollout restart confirm
dea3954 test(tui): name the missing-metrics-server test error to satisfy errname
7f89174 test(tui): pin the drain confirm's impact line colours in dark and light truecolor goldens
0f0fe7e test(verbs): fail on a hand-written keybar key or a declared verb missing from all