Releases: erickochen/purple
Releases · erickochen/purple
Release list
v2.38.1
- Fix i3D.net FlexMetal OS metadata not showing
- The FlexMetal API returns
os.slug(e.g.ubuntu-2204-lts), notos.name. Purple now readsslugfirst withnameas fallback, so OS info appears in host details and metadata
v2.38.0
- Bulk tag editor for multi-host tagging
- Select hosts with Space (or Ctrl+Space), press t to open the bulk tag overlay. Tri-state checkboxes: [x] add to all, [ ] remove from all, [~] leave as-is. Space cycles through all three states
- Press + to add a brand-new tag. Enter applies, Esc cancels. u undoes the entire operation in one keystroke
- Plain Space now toggles host selection (Ctrl+Space still works). Esc clears the selection
- Footer shows bulk actions (t bulk tag, r run, Esc clear, ? help) when hosts are selected
- Include-file hosts are detected and skipped with a visible warning. Mixed-state rows show a "mixed" label for accessibility on NO_COLOR terminals
- Closes #15
v2.37.0
- Smarter forms, jump host suggestions and polished overlays
- Typing a domain or IP in the Name field auto-suggests it as the Host value. Works on Tab, Down and Enter, skips when Host is already populated
- Tags in host and pattern detail panels separated by commas (
prod, web, europe) instead of spaces, so tags containing spaces aren't ambiguous - Confirmation toasts now stay visible for 4 seconds instead of 3
- ProxyJump picker promotes likely jump hosts into a Suggestions section, ranked by usage count, keyword match (
jump/bastion/gateway/proxy/gw) and shared domain suffix (#14) - Help overlay redesigned: essentials only on the host list, centered layout, clearer labels, wiki link points to the full command reference
v2.36.1
- Host indicators stay visible when the detail panel is open
- Tunnel (⇄) and proxy jump (↗) indicators now appear next to the host name in compact view instead of disappearing with the address column. Active tunnels show in purple, configured tunnels and jumps in muted style
- Vault SSH sign dialog spacing improved. Host list is visually separated from the question and the skip note
v2.36.0
- Vault SSH role picker and smarter defaults
- Vault SSH Role field offers a picker when roles are already configured on other hosts or providers. Press Enter to pick or type one manually (#26)
- Scheme-aware default ports for Vault address:
:443for https,:80for http,:8200for bare hostnames - Vault SSH placeholder hints explain authentication flow ("auth via vault login")
- SSH disconnect reasons shown in toast instead of just "exited with code 255". Full stderr context joined with pipe separators so you see why the connection was closed
- Vault batch signing completion status now properly clears the sticky progress footer
- Tags and alias placeholder hints clarified to avoid comma confusion
- Tag input bar shows placeholder with cursor before hint text when empty
- Updated dependencies to latest compatible versions
v2.35.1
- Internal cleanup. Leaner App struct and event loop
- App state grouped into sub-structs: PingState, VaultState, UpdateState, TagState (#25)
- Event loop arms extracted from run_tui (1300 lines) into handler/event_loop.rs
- CLI subcommand handlers extracted from main() into cli.rs
- SshContext struct eliminates repeated function arguments across remote operations
- SnippetEvent bridge thread removed. Snippets send events directly to the main loop
- TUI smoke test: automated tmux-based test navigates all 22 screens in demo mode
- Fixed 6 flaky test races (hardcoded temp paths and global state interference)
- Fixed 9 rustdoc warnings (unclosed HTML tags and bare URLs in doc comments)
v2.35.0
- Command palette. Press
:to search and run any action - 24 searchable actions: add, edit, delete, file explorer, tunnels, containers, SSH keys, providers and more (#21)
- Type to filter by name, press Enter to execute. Case-insensitive matching
- Up/Down to navigate, Esc to close, Backspace to clear filter
- Shortcuts shown next to each command so you learn the direct keys over time
- Footer shows
: cmdshint. Help overlay lists:in the TOOLS section
v2.34.0
- Toast notifications for user action feedback
- Copy, sort, delete and error messages now appear as a bordered overlay box in the bottom-right corner instead of blending into the footer
- Toast queue buffers rapid actions so no feedback is lost (max 5 queued)
- Keyboard hints in the footer stay visible at all times. Status messages no longer replace the "? more" help hint
- Four message classes: Confirmation (toast, 1.5s), Info (footer, 3s), Alert (toast, 5s) and Progress (footer, sticky)
- Background events like provider sync and ping go to the footer. Direct user actions go to toast
- Debug logging for all status message routing decisions
v2.33.5
- Debug logging for silent error paths across the codebase
- Pipe read failures in MCP tool execution, Vault SSH signing and Tailscale provider now surface in the log instead of being silently swallowed
- First-launch init (directory creation, SSH config backup, permission setting) logs warnings on failure
- Connection history read/write errors, preferences file access failures and SSH config backup pruning failures are now logged
- Thread panics in stderr capture (SSH connection) and stdout/stderr readers (snippet execution) log a warning instead of silently returning empty strings
- Tunnel and process cleanup failures (kill/wait) log at debug level
- Proxmox guest OS info and VM config API calls log the specific failure reason instead of returning None silently
- Version check cache write failures log at debug level
v2.33.4
- Internal: extract CLI handlers from main.rs, move test modules into dedicated files across the codebase, document unsafe block invariants, replace fragile unwrap patterns with let-else guards, route TUI-context error messages through the log system instead of stderr