Changelog
Release notes for every version of Pane.
0.5.0 — April 17, 2026
New
- Monaco editor everywhere — the file viewer, git diffs, and Mermaid previews now run on Monaco (VS Code's editor). More accurate syntax highlighting, better performance on big files, unified behavior across platforms. Diffs default to inline with a toggle for side-by-side, and git diffs get a side-by-side image preview
- Unified command bar — file palette and command palette merged into a single CommandBar with one UI and one set of keybindings
- Tab snooze — snooze any tab to sink it below every other kind in the sidebar; attention-requiring tabs stay bright even in inactive workspaces
- Drag-to-reorder, everywhere — servers, projects, workspaces, and tabs can all be dragged into your preferred order. Pinned files in the macOS Files panel too
- iOS on the App Store — Pane now ships to TestFlight with an official iOS release workflow
- iPadOS support — iPad Pro 11" M5 is a first-class target. The software keyboard pushes chrome up correctly, and portrait mode uses touch-friendly tree icons
- Tile all tabs — a new sidebar view renders every tab at once inside the workspace
- Cycle waiting agents — ⌘[ / ⌘] jumps between agents awaiting input in the current workspace. Waiting-agent shortcuts are grouped under "Agents" in the cheatsheet
- iOS home screen quick actions — long-press the app icon to jump straight into common flows
- Right-click → split — right-click a new-tab button to open that kind in a split
Improvements
- Voice input on iOS is reliable — stray Enters suppressed, SSH writes serialized, keystrokes routed through
tmux send-keyswith bracketed paste + delayed CR - Context menus unified — one
paneContextMenuacross macOS and iOS, with UIKit long-press, full-width dividers, and a git-diff discard action - Sidebar polish — non-active rows dim via opacity instead of greying out. Projects only auto-expand when they have tabs. Snoozed tabs sink below every non-snoozed kind
- Files panel — pinned files can be dragged to reorder on macOS; row heights and icon sizes tightened to match the git row
- CLI —
pane file pin/unpin/pinsfor managing pinned files. Session-start help is richer
Fixes
- iPad: keyboard safe area respected so the software keyboard no longer covers chrome
- Add Server / Add Project: spinner only on the clicked server row
- iOS shortcut open handler: uses the
projectIdfromPendingOpeninstead of resolving the wrong project - File tabs: dedupe by deterministic SHA256(path) so the same file can't spawn duplicates
- Monaco on iOS: viewport meta set so pages don't auto-scale; HTML cache disabled
Under the hood
- Proxy v0.34.0 — daemon hardening plus alive-but-broken detection so a wedged proxy no longer silently drops RPCs; Mermaid
displayMode/orientationflow throughtabs.update; dot-separated RPC namespace - Registry prunes stale tabs centrally on
paneFilechanges - Tree-sitter editor stack removed (STTextView + TreeSitterMermaid deps dropped)
- Hundreds of new unit tests across Registry, CommandBar, proxy integration, Add Server, and Add Project flows
- macOS deploys now symlink
/Applications/Pane Dev.appinto DerivedData to keep Gatekeeper's cache warm across rebuilds
0.4.0 — April 15, 2026
New
- Mermaid diagram tab — live-rendered editor + preview split with pan, zoom (⌘+/⌘-, ⌘-scroll, pinch), double-click to fit. Saved to the server like a scratchpad. CLI:
pane mermaid open/cat/write - Find in file tab — ⌘F opens a native find bar with incremental highlighting; Find Next / Previous / Use Selection all wired through the Edit menu
- Fuzzy file palette is now daemon-side — ⌘P searches via the proxy using nucleo over a per-workspace index (git ls-files, with ignore fallback), so results stay fast on big repos and keystrokes don't block the main actor
- Shift+Enter for multiline agent prompts — terminal now sends
ESC+CRon Shift+Enter so Claude Code / Codex / Gemini treat it as newline instead of submit - Command palette: Check for Updates… — trigger a Sparkle update check from ⌘K
- Agent CLI seeds —
pane agent open --provider claude|codex|gemini --prompt "…"pre-fills the launch command - Sparkle release notes render natively — the appcast inlines markdown, so the update dialog no longer loads GitHub's webpage
Improvements
- Liquid Glass app icon on macOS 26 — ships an Icon Composer bundle so Pane renders as a first-class icon under the new renderer
- Script files highlighted by shebang + basename — extensionless scripts now get syntax highlighting
- Terminal PATH includes
~/.local/bin— native installers for Claude Code,uv,pipx, etc. resolve without editing.zshrc - Sidebar footer icons tightened to match the tab bar spacing
Fixes
- iOS: long-pressing the active tab no longer scrolls it back into view
- Proxy: fixed a thread-sanitizer data race in
SSHWriter
Under the hood
- Proxy migrated to tmux control mode for lower-latency event streaming (services watcher now listens on
%sessions-changedinstead of polling) - MetricKit-backed crash reporter persists diagnostics as JSON; Debug menu gained Open Crash Reports Folder and Write Fake Crash Report
- Bundled
pane-proxyis now signed with the app's Developer ID identity
0.3.0 — April 14, 2026
Pane CLI
- New
panecommand for driving Pane from inside any terminal tab — opens, closes, lists, and renames tabs, workspaces, and projects, and writes/reads scratchpads from the shell - Auto-spawns the daemon on first invocation over a local Unix socket, with TOON + JSON output formats for agent piping
- Replaces the old MCP server with a single CLI surface that agents can shell out to
Agent-aware Terminals
- Agents (Claude, etc.) now signal back to Pane via shell hooks — tabs rename on Enter instead of after a 5s delay, system notifications fire when an agent needs attention
- Claude wrapper injects a session-start hook so agents get ambient Pane context (current project, workspace, tab) automatically
Proxy Reliability
- New supervisor restarts the proxy on crash with exponential backoff and a circuit breaker
- Panic backtraces are written to
daemon.log; Pane surfaces the log tail when the supervisor gives up - Per-RPC dispatch eliminates head-of-line blocking, and a per-workspace fuzzy search index powers faster file finding
iPad
- Renders the full Mac desktop layout on iPad in regular horizontal size class, with a new semantic light/dark palette and appearance picker
- Long workspace names now head-truncate so tab bars stay readable
Files Panel
- Optional toggle to reveal gitignored entries
- Lazy per-directory tree (no stale full-tree cache) and auto-refetch when you switch workspace or project
- Markdown preview in the palette
Chrome & Keyboard
- New ⌘⇧/ keyboard shortcut cheatsheet overlay
- Palette tab disambiguation and section reordering
- Branch picker reuses an existing worktree path instead of creating a duplicate
iOS
- Tab context menu replaced with a popover, with a combined tap + long-press overlay and a slightly longer 0.35s long-press
- Active tab highlighting now falls back to the current workspace on the dashboard
0.2.0 — April 13, 2026
Filesystem Watcher
- Git panel and file index now update instantly via native filesystem events instead of polling every 30 seconds
Command Palette
- ⌘P now includes workspaces, agent tabs, and service tabs — not just files and terminals
- Tab-type registration so all tab kinds appear in the palette automatically
Workspaces
- New “New Workspace from Branch” option in the project context menu — pick an existing branch and create a worktree-backed workspace
Browser
- Websites now get the full Safari experience instead of degraded embedded-webview pages
- Added back/forward swipe gestures, fullscreen support, and JS popup windows
Window
- Window size and position are now remembered across launches
Keyboard & Focus
- Rewrote the focus system for more reliable keyboard handling
- Fixed arrow keys not working in the command palette
Other
- Lowered deployment targets to macOS 15 / iOS 17
- Added sandbox mode in the Debug menu for testing the empty-state experience
0.1.2 — April 12, 2026
- Rich tooltips — Toolbar buttons now show Xcode-style floating tooltips with keyboard shortcut hints, replacing the default macOS tooltip
- Version display — The proxy status bar now shows the app version on the left side
- Sidebar layout — Server tree row labels now truncate with an ellipsis instead of wrapping to multiple lines
0.1.1 — April 12, 2026
- DMG distribution for a smoother Gatekeeper experience
- Homebrew cask support (
brew install --cask bryantebeek/tap/pane)
0.1.0 — April 12, 2026
- First Developer ID build
- Auto-update via Sparkle