Interface EditTarget

Where to land when entering the edit experience (EDITOR_FIRST_EDITING_SPEC §6).

Two target classes, and at most one may be given — supplying both is refused invalid-params. Omit both to edit the current route's entry.

  • Own-source (path): a repo-relative path in the CURRENT repo. Self-scoped — the app you are already running; the host navigates within the current route, never to another repo.
  • Mount-file (file): a file in a mount you ALREADY HOLD, opened in the main edit experience (§9, settled 2026-08-28). You can only name a mount you hold: an unheld one is forbidden, and indistinguishably so from one that does not exist, because an app must not be able to probe for mounts (no existence oracle). Editing a file outside your mounts stays picker-mediated (pick-file).

A URI, a .. segment, or a NUL is refused invalid-params in either class.

interface EditTarget {
    file?: { mountId: string; relPath: string };
    path?: string;
}

Properties

Properties

file?: { mountId: string; relPath: string }

A file in one of YOUR OWN mounts, by the portable mount reference. relPath is mount-relative and leading-slash (e.g. /notes/idea.mdx). Mutually exclusive with EditTarget.path.

There is no mode here on purpose: writability is the HOST's live reading of the mount, not the caller's claim. A ro mount — which is also how an anonymous share-link viewer surfaces — is refused read-only at call time, before the editor is entered, so you never land in an editor that cannot save.

path?: string

A repo-relative working-tree path in the current repo to focus once in edit mode (e.g. src/App.tsx). Omit to edit the current route's entry.