Skip to content

feat(dashboard): orchestration canvas — unified model + snapshot hook (part 1/2) - #12156

Merged
diegosouzapw merged 11 commits into
release/v3.8.51from
feat/orchestration-canvas-model
Aug 31, 2026
Merged

diegosouzapw merged 11 commits into
release/v3.8.51from
feat/orchestration-canvas-model

Conversation

@diegosouzapw

Copy link
Copy Markdown
Collaborator

Pure domain model (OrchState/OrchNode) unifying Cloud Agent + A2A + Conductor + routing, plus the polling/WS-triggered snapshot hook. No UI yet — part 2 adds /dashboard/orchestration. Spec: _tasks (private). Tests: 3 node:test model suites + 1 vitest hook suite.

⚠️ base-red inherited: #12109

…haned-runner tasks, true overview counts

Addresses the final whole-branch review findings on the Orchestration Canvas
model layer before merge:

- mergeSnapshot: materialize the placeholder source node when a source status
  reports offline:true (not only !ok), so PR-2's SourceNode can actually reach
  the sublabel === "offline" render arm for an offline Conductor.
- fromConductor: a running task can only be "absorbed" into a runner's
  ActivityNode when that runner id is present in snap.runners — a task whose
  runner deregistered mid-flight now emits as a normal work node instead of
  vanishing.
- OrchNode gains an additive droppedByState field; mergeSnapshot stamps it on
  overflow nodes with the per-state counts of the work nodes the 40-node cap
  dropped, and overviewProjection folds it into counts (never columns) so the
  overview counters always show true totals per operator ruling.
- Fixes the pre-first-poll 1970 generatedAt (lazy Date.now() seed for
  polledAt) and nulls debounceRef after clearTimeout in the poll effect's
  cleanup to avoid a StrictMode remount permanently swallowing WS triggers.
- Prettier formatting pass on the touched model/hook/test files.
@diegosouzapw

Copy link
Copy Markdown
Collaborator Author

Fechando e reabrindo apenas para atualizar o base.sha congelado da PR (criada minutos antes do #12139 mergear — o gate new-code herdava searchProxy 1→2 e o mutation-gate rodava sem o registro do #12170). Nada muda no conteúdo.

@diegosouzapw

Copy link
Copy Markdown
Collaborator Author

Reopen 2: o primeiro reopen correu 20s após o merge do #12170 e o evento congelou o payload antigo (base-ref 8b7afc0, preview sem o registro do stryker). Agora com a base assentada o CI roda contra 718accb.

@diegosouzapw diegosouzapw reopened this Aug 31, 2026
@diegosouzapw
diegosouzapw merged commit 63e4afa into release/v3.8.51 Aug 31, 2026
45 of 47 checks passed
@diegosouzapw
diegosouzapw deleted the feat/orchestration-canvas-model branch August 31, 2026 17:43
muhamadgalihsaputra pushed a commit to niyatna/NiyatnaRoute that referenced this pull request Sep 27, 2026
… (part 1/2) (cheaper-inference#12156)

Modelo puro do Orchestration Canvas (tipos, 3 mappers, mergeSnapshot com dedupe/staleness/cap, projeções flow+overview) + hook de polling com gatilho WS. Ciclo completo: 9 tasks TDD com review por task, review final whole-branch + fixes verificados 6/6, refactor de complexity re-validado (comportamento preservado). CI: 18 pass. Testes: 31 node:test + 2 vitest. Parte 2/2 (UI /dashboard/orchestration) na sequência.
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.

1 participant