The dashboard gives existing state a window; it does not build a second house behind the curtains.
1. Motivation
Configuration and workspace inspection otherwise bounce between CLI calls and short Python scripts. The dashboard exposes the same public surfaces through a strict TypeScript client over one generated OpenAPI contract:apps/gui/; Python owns the transport-neutral application service and HTTP boundary under heavenbase.api.
2. Start the Workbench
The server binds to127.0.0.1:42777 by default and prefers the macOS system WebView host, with the system browser as a fallback.
On first run, HeavenBase ensures a default workspace exists.
--app explicitly requests a Chromium --app window. --install-app installs ~/Applications/HeavenBase.app so Finder and the Dock can launch the system WebView host directly.
3. Inspect Configuration
The configuration workbench reads and writes throughCM_HVNB.
It shows whether each key is built-in, overridden, or custom and supports scope selection, history, version comparison, reset, and search.
Built-in keys stay locked.
Environment interpolation is shown as written, and secret-like values are masked.
4. Browse Workspace State
The data browser lists registeredWorkspaceSpec values and opens one workspace at a time.
For each Entity, it offers sortable, filterable, paged tables, row inspection, Data and Schema views, placement metadata, query capabilities, and workspace health.
The command palette searches Catalog and MetaSchema cards through ws.search(...).
Workspace rows are read-only in the
0.1.2.2 dashboard. It does not register Entities, alter schemas, upsert rows, or delete rows.5. Use the Optional Assistant
The assistant uses the model configured underheavenbase.dashboard.assistant.
Its tools can list Entities, inspect schemas, sample rows, calculate exact whole-column statistics, search the workspace, query and explain data, and read masked configuration. Query results carry exact pre-pagination total and truncated facts so the interface does not present a page as the whole result.
You can stop an active turn from the interface. Cancellation closes the client stream and releases the server-side progress feed; a provider that ignores cancellation remains bounded by its own timeout.
The optional run_python assistant tool is disabled by default under heavenbase.dashboard.assistant.run_python. Enabling it executes caller-authored Python in the HeavenBase process with the live workspace bound, so expose it only to trusted local users.
Credentials remain masked by default.
Enabling heavenbase.dashboard.assistant.share_credentials may send raw values to the configured external model provider and requires explicit disclosure acknowledgement.
6. Embed the Adapter
Use the public API boundary when another local host owns process lifecycle:app is the ASGI transport over the transport-neutral DashboardAPI. Use heavenbase.dashboard.serve(...) only when HeavenBase should own the loopback server and desktop-host lifecycle.
The dashboard is an adapter over public configuration, Registry, workspace, Catalog, MetaSchema, query, and LLM surfaces. Core domains do not import it.
Summary
- The dashboard visualizes existing HeavenBase authorities.
- The TypeScript client and Python service share one generated OpenAPI contract.
- Loopback is the safe default; network exposure is explicit.
- Workspace browsing is read-only.
- Assistant cancellation and result-coverage facts remain explicit.
- The assistant shares credentials or executes Python only after explicit opt-in.

