Skip to content
PaneflowPaneflow

v0.17.3Latest

Clearer update and quit controls

View on GitHub

Paneflow 0.17.3 makes the update pill say what a click does, and gives feedback once you click it: after Restart to update, the pill stays blue with a spinning comet while Paneflow stops its sessions and restarts into the new version. On Windows it no longer turns into a grey Installing update… pill at that moment. The quit dialog that reports a stop or save problem now reads in plain words, with session counts instead of raw host errors, and keeps those errors behind Show details for a bug report.

It also fixes a quit that could not finish: a terminal restored from a session created before 0.17, once an agent had run in it, blocked every quit on "Unable to save the final state".

Upgrade notes

  • A release can no longer be hidden. The × on the update pill is gone. The pill stays until the release is installed, and on installs managed by a package manager, the Update via package manager and Update via rpm-ostree pills stay for the session.
  • Still on 0.17.0 or 0.17.1 on Windows? Run the MSI by hand once. The updater of those two versions defers every update. Download paneflow-0.17.3-x86_64-pc-windows-msvc.msi from this release and run it: it upgrades in place and leaves %USERPROFILE%\.paneflow untouched. From 0.16, and from 0.17.2 onward, the in-app update works.

Changed

  • The update pill says what a click does. Its labels:

    • Restart to update replaces Restart Paneflow.
    • Retry update replaces Update failed, and Retry update check replaces Update check failed, each with a 12 px alert glyph.
    • v<x.y.z> available, Downloading update…, Installing update…, Checking for updates…, and the package-manager labels are unchanged.

    It acts on click release instead of press, so dragging off it cancels. Every state now uses 12 px Medium text with 10 px horizontal padding, like the Quit dialog's buttons, and 12 px glyphs. The blue states move from #3a83f7 to #1a6ff6, so the white label reaches 4.5:1 contrast (3.6:1 before), and hovering darkens the blue instead of lightening it.

  • A restart shows progress. After a click on Restart to update, the pill keeps its blue and label and replaces its icon with a spinning comet while Paneflow stops its sessions and restarts. The same comet, one turn per 700 ms, now marks every busy state (Checking for updates…, Downloading update…, Installing update…) in place of the 1 s loader, and stands still under reduced motion.

  • Plain-words quit dialog. When a stop or save goes wrong at quit or before an update restart, the dialog counts sessions (2 sessions could not be confirmed stopped., Paneflow could not record how 1 session ended., The session host did not shut down.) instead of printing host errors, session IDs, and file paths. Those move to a collapsed Show details / Hide details section, one error per line in Geist Mono, scrolling past 160 px. When only saving failed, the dialog reads Unable to save session state under All sessions stopped., and its override button reads Quit anyway, or Quit without updating during an update, instead of Quit with unsaved final state. The details toggle comes first in the keyboard order.

  • Sidebar update banner. The Update check failed banner gains an explicit Retry button instead of retrying on any click, and no longer dims to 80% at rest. Its close button and the release toast's become 24 px squircle Dismiss buttons with a tooltip, and the toast action buttons (Retry, Open releases, Undo) take the same squircle shape in Medium weight.

Fixed

  • Quitting after restoring a pre-0.17 session. A terminal restored from a session created before 0.17 had no data directory, so once an agent ran in it, every save of its final state failed and quitting stopped on "Unable to save the final state". A restart now creates the session's data directory, and a hook record with no directory left is skipped instead of retried every 5 s, because the session record already holds it.
  • Stopping a terminal Paneflow failed to attach. The session host now releases such a terminal as the stop begins, so a shell with unread output can exit. On macOS, every stop of such a session timed out before.

Install and validation

Download the signed artifacts from this release or use the installation instructions.

Every primary artifact carries a .sha256 sidecar and a minisign .minisig; each AppImage also ships an .AppImage.zsync for delta updates. 35 assets in total.

Pipeline: run 36333593112.

Legs that passed:

  • Build: x86_64-unknown-linux-gnu, aarch64-unknown-linux-gnu, aarch64-apple-darwin, x86_64-pc-windows-msvc, each gated by cargo fmt --check and cargo clippy --workspace --locked --target <target> -- -D warnings
  • Release test gate on Linux x86_64: cargo test --workspace --locked
  • Package smoke tests: Debian 12 and Ubuntu 22.04 (.deb postinst), Fedora 40 and openSUSE Tumbleweed (.rpm postinst), Arch Linux (tar.gz binary), Windows MSI install and relay
  • Auto-update end to end on Linux x86_64

Full Changelog: https://github.com/arthjean/paneflow/compare/v0.17.2...v0.17.3

Contributors