Skip to content

fix(web): agent nodes animate in and clear sooner - #89

Merged
ripgrim merged 7 commits into
mainfrom
fix/live-agent-motion
Oct 24, 2026
Merged

ripgrim merged 7 commits into
mainfrom
fix/live-agent-motion

Conversation

@ripgrim

@ripgrim ripgrim commented Oct 24, 2026 •

Copy link
Copy Markdown
Collaborator
  • node outline clears 12 s after the last signal (was 40 s), presence drops after 30 s (was 2 min), finish still clears at once
  • both live in contracts (AGENT_NODE_HOLD_MS, AGENT_SESSION_HOLD_MS); the db reads and the web clock timer use them, so the ui fades on time with no new stream event
  • agent outline (founder pick B): 1 px agent track 2 px outside the node or workflow card, breathing over 2.8 s, with a 3 px dithered segment (18% of the edge) that laps every 2.4 s and twinkles; each node starts its lap at its own place
  • node enter (founder pick D): dithered agent noise fills the footprint at 15, 38, 16, 0% over 340 ms while the node fades and lands from 0.96 scale; edges draw in 340 to 480 ms
  • removed nodes and edges fade out over 200 ms before unmount
  • why nodes just appeared before: edges dropped their style, so the delay never reached the path; the 1600 dash drew short edges in a frame; the editor skipped a change that landed as it mounted
  • lane heads are keyed by trigger and fade in after cards move, so they no longer overlap cards during a build
  • reduced motion (os or account setting): static track only, no dissolve, instant enter
  • css tokens are the knobs: --agent-outline-gap, --agent-outline-width, --agent-segment-width, --agent-segment-length, --agent-dither-scale, --agent-lap, --agent-breathe, --agent-move
  • dev agent sim takes removeLast to show the fade out

…the last signal

the founder found the old 40 s and 2 min holds too slow after an agent stops.
server reads and the web clock timer share these constants, so both move together.
- new nodes fade, scale and unblur in over 360 ms, 60 ms apart in arrival order
- each new edge draws in over 240 ms once both of its ends are in
- removed nodes and edges fade out over 200 ms before they unmount
- edges dropped their style, so the delay never reached the svg path
- a change from the last 2 s animates when the editor mounts on it
- the settle timer follows the change's own motion, not a fixed 1.6 s
- the dev agent sim can end by removing its last step
--agent-outline-width and --agent-dither-scale default to the current 6 px band
of 2 px cells, so a later design choice is a token change.

@capy-ai capy-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Capy found no issues.

View 1 other finding in Capy.

Open in Capy

…immer

- a 1 px agent track 2 px outside the node or card breathes over 2.8 s
- a 3 px dithered segment, 18 percent of the edge, laps it every 2.4 s and twinkles
- each node or card starts its lap at its own place so they do not march together
- reduced motion draws the track alone, still
- gap, track, segment width and length, cell scale, lap and breath are css tokens
- dithered agent noise fills the node's footprint at 15, 38, 16 then 0 percent over 340 ms
- under it the node fades and lands from 0.96 scale in the same 340 ms
- its edges draw in from 340 to 480 ms, then the node shows the agent outline
- reduced motion stays instant with no dissolve
- a lane head is keyed by its trigger, so it slides with its lane
- a new head fades in once the cards have moved, over the --agent-move token
- a frame by frame check found 14 overlapping frames before and none after
wrapping the canvas in the enter context reindented the line, and the slop lint flags the
chained unknown cast on changed lines.
@ripgrim
ripgrim merged commit 0170c62 into main Oct 24, 2026
1 check passed
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