diff --git a/PRODUCT.md b/PRODUCT.md index 41a03e611..65e0ff779 100644 --- a/PRODUCT.md +++ b/PRODUCT.md @@ -14,7 +14,7 @@ Dormouse should feel like focused efficiency that cares about beginners and onbo ### Aesthetic Direction -**Primary constraint: Feel native inside VSCode.** The current Catppuccin Mocha design is throwaway — built to get things running. The first design priority is making Dormouse feel completely native within VSCode, respecting whatever theme the user has chosen. This means: +**Primary constraint: Feel native inside VSCode.** The first design priority is making Dormouse feel completely native within VSCode, respecting whatever theme the user has chosen. This means: - Use VSCode's CSS variables and theme tokens, not hardcoded colors - Match VSCode's spacing, typography, and interaction patterns - Light mode and dark mode support from the start (inherited from user's VSCode theme) diff --git a/dor/bin/dor b/dor/bin/dor index 2c2f39e1f..d56dcf89d 100755 --- a/dor/bin/dor +++ b/dor/bin/dor @@ -1,10 +1,11 @@ #!/bin/sh if [ -n "${DORMOUSE_NODE:-}" ] && [ -n "${DORMOUSE_CLI_JS:-}" ]; then - # DORMOUSE_NODE is the editor's Electron binary, which only behaves as Node - # when ELECTRON_RUN_AS_NODE is set. Set it here rather than relying on the - # ambient env to carry it: terminals routinely strip it (so Electron apps - # launched from a shell don't misbehave), and without it Electron launches its - # GUI, ignores the script, and exits 0 — so `dor` would silently do nothing. + # Under VS Code, DORMOUSE_NODE is the editor's Electron binary, which only + # behaves as Node when ELECTRON_RUN_AS_NODE is set; plain Node ignores it. + # Set it here rather than relying on the ambient env to carry it: terminals + # routinely strip it (so Electron apps launched from a shell don't + # misbehave), and without it Electron launches its GUI, ignores the script, + # and exits 0 — so `dor` would silently do nothing. ELECTRON_RUN_AS_NODE=1 export ELECTRON_RUN_AS_NODE exec "$DORMOUSE_NODE" "$DORMOUSE_CLI_JS" "$@" diff --git a/dor/bin/dor.cmd b/dor/bin/dor.cmd index 367c3c4c5..d35134627 100644 --- a/dor/bin/dor.cmd +++ b/dor/bin/dor.cmd @@ -2,10 +2,11 @@ setlocal if "%DORMOUSE_NODE%"=="" goto fallback if "%DORMOUSE_CLI_JS%"=="" goto fallback -rem DORMOUSE_NODE is the editor's Electron binary; it only behaves as Node when -rem ELECTRON_RUN_AS_NODE is set. Set it here rather than relying on the ambient -rem env to carry it: without it Electron launches its GUI, ignores the script, -rem and exits 0 — so `dor` would silently do nothing. +rem Under VS Code, DORMOUSE_NODE is the editor's Electron binary; it only +rem behaves as Node when ELECTRON_RUN_AS_NODE is set, which plain Node +rem ignores. Set it here rather than relying on the ambient env to carry it: +rem without it Electron launches its GUI, ignores the script, and exits 0 — +rem so `dor` would silently do nothing. set "ELECTRON_RUN_AS_NODE=1" "%DORMOUSE_NODE%" "%DORMOUSE_CLI_JS%" %* rem Never move this into a ( ) block: cmd expands %ERRORLEVEL% when it parses diff --git a/lib/src/components/Door.tsx b/lib/src/components/Door.tsx index 1bc2eb5b3..90eca4a2d 100644 --- a/lib/src/components/Door.tsx +++ b/lib/src/components/Door.tsx @@ -115,7 +115,7 @@ export function Door({ {title} {/* `spoken` is unbounded (it lasts until the ring clears), so it joins - the badge cluster instead of replacing it — see docs/specs/layout.md. */} + the badge cluster instead of replacing it — see docs/specs/alert.md → Door. */} {speaking ? ( diff --git a/lib/src/components/focus-step.ts b/lib/src/components/focus-step.ts index 2604ff293..02e368b86 100644 --- a/lib/src/components/focus-step.ts +++ b/lib/src/components/focus-step.ts @@ -2,8 +2,9 @@ * Move DOM focus within an ordered candidate list: step from the currently * focused entry by `delta`, wrapping at both ends. When focus is outside the * list, seed at the first entry for a forward step and the last for a backward - * one. Shared by the popover/modal focus traps (Tab cycling) and the pane - * header context menu (arrow roving) so the wrap arithmetic exists once. + * one. Shared by the popover/modal focus traps and the terminal context detail + * (Tab cycling) and the Workspace tab menu (arrow roving) so the wrap + * arithmetic exists once. */ export function stepFocus(items: HTMLElement[], delta: number): void { if (items.length === 0) return; diff --git a/lib/src/components/wall/tool-run-end.test.tsx b/lib/src/components/wall/tool-run-end.test.tsx index df040b6cb..88ca2082b 100644 --- a/lib/src/components/wall/tool-run-end.test.tsx +++ b/lib/src/components/wall/tool-run-end.test.tsx @@ -99,7 +99,9 @@ describe('Run end', () => { act(() => { terminalRegistry.setTerminalUserTitle(ID, 'notes'); }); await run(COMMAND); await finish(); - expect(await leaf()).toMatchObject({ component: 'terminal', title: 'notes' }); + const after = await leaf(); + expect(after).toMatchObject({ component: 'terminal', title: 'notes' }); + expect(after.params).toBeUndefined(); }); it('ends nothing before the first designated run: a takeover still at the dor line', async () => { diff --git a/lib/src/remote/burrow/peer-surfaces.ts b/lib/src/remote/burrow/peer-surfaces.ts index 0db55444a..a50307c0f 100644 --- a/lib/src/remote/burrow/peer-surfaces.ts +++ b/lib/src/remote/burrow/peer-surfaces.ts @@ -91,8 +91,8 @@ function holdOf(value: unknown): SurfaceHold | null { * * `resolve` is the read-only ownership probe that lets a multi-window Burrow pick * one duplicate claimant before mutating it. `attach` and `resize` are the same - * operation — attach-is-the-resize - * (docs/specs/remote-api.md) — and both go through the live xterm rather than + * operation (docs/specs/remote-api.md → "Size authority: last-attach-wins") + * — and both go through the live xterm rather than * the PTY directly, so the owning pane's own view stays consistent with the * size the phone asked for; each records its hold first, with that size, so the * pane stops fitting itself before the size moves. `release` clears the hold it diff --git a/website/src/lib/playground-fs/viewers.ts b/website/src/lib/playground-fs/viewers.ts index 8ba6c244f..9cd473d00 100644 --- a/website/src/lib/playground-fs/viewers.ts +++ b/website/src/lib/playground-fs/viewers.ts @@ -24,7 +24,7 @@ export interface ViewerRequest { method: string; /** The path after `/playground-fs//`, percent-decoded. */ route: string; - /** `URLSearchParams` of the request URL. */ + /** The request URL's query string (`url.search`), `?` included. */ search: string; body: string; }