The trust dial — instant autonomy, sender by sender

Why we picked drafts-wait-for-approval as the default, how one-click sender controls work, and why granular per-platform per-bucket autonomy beats a single auto-pilot toggle.

The most common piece of feedback we got in our closed beta was a question: “why do I have to approve every reply on day one?”

The answer is: because we don’t trust the model yet, and you don’t trust the model yet, and the right design respects that.

This post is about the trust dial — the mechanism Krewva uses to grant the agent more autonomy contact by contact, platform by platform. It’s the answer to a question every AI product has to answer eventually, which is: when do we stop asking?

A lot of AI products got that answer wrong. They picked auto-pilot from day one, the agent did something embarrassing or expensive, the user lost trust, and the product never recovered. We wanted to do the opposite: make autonomy visible, reversible, and instant only when you flip it on.

Default — every draft waits

When you connect your first platform to Krewva, the default behavior is the most conservative possible setting. The agent reads. The agent drafts. The agent does not send.

Every draft lands in your feed as a card. Each card has the inbound message, the proposed reply, a short reason for the reply (the model’s interpretation of what’s being asked), and three actions: approve, edit-and-approve, or deny.

You approve a card by swiping right or tapping a single button. You deny by swiping left. You edit by tapping the draft text, fixing whatever’s off, and approving the edit. The agent learns from each of those signals — denials are particularly informative; an edit teaches it the gap between its draft and the version you actually want to send.

The default period is where the system is quietly building a model of you: your voice, your contacts, your typical thread shapes, the buckets you assign people to, the kinds of replies you almost-always-send-as-is versus the kinds you almost-always-rewrite. We treat this period as a pure shadow mode. Nothing goes out without your tap.

That sounds tedious. Sometimes it is. We don’t apologize for it. The alternative — auto-pilot from day one — is what gives AI products a bad name and what triggers the customer-support backlash we want to never have.

One click — autonomy on safe lanes

When a lane is safe enough, you can open the trust dial on that lane instantly.

The lanes are scoped by bucket and platform. A bucket is the relationship category Krewva infers for each contact. The default buckets are Family, Close Friends, Friends, Work, and Unknown. You can override any bucketing manually; the inferred bucket is just a starting point.

A platform is exactly what it sounds like — Gmail, iMessage, Slack, WhatsApp, Calendar, Drive.

What changes is scoped control. For combinations where the agent has been approved consistently — say, you’ve approved its drafts to your Family bucket on iMessage with substantially zero edits — you can flip that lane on. The agent can begin auto-replying within that lane. Only that lane. Your Family-on-iMessage drafts now go out without waiting for your tap; your Work-on-Gmail drafts still do.

We deliberately do not treat the trust dial as a single toggle. There’s no “auto-pilot ON” button anywhere in the app. The reason is that trust is not a global property. You trust the agent to reply to your mom faster than you trust it to reply to your largest enterprise customer. Forcing those two relationships through the same setting is the wrong abstraction.

So instead the dial is a matrix: rows are buckets, columns are platforms, each cell has its own state, and each cell evolves on its own schedule based on its own approval history.

Mature state — multi-platform, multi-bucket autonomy

On a typical user with active engagement across all six connectors, the matrix can become mostly open. Family-everywhere is autonomous if you enabled it. Close-friends-on-most-platforms can be autonomous. Work can stay half-autonomous, with Gmail and Slack still flowing through approval and Calendar invites flowing through with conflict-checks but auto-decline-on-clear-conflict turned on.

Unknown is the bucket that almost never goes autonomous. We don’t trust ourselves to handle “stranger” replies without your eyes on them, and you shouldn’t either. New senders, cold pitches, unfamiliar domains — these always wait. We are deliberately conservative there because that’s where the risk lives.

What this looks like in your day is roughly: open Krewva in the morning, see twelve cards in your feed instead of forty, notice that routine messages already went out overnight to people you trusted, and spend two minutes triaging the twelve that needed your eyes.

That’s the win. Not “AI replies for me” as a general statement — that’s the chatbot framing. Specifically: autonomy where I’ve granted it, gating where I haven’t, no surprises in either direction.

Why “auto-pilot from day one” was the wrong choice

