Kind: Interface
Source: atloria-monorepo/apps/api/src/docs-repo/sidecar.ts
The .atloria/ identity sidecar — the stable-identity layer that makes ACCUMULATION
(delta generation instead of full sweeps) possible in S3/S4.
Two files, both written OUTSIDE docs/ so ReconcilerService.driftCheck (which compares only docs/) never sees them as drift:
• .atloria/pages.json — a per-page manifest: for every served page, its stable
docUuid, natural key (kgEntityId/type), contentHash +
generatorFingerprint (the split-oracle inputs), source
screen provenance, and the section map (toc ids+levels).
A PURE PROJECTION of the current DB set (rebuilt each time).
• .atloria/slug-registry.json — the ACCUMULATING identity ledger keyed by docUuid:
current slug + the history of previous slugs. This is the
one file that carries history the DB does not retain, so a
rename is followed (same docUuid) rather than seen as a
delete+add. It is read-merged, never rebuilt from scratch.
HARD INVARIANT — DETERMINISM. Both serializers are byte-stable for the same logical input:
keys are sorted, there are NO wall-clock timestamps, and section order (reading order) is
preserved while set-like arrays (screen slugs) are sorted+deduped. This is load-bearing:
the committer only writes a commit when git status is dirty, so a non-deterministic sidecar
would fabricate a commit on every reconcile and destroy the idempotent-no-op guarantee the
substrate depends on. Every change here is covered by an idempotency property test.
Properties
| Property | Type |
|---|---|
path | string |
docUuid | string |
scope | string |
lang | string |
slug | string |
registryLang | string |
kgEntityId | `string |
kgEntityType | `string |
contentHash | `string |
generatorFingerprint | `string |
sourceScreenSlugs | string[] |
sections | { id: string; level: number }[] |
Was this page helpful?