Skip to content

Changed the UI to better match the different abstractions - #6

Merged
andre-merzky merged 13 commits into
develfrom
feature/dtaas-viz-ui
Aug 24, 2026
Merged

Changed the UI to better match the different abstractions#6
andre-merzky merged 13 commits into
develfrom
feature/dtaas-viz-ui

Conversation

@BenCarter44

Copy link
Copy Markdown
Collaborator

I modified the UI to better capture the multiple digital twins, agents, tasks, and so on. It captures the changes that #1 will bring (using pools).

See for yourself here: https://codingcando.com/research/digital.twins/index.html

Note: the UI right now is using completely fake data. The plugin will need to be updated to reflect this new UI.

@andre-merzky

Copy link
Copy Markdown
Member

Naming note for the new UI: the reserved role names are inference and learning (function, not placement); pools carry deployment names. Details in #7 (second comment).

andre-merzky and others added 2 commits August 24, 2026 13:57
devel brings the merged stack and the phase-1 role rename (#9).  Per
the rule in #7, every conflict resolves toward `inference`/`learning`:
the pool cards keep their new table+graph body and say 'Pool:
inference' / 'Pool: learning', `poolHistory` and the lane colour checks
follow, and the page version supersedes both sides as 0.7.0.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Three gaps from the first live run of this UI:

  * the header counted `w.tasks.size`, and live tasks are ephemeral --
    created, terminal within a second, dropped after the fade -- so it
    read `0 tasks` while the pool graphs pulsed.  It now counts a
    cumulative `taskTotal`.
  * the recent-tasks tables filtered the same ephemeral map and never
    populated.  A rolling `recent` list (the task objects themselves,
    capped at 64) feeds them now, so a finished task keeps its row.  The
    columns changed with it: DT / Task / State / Age -- what the wire
    actually carries.  The old Kind / Agent / Investigator columns were
    faked from a uid hash, which reads as data on a live page; component
    attribution returns when the service sends per-task metadata (#8).
  * the 'visible to broker' subtitle drew into the Channels title at
    narrow widths; it now yields when there is no room.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@andre-merzky

Copy link
Copy Markdown
Member

Pushed two commits on top of the rework:

Verified against a live broker with two twins (screenshot in the DT session log): pool graphs show the sensor cadence and training windows, tables populate, header counts. Remaining for #8: per-task component attribution, and the learner card has no convergence/metrics display in this design yet.

andre-merzky and others added 3 commits August 24, 2026 14:39
The card layout dropped whatever no longer fit below an expanded card
(`+N more`, easy to miss), so on a small window expanding the first
twin hid the second entirely.  Every twin now keeps at least its
collapsed strip: an expanded card is clamped to the height that leaves
the strips below it room, and its content clips inside the card.  The
demo-era hard cap of two cards goes up to twelve while at it; 0.7.1.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The pane was the one part of the page that is a variable-height nested
tree with per-node collapse -- which a browser already knows how to lay
out, scroll and hit-test.  It is now a scrollable <div> positioned over
the canvas frame; the canvas keeps everything else (header, channels,
pools, arcs) and draws only the pane's frame and empty-state.

  * ~320 lines of hand-rolled card/agent/sparkline drawing and
    hit-testing replaced by markup + CSS; sparklines are inline SVG fed
    from the same fake-data functions (still placeholder until #8).
  * the visibility contract survives: the pane publishes each visible
    card's rect onto `tw._rect` in canvas coordinates, null when
    scrolled out -- same meaning it had when the layout dropped cards.
  * constraints held: no jumping (scrollTop survives rebuilds, plain
    birth order, gone twins fade in place), no auto-scroll on a new
    twin, newly-seen twins still start collapsed.
  * full twin id rides the title tooltip; state pill, initializing
    pulse, stream-pulse ring and the closed marker all carried over.

Verified against a live broker with four twins across two sessions at a
1280x620 viewport: expand, scroll to the last strip, collapse -- and the
recording tests still pass (12).  VERSION 0.8.0.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
andre-merzky and others added 4 commits August 24, 2026 16:03
  * 'collapse all' / 'expand all' chip in the pane header (twin level);
    an 'agents' chip per expanded card toggles that twin's agent blocks
    at once.  Agents now start collapsed, like the twins themselves.
  * scroll cues: a thin styled scrollbar plus a subtle edge gradient at
    whichever end has more content -- shown only when there is any.
  * 'Endpoint Pools' is 'Resource Pools', and each pool title is a
    link to the task dispatcher's surface (`.../task_dispatcher/pools`;
    its Explorer page once one exists) -- the pools are its, after all.

Verified live: four twins, bulk toggles both directions, cues appear
only on overflow, the pool link lands on the dispatcher listing.
VERSION 0.8.1.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The all-twins chip reads `twins ▸/▾`, same as the per-card
agents chip.  Native scrollbars are overlay-style on current desktops
and hide themselves, so the pane hides them for real and draws its own
3px position thumb -- always present when there is overflow, wider on
hover, draggable.  VERSION 0.8.2.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Moved into the gutter between the cards and the Digital Twins frame,
and brightened -- flush on the cards' right edge it read as part of
their border.  VERSION 0.8.3.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The twin pane is DOM: scrollable, no twin can vanish
@andre-merzky

Copy link
Copy Markdown
Member

#10 merged in per Andre: the twin pane is now a scrollable DOM overlay (expand/collapse per twin and per agent, bulk toggles, scroll cues + position thumb), pane title 'Digital Twins', pools renamed 'Resource Pools' with titles linking to the task dispatcher surface. Page version 0.8.3, verified against a live broker throughout (four twins, two sessions). This PR is the single review unit now; merges to devel after your look.

The link target is the new Explorer deep link
(radical.orbit#116, `#plugin/broker/task_dispatcher`): inside the
Explorer the hash change navigates in place, from the standalone page
it is a redirect.  No more raw JSON landings.  VERSION 0.8.4.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@andre-merzky
andre-merzky merged commit e60de80 into devel Aug 24, 2026
2 checks passed
@andre-merzky
andre-merzky deleted the feature/dtaas-viz-ui branch August 24, 2026 16:03
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.

2 participants