v0.4.3
Paneflow 0.4.3
Added
-
Composer: a bottom-anchored multi-line input (secondary-shift-space) over
the focused pane. Enter pre-fills the agent through bracketed paste
without submitting, so the prompt is yours to review before it is sent;
secondary-enter pre-fills and submits in one keystroke. -
Named broadcast groups: assign panes to a group (secondary-shift-b to
toggle membership, secondary-shift-m for the picker), each marked by a
3px coloured edge stripe. The Composer fans one prompt out to every live
member of the active group and shows a transient recap of who received
it, so a broadcast is never silent. -
Queued prompts for busy agents: a prompt sent to a generating agent is
held ("1 queued" tab chip) and flushed automatically on that session's
next idle transition, instead of being dropped or spliced into the
running turn. -
Attention Queue (secondary-shift-k): a single overlay listing every agent
waiting for input across all workspaces, with its question and how long
it has waited, longest-waiting first. Enter warps straight to that pane. -
Launch Pad (secondary-shift-l): worktree, split, agent launch and
first-prompt prefill in one gesture. -
Agent status beyond Claude Code and Codex: the sidebar states, tab dots
and notifications now apply to any agent CLI launched through the shimmed
PATH, identified by its binary name; an unrecognized tool is reported as
itself instead of being mislabeled as Claude. -
Scrollbar match rail: an active search projects every match as a tick on
the scrollbar track (decimated to the pixel grid, so 10 000 matches cost
the same as 10), with the existing proportional track click to jump. -
Fleet grep: from any pane's find bar, the "Fleet" toggle (or Alt+F) runs
the same query across every pane of every workspace off the render
thread, lists the matching panes with counts, flashes a transient match
badge on their tabs, and Enter teleports with the local search pre-armed. -
Per-pane font zoom: Ctrl+= / Ctrl+- / Ctrl+0 (Cmd on macOS) change the
focused pane's font size by 1 px steps within 8-32 px, with the PTY grid
reflowing like a window resize. Persisted per pane across restarts;
panes without an override keep following the global setting. -
Fleet observability: the port/process scan now attributes results to each
pane. Tabs show a compact identity pill for the agent CLI running inside
(PID-detected across 16 known agents, persisted across restarts as a
dimmed "last known" until confirmed) and per-pane port badges, clickable
when the port belongs to a frontend dev server. When a pane announces a
URL whose port is actually owned by another pane, its badge turns into an
alert naming the owner. -
Errored agent state: when an agent CLI launched through the shimmed PATH
exits non-zero, its session turns red (tab dot + sidebar badge) and the
desktop notification says "agent exited (exit N)" instead of a false
"agent finished". Human interrupts (Ctrl+C, pane close, external kill)
still count as finished, never as errors. -
Stalled agent detection (on by default): a thinking agent that emits no
hook activity for 5 minutes is flagged "stalled" in the sidebar, with one
desktop notification per stall episode. Threshold configurable via
agent_stall_threshold_secs; kill switch viaagent_stall_detection.
Changed
- Dev-server detection is now OS-authoritative. A port badge's clickable
link is derived from the command line of the process that owns the
socket, so it no longer depends on catching the dev server's banner line
in the terminal output. The link survives an in-shell restart (nodemon, a
plain re-run) that re-binds the port, and sustained agent output no longer
starves the scan that picks up new ports.
Fixed
- Agent sessions are reaped the moment their pane closes instead of
lingering up to 30s for the periodic sweep, covering the cases where the
exit hook never arrives (shim killed, agent started without the shim). - A recycled process id can no longer keep a finished agent's status alive:
a session pins its process start time, and a reused pid whose start time
differs is treated as gone.
Full changelog: v0.4.2...v0.4.3