Skip to content

v1.3.0

Latest

Choose a tag to compare

@nedtwigg nedtwigg released this 21 Oct 00:39
· 291 commits to main since this release
Immutable release. Only release title and notes can be modified.

Added

  • Built-in editors
    • .md and .markdown files 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 #heading links 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 o is short for dor open, and a bare dor open opens a fuzzy file picker that shows each file's handler; builtin:code opens 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 u or dor reopen brings 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).
  • dor commands 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_ID carries the same string. dor list --id-format and the surface_ref / workspace_ref JSON keys are removed, and old forms like 3 or pane-… 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-diagnostics reports 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 ensure and dor tool accept --flag=value before --, and dor kill / dor reopen help 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, dor request 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).