Skip to content
Wow your usersProduct intelligence

AI copilot

An in-app assistant that only sees what each user may see.

Your users get a built-in assistant that answers from their own workspace data. Every answer shows its sources. And it never changes anything until the user says yes.

0changes the AI can make on its ownAutoconversation history saved15 minbefore a proposal expires

Product example

See it working

This is the same visual component used by the authenticated app, rendered with deterministic sample data.

Scenario
viewport
surface theme
mode

Grounded answer

Inspect the real transcript, citations, saved history, and privacy UI with fixture sources.

Inert sample data · no network access

Which launch risks still need an owner?

You

Which launch risks still need an owner?

Assistant

Two risks are still open: webhook retry ownership and provider-backed release certification.

Sources

S1
Launch readinessOpen launch risks and their current owners.
S2
Production certificationProvider-backed verification is not complete.
Current project

Enter sends. Shift and Enter start a new line. AI can make mistakes. Check important details.

Preview ready

Highlights

Why it matters

It only reads what the user can

The assistant pulls from data the signed-in user already has access to, and nothing more.

Every answer shows its sources

Answers cite where they came from, so users can tell facts from guesses.

It asks before it acts

Any change becomes a proposal the user must approve, and it expires after 15 minutes.

The problem this solves

Without a shared foundation, every team rebuilds these edge cases — differently.

The chat box that leaks data

A copilot that queries the database directly can show a user rows they were never allowed to see. One innocent question, and private data crosses the line. Here, retrieval runs through the same permission checks as the rest of the app.

Answers nobody trusts

Answers with no sources look like guesses. One wrong answer and your users write off the whole feature. Here, every answer cites exactly where it came from.

A model with write access

Give a model direct write access and one hallucinated action corrupts real customer data. Here, the model can only propose. Your user approves. Then the normal, safe code path runs.

How it works

The mechanism end to end, as implemented in the repository.

  1. 1

    The server decides who's asking

    Identity and workspace come from the login session. Whatever the browser claims is ignored and never placed in prompts.

  2. 2

    Context is gathered with permissions on

    Context providers return only excerpts the user can already reach, each labeled as a source the answer must cite.

  3. 3

    Answers stream with honest states

    You see streaming, complete, stopped, or failed. An interrupted answer stays visibly partial instead of pretending it finished.

  4. 4

    Writes wait for a yes

    A write becomes a saved proposal that expires in 15 minutes. Approval re-checks access, then runs the existing service, so a retry can never run it twice.

Engineering guarantees

What this does and does not promise

Safety boundary

The public demo conversation is scripted, not live. Answer quality and speed with a real provider are yours to test with your own key.

Implementation evidence

The boundary above is code, not a claim. These files carry the contract:

  • src/modules/ai-copilot/MODULE.md
  • src/modules/ai-copilot/policy.ts
  • src/registries/commands.ts
Questions

Frequently asked questions

Build on the ai copilot foundation

The docs describe the same contracts this page demonstrates.