Record flags in history and draw them as steps
A bool was excluded from the history as "not a measurement", so a true/false port had no curve in the node panel and none on an edge — only the word. It is recorded as 0/1 now and drawn as steps, since a bezier through two states slopes through readings that never happened. The axis is pinned to 0..1, so a flag that was never on sits at the floor rather than mid-box. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -132,11 +132,11 @@ export function EdgeInspector({
|
||||
</div>
|
||||
|
||||
{/* The same curve the node panel draws for this message: one value
|
||||
says little, how it has been moving says the rest. Only for a
|
||||
number, because only numbers are recorded — for anything else the
|
||||
sparkline falls through to its own copy of the value, which the
|
||||
popover already shows below. */}
|
||||
{typeof live?.value === "number" ? (
|
||||
says little, how it has been moving says the rest. Only for what is
|
||||
recorded — a number, or a flag as the steps between 0 and 1. For
|
||||
anything else the sparkline falls through to its own copy of the
|
||||
value, which the popover already shows below. */}
|
||||
{typeof live?.value === "number" || typeof live?.value === "boolean" ? (
|
||||
<div className="mt-2">
|
||||
<MessageSparkline
|
||||
flow={flow}
|
||||
|
||||
@@ -83,11 +83,13 @@ export function MessageSparkline({
|
||||
const ts = live?.ts
|
||||
const value = live?.value
|
||||
useEffect(() => {
|
||||
if (typeof value !== "number" || !ts) return
|
||||
// A flag is recorded as 0/1, the way the server keeps it.
|
||||
if ((typeof value !== "number" && typeof value !== "boolean") || !ts) return
|
||||
const reading = Number(value)
|
||||
setTail((previous) =>
|
||||
previous[previous.length - 1]?.ts === ts
|
||||
? previous
|
||||
: [...previous, { ts, value }].slice(-WINDOW),
|
||||
: [...previous, { ts, value: reading }].slice(-WINDOW),
|
||||
)
|
||||
}, [ts, value])
|
||||
|
||||
@@ -127,7 +129,10 @@ export function MessageSparkline({
|
||||
<Tooltip>
|
||||
<TooltipTrigger asChild>
|
||||
<div>
|
||||
<Sparkline points={points} />
|
||||
<Sparkline
|
||||
points={points}
|
||||
bool={dtype === "bool" || typeof live?.value === "boolean"}
|
||||
/>
|
||||
</div>
|
||||
</TooltipTrigger>
|
||||
<TooltipContent>{caption(points)}</TooltipContent>
|
||||
|
||||
Reference in New Issue
Block a user