Skip to content

feat(glance): morph a live agent node into its terminal for check-in (#2401) - #2402

Merged
kevinthelago merged 2 commits into
developfrom
glance-node-morph
Jul 6, 2026
Merged

feat(glance): morph a live agent node into its terminal for check-in (#2401)#2402
kevinthelago merged 2 commits into
developfrom
glance-node-morph

Conversation

@kevinthelago

Copy link
Copy Markdown
Owner

Clicking a live agent node in Glance grows it in place into that agent's live CLI session — the real PTY stream + a "message the agent" input — and morphs back on close. The graph stays the whole UI; a node just gains a second state (no new panel/tab/dock). Replaces the fixed bottom stream dock (#2369).

Changes

  • GlanceStreamMorph (new): a portal overlay that morphs from the clicked node's on-screen rect ([data-glance-node]) to an expanded panel, animating geometry (left/top/width/height), never a scale — so the terminal text stays crisp. Esc / scrim / the dock ✕ morphs it back; reduced-motion → instant swap.
  • Reuses GlanceChatDock verbatim as the panel body (its TerminalView + the send input); made the dock fill its container (the panel owns the frame).
  • GlanceCanvas: data-glance-node marks each node as the morph origin.
  • GlanceWorkspace: a live agent click opens the morph (check-in); a non-live agent still selects → inspector.
  • Tests: the morph hosts the agent's terminal, and morphs-back-then-onClose on ✕ / Esc.

Safe: closing unmounts TerminalView, whose cleanup is kill-free (PTY kept alive), so open/close never touches the running agent.

Live output only (no resume) and no on/off/delete/modify node controls yet — follow-ups. Typecheck clean, lint 0 errors.

Closes #2401

🤖 Generated with Claude Code

kevinthelago and others added 2 commits July 5, 2026 20:51
…2401)

Clicking a live agent node in Glance now grows it IN PLACE into that agent's live
CLI session — the real PTY stream + a "message the agent" input — and morphs back
on close. The graph stays the whole UI; a node just gains a second state (no new
panel/tab/dock).

- GlanceStreamMorph: a portal overlay that morphs from the clicked node's on-screen
  rect (`[data-glance-node]`) to an expanded panel, animating GEOMETRY not scale so
  the terminal text stays crisp. Esc / scrim / the dock ✕ morphs it back. Reduced
  motion → instant. Closing unmounts TerminalView, which keeps its PTY alive
  (cleanup is kill-free), so the agent is untouched.
- Reuses GlanceChatDock verbatim as the panel body (its TerminalView + the send
  input); made the dock fill its container (the panel owns the frame) — replaces the
  fixed bottom stream dock.
- GlanceWorkspace: clicking a LIVE agent opens the morph; a non-live agent still
  selects → inspector.
- Tests: morph hosts the agent's terminal + morphs-back-then-onClose (✕ / Esc).

No resume (live output only) and no on/off/delete/modify controls yet — follow-ups.

Closes #2401
…point terminal mock

- glance.css: the drill transition moved to the shared .graph-drill-anim
  (shared/ui/layouts/graphCanvas.css, #2418) and GlanceWorkspace already
  uses it — dropped this file's now-dead .glance-drill-anim copy; kept
  the #2401 morph CSS.
- GlanceStreamMorph.test.tsx: the dock renders TerminalSlot since the
  single Terminal Host landed (#2378/#2399), so the old TerminalView
  mock intercepted nothing — mock the slot, mirroring the dock's test.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@kevinthelago
kevinthelago merged commit 4a689de into develop Jul 6, 2026
7 checks passed
@kevinthelago
kevinthelago deleted the glance-node-morph branch July 6, 2026 19:09
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