Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/content/docs/(ai-agents)/distillation.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ Context distillation is fabriq's answer to the scale problem: not every agent
turn needs to read entity rows — often a well-placed **summary of a scope** is
all the model needs, costing a fraction of the tokens. Distillation builds and
maintains a **per-tenant Merkle tree of summaries** (`DigestNode`), stored
content-addressed in the [file-plane CAS](/docs/files), and exposes it through
content-addressed in the [file-plane CAS](/docs/file-plane), and exposes it through
the agent toolkit as altitude-aware recall and three dedicated tools.

<Callout type="info">
Expand Down
6 changes: 3 additions & 3 deletions docs/content/docs/(data-planes)/analytics.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ its own data. It is a completely different capability from the operator-only
0013), which deliberately co-locates a redacted slice of **every** tenant's
data in one shared store for fleet-wide operator reporting. The two share no
table, DSN, consumer group, or query path — see
[ADR 0014](/docs/decisions/0014-tenant-analytics) for the full boundary.
[ADR 0014](/docs/reference/decisions) for the full boundary.
</Callout>

The analytics plane is for a tenant's own product analytics: custom event
Expand Down Expand Up @@ -267,7 +267,7 @@ query-time **error** — a metric owns its shape, the caller owns filtering.
mode, leave `MetricSpec.Rollup` unset and query the metric live.
</Callout>

See [ADR 0014](/docs/decisions/0014-tenant-analytics) for the full,
See [ADR 0014](/docs/reference/decisions) for the full,
authoritative gaps list.

## QueryRaw: the SQL escape hatch
Expand Down Expand Up @@ -490,7 +490,7 @@ the extension.
materialization, or leave `Rollup` unset and query it live.

<Cards>
<Card title="ADR 0014" href="/docs/decisions/0014-tenant-analytics">The design decisions and the hard boundary vs. the operator sink.</Card>
<Card title="ADR 0014" href="/docs/reference/decisions">The design decisions and the hard boundary vs. the operator sink.</Card>
<Card title="Analytics sink" href="/docs/analytics-sink">The operator-only, cross-tenant counterpart (ADR 0013).</Card>
<Card title="Registry" href="/docs/registry">EntitySpec and how opt-in specs like InsightsSpec are validated.</Card>
<Card title="Tenancy" href="/docs/tenancy">The RLS and structural-stamping layers this plane inherits.</Card>
Expand Down
2 changes: 1 addition & 1 deletion docs/content/docs/(data-planes)/vector.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ emb, err := f.Vector().Get(ctx, "asset", assetID)

## Beyond Postgres

The port is uniform across every backend: the in-memory `fabriqtest.FakeVector`, the sharded router, and the remote/gRPC transport all implement the same interface — including metadata `Filter` and `DeleteByMeta` (the remote transport carries the filter as JSON). A shared [conformance](/docs/decisions) suite (`RunVector`) gates the fake and the real Postgres adapter on identical behavior, so a backend cannot silently drift.
The port is uniform across every backend: the in-memory `fabriqtest.FakeVector`, the sharded router, and the remote/gRPC transport all implement the same interface — including metadata `Filter` and `DeleteByMeta` (the remote transport carries the filter as JSON). A shared [conformance](/docs/reference/decisions) suite (`RunVector`) gates the fake and the real Postgres adapter on identical behavior, so a backend cannot silently drift.

<Callout type="info">
`m.ID` is the aggregate id you passed to `Upsert`. To get the full row, hydrate from Postgres with `Relational().GetMany("asset", ids, &assets)` — one batched query for the whole match set.
Expand Down
2 changes: 1 addition & 1 deletion docs/content/docs/(operations)/analytics-sink.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ deliberately **no RLS**, because RLS defends a store scoped to one tenant
on `ctx`, and this store's entire purpose is cross-tenant aggregation.
PII exposure is bounded by allow-listing fields per entity (see
[Enabling it](#enabling-it)), not by row-level policy. See
[ADR 0013](/docs/decisions/0013-cross-tenant-analytics-sink) for the full
[ADR 0013](/docs/reference/decisions) for the full
trust-boundary rationale.
</Callout>

Expand Down
Loading
Loading