feat: ship agent-first mission control v0.2.57
CI - Build & Test / Backend (.NET) (push) Successful in 42s
CI - Build & Test / Frontend (Vue/TS) (push) Successful in 2m46s
CI - Build & Test / Security Check (push) Successful in 3s
CI - Build & Test / Deploy Nexus (push) Successful in 56s

This commit is contained in:
AzuTear
2026-07-31 22:39:47 +02:00
parent 3bc7622977
commit f5552218bc
535 changed files with 95242 additions and 8791 deletions
@@ -0,0 +1,63 @@
# Structural proof preflight
## Product contract
- **Surface:** desktop operational product UI
- **Selected source:** `reference/selected-option-2.png`
- **Concept sentence:** For an owner supervising an OpenClaw run, Run Control
should feel like live mission instrumentation by combining an authoritative
agent topology with one connected decision inspector, while avoiding a
dashboard inventory of unrelated cards.
- **Evidence boundary:** authored controlled prototype; no backend or provider
request
- **Supported width:** 1100 CSS px and wider; primary proof at `1440 x 1024`
- **Explicit exclusion:** no mobile layout and no standalone Mobile Chat page
## Entry mode
`task-first`. The selected run name, runtime state, session reference, active
agent path, and pending approval are visible before the first material action.
The first material action is `Review approval`; it opens a connected dialog
without changing the mock decision.
## Section grammar
| Section | Role | User question | Grammar |
|---|---|---|---|
| Sidebar/topbar | Orient | Where am I and which run is active? | fixed navigation and compact run metadata |
| Status strip | Orient | Is anything waiting or blocked? | one lightweight status row |
| Agent topology | Explain | Who is doing what, and what depends on whom? | spatial nodes with one highlighted execution path |
| Event rail | Prove | What happened and where did the state come from? | chronological rows opening event details |
| Inspector | Explain/Act | What is selected and what can I do safely? | one persistent context rail |
| Approval dialog | Act | What exactly am I approving? | scope, impact, immutable context, explicit decision |
| Toast/recovery | Recover | What changed and can I reverse the mock action? | connected status plus visible undo/restart |
## Signature gesture
The active topology path is the single dominant gesture. A restrained glow may
echo on the selected node and primary approval action. Event rows, dense
metadata, error/recovery copy, and modal body text must remain plain and
high-contrast.
## State and copy truth table
| State | Visible facts | Allowed action | Forbidden claim | Recovery/focus |
|---|---|---|---|---|
| Pending approval | Executor waiting; scope not yet approved | inspect agents/events/session/provider; review approval | deployment started | dialog close restores trigger focus |
| Approval dialog | exact authored scope and no-production-mutation impact | approve, request changes, close | live policy check | close returns to approval trigger |
| Approved | decision recorded; Executor preparing artifacts | inspect; undo mock decision | deployment executed | undo restores pending state |
| Paused | run overlay and paused label | resume; inspect details | agents advancing | Resume in topbar |
| Stopped | stopped overlay and recovery card | inspect; restart mock run | runtime still active | Restart restores pending approval |
| Event detail | actor, time, correlation, source | close | live trace evidence | close restores event-row focus |
| Provider/session detail | authored connected state and explicit no-request copy | close | verified live provider or secret visibility | close restores metadata-row focus |
| Ask Iris | explicit mock label and authored response | submit local text, close | live model response | close restores topbar trigger |
## Proof selectors and settle condition
- Primary canvas: `[data-testid="run-canvas"]`
- Executor node: `[data-testid="agent-executor"]`
- Approval node: `[data-testid="approval-node"]`
- Review trigger: `[data-testid="review-approval"]`
- Confirmation: `[data-testid="confirm-approval"]`
- Settle condition: local fonts loaded, the canvas is visible, no dialog
transition is pending, and the selected node geometry is stable.