changelog
Every release of Pane since v0.0.1.
- Document per-host collapsed Sessions and open Archived groups in the remote daemon lifecycle
- Keep the sidebar Archived list and its repository groups open across compact mode, host switches and restarts
- Pass the Sessions section props in the renderer selection harness
- Keep sidebar Session expansion across compact mode, host switches and restarts
- Run the detached-worktree archive test against its real repo so it launches real gh
- Run the merged-PR gh lookup from the repo root so it never holds the worktree open
- Say a timed-out Pane create may still finish, name a kept archived Pane, and give Session association a next step that can succeed
- Say a command may have run when the connection drops after it was sent; point doctor at the Pane that failed
- Print JSON failures only for runpane's own --json, not one passed through after --
- Report file preview failures as coded PaneErrors with a next step
- Keep Python's connect code so watch keeps retrying a dropped Windows pipe
- Report Python connection failures with the OS code like the Node CLI; keep stack traces out of the add-project dialog
- Say the connection error code once; allow paths and ids in messages
- Keep ArchivedSessions under the component size limit; show the Session restore reason without the IPC wrapper
- Show IPC failures without Electron's wrapper and stop user actions failing silently
- Report missing Panes, panels and repos with a code and next step; document how Pane reports errors
- Say what was kept and what to do when pane create, Session association, transcripts or daemon calls fail
- Carry error code and next step from the daemon to runpane, MCP and the app
- Drop the WorktreeManager test import main already added
- Report the install's error line, not its last line, when setup's install fails
- Show setupQueue in CLI output and setup notices to screen readers
- Print each Pane's setup lines in order
- Address review: display-only setup notices, branch race, queued handoff
- Queue Pane setup two at a time and refuse a second Pane on one branch
- Retire SSH opens on the host-change resync's own generation instead of config changes
- Let the SSH view's message be dismissed so it never hides the terminal
- Say what failed and what to do next in SSH view messages, and retry a failed tab load
- Drop an SSH open answered after any Pane switch, including a switch away and back
- Document which SSH aliases Pane skips and why
- Ignore SSH opens answered after a Pane switch, recover a failed SSH Session load, keep tabs opened during the first load, and let the keyboard reach a row's +
- List only SSH aliases every shell passes to ssh as one plain destination word
- Keep the dot on rows without a + and lift the SSH error above the terminal toolbar
- Follow only SSH config Includes that apply to every host, as ssh does
- Keep SSH tabs reachable after their host leaves the config and show open failures in the SSH view
- Clarify the SSH hosts doc: refresh triggers, Windows ssh choice, skipped hosts
- Pass the SSH hosts section props in the renderer selection harness
- Restart the SSH view on a host switch and drop redundant host refreshes
- Document SSH hosts
- Start SSH tabs in the home folder and keep the host dot and + in one box
- List SSH hosts in the sidebar and open each in a built-in SSH view
- Read concrete Host aliases from the user's SSH config and its Includes
- Count only online machines toward the list probe limit
- Declare owner and mine in the workspaces summary contract
- Recheck workspace access after an invoke body arrives
- Label teammates' machines "owner <login>" and name the full settings path
- Reach teammates' shared machines with runpane workspace
- Apply cold-read fixes to the one-Pane rule
- Reword the Session template sentence so it reads cleanly
- Check for the feature's existing Pane before creating one
- State the rule as 1 feature = 1 worktree = 1 branch = 1 Pane
- One Pane per feature: say so wherever agents decide to create a Pane
- Remember the Pane when a phone opens a desktop-only tab
- Keep phones off desktop-only tabs; drive the split-tab reopen test through panel:activeChanged
- Ignore a relative XDG_STATE_HOME when finding a Nix Tailscale CLI
- Also find snapd's /var/lib path and XDG Nix profiles
- Build the Nix profile path with path.join in the discovery test
- Find snap and Nix Tailscale CLIs under a minimal PATH
- Fix Homebrew Tailscale discovery after macOS relaunch
- Count browser and explorer tabs as phone tabs when ordering and opening
- Drop the trust banner once the prompt is gone
- Explain the folder-trust prompt above a Session's terminal
- Stop writing Claude's config; detect its folder-trust prompt instead
- Refuse external links to any host loopback port without a tunnel
- Finish an Explorer save that outlives the tab before the next
- Keep an unsaved phone edit when the Explorer tab is left
- Add a Pane to its Session even when panel setup fails after it is saved (review M3)
- Auto-name only Sessions created without a name, from a cleanly typed message
- Pre-trust under Claude's config lock and on a fresh install
- Add a new Pane to its Session as soon as the Pane exists
- Show a Session's new name in the PWA header and log renames by name
- Tighten the decided items after review
- Give the Undo toast button a 44px touch target on small screens
- Join the open Session in main once each new Pane exists
- Row menu for Session archive, auto-reconnect, header + buttons, phone-first tabs
- Name the parent Session in the Pane title bar as a way back
- Add a new Pane to the open Session from Create Pane
- Ask what a Session is for, and name blank Sessions from their first message
- Pre-trust Pane's own Session folders for Claude
- Undo reopens the Session only if the person is still on Home
- Say a file is over 1 MB without a rounded size
- Keep a file's Windows line endings when the phone saves it
- Browse, edit and preview worktree files on the phone
- Ask the host for a port's phone address when the tab opens it
- Add a phone handler only when a phone opens the port, and let quit cut a lock wait short
- Word the unreachable state so it holds when the host fails to read its ports
- Leave for Home before archiving the open Session
- Keep tabs off the waiting screen when the host fails to list its ports
- Don't reopen an undone Session after the host changes
- Undo a refused browser address, ignore stale tab creation and port reads
- Fail closed under a password, revoke stopped ports at once, and lock Serve changes
- Keep the host running when a phone drops a media stream
- Drop the previous host's ports on a host switch and sandbox the page frame
- Republish phone addresses when the host switches tailnets
- Say phone pages are unavailable instead of Tailscale off, and narrow the host marker
- Retry a refused Serve change and bound handler removal at quit
- Open browser tabs on the phone
- Give each web port a tailnet address for phones
- Keep #982's Ports dropdown and confirmed-local Open after the rebase
- Forward a host port on any free local port when the next 19 are taken
- Never load the desktop's own service in place of a host port
- Close open port streams when their caller loses access
- Hold loopback tabs until the config says whether this desktop is remote
- Skip only this desktop's own listeners and answer an empty list for hosts without one
- Load remote tabs through the tunnel and mark them on <host>
- Mirror the host's ports onto a remote desktop's loopback
- Stream a forwarded host port to signed-in clients
- Name the host in the remote Ports tooltip and ring the focused row
- Open ports only in confirmed local mode and keep the newest list
- Count agent CLI PTYs as Pane terminals
- End each web probe at 500 ms and skip one-shot relays on Windows
- Show a Session's first blocker as text on its row; name the Explorer card Explorer
- Show a friendly error when Open cannot reach the host
- Catch Windows device names before the first dot
- Back cancels a pending open; show blockers and per-type tab icons
- Keep the Session picker on screen and report failed membership changes
- Scope the archive Undo to its host and keep later navigation
- Editor reveals update this desktop's layout memory (F5)
- The repository view applies activation requests after its tab restore (F4)
- A slow launch restore never overrides a newer Session pick or another host (F3)
- Restored memory takes pages opened elsewhere as inactive tabs; Session tools flush their layout on leave (F2, F6)
- A failed focus request never undoes a created or adopted Pane (F1)
- Never fall back to local files when the remote host is gone
- The Pane view leaves the repository view's tab and memory alone
- A Pane archived mid-debounce stays forgotten
- Session tools apply activation requests after their layout loads
- The repository view keeps this desktop's own tab
- A failed layout-memory write never interrupts opening a Pane
- A page opened elsewhere joins the split without replacing its tab
- Panes focus selects the requested tab over this desktop's memory
- Use PR A's PanelActivationRequest type
- Remember a Pane's layout from the first time this desktop shows it
- Keep each desktop's own tabs, split, Session and new-Pane switching
- Restore Sessions and their tabs reliably on phones
- Opening a Session view moves no other client
- Show current Pane names and keep remote rows from opening locally
- Keep polls at 2 s and let the Ports button close its list
- A Session row's icon opens the Session too
- Ask a silent port again so a slow dev server becomes web
- Reread agent statuses when the first event stream opens
- Open a remote host's file from a client copy
- Show the Ports list in new browser tabs and the address bar
- Detect the host's listening ports and publish them to clients
- Stream media previews from the host on remote desktops
- Remember the tab a phone moves to after a close
- Address QA findings on the quick wins
- Keep a selection when another client closes the shown tab
- Panes focus moves only the host's own desktop
- Tag PWA history entries with their host
- Phones keep and remember their own Pane and tab
- Retry the agent status snapshot like other reads
- Satisfy lint in the activation request
- Only host-initiated activations ask clients to move
- Show live agent status on phones
- Orientation and touch fixes in the PWA
- Add a Pane to a Session from its menu, readable pinned labels
- Plain Home button, More menu, tidier rail and narrow layout
- Undo for Session archive, hover actions and palette commands
- Show goal, next step, blockers and decisions in the Session overview
- Tell the renderer when a project is added or removed
- Count only real agent turns as finished in the attention inbox
- Refuse only Mission Control tile acks, and keep a replacement's exit state
- Address React Doctor findings in Mission Control
- Ship Mission Control behind an experimental setting, off by default
- Keep main's synchronous exit retirement and record only the exit screen
- Avoid false archive safety blocks
- Count prompted turns and per-agent work in the attention inbox
- Add an experimental attention inbox
- Hide the expand chevron on Sessions without Panes
- Add a remembered Start pinned toggle to Create Session
- Keep failure baseline across same-host reconnects
- Keep Archive Tasks collapsed and pulse while archiving
- List archive tasks newest first so rows hold their place
- Restore remembered Mission Control view on host switches
- Adapt Mission Control persistence and fixtures to current worker state
- Preserve terminal flow control
- Stop the Pane Chat radio test racing the terminal for the keypress
- Give the grid one voice, main's capabilities, and a roster that lets go
- Simplify pass: stop bypassing the shared fit, and drop what nothing reads
- Scale the column cap and the expanded tile to the display
- Fit tile content to the tile, snapshot and live alike
- Fix a flow-control jam and six findings from a fresh review
- Address the review: one ack consumer, and four correctness fixes
- Fix the stopped-tile transcript, the terminal font, and idle cost
- Simplify Mission Control
- Refactor Mission Control to current main's gates and fix the viewer sweep
- Rename Agent Fleet to Mission Control
- Add Agent Fleet: a live grid of every agent pane
- Keep discovery passwords out of cache keys
- Refresh and retry computer discovery reads
- Restrict discovery to the signed host owner
- Keep paired-device features on code connections
- Recover protected computer connections
- Native: find and connect to your computers over Tailscale (refs #960)
- Show this computer's address for phone setup (refs #960)
- Send no empty bearer, and keep the host's reason on auth failures (refs #960)
- Let a phone ask a computer for your machine list (refs #960)
- Address review: tailnet-bound profiles, throttled password checks, bounded probes (refs #960)
- Pin the platform in the tailscaled-not-running test (refs #959)
- Fold Remote Access into one page: code hosts join Your computers (refs #960)
- Fix a comma splice in the Workspaces Serve fix (refs #959)
- Shorten Remote Access copy and show OS logos for machines (refs #960)
- Explain every tailnet problem with the step that fixes it (refs #959, #963)
- Catch failed remote access calls in the settings page (refs #960)
- Document visibility, password protection and codeless remote mode (refs #960)
- Add Your machines and visibility settings to Remote Access (refs #960)
- Connect desktop remote mode to tailnet machines without a code (refs #960)
- Gate the Workspaces listener by visibility and an optional password (refs #960)
- Leave a :443 forward to another port alone (refs #959)
- Re-apply Serve handlers within a minute of a tailnet switch (Fixes #959)
- Build connection codes from the live tailnet and its :443 forward (refs #959)
- Preserve telemetry deduplication across hourly resets (refs #898)
- Preserve terminal input when output flush fails
- Preserve local logging for handled CLI failures (refs #260)
- Reduce CLI telemetry and capture bounded app errors (refs #260, #605)
- Handle OpenCode theme and shell variations (refs #867)
- Reconcile OpenCode delivery assertions with main (refs #867)
- Fix OpenCode resume selectors and initial input verification (refs #867)
- Preserve OpenCode merge resolutions after rebase (refs #867)
- Add native OpenCode agent support
- Keep PostHog executable code in the pinned bundle
- Honor Session pins and clarify child pin defaults
- Prioritize recent terminal input and share PATH warmup
- Reduce hot terminal activation mask after completed repaint
- Avoid full terminal repaint on typing echoes
- Defer Monaco in editable file views too
- Recognize Unix tooling paths in Windows lint
- Address file preview review feedback
- Register SQLite symlink skips correctly on Windows
- Resolve SQLite recovery files beside canonical targets
- Keep HTML file previews inert as read-only source
- Cover archive preview limits and unsupported ZIP markers
- Protect SQLite previews from recovery journals and stalled schema reads
- Cover preview capability ownership and asynchronous cleanup
- Validate UTF-8 at the exact binary sample EOF
- Preserve text edits during asynchronous refreshes
- Extend read-only previews to development file formats
- Preview media files with read-only streaming players
- Type project settings regression fixture
- Keep only the pinned Pane icon visible at rest (refs #900)
- Interrupt busy agent submissions and clarify queued delivery
- Recognize Codex agent-switch footer and stabilize readiness tests
- Fix Codex recovery readiness race
- Keep readiness polling changes scoped to agent waits
- Confirm readiness after transient startup composers
- Require observed acceptance for launch prompts
- Report first-run dialogs as readiness blockers
- Store a WSL path edited in project settings like project creation does
- Clarify that WSL handoff restriction applies to receivers
- Use fresh agent readiness during initial Session load (refs #954)
- Remove internal QA history from public README
- Fix sidebar Session retry ownership for #949
- Respect native Linux decorations in sibling layout test (refs #954)
- Retain failed Session intent across reconnects
- Preserve terminals when opening sibling tabs (refs #949)
- Generate watch lifecycle guidance from the CLI contract
- Reject stale runtime reloads after host switches (refs #949)
- Preserve healthy watches on invalid re-arms and classify cancellation
- Fix watch request ownership and reclaim disconnected slots
- Preserve WSL bridge arguments after --
- Fix stale Session and Pane switching after remote clicks
- Print routable remote receiver guidance
- Clarify handoff prerequisites and example shell
- Document Workspaces and task handoff (#936, #939)
- Fix host daemon control and handoff recovery
- Fix WSL handoff routing and verify prompt delivery
- Verify archive process lifetimes and queue mutations
- Limit archive repository locks and update pool fixtures
- Enforce archive reservations for pooled and adopted paths
- Persist native archive cleanup across restarts
- Retain archive activity and retry busy empty roots
- Isolate background agent status from workspace rendering
- Avoid Electron ASAR self-locks during worktree cleanup
- Keep failed worktree cleanup from blocking archive queue
- Preserve complete creation output parity after rebase
- Compare wrapper text independently of platform newlines
- Align Python RunPane validation and recovery output
- Use Python parser field names in supported adoption dispatch fixture
- Test supported Python adoption dispatch and selectors
- Use current adoption handler signature in Python dispatch
- Keep Python adoption support in typed command dispatch
- Reconcile shared helper imports with current main integration
- Compare Python dispatch output across platform line endings
- Derive RunPane dispatch and command identification from its contract
- Describe Python adoption previews accurately
- Correct RunPane timeout handling and CLI output
- Mock successful validation of the requested reserve branch
- Adapt reserve branch test to literal Git argument execution
- Preserve literal arguments through pooled worktrees and revision reads
- Preserve literal Git refs and paths; disable implicit worktree tracking
- Compare complete RunPane parser results across wrappers
- Runpane reliability: Python panes adopt, a complete contract doc, held-composer and create-timeout fixes
- Isolate main tests from provider API keys and share the session status type
- Reorganize docs into README, AGENTS.md, RUNBOOK.md and docs/
- Let Sessions be tiled side by side, each one fully live
- Restore the newer Sessions and sidebar UI
- Let Windows Sessions run agents in a selected WSL distribution
- Render host HTML bundles on connected desktop clients
- Fix remote terminals stuck flushing every five seconds
- Poll for spawned descendants in the process-tree tests instead of sleeping
- Scope electron:rebuild with --only so it works without a C++ toolchain
- Describe and report the actual composer submit key
- Accept Windows shell quoting in reserve branch test
- Cancel departed lock waiters and report pending trash cleanup
- Record the combined pane-lifecycle PR in the orchestrator plan
- Reconcile adopt, archive and locks with agent delivery after combining
- Document named locks for Sessions and teach orchestrators to name them
- Add runpane lock acquire, release, and list
- Add a named lock service to the Pane daemon
- Keep archive cleanup results readable by older CLIs
- Add runpane panes archive --remove-worktree and --session --merged
- Let archive remove adopted worktrees and recognise merged branches
- Remove archived worktrees through a trash directory
- Point orchestrator skills at panes create --branch
- Add --branch, --base, and --prompt-file to runpane
- Create Panes on an exact branch and deliver prompts to adopted Panes
- Isolate last-message transcript fixtures on Windows
- Fix transcript fixture home on Windows
- Honor agent transcript homes and track split paste-mode sequences
- Reconcile report events with Session watch behavior
- Record the combined agent-delivery PR in the orchestrator plan
- Reconcile worker reports with Session watch after combining
- Teach orchestrators to ask workers for runpane report and wait for it
- Add runpane report and panels last-message to the contract and both CLIs
- Store worker reports and journal them as opt-in agent.report entries
- Document delivery state and ghost text for agents and orchestrators
- Add delivery and ghost text to the runpane contract and CLIs
- Report whether an agent took, queued, or left a prompt
- Tag dim and placeholder-grey cells as composer ghost text
- Read Claude and Codex transcripts to find a submitted turn
- Recommend --as-file-pointer for long prompts in the Pane skills
- Add --as-file-pointer and prompt warnings to the runpane CLIs
- Deliver long prompts to Claude and Codex intact
- Document wrapper agent detection and the composer-unknown result
- Allow --agent with --tool-command in the runpane CLIs
- Report wrapper agents and honest submit results from the daemon
- Identify agents launched through wrapper commands
- Run quality checks for stacked and integration pull requests
- Exclude archived Panes from live Session watch membership
- Record implementation PR links in the orchestrator plan
- Discover Session PRs without waiting for a git status refresh
- Document PR watch events in the orchestrator skill and Session docs
- Decode and print PR watch events in both runpane CLIs
- Poll Session members' open PRs and journal conflicts, checks, and merges
- Add opt-in pr.conflicted, pr.checks, and pr.merged journal kinds
- Arm one Session watcher in the orchestrator skill and docs
- Add runpane watch --session with a session-<uuid> default cursor
- Scope workspace waits to a Session and flag replayed baseline entries
- Record PR1 status and plan deltas
- Document watch profiles, --quiet, and dispatch habits in the orchestrator skill
- Accept 128-character watch cursors and explain skipped archive safety checks
- Add runpane watch --quiet and fail loudly on unsupported CLI input
- Add runpane orchestrator improvements brief and plan
- Teach agents through a Pane skill instead of editing repositories
- Embed docs index in app-bundled runpane CLI
- Fix CI expectations for runpane daemon handshake and Windows shim
- Ship runpane with Pane and put it first on terminal PATH
- Associate new panes before tool launch and preserve explicit session payloads
- Associate Panes created inside a Session with that Session
- Register Pane MCP with Cursor automatically.
- Preserve Node 20 compatibility for interactive setup
- Simplify interactive remote setup with guided terminal prompts
- Answer --version before Pane starts
- Keep SGR mouse reporting when a terminal is restored
- Keep MCP stub assertions on command traffic after explicit event filters.
- Resolve adopted agent resume commands once
- Include canonical license terms when packages omit license files
- Restrict pricing alias normalization to Claude version separators
- Make RunPane failures and event subscriptions explicit
- Refresh health asynchronously without overwriting newer runtime events
- Preserve package copyright text in generated notices
- Keep remote host setup and health checks asynchronous
- Use project context for registration and script lifecycle
- Price newer Opus models with their published rates
- Describe current Pane workflows in Help
- Preserve footer-free initial commit behavior
- Fix literal Git commit and stash messages
- Keep a short AGENTS.md pointer to the CLI and MCP server.
- Share the repo id check and read daemon-action commands from the contract
- Add run script, squash-rebase, stash, soft reset, fetch, and folder commands to the MCP parity set
- Press named keys in panels input, guard agents send, and show a focused Pane from any view
- Point panes archive at its undo, and describe the core tools in the README
- Open pane:// links, register Pane tool toolsets, and point errors at the next step
- Add docs search, links, agent tasks, parity commands, and MCP toolsets to runpane
- Tell knip smol-toml is a packaged runtime dependency
- Ship smol-toml in the packaged app
- Document MCP protocol support and entry ownership
- Serve MCP 2026-07-28 on SDK v2: annotations, output schemas, cancellation
- Manage only Pane's own MCP entries and verify config.toml edits by parsing
- Accept --flag=value so MCP tool values can start with a dash
- Simplify MCP tool generation and registration sync
- Serialize MCP registration syncs
- Pane MCP server for Claude Code and Codex
- Keep terminal colors, apply UI scale on launch, and pad the Dock icon
- Report Claude's folder-trust prompt as blocked, not ready
- Tie terminal callbacks to their lifetime; exits are not completed turns
- Keep agents out of the terminal dock
- Keep remote terminal input in order
- Skip terminal refresh work after its xterm is disposed
- 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