Skip to content

feat(console): registry-first run-anywhere overview with a mesh picker#198

Open
Lanzelot1 wants to merge 1 commit into
mainfrom
feat/console-anywhere
Open

feat(console): registry-first run-anywhere overview with a mesh picker#198
Lanzelot1 wants to merge 1 commit into
mainfrom
feat/console-anywhere

Conversation

@Lanzelot1

Copy link
Copy Markdown
Collaborator

What

A bare cotal console now resolves from the mesh registry only — never the cwd — so a stray local .cotal/ can neither hijack the target nor block it with default-occupied ("another mesh is running at …"). With several meshes registered, a TTY opens a mesh overview of every broker on the machine (space · server · mode · root); pick one to drill into its spaces, b walks back up. Piped/--plain still resolves a single target (current, else a clear ambiguous error), and --space/--server/--creds behave exactly as before.

  • @cotal-ai/workspace: new resolveRegistryTarget() (registry-only, no cwd) and registryTarget(entry); resolveMeshTarget shares the registry tail.
  • @cotal-ai/cli: new MeshPicker level above the space picker; per-mesh connect failures render inline in the picker instead of exiting the TUI; the same admin-mint + preflight + stale-prune rules apply on entry.

Why

The console is the read-only run-anywhere view. Local-project-wins target precedence makes sense for write commands (spawn), but for the console it meant a leftover .cotal/ dir anywhere up the tree could block the whole overview.

Verified

  • pnpm typecheck + pnpm test green; preflight/connect/view smokes pass; spawn-from-anywhere smoke extended with registry-only resolution checks (34 checks).
  • Live: from a directory with a stray .cotal/, cotal console joins the registered mesh instead of erroring; with two registered meshes the picker → space overview → space console → back chain works against a live broker.

@Lanzelot1
Lanzelot1 force-pushed the feat/console-anywhere branch from ca881cd to 11fad76 Compare July 8, 2026 08:56
A bare `cotal console` now resolves from the mesh registry only — a stray
local .cotal/ can neither hijack the target nor block it (default-occupied)
— and with several meshes registered the TTY opens a mesh overview of every
broker; pick one to drill into its spaces, b to come back.
@Lanzelot1
Lanzelot1 force-pushed the feat/console-anywhere branch from 11fad76 to 7236d8e Compare July 8, 2026 09:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant