sofka 0.34.0 adds a context picker key, line copy in logs and documents, and :config edit. It also fixes actions that hit the wrong target, lost failure messages, and credential leaks in files and terminal output.
New features
- Adds a
contextstable action. It opens the context picker and is unbound by default. Set a key under[keys.table]to use it. - Adds
Vto select a range of lines in logs, YAML, describe, diff, and events. Pressyto copy the selected lines. - Adds
:config editto open a config file in your editor. sofka reloads the config when the editor closes. - Adds Terraform support in the Flux views for tofu-controller. Use
tto reconcile, suspend, or resume a Terraform. The list shows the applied revision and the plan state. - Keeps the status colors on the cursor row in resource tables. You can read the status of a pod while the cursor is on it.
- Publishes a Sigstore bundle with each release and signs
SHA256SUMS. The release package guide shows how to verify a download.
Fixes
- Keeps action menu targets when rows change. Enter acts on the object that the menu opened for. The saved targets clear when the menu closes.
- Keeps the delete confirmation resource kind stable. A namespace lookup no longer changes the view during a delete.
- Shows action failures after a refresh or view change. The status bar no longer hides them.
- Saves bundles as private files. Masks known credential patterns in pod logs and in literal environment values with credential names.
- Passes values in imported k9s shell scripts as arguments. A value can no longer run as a command. sofka warns when a script needs manual changes.
- Quits cleanly on SIGTERM and SIGHUP. The terminal is restored before sofka exits.
- Merges namespace and sort changes from each process. One process no longer erases the changes of another.
- Removes credentials and control characters from text printed to the terminal, such as startup errors and plugin output.
- Keeps the selected pod in the faults view during bursts of watch updates.
- Ends kubectl options before resource and context names. A name that starts with
-no longer changes the active context. - Uses the configured drill for Cluster API MachineDeployments when you press Enter. Machines stays the default when no drill is set.
- Opens the default layout when you select a resource that names no layout.
- Resolves HelmRelease
dependsOnentries as HelmReleases in the GitOps view. Before, they showed as Kustomizations.
Other changes
- Replaces the
fs2dependency with standard library file locks. The minimum Rust version is now 1.89. - Explains that
:eventsfollows the current namespace. Press0to show all namespaces.
What's Changed
- chore(deps): lock file maintenance by @homelab-crafter[bot] in #1000
- chore(deps): lock file maintenance by @homelab-crafter[bot] in #999
- chore(deps): update taiki-e/install-action action to v2.89.0 by @homelab-crafter[bot] in #998
- chore(deps): update github actions by @homelab-crafter[bot] in #1001
- chore(deps): update taiki-e/install-action action to v2.90.3 by @homelab-crafter[bot] in #1003
- chore(deps): lock file maintenance by @homelab-crafter[bot] in #1009
- chore(deps): lock file maintenance by @homelab-crafter[bot] in #1010
- fix: compile benchmark targets in CI by @nklmilojevic in #1013
- fix: save private bundles and mask log and env credentials by @nklmilojevic in #1016
- test: check Helm action arguments through an injected runner by @nklmilojevic in #1024
- docs: correct the event channel and module layout by @nklmilojevic in #1031
- fix: report action failures after view changes by @nklmilojevic in #1017
- chore: replace fs2 with standard file locks by @nklmilojevic in #1032
- fix: keep action menu targets when rows change by @nklmilojevic in #1015
- fix: keep delete confirmation resource kinds stable by @nklmilojevic in #1019
- fix: pass imported shell placeholders as arguments by @nklmilojevic in #1022
- fix: quit cleanly on termination signals by @nklmilojevic in #1018
- fix: merge remembered namespace and sort changes across processes by @nklmilojevic in #1021
- fix: sanitize text printed to the terminal by @nklmilojevic in #1028
- test: assert delete request bodies by @nklmilojevic in #1027
- fix: restore faults selection once per message batch by @nklmilojevic in #1025
- fix: end kubectl options before resource and context names by @nklmilojevic in #1014
- fix: honor configured drills for MachineDeployments by @nklmilojevic in #1023
- docs: explain bundle credential redaction limits by @nklmilojevic in #1033
- test: check palette commands against the key reference by @nklmilojevic in #1030
- fix: clear action menu targets on palette acceptance by @nklmilojevic in #1034
- fix: open the default layout when a resource is selected without one by @nklmilojevic in #1035
- docs: say that :events follows the current namespace by @nklmilojevic in #1043
- chore: check macOS and Windows in pull requests by @nklmilojevic in #1029
- feat: add a configurable
contextstable action by @nklmilojevic in #1045 - feat: keep status colors on the cursor row in resource tables by @nklmilojevic in #1046
- fix: resolve HelmRelease dependsOn as HelmReleases in the GitOps view by @nklmilojevic in #1047
- feat: publish the Sigstore bundle with each release and attest SHA256SUMS by @nklmilojevic in #1044
- feat: open config files in $EDITOR with
:config editby @nklmilojevic in #1048 - feat: select and copy a range of lines in logs and document views by @nklmilojevic in #1051
- feat: support tofu-controller Terraform resources in the Flux views by @nklmilojevic in #1049
Full Changelog: v0.34.0...v0.35.0