Releases: erickochen/purple
Releases · erickochen/purple
v3.10.0
- feat: Smoother prompts, sharper logs, easier troubleshooting.
- feat: Container confirms use action verbs both sides ("restart"/"keep", "stop"/"keep") so the choice is unambiguous before you press y or n.
- feat: Container restart and stop land as a green success toast, just like every other user-initiated action.
- feat: Demo-mode hints render as yellow warnings, so a blocked action looks blocked.
- feat:
purple --verboserecords every state change. Preferences saves, CLI flow, SSH config writes, form submits, filter and sort, vault thread and config reload all show up in~/.purple/purple.log. - feat: A complete Troubleshooting wiki page documents every fault domain, every log string and every recovery step.
- change: Every prompt now reads in purple's voice, including form validation and stale-host warnings.
- change: Pre-commit gates catch footer-keycap drift and generic confirm verbs ("yes"/"no"/"cancel") before they ship.
v3.9.0
- feat: Manage every container in your fleet from one tab.
- feat: Press Tab past Hosts and Tunnels to land in Containers. Every Docker and Podman container groups under each host. Park the cursor on a host divider and the detail panel summarises engine version, runtime, sync age and running/exited counts.
- feat: Enter shells in.
lstreams the last 200 log lines.Krestarts.Sstops.eruns a one-off command. Confirms always show before anything destructive. - feat:
Ctrl-Kcycles a whole compose stack member by member.KorSon a host divider sweeps every running container on that host in order. - feat:
rrefreshes one host.Rrefreshes all in parallel, four at a time.aadds a host to the cache from a picker. - feat: The detail panel reads
docker inspectonce and remembers, so image digest, restart policy, user, privileged flag, mounts, network and recent logs render instantly as you arrow through. - feat: Sync brings freshly added hosts into the cache automatically. Jump finds containers by name, image or host and lands you on the right row.
v3.8.0
- feat: Esc cancels, never quits. Press q to quit.
- feat: Esc on the host list clears your group filter or your bulk selection and stops there. A stray Esc on an empty host list keeps you in the app instead of closing it.
- feat: The first idle Esc per session surfaces a one-shot toast pointing to
q, then stays a silent no-op. If a sticky error is up, the hint waits so it never displaces a message you still need to see. - change: Help footer and wiki spell out
qas the only quit key on the host list and tunnels page. - Esc-as-cancel suggested by @BrahmingWu (#63).
v3.7.0
- feat: Multiple accounts per cloud provider, no juggling.
- feat: Add a second AWS, DigitalOcean or any cloud account in the providers list. Press
aon the row, give both configs a label and they live side by side. Existing hosts stay yours. - feat: Each labeled config syncs in its own lane. Markers carry the label, so two accounts never claim each other's hosts and a
--removeon one doesn't touch the other. - feat: Vault SSH role and address resolve per labeled config, so work and personal can sign with their own roles in their own Vaults.
- feat:
purple sync digitalocean:worktargets one config; the bare provider name still syncs all configs of that provider. - feat:
purple add --label workandpurple provider remove digitalocean:workround out the CLI. - change: Faster Nix release builds. CI's
nix flake checknow whitelists the source files it needs and skips LTO, saving ~20 minutes per release. - change:
~/.purple/sync_history.tsvfirst column now readsprovider[:label](e.g.digitalocean:work) for labeled configs. Bare configs keep the plain provider name. Scripts grepping the file may need updating. - Thanks to @AndreyOkh for suggesting multi-account support.
v3.6.0
- feat: Find any host, tunnel or action in one keystroke.
- feat: Press
:to open Jump, a universal fuzzy bar across hosts, tunnels, containers, snippets and actions. LikeCmd+K, in your terminal. - feat: Type your SSH username to find every server you log in as. Jump searches User, ProxyJump and Vault SSH role too, not just aliases and hostnames.
- feat: Field prefixes (
user:,proxy:,vault:,tag:) scope your search to a single SSH directive when you need precision. - feat: Recent picks lead the bar across sessions, so the second time is always faster than the first.
- change: Footer keys land in one canonical order across every overlay, so muscle memory survives between screens.
- change: Action labels carry their category up front (
Hosts: Add host,Tunnels: Manage tunnels) so you can search by what you want to do.
v3.5.0
- feat: Vault SSH connects through bastions on the first try.
- feat: Active tab stays crisply underlined on every terminal, including macOS Terminal where the highlight used to bleed across tabs.
- feat: The selected host's ping dot self-refreshes as you arrow through the list, so freshness follows your cursor.
- feat: When Vault signing fails, the toast tells you the actual cause instead of being shadowed by the generic SSH error.
- change: Proxmox sync breaks down partial failures by category (timeout, HTTP 5xx, HTTP 4xx, transport, parse) in the summary line.
- change: Pre-commit gates catch hardcoded user-facing text and convention drift before they ship, so error wording stays consistent.
- change: Smoke tests verify each screen actually renders, not just that the binary stays alive.
v3.4.1
- change: See exactly which key cleared your ping dots.
- change: Every ping refresh, clear and config-driven reset now appears in --verbose so your bug reports include the right context out of the box.
v3.4.0
- feat: Online dots stay accurate without manual refreshes.
- feat: Ping results no longer expire. Once you press P, dots stay green, amber or red until you choose to clear them.
- feat: The detail panel now shows when each host was last checked, so you can tell fresh data from yesterday at a glance.
- feat: Selecting a host whose result is older than 2 minutes triggers a quiet single-host re-ping in the background. Dots stay current as you browse, even on configs with hundreds of hosts, without flooding the network.
- change: ProxyJump dependents inherit both status and last-checked time from their bastion.
v3.3.0
- feat: Use SSH keys stored anywhere via symlinks.
- feat: purple follows symlinks in ~/.ssh, so keys synced from password managers, secure storage or central key directories appear in the picker exactly like a regular file you placed there yourself.
- change: Tunnels page mirrors the Hosts layout. Column titles line up with the rows below, getpurple.sh anchors the bottom-right corner, and the inactive tab fades to muted so your eye lands on the active page first.
- Symlinked SSH keys reported by @Nab0y (#58).
v3.2.0
- feat: Install purple on NixOS, or with Nix on Linux and macOS.
- feat:
nix profile install github:erickochen/purpleadds purple to your Nix profile in one command. Same single binary as every other channel. - feat:
nix develop github:erickochen/purpledrops you into a pinned Rust toolchain with cargo-audit and cargo-deny ready, so contributors get the exact same environment as CI. - feat: Hash-locked flake inputs for reproducible builds. NixOS users can embed purple as a flake input with the follows-pattern recipe in the wiki.
- Initial flake foundation contributed by @ArisoN-ext (#54).