v0.40.1
0.40.1 — CLI upgrade heals itself
- If you had the CLI installed, K2 now finishes the upgrade for you.
On first launch, K2 detects a pre-0.40 CLI install and offers to set up
the newk2command (one admin prompt) — keepingk2soworking as an
alias. No trip to Settings needed. - The
k2socompatibility alias works again from/usr/local/bin.
On machines that had the CLI installed, the 0.40.0 alias resolved its
newk2sibling next to the symlink instead of next to the real
script, and failed. It now finds the bundled CLI no matter how it's
invoked. k2 daemon statusstops saying "Running: no" while the daemon is
running — a long-standing parse bug on macOS, now fixed (it shows
the PID and port again).- Last few "K2SO" mentions in CLI messages updated to K2.
Updating remote / headless macOS servers
The rename is a once-per-product-lifetime identity change, and most of it self-heals — but a few things on a macOS server need someone at the machine once:
Fully automatic (no hands needed): the update itself, the ~/.k2so → ~/.k2 data migration, launchd agent migration (dev.k2.daemon), daemon reconnection, and headless daemon-only installs (the standalone k2-daemon self-update has no prompts at all). The k2so CLI alias keeps working without any approval.
Needs one screen visit: macOS keys permissions to the app's bundle ID, and K2's is new (dev.k2.app). Re-grant Accessibility / microphone / notifications where the old app had them, approve the keychain access dialog if it appears on first K2 Connect use, and (optionally) approve the one-time admin prompt that puts the new k2 command on your PATH.
Every future update rides the new identity — this does not happen again.