Component design

Bot controls

Three states, three toggles, context-dependent actions.
Iteration 3 — final mockup.

States

Active / Idle / Off

The same panel in three states. Status bar anchors the top. Everything below Enabled dims when off.

Active (persistent)
Active 32% / 2h 14m
Enabled
Auto-restart
Colony messaging
Model
opus
sonnet
haiku
Restart
Fresh Start
Idle (non-persistent)
Idle shell ready
Enabled
Auto-restart
Colony messaging
Model
opus
sonnet
haiku
Run Now
Fresh Start
Last run: 14:23 (2h ago)
Off
Off
Enabled
Auto-restart
Colony messaging
Model
opus
sonnet
haiku
Edge case

Non-persistent, currently running

When a non-persistent bot is already running (from Run Now or a schedule), the Run Now button disables to prevent stacking.

Active 15% / 12m
Enabled
Auto-restart
Colony messaging
Model
opus
sonnet
haiku
Running...
Fresh Start
Started: 15:48 (12m ago)
Decisions

Why this design

Slide toggles for power, checkbox for config. Enabled and Auto-restart create/destroy processes — they have real consequences. Colony messaging is a routing preference. The control type signals the weight of the action.

Everything dims below Enabled. Model selector, actions, and sub-toggles all depend on the bot being enabled. Dimming at 35% opacity makes the dependency visually obvious without hiding information.

Context-dependent actions. Persistent bots get Restart. Non-persistent get Run Now. Already-running non-persistent shows "Running..." disabled. No confused states.

Status anchors the top. The first thing you read is the bot's state — Active (green dot), Idle (ember ring), Off (text only). You never have to deduce status from toggle positions.

~280px total height. Compact enough for a sidebar panel. No wasted space, no decorative chrome.