Skip to content
vokse.

AI SAFETY & TRUST

An AI you can hold accountable

Every assistant action is checked against your role, waits for your confirmation when it is destructive, carries a trace id and lands in an append-only audit log. Money stays in integer cents.

Every change, on the record.

Every write, by you or by the assistant, is recorded with the request that caused it and the actor behind it. The whole log travels inside your data export.

  • AI
    ai.categorize09:41:07

    payee: Supermarket → cat: Groceries · confidence: 0.94

  • You
    budgets.move09:58:12

    you approved · $40.00 Groceries → Eating out

  • Rule
    rules.apply10:14:03

    FNAC → Books · rule matched 4 transactions

  • Import
    transactions.import10:22:47

    Bank sync · 38 new, 0 duplicated

  • API
    transactions.update11:05:19

    A connected app · tagged 12 transactions

trace: 01H8T1-Z078H · role: editor

  • Every line says where it came from

    Each entry carries the request that produced it, so a change can be followed from the click to the row.

  • Who or what, never ambiguous

    You, the assistant, a rule, an import or an API key. The log records the actor, not just the change.

  • Yours to take

    The complete log travels inside your data export, in a format you can open.

  • Nothing rewrites it

    Entries are only ever appended. The product has no path to edit one, and a scheduled prune is the only thing that ever removes one.

How we handle your data

The same tools everywhere.

74 tools in the registry, 8 of them wait for your confirmation before anything changes. The assistant, the app, the API and MCP read the same list.

  • Who you pay

    8 things it can do here

  • Everyday transactions

    8 things it can do here, 1 of which ask you first

  • Categories and groups

    7 things it can do here, 1 of which ask you first

  • Your accounts and balances

    6 things it can do here

  • The month's budget

    6 things it can do here, 2 of which ask you first

  • Receipts and photos

    6 things it can do here

  • Bills that repeat

    6 things it can do here

  • Rules that file things for you

    6 things it can do here, 1 of which ask you first

  • Savings goals

    3 things it can do here, 1 of which ask you first

What holds the assistant to account.

The assistant, the web app, the public API and MCP call the same registry of tools. Each tool declares the lowest household role that may call it and the API scopes it needs, and the check runs on the server before anything executes: viewers get read tools only, editors and owners get writes, and a few deletions stay with the owner. A tool the model invents is refused the same way.

Destructive tools never run on the first call. They park a pending action with a prompt and a preview built from data the tool has already resolved, and wait for your yes; the registry refuses to boot if a destructive tool ships without a confirmation. Some writes ask too when the input warrants it: editing many rows at once, applying a rule to history, seeding a starter pack. A confirmation can be claimed once, so a retried request cannot run twice, and a cancelled action is recorded as cancelled.

Every change lands in the append-only audit log with who acted, from which surface, what changed and the request id behind it, and the log travels inside your data export. The models are Claude (Anthropic) and OpenAI, chosen per task, under token budgets per turn, per user per day and a monthly cap per household set by the owner; when a cap is hit the assistant stops and says so. Money is integer cents, so nothing is ever rounded away.

Trace id
One per change
Destructive tools
Wait for confirmation
Roles
Owner, editor, viewer
Audit log
Append-only
Token budgets
Per turn, per day, per household
Models
Claude and OpenAI, per task

What each kind of tool has to pass.

Three kinds of tool, three gates. The answer does not depend on which surface asked.

  1. Read

    Any member can ask, viewers included.

    Waits for confirmation
    No
    Needs editor or owner
    No
    Written to the audit log
  2. Write

    Some inputs ask first: bulk edits, applying a rule to history, seeding a starter pack.

    Waits for confirmation
    For some inputs
    Needs editor or owner
    Yes
    Written to the audit log
    Yes
  3. Destructive

    Deletions and resets; a few stay owner-only.

    Waits for confirmation
    Yes
    Needs editor or owner
    Yes
    Written to the audit log
    Yes

Checked on the server for every call, whichever surface asked.

Previews are structured data the tool already knows (resolved names, icons, sample rows); a hallucinated preview defeats the point of confirming.
ADR 0089 · Assistant tool model v2

Trust, with receipts

Let the assistant help while every move stays role-checked, confirmed, traceable and reversible.