Skip to content
Registry

compose-ui

v0.1.9

Compose project supervision in the Console — a page over compose::* with live container state, lifecycle actions, worker packages, and per-container log tails.

license: Apache-2.0composeconsolelogsoperationssupervisorui

Install

bash
iii trigger compose::add worker=compose-ui

Run in your project with the iii engine running. Exact versions are immutable and digest-pinned.

skill doc

SKILL.md

compose-ui

The compose-ui worker puts the compose daemon in the Console. Its page (Compose, page compose) opens on a topology map of the engine, the namespace, and the containers laid out by start_after, and shows every container the daemon supervises with its live state, PID, and last error; starts, stops, and restarts containers or the whole project in dependency order; adds, updates, and removes declared worker packages; and tails each container's log. Every lifecycle action is the daemon's own compose::* function, so what the page does and what iii trigger compose::… does are the same operation.

The worker itself owns two things the daemon does not expose on the bus: a compose-ui::changed trigger type that fires when the daemon writes its durable project state or the compose file changes on disk, and compose-ui::logs, a read-only tail of one container's log.

When to Use

  • A person asks why a container is failed or stuck in starting: compose::status gives the state and last_error; compose-ui::logs gives the last lines the process wrote before it died.
  • A person wants to see the fleet, restart something, or add a worker without leaving the chat: open the Compose page with compose in the command palette or host.panels.open({ pageId: 'compose', context: { container } }) from another worker's UI.
  • A worker needs to react to supervisor changes (a crash cascade, a new container, a compose file edit) without polling: bind compose-ui::changed with an empty config and re-read compose::status.

Boundaries

  • Lifecycle belongs to the daemon. Call compose::up, compose::down, compose::restart, compose::add, compose::remove, and compose::update directly; this worker adds no proxies for them.
  • compose-ui::project reports environment variable names only, never values.
  • compose-ui::logs reads at most 500 lines and 256 KiB from the end of one file and never lists or reads anything else in the state directory.
  • The worker must run in the compose project's namespace (compose supplies it; a standalone process needs III_NAMESPACE).

Functions

Function Purpose
compose-ui::logs { container, lines?, file? } → last lines of /logs/.log with size, truncated, missing.
compose-ui::project { file? } → the compose file as declared (namespace, engine endpoint, timeouts, each container's source, version, start_after, environment keys, run script) plus each running container's PID and listening TCP ports.

Trigger types

Type Config Payload
compose-ui::changed {} { kind: 'state' | 'file', file, namespace, state_dir, path, captured_at }

Search the registry

Find workers, kits and executables, or jump to a page.