We had this debate internally. Some of the team wanted to ship with a bigger initial dial — agent auto-replies to certain low-risk contacts immediately, user opts out of any contact they don’t want auto-replied to.

We didn’t ship that. Three reasons.

One — recovery is asymmetric. A single embarrassing auto-reply from the agent to someone the user didn’t want auto-replied to is far worse for retention than a hundred small approval taps. The math is brutal: it takes one bad incident for a user to disable auto-reply forever, and dozens of good ones to earn it back. Drafts-wait-by-default takes the embarrassment off the table.

Two — the model needs the signal. At the start, the system has zero observed approval signal. It does not know that you sign emails to your sister with xo and emails to your boss with your full name. It has not seen your typical reply length. It has not seen which threads you ignore vs which you respond to within an hour. Asking it to send anything before that signal exists is asking for misses.

Three — onboarding has to be reassuring. New users need to see the system make decisions they would have made, before they’ll let it make decisions on their behalf. The first week is fundamentally an audition. Drafts-in-feed is the audition format. Approving them visibly is the user’s running performance review.

Granular, not global

A theme that runs through the whole trust dial design is granularity. Per-bucket, per-platform, per-contact override.

Granularity isn’t gratuitous. Each axis exists because we found a real user need it served:

  • Per-bucket because relationships have intrinsically different reply expectations. Your aunt is fine with a tweet-length reply at 2am. Your investor is not.
  • Per-platform because the platform itself implies tone and risk. Slack DMs are casual; Gmail thread continuations to a customer are not.
  • Per-contact because there’s always an exception. The user has one work contact who’s actually a friend, or one family member who’s the family CEO and gets the formal voice. The override layer handles those.

It would be easier to ship a single “auto-reply: ON / OFF” toggle. We didn’t. Single toggles produce single regrets. The dial produces small regrets that are easy to walk back.

The compliance angle for Krewva Biz

We’re going to sell two products: Krewva Life ($8.99 / $13.99) for individuals, and Krewva Biz ($99.99 / $129.99) for small business use. The trust dial works for both, but it does very different work for each.

For an individual user, the dial is about emotional comfort — earning your trust, contact by contact.

For a business user, the dial is about audit and compliance. Companies don’t just want their AI to “feel safe.” They want a record. They want to be able to show, in a future review, that the agent did not auto-reply to anyone outside an approved bucket, did not handle high-stakes lanes (contracts, legal, finance) without human approval, and did not silently expand its autonomy without an admin’s sign-off.

The trust-dial state is logged as auditable data. Every dial change, every bucket assignment, every contact override, every approval and denial — all of it is timestamped and exportable. For Biz customers, this is a compliance feature. For Life customers, it’s privacy hygiene. The mechanism is the same; the framing changes.

When we’d close the dial

The trust dial moves both ways. Approvals open it; denials, especially repeated denials in a specific lane, close it.

If you start denying drafts to your Work bucket on Slack, the system will notice — within a small number of denials, depending on the size of the prior approval window. It will flip that lane back to “wait for approval.” It will not silently keep auto-sending while you keep denying. That’s how people lose trust in AI.

The same holds at the contact level. If you deny three drafts to a specific person, that contact gets “always wait” pinned to it, regardless of bucket. You can override the override; we’ll listen. The default is conservative.

There’s also a panic button: “freeze all autonomy.” One tap, every lane in every cell of the matrix flips back to wait-for-approval. It’s available everywhere in the app. We don’t expect users to need it often — but we expect them to want to know it’s there. Knowing the off switch is reachable is what makes the on switch usable.

Closing

The trust dial is, at its heart, a confession. We’re admitting that our model isn’t perfect, that you don’t fully trust it yet, and that pretending otherwise is what gets AI products into trouble. So we’re shipping with the dial closed and the work to open it placed on us — Krewva — to earn.

Earned autonomy is the only autonomy worth having. Default-on autonomy is what gives AI products their worst headlines. We’re choosing the slower, more boring path: default-off, dial up, dial down on demand, audit log for everything.

The product doesn’t pretend to be autonomous before you’ve seen the drafts. Once you trust a sender, one click makes it feel like staffing. That’s the trade we’re making.

— Zeming

Quarterly notes from the build.

We send a short email when we ship something we're proud of. No growth-hacker tricks, no spam — just notes from the founders.