Conversation
…dgepodge Replace the cmux-shaped `dor list-panes` / `dor list-pane-surfaces` and the JSON-only `dor identify` with a single native `dor list`. It lists every Surface in the current Workspace — terminals and browser Surfaces, including minimized (doored) ones — one row per Surface in `surface:N` order. - Text marks the focused Surface with `*` and the calling terminal with `(you)`, and shows type, view, location (cwd / URL), title, and `[ringing]` / `[todo]` tags. - `--ports` folds in the existing port-discovery engine: the host calls `PlatformAdapter.getOpenPorts` per terminal Surface, in parallel, degrading to none on remote/unsupported/error. Opt-in because it shells out per pane. - `--json` folds in the identity dump `dor identify` used to print: top-level `caller_surface_ref` / `focused_surface_ref` and a `host` block (app, workspace, cli_js_path, node_path) — never the private control socket. Host: `surface.list` now includes minimized Surfaces via a dedicated `buildDorSurfaceList` (targeting via `buildDorSurfaces` is unchanged), enriches each Surface with view/cwd/activity/command/url/ringing/todo (surfacing the cwd that was computed-but-unused), and attaches ports when requested. Workspace scope and type/state filters are staged in the spec's Future. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Merge the adjacent ref/pane_ref conditional spreads in renderSurfaceJson. - Precompute the location column in renderListText (was derived twice per row). - Drop the dead `?? createTerminalPaneState()` fallback on the total `states` map. - Move `browserUrlFromParams` into browser-surface.ts, the param-classification SSOT, instead of a private helper in Wall.tsx. - Note that buildDorSurfacesInternal is a parallel projection to the phone's DirectoryEntry so the shared field derivations are kept in sync. Kept the two buildDorSurfaces/buildDorSurfaceList wrappers: the named split keeps targeting from ever seeing minimized Surfaces, and the includeMinimized axis will generalize to a scope param when workspaces land. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Deploying mouseterm with
|
| Latest commit: |
b11d0ce
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://7bf681fb.mouseterm.pages.dev |
| Branch Preview URL: | https://dor-list.mouseterm.pages.dev |
dormouse-bot
approved these changes
Jul 8, 2026
This was referenced Jul 9, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Replaces the hodgepodge of listing commands (
dor list-panes,dor list-pane-surfaces,dor identify) with a single nativedor list, and folds in the existing port-discovery engine.What it does
dor listlists every Surface in the current Workspace — terminals and browser Surfaces, including minimized ones — one row per Surface insurface:Norder.*marks the focused Surface,(you)marks the calling terminal; columns are type,view(paned/zoomed/minimized), location (cwd for terminals, URL for browser Surfaces), and title, with[ringing]/[todo]tags.--ports: folds in port discovery — the host callsPlatformAdapter.getOpenPortsper terminal Surface in parallel (filter-before-fetch, terminal-only), degrading to none on remote/unsupported/error. Opt-in because it shells out per pane.--json: adds the identity dumpdor identifyused to print — top-levelcaller_surface_ref/focused_surface_ref(null when the caller/focus isn't in the list) and ahostblock (app, workspace, cli_js_path, node_path). Never the private control socket.Host changes
surface.listnow includes minimized (doored) Surfaces via a dedicatedbuildDorSurfaceList—dortargeting (split/kill/send/read viabuildDorSurfaces) stays visible-only, so listing sees more without changing what you can act on. Each Surface is enriched withview/cwd/activity/command/url/ringing/todo(surfacing the cwd that was computed-but-unused), and ports are attached in the handler when requested.Scoped out (staged in the spec's Future)
--all/--workspace/--workspaces) — waits on the workspaces rollout; todaydor listshows the single active Workspace. The host asymmetry (standalone mounts one Workspace at a time; VS Code puts each in a separate webview) is recorded so--allisn't mis-scoped later.--type,--running,--alert).DirectoryEntryprojection — left as a parallel projection with a drift-warning comment.Testing
dorCLI: full text/JSON/--ports/--id-format/caller/no-env behavior is snapshot-tested end-to-end (64 tests pass).lib: typechecks clean; Wall targeting tests (split/kill) pass with the refactored builder.docs/specs/dor-cli.md) updated to match;pnpm lint:specspasses.🤖 Generated with Claude Code