Releases: erickochen/purple
Releases · erickochen/purple
Release list
v2.43.1
- feat: Tighter foundations for faster, safer releases.
- change: App state is split into six focused domains (hosts, tunnels, snippets, providers, forms, status) so changes land in one place and are easier to reason about.
- change: New behaviour tests cover status routing, toast expiry and provider ordering, catching regressions earlier.
- change: Fewer surprise file reads at startup. Provider state loads explicitly in one place, so tests and tools run predictably.
v2.43.0
- feat: Confident edits on every host, shared lines included.
- feat: Multi-alias
Hostlines likeHost web-01 web-01.prodare first-class in the TUI. Edit, rename and delete them from any alias and the on-disk config keeps up. - feat: Deleting one alias from a shared line keeps the surviving aliases and their shared directives in place, ready to use.
- feat: The delete confirm dialog spells out the sibling aliases that will survive, so you press y knowing exactly what stays.
- change: Vault SSH certificates and Vault HTTP endpoints scope themselves per-alias automatically, keeping shared lines clean.
- change: OpenSSH itself is now a test oracle. Purple's parse and serialize cycle is cross-validated against
ssh -Gon 16 curated configs plus every fuzz seed, on top of 637k-run fuzzing.
v2.42.3
- change: Codebase tune-up: sharper debug trail, snappier renders.
- change: Debug logs now show every screen navigation, so support bundles explain exactly how you got into a state
- change: Cloud sync thread-spawn failures log the underlying OS error instead of a generic "failed to start" toast
- change: Preference-save errors (view mode, sort order) now surface in the debug log instead of being silently dropped
- fix: Remove a theoretical crash path in toast-timeout calculation when a new message class is added
v2.42.2
- change: Snappier host list. Safer, tighter releases.
- change: Large inventories render faster. Column widths and group health summaries are cached across frames instead of rebuilt on every render tick
- change: Editing the installer or landing page no longer risks breaking getpurple.sh. One command regenerates the embedded copies from source
- change: Full pre-commit suite now runs in CI. Format, clippy, build, test, deny, MSRV, doc, site sync, smoke test, design system, messages, keybindings and visual regression all gate every push
- change: Adding a new cloud provider is one entry in one table instead of edits to four parallel lookups
- fix: Update, tunnel and snippet CLI output routed through the centralized message module, keeping wording consistent
v2.42.1
- fix: SSH prompts no longer bleed into the TUI
- fix: Opening the container overlay on an untrusted host now shows a clear "host key unknown" message instead of raw SSH prompt text leaking across the screen
- fix: Background SSH fetches (containers, file browser listings) refuse untrusted hosts cleanly. Connect once with Enter to trust a host, then the overlays work as expected
- change: Captured SSH calls no longer inherit stdin, so nothing can escape into the terminal while purple is drawing
v2.42.0
- feat: What's New catches up even if you skipped releases
- feat: Press n on the host list or command palette to reopen the overlay
- fix: Overlay bullets render without raw markdown and wrap cleanly on narrow terminals
- fix: Version-check cache writes atomically and survives long release headlines
v2.41.1
- Picker hints now say Space, matching the actual key
- Form placeholder hints in the Password Source, ProxyJump, SSH Key, Vault SSH Role and provider Regions/Endpoint fields said "Enter to pick..." while the design system (2.41.0) moved those pickers to Space. The text now matches the keystroke you actually press
- Every user-facing form hint is now centralized in
src/messages::hintsnext to the rest of the message copy, so future edits happen in one place and cannot drift between forms - Documentation caught up:
llms.txt, the landing page, the wiki pages for Password Management, Vault SSH Certificates, Host Patterns and Cloud Providers now instruct "Space" for picker opens - Eliminated a flaky test caused by a cross-suite race on the preferences path override. The override is now thread-local in test builds, so handler tests and preferences tests can set and read it independently without colliding on a shared mutex
v2.41.0
- One consistent look, feel and keyboard everywhere
- Every screen now shares the same borders, spacing, colors and layout. Pickers, forms, confirm dialogs and detail panels feel like one coherent product instead of 22 pages that drifted apart over time. Future releases cannot regress visually because the rules are locked in at commit time
- Keyboard shortcuts work the same across every form, picker and confirm. Enter always submits. Space activates the focused field: flip a toggle, open a picker or insert a literal space. No more guessing which key does what on which screen
- Destructive actions are harder to trigger by accident. A stray keypress next to
yno longer silently cancels a delete, a Vault SSH bulk sign or a host purge. Confirm dialogs accept onlyy,nor Esc, and their labels spell out the stakes (y delete | Esc keep,y sign | Esc skip) so you know what each choice does before you commit - Forms tell you what Space does on the field you're editing. Toggles say
Space toggle, picker fields saySpace pick, text fields saySpace insert space. You learn the shortcuts without opening the help screen - Smarter notifications. A shrinking purple bar under each toast shows how much time you have to read it. Errors stay until you acknowledge them so you never miss one. Warnings auto-expire. The queue caps at three so the screen never clutters when things go sideways
- Unsaved work is protected. Closing the bulk tag editor with pending changes now asks before discarding them
- Closes #27
v2.40.0
- Provider API verification pipeline (#28)
- OpenAPI schema fragments for all 16 providers validate that golden fixtures match the upstream spec.
tests/schema_validation.rscatches field drift before it breaks syncs - Daily changelog monitoring via
scripts/check-api-changelogs.shwatches 12 provider changelog pages for deprecation keywords. Runs as a GitHub Actions workflow at 06:00 UTC - CVE fix: rustls-webpki updated to 0.103.12
- Fix flaky
bulk_tag_undotest caused by shared temp file path
v2.39.0
- Contract snapshot tests for API drift detection
- 32 golden fixture files verified against current provider API docs cover all 16 providers and every documented endpoint. 35 integration tests run on every push to catch response structure changes before they break real syncs