Changed the UI to better match the different abstractions - #6
Conversation
|
Naming note for the new UI: the reserved role names are |
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>
|
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. |
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>
* '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
|
#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>
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.