Skip to content

Releases: erickochen/purple

v2.38.1

Choose a tag to compare

@github-actions github-actions released this 14 Apr 19:09
  • Fix i3D.net FlexMetal OS metadata not showing
  • The FlexMetal API returns os.slug (e.g. ubuntu-2204-lts), not os.name. Purple now reads slug first with name as fallback, so OS info appears in host details and metadata

v2.38.0

Choose a tag to compare

@github-actions github-actions released this 14 Apr 18:08
  • 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

Choose a tag to compare

@github-actions github-actions released this 14 Apr 16:03
  • 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

Choose a tag to compare

@github-actions github-actions released this 13 Apr 20:30
  • 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

Choose a tag to compare

@github-actions github-actions released this 13 Apr 19:26
  • 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: :443 for https, :80 for http, :8200 for 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

Choose a tag to compare

@github-actions github-actions released this 13 Apr 16:13
  • 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

Choose a tag to compare

@github-actions github-actions released this 12 Apr 19:23
  • 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 : cmds hint. Help overlay lists : in the TOOLS section

v2.34.0

Choose a tag to compare

@github-actions github-actions released this 12 Apr 17:47
  • 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

Choose a tag to compare

@github-actions github-actions released this 12 Apr 15:08
  • 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

Choose a tag to compare

@github-actions github-actions released this 12 Apr 14:10
  • 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