v1.3.0
Added
- **Built-in editors**
.mdand.markdownfiles open in a rich Markdown editor — tables, task lists, front matter, Mermaid, source mode, image paste and drop — whose relative links open in place, with#headinglinks and per-pane Back/Forward (#929, #975, #1172).- A built-in PNG/JPEG image editor (markup, redact, crop, pixel tools) saves in place; Markdown images render at the size the document states, as on GitHub, with resize handles (#1148, #1174).
dor ois short fordor open, and a baredor openopens a fuzzy file picker that shows each file's handler;builtin:codeopens any text file in Monaco (#930, #965, #1092). Confirmed terminal file links such as[Image #2]open in a Dor viewer (#953).
- **Reopen** — command-mode
uordor reopenbrings back closed Surfaces and Workspaces; clean viewers and untouched shells now close without a confirmation (#967). - **Tools** — a Break button turns a Tool back into a plain terminal and moves its page into a browser pane; Tools hidden and idle for 30 minutes stop and restart when shown, restoring their state when they opt in (#980, #961).
dorcommands work from helper terminals without promoting them (#952).- Pi agent sessions resume across app restart (#898).
- Settings → About names the exact build (official, development, or self-host) with a Copy details button; Activity settings moved under Notifications (#1106).
- A "Copy failed" dialog appears when a clipboard write fails every way, with diagnostics to share (#1091).
- Pocket: "Sign out and forget this phone" removes every paired computer and its push registrations (#1251).
- 🖥️ **Workspaces** — right-click a tab to Rename, Pin right, Copy ref, Move to new window, or Close, with
dor workspace pin/unpin; tabs size to their names and animate reorders; Pocket groups its session list by Workspace (#1009, #1045, #956). - 🖥️ ⌘⇧T / File → Reopen Closed on macOS, including closed windows (#967).
- 🖥️ On macOS, a frozen window is sampled and restarted onto the still-running terminals (#993).
- 🖥️ Labs: "No-confirm delayed kill" replaces close confirmations with a 10-second restore window (#969).
Changed
- Surface and Workspace ids are
surface:<n>/workspace:<n>: unique across the app, never reused, and unchanged when a pane moves.DORMOUSE_SURFACE_IDcarries the same string.dor list --id-formatand thesurface_ref/workspace_refJSON keys are removed, and old forms like3orpane-…are refused. Layouts saved by older builds are discarded on the first launch after upgrading; settings, pairings, and Tool trust are kept (#1085). - A Tool lasts one run: when its command quits, crashes, or fails to boot, the pane becomes a plain terminal, and only the run Dormouse launched may open files (#979, #1061).
- Pane drag and drop: drop on a pane's middle to swap, on its outer thirds to split, or on gutters and window edges; pause on an edge and slide along it to drop beside a group of panes (replacing scroll-wheel scope cycling); Escape cancels; Tool and browser panes drag and resize like terminals (#1177, #905, #1168).
- Alerts are never silently dropped: a task finishing while you watch becomes a TODO, deferral waits only while a program is confirmed busy, only output that changes the screen counts as working, and "pause" is now "defer" (#1080, #1083, #1171, #1107).
- The terminal context panel is denser and torn from its source pane, with the other panes dimmed behind it (#1010).
- Browser panes nobody can see stop streaming; iframe pages keep their origin and data across Reload (#958).
- Settings → Network levels are renamed "Nowhere", "Local networks only", "Anywhere", and "Anywhere, through \<your Relay>" (#1039).
- Pocket asks for a passkey far less often: it stays signed in across launches, and reconnects to a recently used computer within that computer's presence window (#1044).
- Only a paired phone can register for push notifications. Phones paired before this release keep their registrations, but must pair again to re-enable push (#1226).
- Natural Voice (formerly managed voice, still a Hosted preview) enrolls separately from remote control, offers a curated set of voices, works in VS Code, and deletes its token at Hosted when turned off (#999, #1000, #1191, #1207).
- A terminal link that opens another app names it in a confirmation, a document link to an HTML or SVG page asks first, and dangerous Windows protocol handlers are blocked (#1101, #1201).
- The pairing approval dialog shows only the device names Pocket itself sends (#1163).
Fixed
- Security hardening: safe path quoting for PowerShell and fish, control and bidi characters refused in Tool definitions and links, a tighter webview CSP, no repo-configured git fsmonitor, planted Windows executables and network-share browser paths refused, Playwright loaded only from its own install, owner-only logs, and stricter Local networks and passkey checks (#1033, #1065, #1060, #1040, #1197, #1162, #1034, #988, #1031, #1224, #1240, #1223, #1243, #1237, #1242).
- Copying goes through the host's native clipboard, so copies no longer fail intermittently (#1198).
- On Windows, WSL and Git Bash terminals start correctly again, shells stop promptly on close, typing no longer lags while ports are probed, and copy-editor keys no longer leak to the terminal (#1253, #985, #928, #951).
- Agent-browser panes no longer freeze on a stale tab, hover and wheel reach unselected browser panes, and narrow viewports render cleanly and survive a provider swap;
dor agent-browser dor-diagnosticsreports on a frozen stream (#1176, #1175, #1100, #1124). - App restart resumes every supported agent, including Codex 0.160, agents interrupted mid-reply, and narrow or hidden panes (#960).
- A crashed full-screen program no longer leaves mouse modes stuck, and starting Dormouse from Claude Code no longer turns off transcript saving in its panes (#1157).
- Restarting a command in place no longer rings a spurious exit alert, and a serving Tool shows its TODO pill (#976).
- A shell displaced by session restore stops instead of streaming into the pane (#1050, #1070).
- Pane resizing follows the pointer when minimum sizes clamp the layout (#901).
dor ensureanddor toolaccept--flag=valuebefore--, anddor kill/dor reopenhelp shows valid JSON (#1116, #1184).- Enabling Pocket push no longer fails on removed or other-account computers, and a removed computer's push registration is retired (#1095, #1238, #1239).
- One-time connection: a stalled attempt can be retried, and the phone page shows expiry at the deadline (#918, #916).
- Fixed update approval during the launch check,
dorrequest routing across windows, VS Code terminal adoption on reload, and lost pairing outcomes (#959). - 🔌 Closing VS Code shuts terminals down gracefully, and a malformed theme push no longer half-applies (#983).
- 🔌 On Windows, remote control between VS Code windows uses an unpredictable pipe name (#1252).
- 🖥️ macOS logout or restart with Dormouse open no longer aborts (#990).
- 🖥️ On macOS, Cmd+C/X/V and undo work inside Tool editors through a native Edit menu (#943).
- 🖥️ Windows have a minimum size and reopen on screen (#1058).
- 🖥️ Updated rustls for GHSA-2mjx-qc3c-rqvc (#1073).