diff --git a/docs/specs/dor-cli.md b/docs/specs/dor-cli.md index c4f7092fa..d711ea8a2 100644 --- a/docs/specs/dor-cli.md +++ b/docs/specs/dor-cli.md @@ -143,11 +143,15 @@ Control direction: `dor` → sidecar JSON-lines net socket → Rust command/even bridge → `TauriAdapter` `CustomEvent("dormouse:control-request")` → Wall handler, and back along the same hops. -**A request is routed to the window that owns its `DORMOUSE_SURFACE_ID`**, and -one naming no Surface goes to the focused window. **A Surface no window owns -fails** — `No Dormouse window owns surface ''` — rather than being handed to -a sibling, which would act on the wrong terminal. **A cancel follows its own -request** to the window holding it (`docs/specs/standalone.md` → Routing). +**A request naming a Workspace or a Window is routed to the window holding +it**, whichever window the caller sits in; one naming neither goes to the +window that owns its `DORMOUSE_SURFACE_ID`, and one naming no Surface to the +focused window. A target the registry cannot place — an unknown ref, or a name +two windows use — reaches the caller's own window, which refuses it by name. +**A Surface no window owns fails** — `No Dormouse window owns surface ''` — +rather than being handed to a sibling, which would act on the wrong terminal. +**A cancel follows its own request** to the window holding it +(`docs/specs/standalone.md` → Routing). ### VS Code @@ -289,14 +293,18 @@ Invariants: - Text list output defaults to refs; commands that list handles accept `--id-format refs|ids|both` (`uuids` is a compatibility alias for `ids`). JSON list output always includes both refs and stable ids. -- `workspace:` selects a container and is **positional**, so a strip reorder - renumbers it; `workspace:` is the stable handle and **resolves only when - exactly one Workspace carries that name**, else the error lists the - candidates. Both are accepted bare (`2`, `build`), and **a ref that reads as a - number is positional**, never a name. **A Window is `window: