feat: ship agent-first mission control v0.2.57
This commit is contained in:
@@ -0,0 +1,86 @@
|
||||
# Dashboard orchestration focus
|
||||
|
||||
## Outcome
|
||||
|
||||
The dashboard is now an orchestration stage: compact operational status frames
|
||||
the top, compact focus tasks frame the bottom, and Iris enters only when the
|
||||
owner invokes the topbar action.
|
||||
|
||||
This is a `distill` correction for an operational product surface. It preserves
|
||||
the established Galaxy/Glass direction and all existing dashboard stores,
|
||||
requests, events, task data, chat messages, agent actions, and route behavior.
|
||||
|
||||
## Implementation
|
||||
|
||||
- Removed the permanently visible `360px` Iris rail from the dashboard
|
||||
workspace.
|
||||
- Made the existing topbar action an explicit `Iris Chat` trigger with
|
||||
`aria-haspopup="dialog"`, `aria-expanded`, and `aria-controls`.
|
||||
- Rendered the existing `IrisChat.vue` data and send handler inside a native
|
||||
modal dialog. The dialog is absent by default, focuses the message field,
|
||||
closes through its named button or Escape, and returns focus to the trigger.
|
||||
- Reduced the operations status surface to one `46px` row. Narrow layouts keep
|
||||
active/planning/blocker signals and remove lower-priority idle/cost detail.
|
||||
- Reduced the task surface to one `44px` focus row with priority, state, title,
|
||||
and owner retained through visible or accessible text.
|
||||
- Increased the first multi-row auto-layout offset to avoid node overlap and
|
||||
introduced compact agent cards at `680px` and below.
|
||||
- Replaced the affected blank inline icon slots with the installed Lucide
|
||||
components.
|
||||
|
||||
No backend, API, store, service, DTO, route, permission, chat-send, task, or
|
||||
agent-selection contract changed.
|
||||
|
||||
## Measured geometry
|
||||
|
||||
At `1440 x 1000`:
|
||||
|
||||
| Surface | Before | After | Change |
|
||||
| --- | ---: | ---: | ---: |
|
||||
| Live orchestration | `774 x 731px` | `1152 x 808px` | `+48.8%` width, `+10.6%` height |
|
||||
| Iris rail | `360 x 902px` | absent until invoked | full workspace width recovered |
|
||||
| Operations status | `57px` high | `46px` high | `-19%` |
|
||||
| Focus tasks | `87px` high | `44px` high | `-49%` |
|
||||
|
||||
## Operated proof
|
||||
|
||||
- Default state: Iris dialog absent and `aria-expanded="false"`.
|
||||
- Pointer path: Iris Chat open -> named close button -> dialog removed -> focus
|
||||
returned to Iris Chat.
|
||||
- Keyboard path: Iris Chat open -> input focused -> Escape -> dialog removed ->
|
||||
focus returned to Iris Chat.
|
||||
- Input path: message text enables the named send action; the existing send
|
||||
handler remains unchanged.
|
||||
- Native dialog top layer and backdrop passed at desktop and `375px`.
|
||||
- No page overflow, clipped nodes, or node intersections at `375`, `680`,
|
||||
`681`, `768`, `1024`, `1440`, or `1920px`.
|
||||
|
||||
The after-state used a temporary controlled browser fixture so the layout could
|
||||
be exercised without credentials or external API dependency. The fixture and
|
||||
temporary QA entry were removed after capture. Evidence maturity is controlled
|
||||
local browser proof, not deployment evidence.
|
||||
|
||||
## Evidence
|
||||
|
||||
- `screenshots/dashboard-orchestration-before-1440.png`
|
||||
- `screenshots/dashboard-orchestration-before-693.png`
|
||||
- `screenshots/dashboard-orchestration-after-1440.png`
|
||||
- `screenshots/dashboard-orchestration-after-375.png`
|
||||
- `screenshots/dashboard-iris-modal-after-1440.png`
|
||||
- `screenshots/dashboard-iris-modal-after-375.png`
|
||||
|
||||
## Technical gates
|
||||
|
||||
```text
|
||||
vue-tsc --noEmit -> passed
|
||||
vitest run -> passed (1 file, 2 tests)
|
||||
vite build -> passed (1,873 modules)
|
||||
git diff --check -> passed; line-ending notices only
|
||||
```
|
||||
|
||||
The Codex `pnpm` wrapper attempted a package-manager bootstrap before executing
|
||||
the repository scripts. Restricted registry access and its non-interactive
|
||||
dependency-purge prompt blocked that wrapper path; the already-installed local
|
||||
script binaries above completed successfully.
|
||||
|
||||
No commit, push, or deployment was performed.
|
||||
Reference in New Issue
Block a user