Skip to content

PageIdentity

reference
1 min readUpdated

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

PropertyType
pathstring
docUuidstring
scopestring
langstring
slugstring
registryLangstring
kgEntityId`string
kgEntityType`string
contentHash`string
generatorFingerprint`string
sourceScreenSlugsstring[]
sections{ id: string; level: number }[]

Was this page helpful?

Download as PDF