Paneflow v0.7.7
Paneflow v0.7.7 is a major hardening release across the agent control plane, terminal runtime, workspace persistence, diff workflow, and distribution pipeline. The release covers 36 commits since v0.7.6, including the final version bump and release-fix commits.
Highlights
- Agent control plane: MCP pane tools are explicitly read-only, workspace-scoped by default, and wrap terminal output as untrusted content. Workspace automation gained safer spawn planning, bounded prefill/context handling, and stricter scripting gates.
- Terminal runtime: cell geometry, search, input, bracketed paste, OSC52 handling, copy mode, hyperlinks, scroll state, and output detection were hardened. Hera dogfood diagnostics now provide a shadow/side-by-side runtime for render parity checks behind an opt-in environment gate.
- Workspace and sessions: tabbed pane state now persists across restore, session restore is stricter, fleet surfaces are more stable, Rosetta/attention queues are less fragile, and notification surfaces are opt-in.
- Diff and review: the in-app diff engine, worktree scans, generated/binary file handling, review state, and agents diff dock are more resilient under large or multi-project changes.
- Updates and distribution: signed self-update installers, Windows MSI relay, macOS DMG, Debian, RPM, AppImage, Homebrew, Winget, AppStream, and release CI gates were tightened.
- Docs: Conductor, MCP bridge, scripting, Context7 docs metadata, and user-facing launch/demo material were refreshed to match the runtime contracts.
Agent Control Plane And MCP
- Added the Paneflow MCP bridge hardening pass:
list_panes,read_pane, andsearch_paneadvertise read-only behavior, clamp output, scope access to the current workspace by default, and require an explicit global scope opt-in for instance-wide reads. - Terminal data returned to agents is fenced as untrusted terminal output, reducing prompt-injection risk when agents inspect pane contents.
- MCP install/status/uninstall logic is now idempotent across Claude Code, Codex, Gemini, and opencode configs, with config locks, backup-aware writes, TOML/JSON/JSONC preservation, and cross-platform command resolution.
- Shared subprocess execution now uses a bounded helper with timeouts, stdout/stderr caps, null stdin, and process-tree cleanup on Unix and Windows.
workspace.upand related IPC methods now plan pane spawns before execution, canonicalize working directories, dedupe labels, bound context/prefill content, gate orchestration primitives, and provide clearer failure shapes.surface.read,surface.send_text,surface.send_keystroke,events.subscribe, andai.*routes have tighter validation, pagination, fencing, CR/LF rejection where appropriate, submit echo handling, and better structured responses.- CLI automation was expanded around
paneflow up,paneflow flow,paneflow wait,paneflow watch, split/select/focus helpers, dry-run/json modes, env token substitution, managed worktrees, and public IPC barriers.
Workspace, Sessions, And UI
- Persisted surface schema now exposes tabbed surface fields so split/tab layouts can be restored more faithfully.
- Session restore, worktree scans, pane scans, stale session cleanup, surface identity mapping, mode routing, and agents surfaces were hardened.
- Agents UI runtime fixes cover fleet sidebar rows, bottom panel behavior, visibility, labels, active/running protection, and noisy interrupt completion events.
- Rosetta and attention queue state received stability fixes for cross-agent status surfaces.
- Notification surfaces are opt-in instead of silently on by default.
- Settings primitives, input handling, shortcut recording, theme shortcuts, window chrome, markdown theme sync, and the main panel bottom corners were polished.
Terminal, Search, And Rendering
- Renderer cell geometry was aligned with frame metrics, backed by golden Hera snapshots and broader layout tests.
- Search/input handling now deals better with wide characters, regex errors, lowercase expansion, row/column mapping, copy mode, and focus changes.
- Hyperlink and file-path activation, OSC52 clipboard handling, bracketed paste state, cursor blink/color, scrollbars, and terminal output-service detection were hardened.
- Hera dogfood runtime can run disabled, shadow, or side-by-side modes via environment configuration, emit scrubbed/raw artifacts, track render mismatches, and compare viewport/cursor/style state against Paneflow's terminal model.
- Multiline surface sends and terminal IPC paths now reject or route ambiguous content more predictably.
Diff, Review, Markdown, And Security
- Diff scopes, worktree branch selection, multi-project grouping, watcher parking, warm-resume cache, generated/binary file handling, and large patch boundaries are more stable.
- The agents diff dock uses shared diff colors/pipelines, better resize behavior, split/unified toggles, collapse state, cached rows, and per-file scroll spans.
- Markdown rendering received state and security hardening, including safer rendering boundaries, link behavior, and renderer lifecycle fixes.
- Cross-platform test gates were tightened for release and layout behavior, including Unix-specific clippy coverage and Windows-only import guards.
Updates, Packaging, And Release Gates
- Signed self-update flows now reject unsigned/keyless builds before touching disk, use stricter semver guards, verify AppImage replacements, and stage Windows MSI updates through a relay after the current process exits.
- System package update routes cover APT, DNF, and Zypper, with rpm-ostree and unknown package managers falling back to explicit user guidance.
- Release packaging was hardened across Windows MSI, macOS DMG, Debian, RPM, AppImage, tar.gz, Homebrew, Winget, AppStream metadata, SHA256/minisig sidecars, and repository publish checks. The Windows MSI Start Menu shortcut now uses the HKCU KeyPath required by WiX ICE38/ICE43 while binaries and PATH remain machine-wide.
- Release CI now checks workspace tests, formatting, clippy, AppStream freshness against the workspace version, MSI relay integrity, and platform-specific packaging behavior before publishing assets.
- The final v0.7.7 bump updates the workspace version, lockfile package versions, Debian changelog, and AppStream top release entry.
Behavioral Notes
- MCP bridge reads now default to the active workspace. Use the documented opt-in global scope only when an agent truly needs instance-wide visibility.
- Notification surfaces are now opt-in, so existing configs may be quieter until explicitly enabled.
surface.send_keystrokerejects newline bytes. Usesurface.send_textfor text submission flows.- The release workflow requires the first AppStream release entry to match the workspace version.
Validation
Local validation before tagging:
cargo check --workspacecargo fmt --checkcargo clippy --workspace -- -D warningscargo test --workspacegit diff --check- AppStream XML parsed locally and first release version verified as
0.7.7
GitHub release workflow: https://github.com/arthjean/paneflow/actions/runs/28795870781, all build, smoke, auto-update, and publish jobs succeeded.
Repository publish workflow: https://github.com/arthjean/paneflow/actions/runs/28798467533, APT amd64/arm64 and RPM x86_64/aarch64 metadata verified at pkg.paneflow.dev.
Release assets: 32 assets published on GitHub, including Linux AppImage/deb/rpm/tar.gz for x86_64 and aarch64, macOS aarch64 DMG, Windows x86_64 MSI, SHA256/minisig sidecars, and AppImage zsync files.
Full Commit Set
47a219e1docs(readme): add Paneflow badge56d046c3docs(readme): tighten Paneflow badge spacingd66bd859docs(readme): refresh Paneflow badge source76bdbed6fix(config): expose persisted surface fields in schemaf6acc27edocs(user): refresh Conductor docs for Context75fbc533afeat(agent-control): add MCP hardening and Hera dogfood runtime5c297472fix(agent-control): normalize agent launchesf0db92d2feat(workspace): persist tabbed surface state8702205efix(terminal): align renderer cell geometryc1ca5c03fix(terminal): harden input and search handling3056247ffix(ipc): guard multiline surface sendse337a2f4fix(app): centralize mode routing and expose agents surfacesc7ea92e5fix(app): harden session persistence restore14ecad53fix(workspace): harden worktree and surface scans52bf7b6dfix(cli): harden orchestration control planecac3ba4bfix(agents): harden agents UI runtimefc1a217bfix(app): stabilize Rosetta and attention queue state4dcb30cffix(app): harden fleet sidebar surfaces1b719cb6fix(diff): harden diff engine edge casesd8417141fix(diff): stabilize review and agents diff state9e0623ebfix(markdown): harden renderer state and securityeef7e66cfix(ci): stabilize cross-platform test gates3e28ff57fix(app): satisfy unix markdown clippy38287675fix(ui): harden settings primitives and input handling19779b2dfix(app): harden theme shortcuts and window chrome91435e40fix(update): harden signed self-update installersf9ef896efix(release): harden distribution packaging83f9eeadfix(docs): align public surfaces with runtime contracts028a561achore(tasks): harden PRD and demo artifactsd49ca3ecci(tests): harden release and layout gates744ee6b7fix(update): gate MSI stdio import on Windows494dab67fix(config): make notification surfaces opt in58de4c98fix(app): suppress interrupt completion noisefdaca5d9fix(app): square main panel bottom cornersde717e42chore(release): bump version to v0.7.79d7789f5fix(release): allow MSI shortcut key path
Full changelog: v0.7.6...v0.7.7