Skip to content

v0.14.0

Latest

Choose a tag to compare

@github-actions github-actions released this 17 Aug 09:50
· 23 commits to main since this release

Oryxis 0.14.0

The host editor and terminal typography release. The editor every saved host goes through was rebuilt as two tiers, with the rarely-used fields folded behind headers that summarize what is inside them, an edge you can drag, starting-point chips on creation, and no Save button at all: closing the drawer is the write. The terminal font gained a weight and a stroke-thickness control, which is the honest answer to text that reads lighter here than in terminals that rasterize through the OS. The sidebar file browser serves local shells, drags files out to the desktop, and asks where a download should land. And plugin installs work again: the manifest now comes from a file tracked in this repository instead of a 1 MB release listing that had outgrown its own read ceiling.

The host editor

  • Two tiers, not one long form. The editor starts with what every host needs and folds the rest behind section headers that summarize their own contents, so a jump chain or a proxy reads as one line of text until you open it. The drawer's edge is a drag handle and the width persists.
  • Starting points on creation. Basic SSH, via bastion, or cloud: one-shot chips that prepare the form instead of making you hunt for the fields.
  • Closing is the write. An existing host has no Save button. The edit persists on every path that takes the drawer off screen, including the ones no handler mentions: navigating away, focusing a terminal tab, another panel taking the slot. A new host keeps the explicit Save / Connect pair, because a half-typed host must never enter the vault by itself. An earlier revision of this saved on a debounce while you typed; one write per editing session removes a whole class of bug instead of guarding each of its sites, since every mid-typing save re-sorted the host list under whatever was holding a position into it.
  • A password pasted into the Host field lands in the encrypted column. user:secret@host is how much of the world's documentation writes a connect string. The secret is parsed out and routed to the password field, or dropped when one is already there; it is never printed, and never reaches a plaintext column. The rest of a pasted connect string is split across the three fields it belongs in (#171), and a stored value that cannot resolve now says what is wrong with it instead of failing with a bare resolver error.

Terminal

  • The font has a weight (#155), and the picker says so when the family you chose has no face at that weight rather than silently drawing the nearest one.
  • Text Thickness. Every stroke widens a fraction of a pixel, which is what macOS and Windows do before drawing text. Oryxis rasterizes the raw glyph, which is why the same font at the same size read lighter here than in other terminals.
  • Ubuntu, the GNOME Terminal classic, joins the built-in themes (#118).
  • A high-resolution wheel scrolls again (#150), including inside a TUI holding mouse tracking, where the fragments were being counted twice. The numpad Enter types a newline instead of an interrupt (#162), and idle arrow keys are no longer eaten by the keyboard-navigation ring (#168).
  • A running-command indicator on the tab strip (#146), so a tab still working is visible without switching to it.

Files

  • The sidebar browser serves local shells (#145): the same browser over the app's own filesystem, with listing, navigation, rename, create and delete unchanged. The transfer-shaped actions stay SSH-only and hide themselves.
  • Drag files out (#167), onto the desktop or any application that takes a file drop. Windows first.
  • Downloads pick a destination, seeded with the last folder used, and the OS dialog is warmed at boot so the first one does not stall on the shell's COM server.

Sync and vault

  • The sync passphrase field could seal a snapshot nobody can open, by @shideqin (#170). The field never pre-fills the stored value, typing never writes through, only a manual round may read the typed buffer (so the 5-minute tick cannot seal with a half-typed passphrase), and a round carries its key by value so typing while one is in flight cannot store a value the snapshot was not sealed with. A failed round now shows the recovery path under the error.
  • Git sync hung, and a restart could fail to decrypt, by @shideqin, who also moved the blocking sync work off the UI thread.
  • A confirm before the manual lock, by @shideqin (#152), which grew a Sleep option and a "remember this" choice (#169). A lock can no longer leave the burger menu armed behind the lock screen, and it sweeps the paste confirms with it.

Plugins and updates

  • Plugin installs were broken outright (#163). The manifest came from listing the repository's releases and filtering them, which cost about a megabyte per lookup to read three fields and had grown past its own read ceiling. It now comes from a file tracked in this repository, with the asset host as the second leg; the old path survives only as a last resort.
  • The download mirror can be picked outright. "Project mirror" reverses the order instead of only serving as a fallback, for a network where GitHub never answers at all.
  • The self-replacing updater stops failing in ways that look like success, refuses while another window is live, and Windows toasts say Oryxis rather than Windows PowerShell.

Fixed

  • A host deleted from the open editor came back, and survived a restart, because it really was written back. Any host in a group hit this on every delete.
  • A single-message edit made after the editor drawer reappeared was silently dropped.
  • Four field reports on the 0.13 tmux manager (#157, #158, #159, #160), including switching sessions while the shell is busy and a listing that raced the attach.
  • The AI tool result is the command's output, not whatever the screen showed when it ran.
  • The window's maximized state follows the OS, by @shideqin (#142); windowed geometry is judged against the OS truth rather than the app's own memory.
  • A dropped port forward keeps retrying under auto-reconnect, by @latent-9 (#149).
  • The debug log clears on Windows, by @shideqin (#154).
  • Settings fields keep Tab and the arrow keys, by @shideqin.
  • Monitoring prefers a live tab's session on every path that establishes one, and the sample window belongs to the machine rather than to the row (#156).

Under the hood

  • One crypto backend in the binary, and it is aws-lc-rs: ring is gone from the app's dependency graph, and the whole windows crate family resolves to a single version on every target. keyring 4 for the OS keychain.
  • Four committed E2E tests had gone stale, each hiding the next, and the headless suite now runs in CI so a UI change that invalidates one is visible immediately.