changelog
Every release of Pane since v0.0.1.
- Drop the unused Nerd Font preload (1.2 MB fetched twice)
- Load Bull, electron-updater and the Anthropic SDK only when used, refs #697
- Record local p50/p75 timings for Pane's core journeys, closes #702
- Detect the git/gh environment without blocking the main process
- Bundle Geist Mono so cold start never waits on Google Fonts
- Render unposted findings as a page, and harden install and resume
- Close the last gaps between the bundled skills and Pane's conventions
- Let ui-mockup work without an image-editing tool
- Make the bundled skills agree with each other and with Pane
- Install Pane Chat's skills once and remove only what Pane installed
- Decode the Codex agent config before checking its skill path
- Rebuild Pane Chat's skills on Agent Farm's raw profile
- Port skill changes made upstream after the archive
- Bundle every skill Pane Chat uses and remove the skill sync
- Ship Pane Chat's skills with Pane, rewritten
- Rewrite the Pane orchestrator skill to say what to do
- Command palette list corrupts while typing (duplicate header keys)
- Preserve repository path spelling
- Expand ~ and relative paths when adding a repository
- Preserve scrollback across terminal disposal
- Address OxLint violations in scrollback fix
- Cast panels output request to expected type
- Update runpane test types after rebase to match upstream ToolPanelState changes
- Source panels output scrollback from screen emulator to stop mangled context dumps
- Source @-copy scrollback from screen emulator to stop mangled repaint dumps
- Add getCleanTerminalScrollback backed by screen emulator
- Add getScrollbackText for clean rendered scrollback
- PR draft icon implemented instead of normal PR icon
- Add Python panes focus parity
- Persist focused panels and restore type safety
- Add runpane panes focus command
- Remove stale commit dialog prop
- Commit window got Title and Description boxes + keyboard shortcut.
- Keep the Linux remote daemon running after logout
- Read usage reports from an hourly rollup, closes #692
- Remove the Cloud workspace feature and document manual VM hosts
- Speed up git status and diffs in Pane worktrees with fsmonitor and manyFiles, closes #684
- Keep the 4096 px atlas cap after measuring larger pages, and drop the bundled ConPTY setting
- Test Remote Pane pairing from setup to a command on the host
- Run the settings journeys in CI
- Give the settings mock a remote executable-health state, closes #521
- Let remote setup accept configs with unset optional fields, closes #651
- Stop hydrating disposed remote terminals
- Prevent remote mutation replay and share SSE parsing (#613, #623)
- Read each chunk once in the xterm requestMode build check
- Regenerate NOTICES for the Vite 8 toolchain
- Upgrade the frontend to Vite 8, plugin-react 6 and Vitest 5
- Find xterm's requestMode by content in the build check, not by chunk name
- Skip install scripts in unit-test jobs and keep Defender off the Windows workspace
- Type-check the main process beside the cross-OS unit tests
- Run type checking and lint beside the unit tests
- Overlap the Playwright browser install with the Electron build steps
- Set up pnpm through corepack in a shared action without the store cache
- Run React Doctor only when frontend files change
- Cancel superseded Code Quality runs on pull requests
- Run functional smoke tests in parallel with quality checks
- Move Windows test temp files onto the workspace drive
- Replace usage watchers with four-hour scans and manual refresh
- Consolidate runtime routing and remove synchronous project commands
- Reduce terminal output overhead and simplify session history loading
- Fix Windows hangs from eager terminal history and home-directory Git scans
- Fix native beta packaging and draft release publishing
- Resolve oxlint entry point directly to avoid .cmd spawn EINVAL on Windows\n\nCo-Authored-By: Pane <runpane@users.noreply.github.com>
- Prevent minimatch hoisting to fix GLOBSTAR import crash\n\nCo-Authored-By: Pane <runpane@users.noreply.github.com>
- Override d3-array to ^3.2.0 to resolve blur2 build failure\n\nCo-Authored-By: Pane <runpane@users.noreply.github.com>
- Generate notes for draft GitHub releases
- Notify website after release recovery
- Quote release recovery version check
- Recover macOS signing keychain setup
- Price Daybreak Blue usage fallback
- Hosted inspector panels fill the rail instead of sizing to content
- Keep the review split responsive to the inspector width
- Omit previousPath from editor diff refs for non-renamed files
- Reveal a hidden active file when focus returns to the changes tree
- Reveal the active file only when it or the scope changes, and pin the moved behaviors
- Split untracked and unmerged listings and keep surviving folder state on refresh
- Keep recorded collapses across compaction and evict all mutable manifest caches on refresh
- Address review findings on the changes tree
- Replace flat changes list with hierarchical file tree
- Add diff scope manifest and single-file diff IPC
- Give modals an elevated surface and hairline edge
- Drop alpha modifiers on var-backed border tokens so dark dividers stay muted
- Log fulfilled background-colour and overlay IPC failures in ThemeProvider
- Decode the appearance snapshot without Buffer in the sandboxed preload
- Keep terminal viewport across palette changes; best-effort appearance cache
- Keep terminals live through sustained window blur in performance mode
- Paired System/Fixed appearance model with native theme integration
- Recreate worktree when restoring an archived session
- End detached outer drags on the next pointer event or blur
- Release outer drag ownership when its separator unmounts mid-drag
- Single-owner outer drags, primary-input intent, first-frame measurement
- Keep zero-height terminal chrome inert and single-owner drags
- Start outer panel drags from remembered intent
- Address adaptive panel review feedback
- Deactivate zero-height detail chrome
- Close adaptive panel edge cases
- Adapt outer panel sizing
- Ship arch-specific Mac builds instead of universal
- Fetch model prices from OpenRouter, fix stale rate-limit scope
- Add share and download buttons to Usage & Limits screen
- Fix release notification race: gate on checksums, not tag push (#517)
- Watch --from now baseline replay, post-restart agent.unknown, panel labelling
- Add in-app GitHub feedback flow
- Remove render-time component ref mutations
- Keep event refs aligned with committed state
- Keep React state updaters side-effect free
- Make remote settings updates replay-safe
- Publish immutable git status queue updates
- Clean up dialog timer and terminal observer
- Route remaining renderer diagnostics through dev logger
- Route setup and IPC diagnostics through dev logger
- Remove low-risk renderer debug logs
- Stabilize remaining frontend effects
- Stabilize session view effects
- Preserve pending editor autosaves
- Fix stable React hook dependencies
- Replace legacy require imports
- Remove dead declarations and assignments
- Mark intentionally unused parameters
- Remove unused catch bindings
- Remove unused main process declarations
- Eliminate React Fast Refresh lint warnings
- Remove deterministic ESLint warnings
- Reach zero anti-slop findings and block regressions (phase 5)
- Replace module mocks with explicit test seams (phase 4)
- Phase 3b: preserve frontend finite contracts
- Phase 3a: tighten finite internal contracts
- Eliminate script and test boundary findings
- Eliminate phase 2d quality findings
- Refactor process and service boundaries (phase 2c)
- Remove unused @anthropic-ai/claude-code dependency and its dead build config (afterSign hook, ReadableStream polyfill, stale NOTICES)
- Send the root-cause probe at convergence; fresh-eyes on human deliverables
- Add RunPane pane rename command, closes #393
- Bring the human in before the work, and recommend a delivery lane
- Document experimental Remote Pane
- Fix nightly whitespace before merge
- Polish remote PWA voice input handoff
- Package websocket runtime dependency
- Proxy Deepgram streaming through daemon
- Add PWA live voice transcription
- Add GPT-5.5 transcription glossary
- Track voice transcription usage
- Refine PWA mobile input layout
- Upload voice audio to Fal CDN
- Add PWA voice transcription
- Fix remote terminal cwd fallback
- Fix remote host connection code persistence
- Add mobile remote terminal scroll control
- Improve remote PWA Safari resilience
- Add remote PWA pane creation
- Add remote PWA mobile sidebar actions
- Make remote PWA auth Safari-friendly
- Preserve direct remote invoke support
- Extend remote PWA request retries
- Harden remote PWA mobile reconnect
- Revoke remote host codes when forgotten
- Add remote host code cleanup
- Fix Tailscale remote preview CORS
- Fix remote PWA preview public routing
- Add remote PWA preview deploy
- Add remote Pane PWA client
- Fix runtime switch renderer resync
- Normalize session timestamps in frontend
- Add remote desktop shortcut
- Add remote host client controls
- Fix remote terminal visibility per viewer
- Show remote client device labels
- Clarify Tailscale Serve startup delay
- Fix remote daemon liveness and status
- Fix Settings remote setup port selection
- Avoid remote setup port collisions
- Add Tailscale IP fallback for remote profiles
- Use macOS Tailscale CLI formula fallback
- Fix Tailscale setup recovery edge cases
- Improve Tailscale client recovery UX
- Fix interactive Tailscale Serve setup
- Add interactive Tailscale remote setup
- Install tailscale during remote setup
- Disambiguate remote setup label
- Require tailscale for remote setup
- Clarify Remote Pane setup instructions
- Add in-app remote host setup
- Add manual nightly release workflow
- Abort cloud stop when local switch fails
- Fix settings font reload loop
- Detect setup args in packaged Windows
- Polish settings and cloud stop behavior
- Prioritize connection import settings
- Emit Linux headless daemon env
- Add one-command daemon setup
- Boot hosted cloud VMs into headless daemon
- Mark missing hosted profiles as connection errors
- Expose recovery for missing hosted profile
- Refresh config on remote resync
- Surface hosted daemon connection failures
- Handle hosted cloud reconnect edge cases
- Resync after hosted cloud mode switch
- Remove duplicate cloud smoke coverage
- Handle hosted cloud fallback states
- Gate hosted daemon readiness on connection
- Link hosted cloud workspaces to remote profiles
- Fall back to hosted daemon state
- Honor novnc fallback for hosted cloud
- Preserve legacy cloud tunnel controls
- Hide hosted daemon stop controls
- Handle daemon-first hosted workspace state
- Surface daemon-only cloud state
- Add hosted cloud workspace state contract
- Seed IPv6 remote profile URLs
- Add remote profile import flow
- Block terminal file reveal in remote mode
- Time out remote daemon SSE handshake
- Forward active session hints to remote daemon
- Preserve split CRLF SSE chunks
- Resync remote client on initial connect
- Normalize IPv6 remote pairing defaults
- Resync remote clients after reconnect
- Preserve remote daemon subpath routing
- Roll back failed remote activation
- Keep retrying remote daemon connects
- Harden remote daemon client transport
- Add Electron remote daemon client adapter
- Daemonize permission approval flow
- Harden remote daemon HTTP transport
- Add remote daemon HTTP transport
- Reject empty remote daemon profiles
- Add remote daemon config surface
- Extract headless daemon host bootstrap
- Restore live Electron daemon bridge boot
- Route renderer daemon commands through bridge
- Flush buffered output before hiding terminals
- Preserve hidden terminal output on visibility change
- Deliver hidden terminal output to daemon clients
- Shorten unix daemon socket paths
- Harden local daemon socket server
- Drop backpressured daemon clients
- Forward script state daemon events
- Harden local daemon socket startup
- Start local Pane daemon server
- Route git mutator IPC through registry
- Route git status IPC through registry
- Route session runtime IPC through registry
- Route terminal runtime IPC through registry
- Route data-domain IPC through command registry
- Add pane command registry core
- Preserve UTF-8 daemon socket frames
- Add daemon protocol primitives
- Add daemon boundary import regression test
- Extract runtime and event sink boundary
- Use target path semantics for worktree sync
- Enforce maintained regression checks
- Bump release version to 1.1.146
- Debounce terminal WebGL detach on app blur
- Increase panel tab minimum width
- Hide scrollbar indicators across themed surfaces
- Expand structural theming and add dusk oled
- Add ember and aurora themes and remove resize chrome
- Apply structural theme shells for dusk and forge
- Light theme tab contrast, tab min-width, and theme-specific rounding
- Add Dusk and Forge themes with full visual overhaul system
- Add git history graph to DetailPanel sidebar
- Theme-aware dropdowns and keyboard shortcut tooltips for terminal pills
- Improve terminal output batching and add spawn concurrency limiter
- Add resource usage monitor with CPU and memory tracking
- Add terminal row pill shortcuts and restore Codex menu entry
- Add terminal shortcuts with hints overlay
- PathResolver + CommandRunner for universal WSL support
- Add OLED Black theme
- Prevent macOS traffic light buttons from overlapping UI content
- Add kbd indicator for New Workspace shortcut on active project
- Add keyboard shortcuts for git branch actions
- Fetch all PR states and enrich PR data on project refresh
- Auto-rename sessions to PR title, PR status indicator, sidebar cleanup
- Improve run script generation prompt with edge case handling
- Replace foozol icon with new Pane logo across all platforms
- Update attribution email to runpane GitHub account
- Add git committer attribution for Pane IDE
- Replace fragile WSL --cd flag with universal bash -c pattern
- Ctrl+B sidebar toggle & Ctrl+Shift+1-5 add-tool shortcuts
- Fix terminal command injection by detecting shell prompt
- Add Ctrl+T and Ctrl+W keyboard shortcuts for tab management
- Polish left sidebar — project headers, PR numbers, workspace CTA
- Add Jupyter notebook read-only preview in Editor panel
- Replace branch dropdown with searchable combobox in Create Session dialog