Skip to main content

Chat shell

The Warden is a chat shell that is the app. You type a natural-language request. A deterministic agent reasons, calls governed tools, retrieves from the knowledge graph, and answers with prose, a rich inline component, or a direct change. Every step is signed and hash-chained.

One composer, one thread

The composer

The composer is the hero surface. A large rounded input with a soft shadow and an accent focus ring. A 38-pixel send button. Attachments via the paperclip, drag and drop, or paste.

The placeholder is the shape of a good ask:

Ask Warden to secure, mask, or audit any AI you use...

The footnote under the composer is the partnership promise:

Warden oversees your guardians. Verify anything important.

The sidebar

Three destinations plus a library:

  • Warden. The chat.
  • Search. Starts a new conversation with a find.
  • New chat. A fresh session.

The Library section lists recent conversations, each with a relative timestamp (just now, 5m ago, 2d ago) and a delete affordance. The footer carries your avatar, display name, and a settings gear.

The first-run modal

The first-run modal opens once and seeds the composer with the featured prompt:

Set up masking so my personal and financial details never reach an AI provider. Show me what gets redacted before you turn it on.

Three value props sit beneath it: nothing sensitive leaves, ask do not configure, provable not promised. "Start a chat" fires the composer with the featured prompt and send. "Maybe later" closes the modal.

Streaming turns

When a run is in flight, the streaming turn renders live:

  • One aggregated Thinking disclosure at the top, collapsed by default once settled, with a live shimmer while streaming.
  • Prior guardian-continue iterations render collapsed, with parsed markdown and done tool-call chips.
  • The current iteration renders open, with a typing cursor and live tool-call chips.
  • An iteration divider between passes.
  • A transient Governance chip for the latest mid-stream governance event: "Governance: blocked" or "Governance: corrected" with the reason.

Before the first frame, a calm three-dot typing indicator sits beside a token-palette thinking Emu, motion off. "Warden is thinking" without another saturated object competing with the answer.

The settled turn, in render order

Once a run completes, the turn settles into ten layers in render order:

  1. Personalized pill. If memory was used this turn.
  2. Finish-reason note. A thin muted line for governance block, step limit, confirm suspend, or error.
  3. Thinking trace. A collapsed reasoning disclosure.
  4. Final answer. The prose, in chat markdown.
  5. Generative UI tree. The rich interactive tree if the agent composed one.
  6. Inline UI mount. The single component from the server-driven UI registry if the agent emitted one (including the confirm-card with its explicit Cancel button).
  7. Memory capture row. "Remembered N things this turn."
  8. Sub-agent plan. A collapsible "Sub-agent plan, N tasks" if the planner decomposed.
  9. Tool calls. A collapsible "Tool calls, N" with the step trace and per-step rewind.
  10. Fork and thumbs footer. Hover-revealed. The fork button and the rating row.

The verbose receipt strip (chain-hash pill, "Deterministic Receipt" label, "Signed & verifiable" subtitle, copy-id chip, "Verify this result" button) is deliberately kept out of the chat. That depth lives in the workbench, where auditors already go. The chat stays calm.

Fork from any turn

Hover an assistant turn and click the fork button. A dialog confirms:

Start a new conversation seeded from this turn's checkpoint. The receipt chain branches here. The original run is preserved untouched.

Confirm and a new session opens, seeded with a "forked from" marker. A breadcrumb at the top of the thread shows "Forked from runId, step N" with a branch icon, the visible audit trail that this conversation branched off a past receipt.

You can also fork from any step inside the "Tool calls, N" disclosure. Each step row has a "Rewind from here" affordance that opens the same dialog with the step index.

See Receipts for the full attestation story.

Rating and feedback

Hover an assistant turn and thumbs up or thumbs down appear in the footer.

  • Thumbs up. Optimistic highlight, fire-and-forget. On success: "Thanks, helps us improve."
  • Thumbs down. Reveals an inline "What went wrong? (optional)" input with Send and Skip. The comment feeds the memory extraction service so a bad suggestion is not learned, and acts as a training signal.

Where to go next

  • Named agents for scoping what the agent can touch per conversation.
  • Inline UI for the rich components the agent mounts in a turn.
  • Receipts for the hash chain and the fork-from-checkpoint rewind.