Trust Kernel
The layer that says no — scopes, approval gates, and an audit log that cannot be edited.
The trust kernel is the load-bearing wall of the platform: a small, separately deployed policy engine that sits between every run and everything the run wants to touch. Nothing reads the context graph, calls a tool, or sends a byte outside your project without the kernel checking the scope on the key that started the run. The design is deliberately unintelligent — the kernel does not reason, negotiate, or make exceptions, because a security layer that can be argued with by a language model is not a security layer. Scopes are granular (calendar:read is not calendar:write; finance:read does not imply documents:read) and deny-by-default. Consequential actions — payments, external sends, deletions — can be marked approval-required per project, which suspends the run at that step until a human approves it in the dashboard or via the API. Every decision the kernel makes, allow or deny, is written to an append-only audit log that even project admins cannot edit; deletion of your data removes the data, never the record that an access was attempted. The kernel is also where data-boundary promises are enforced: no training on customer data, regional pinning, and hard tenancy between projects are kernel-level invariants, not application-level habits.
[ 01 ]Key features
Deny by default
Granular scopes per key; anything not explicitly granted is refused, and the refusal is logged with the run that attempted it.
Not negotiable by models
The kernel does no reasoning. An agent cannot talk its way into a scope it does not hold — by construction, not by prompt.
Approval gates
Mark actions consequential and runs suspend at that step until a human approves — in the dashboard, by API, or via webhook.
Append-only audit log
Every allow and deny is recorded immutably. Your data is deletable; the fact of an access is not.
[ 02 ][ kernel decision ]
{
"run": "run_4af2c19e",
"action": "email.send",
"key_scopes": ["calendar:read", "email.send"],
"policy": "approval_required",
"decision": "suspended",
"resumes_on": "approval:apr_77d0b3",
"logged_at": "2026-06-11T08:14:22Z"
}