Skip to content

feat(dashboard): orchestration canvas fase 2 — quick wins + hardening (2.3/2.4/2.8/2.11/2.12, #12270, #12271) - #12393

Merged
diegosouzapw merged 12 commits into
release/v3.8.51from
feat/orch-fase2-a
Sep 2, 2026
Merged

diegosouzapw merged 12 commits into
release/v3.8.51from
feat/orch-fase2-a

Conversation

@diegosouzapw

Copy link
Copy Markdown
Owner

Orchestration Canvas — Fase 2 / PR-A: quick wins de frontend + hardening

Primeira das quatro PRs da Fase 2 do Orchestration Canvas (/dashboard/orchestration). Só frontend — nenhuma mudança de backend.

O que entra

  • 2.3 Collapse/expand por fonte — clique no nó da fonte colapsa a subárvore num único nó com contadores; estado em ?collapsed=a2a,conductor.
  • 2.4 Busca + filtros — campo de busca (label/sublabel/id) e chips por estado/fonte/provider nas abas Agents e Overview, persistidos na URL (?q=&state=&source=&provider=); filtragem como transformação pura (model/filterSnapshot.ts).
  • 2.8 Copiar trace como JSON — botão no drawer exporta { node, timeline, raw } para o clipboard.
  • 2.11 StatusEdge com partícula — substitui o marching-ants do xyflow por particle-stream SMIL (receita do flow-studio, opacity-gate + offsets puros); desligado em prefers-reduced-motion.
  • 2.12 Cores theme-aware — tokens --orch-status-* (light AA / dark = paleta anterior) substituem o STATUS_HEX fixo na superfície do canvas; demais superfícies xyflow ficam para feat: migrate remaining xyflow surfaces to --orch-status-* theme tokens #12378.
  • Hardening chore(dashboard): orchestration canvas UI hardening (final-review follow-ups) #12270 — Suspense em volta de useSearchParams() em 4 páginas que não tinham boundary (orchestration, combos, providers, radar/setup), chaves mortas wiradas (title/description via generateMetadata, sourceStale com staleSince, actionDone como toast), detailFailed honesto, botões desabilitados in-flight, aria-label i18n, displayName nos 5 nós, deps do Escape por id.
  • Model polish feat: orchestration model polish + missing component tests #12271 — droppedByState copiado (sem alias), identidade estável do snapshot entre ticks de poll (snapshotContentKey), NaN guard em formatElapsed, união tipada sourceIssue, testes faltantes (nós, page-layer, AgentsTab, done-sort).
  • i18n: 10 chaves novas traduzidas de verdade nos 43 locales.

Closes #12270
Closes #12271

Validação

  • node:test + vitest das suítes de orchestration verdes em cada task; typecheck:core, check:dashboard-typecheck, test:vitest, check:cycles exit 0 no tip.
  • lint e test:unit têm reds pré-existentes na base (arquivos não tocados por esta PR): ver issue abaixo.

⚠️ base-red inherited: #12335

Polish deferido (review final): #12392 · tokens nas demais superfícies xyflow: #12378

Spec: _tasks/superpowers/specs/2026-09-01-orchestration-canvas-fase2-design.md (privado). Segue PR-B1 (canal WS agents), PR-B2 (History) e PR-C (Repetir + memória).

@diegosouzapw
diegosouzapw merged commit d2a027a into release/v3.8.51 Sep 2, 2026
21 checks passed
@diegosouzapw
diegosouzapw deleted the feat/orch-fase2-a branch September 2, 2026 02:13
muhamadgalihsaputra pushed a commit to niyatna/NiyatnaRoute that referenced this pull request Sep 27, 2026
… (2.3/2.4/2.8/2.11/2.12, diegosouzapw#12270, diegosouzapw#12271) (diegosouzapw#12393)

* feat(dashboard): orchestration pure snapshot filter (search + chips)

* feat(dashboard): orchestration collapse-by-source in flow projection

* refactor(dashboard): orchestration model polish (diegosouzapw#12271 model items)

* feat(dashboard): theme-aware orchestration status tokens (2.12)

* feat(dashboard): particle StatusEdge for orchestration canvas (2.11)

* feat(dashboard): orchestration search/filter chips + collapse in URL (2.3+2.4)

* feat(dashboard): drawer trace copy + error/a11y hardening (2.8, diegosouzapw#12270)

* chore(dashboard): orchestration UI hardening (diegosouzapw#12270)

* fix(dashboard): type-safe source read in AgentsTab collapse handler

* fix(dashboard): pass staleSince into the sourceStale message

* test(dashboard): orchestration missing coverage + fase2 i18n (diegosouzapw#12271)

* refactor(dashboard): split orchestration page/toolbar/drawer helpers under complexity ratchet

---------

Co-authored-by: Markus Hartung <diegosouzapw@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: orchestration model polish + missing component tests chore(dashboard): orchestration canvas UI hardening (final-review follow-ups)

1 participant