gpui-ai

Human in the loop

Question flow

A short sequence of questions an agent asks before it acts.

Question flow — gpui-ai

Starts when it scrolls into view

Pop out

NORD FROST · DARK · RADIUS 6/10 · BASE 16PX · SHADOW

Running the real component, compiled to WebAssembly. The frame is 340 px tall, which is what this story measures at the demo width in the default type size — a narrower column or a theme that changes that size will wrap it differently.
Story
question-flow
Demo height
340 px
Events
QuestionFlowEvent

Code

Cut from the gallery story this page runs, so it stays true.

crates/gallery/src/gallery.rsOpen in the galleryImplementation
QuestionFlow::new("launch", "Before I draft the launch plan")
    .questions(self.questions())

Events and ownership

Who owns the state
QuestionFlow renders state supplied by the application; it does not own durable work.
What it emits
Interactive intent is reported through the typed QuestionFlowEvent contract and stable application IDs.
What it means
A short sequence of questions an agent asks before it acts.
Overflow and motion
Growing content remains reachable in a bounded vertical surface; reduced motion preserves a useful state.

Event types

  • QuestionFlowEvent

What the demo does and does not show

The demo above is the same Rust as the native component, compiled to WebAssembly and drawn on a WebGPU canvas — not a mock-up, a recording, or a re-implementation. What it paints is what the component paints: layout, colour from the live theme, and motion.

The live browser specimen requires WebGPU; the native component remains the authoritative runtime.

A canvas cannot stand in for the platform, so treat everything that goes through the operating system as unproven here: keyboard handling and shortcuts, screen reader semantics, text input and IME, the clipboard, file drops, and the frame rate you would get on your own GPU. Judge those in a native build. If your browser has no WebGPU, the frame says so rather than showing an empty box.