Aller au contenu
PaneflowPaneflow

v0.17.1Dernière

Cleaner upgrade, fresh restarts

Voir sur GitHub

A cleaner upgrade to 0.17

Paneflow 0.17.1 fixes the path from 0.16.0 into the 0.17 agent status worker. 0.17.0 stopped injecting Claude Code and Codex hooks at launch and asked for a one-time install; a home that 0.16.0 had already hooked now gets that install on its own. Panes restored after an upgrade run the current version's agent shims and hook reporter instead of the previous version's, and an agent whose hooks never reach Paneflow still shows its state in the sidebar, read from its screen.

Stop everything also means what it says on the next launch: the layout comes back with a fresh shell in every terminal pane instead of a row of ended sessions. The quit dialog works from the keyboard, pane tabs lead with a terminal or agent badge, and sidebar rows reveal their actions inline.

Upgrade fixes

  • Hooks from 0.16.0 are adopted once. When the paneflow serve worker starts on a home where 0.16.0 injected hooks at launch (it finds <home>/agent-config-leases/), it installs the Claude Code and Codex integrations for each runtime it detects on PATH or through its config directory: the global hooks and the paneflow MCP server, exactly as Settings > Agents or paneflow integrations install would. Once every install succeeds it writes <home>/integrations/launch-time-adoption.json and never adopts again; if one fails, it retries at the next worker start.
  • Restored panes use the current helpers. The host now always sets PANEFLOW_BIN_DIR to the helper directory of the running version and removes every older <home>/cache/bin/<version> entry, and the previous PANEFLOW_BIN_DIR, from the pane PATH before prepending the current one. The helper search order puts the versioned shim directory ahead of the hook-only <home>/bin, and the desktop extracts the agent shims at launch, before it starts the host. On Windows release builds the shims ship in the install directory and nothing is extracted.
  • Status from the screen when no hook reports. When an agent is recognized in a pane but no hook event has arrived, the worker builds its sidebar row from the screen: working reads as thinking, idle as finished, and a numbered approval menu as needing input when menu_attention_detection is on. The first accepted hook event takes the row over, and the screen-built row goes away when the screen no longer shows the agent.

Upgrade notes

  • An integration you removed under 0.17.0 comes back once if the home was used by 0.16.0. The one-time adoption above cannot tell a removal from a missing install, so it reinstalls Claude Code or Codex at the first 0.17.1 worker start. Run paneflow integrations remove claude-code (or codex) again, or use Settings > Agents; after the adoption record exists, a removal sticks.
  • PANEFLOW_BIN_DIR in a pane's environment is overridden by the host whenever a helper directory resolves. A custom value is kept only when none does.
  • Fresh terminals after Stop everything apply to exits made with 0.17.1. A layout saved by 0.17.0 after its own Stop everything still restores its ended panes once.
  • Enter in the quit dialog now runs the highlighted default. On an update restart that is Cancel (Enter did nothing before); after a failed final save it is Retry save (Enter used to quit keeping sessions).

Changed

  • Fresh terminals after Stop everything. After Stop everything and quit or Stop everything and restart, including on_quit: "stop", a quit with no live session and an update restart that stops sessions, the next launch reopens the layout with a new shell in every terminal pane, in its last directory, with its name and font size. Agents and previous sessions are not relaunched: the host removes the stopped session records within the same 5 s stop budget, and session.json is saved again without them. If that save fails, Paneflow stays open and says why.
  • Keyboard in the quit dialog. A focus ring (a 1 px squircle, 3 px outside the control) starts on the default action: Keep sessions running on quit, Cancel on an update restart, Keep running and quit when a stop at quit could not be confirmed, Retry save after a failed final save. Tab and Right move forward, Shift+Tab and Left move back, Enter or Space runs the ringed control, Escape closes. The default renders as a solid blue button, the stop and unsaved-quit actions as destructive buttons on the leading edge, and the retry buttons read Retry stopping, Retry update and Retry save. The update prompt reads "Restart to update?", and the failure titles read "Some sessions may still be running", "Unable to update yet" and "Unable to save the final state".
  • Pane tab badges. Terminal tabs lead with a 22 by 18 px squircle badge instead of a flat glyph. A shell shows a green prompt on a graphite tile; once Paneflow detects an agent in the pane, the tile shows its logo, on the agent's brand color for Claude Code, Amp, DeepSeek Harness, Muse Code and Qoder, and on graphite for the others. Non-terminal tabs keep their icon.
  • Inline row actions in the Workspaces sidebar. Hovering a tab row reveals its close glyph, and hovering a workspace row its new-tab glyph, inline just left of the agent or pull-request badge. The glyph grows from 0 to 11 px wide and fades in over 120 ms (instantly under Reduce motion), with no button background, and brightens on hover. The badge, and a tab's diffstat, stay visible instead of hiding behind a 22 px button at the row's edge, and a row with no badge no longer reserves an empty slot. Badge glyphs sit 5 px from the top of the row.

Fixed

  • Clicking outside the focused sidebar filter hands focus back to the active pane. The query is kept; Escape still clears it.
  • The host logs a refused hook event from an older reporter once per session generation instead of once per event. A restored session could write thousands of warnings to host.log.

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 36275074548.

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.0...v0.17.1

Contributeurs