Skip to content

Dashboard v0.3.0 — terminal :commands and a settings dialog - #14

Merged
gmpassos merged 1 commit into
masterfrom
feat/dashboard-shell-commands
Jul 15, 2026
Merged

Dashboard v0.3.0 — terminal :commands and a settings dialog#14
gmpassos merged 1 commit into
masterfrom
feat/dashboard-shell-commands

Conversation

@gmpassos

Copy link
Copy Markdown
Contributor

Brings the OmnyServer dashboard's node shell to parity with the OmnyShell dashboard, and adds the settings dialog — reusing shared code from omnyshell_web 1.16.0 rather than duplicating it.

Commands

A node shell (node/<id>/shell) now understands the same colon commands you type at the prompt:

  • 16 built-ins from LocalCommandRegistry.withDefaults() (omnyshell package): :info :whoami :os :arch :host :node :capabilities :session :latency :ping :tunnel :tree :detach :clear :exit :help
  • :ai — an agent in the terminal, its provider calls proxied through the Hub (registerAiCommand)
  • :ide — a terminal IDE on the node (registerIdeCommand)

None of it is reimplemented: shell_screen.dart changes commands: null into a real registry and passes the context the commands read (client, node metadata for :info, principal, per-node history). The terminal stack is the same WebShellHost this dashboard already embedded.

Settings

A gear in the header opens Settings: the theme, and the AI configuration (provider / model / your key or the Hub's default / agent mode / reply language) that :ai and :ide use. The AI controls are the shared aiSettingsSection from omnyshell_web, so this dashboard and OmnyShell's configure the agent identically — no duplicated UI.

Sharing (the "generalize to share" ask)

The reusable pieces were made public in omnyshell_web 1.16.0 (published): registerAiCommand / registerIdeCommand / AiSettingsController barrel-exported, and aiSettingsSection extracted into ui_kit (the OmnyShell app now composes it too). This dashboard imports them.

Deps

omnyshell_web ^1.15.0 → ^1.16.0; adds command_shield ^1.4.0 (the tool-safety gate :ide uses).

Verification

Analyze/format clean; version test passes; the dart2js release build (what the deploy runs) bakes in : dispatch, :info, the AI section, the settings gear, and the footer Dashboard v0.3.0 · OmnyServer v0.15.1.

Scope note

These commands live inside a node's shell, not a dashboard-wide palette. The settings dialog covers AI + theme (not omnyshell's terminal-size/text-size controls, which aren't extracted yet).

🤖 Generated with Claude Code

Brings the fleet dashboard's node shell to parity with the OmnyShell dashboard.
A node shell now understands the same colon commands typed at the prompt — the
omnyshell built-ins (:info, :tree, :tunnel, :ping, …) plus :ai (an in-terminal
agent, proxied through the Hub) and :ide (a terminal IDE on the node). None of it
is reimplemented: the command registry is OmnyShell's, wired into the terminal
this dashboard already embeds (`commands: null` becomes a real registry).

Adds a settings gear in the header opening a dialog — theme, and the AI agent
configuration (provider/model/key or Hub default, mode, reply language) that :ai
and :ide read. The AI controls are the shared `aiSettingsSection` from
omnyshell_web 1.16.0, so both dashboards configure the agent identically.

Requires omnyshell_web ^1.16.0 (which makes those pieces public API) and adds
command_shield ^1.4.0 (the tool-safety gate :ide uses).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@gmpassos
gmpassos merged commit 8f807a7 into master Jul 15, 2026
5 checks passed
@gmpassos
gmpassos deleted the feat/dashboard-shell-commands branch July 15, 2026 04:00
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