CAIN-42 CAIN Studio
AETHER-33 free until 2027-01-01 governed agent memory docs measured 33 invariants homepage

One store, no shared reads

Tenant isolation

The owner key is a hash of the caller's key. Every query filters on it. There is no cross-tenant code path.

How the owner is derived

The platform gateway forwards the caller's X-API-Key. The service computes owner = sha256(key)[:32] inside the request context; the raw key is never stored. In the public free preview there is no customer key, so the visitor identity is a hash supplied in X-CAIN-Visitor (or derived from the client address), and it plays exactly the same role.

What isolation means here

What isolation does not give you

Tenants share one SQLite file. A party with filesystem access sees every tenant's rows. Isolation here is a logical and API property, not encryption at rest and not separate databases. For physical separation you run one AETHER-33 instance per tenant with its own data directory — which is supported, because the store is a single file path.

AETHER-33 is a product over CAIN-42's governed-memory stack, not a new architecture moat. Memory never carries authority: every response is annotated grants_authority: false. No third-party audit has been performed. Limits · FAQ · what is live now