Documentation Index
Fetch the complete documentation index at: https://docs.rkat.ai/llms.txt
Use this file to discover all available pages before exploring further.
ADR: Identity, Generation, and Hidden Runtime Epoch
Status: Proposed Date: 2026-04-08Problem
The two-kernel research work introduces Mob-owned durable member identity:AgentIdentityGenerationAgentRuntimeIdFenceToken
RuntimeEpochId
- Mob may start reasoning about runtime epoch churn as if it were semantic member identity.
- runtime/session recovery may start smuggling hidden execution facts into the Mob seam.
- future work may overgeneralize “multiple processes in one realm” into “multiple processes may co-own the same session runtime.”
Decision
1. Mob semantic identity and Meerkat execution continuity are different facts
AgentRuntimeId = (AgentIdentity, Generation)is the Mob semantic incarnation key.RuntimeEpochIdis a hidden Meerkat execution-ordering token.
2. RuntimeEpochId does not cross the Mob seam
RuntimeEpochId is not part of the Mob-facing contract.
Mob-level lifecycle, roster, flow, observability, and proof obligations must
not depend on:
RuntimeEpochId- raw session-local identifiers
- runtime-internal continuity churn
3. ResetMember is the only semantic generation boundary
Generation advances only on intentional semantic replacement of the member.
That means:
- respawn does not advance generation
- hidden runtime/session recovery does not advance generation
- hidden execution epoch churn does not advance generation
ResetMember.
4. Realm multiplicity is not shared-session co-ownership
The architecture permits:- multiple independent processes in the same realm or repo
- multiple independent sessions in that realm
- multiple active processes co-owning or concurrently driving the same session runtime
5. Hidden Meerkat epoch rotation remains an internal choice
Whether in-place Meerkat runtimereset():
- preserves
RuntimeEpochId, or - rotates
RuntimeEpochId
- it stays hidden from
MobMachine Generationremains the sole semantic reset boundary- code comments and runtime behavior agree
Consequences
Positive
- Mob identity continuity has one semantic clock:
Generation - Meerkat execution continuity has one hidden clock:
RuntimeEpochId - respawn, recovery, and hidden rebinding can be modeled without inventing a second public identity layer
- issue pressure around cross-process realm multiplicity is kept proportional to the actual supported mode
Negative
- Meerkat debugging surfaces may still want to expose runtime epoch information, but must label it as runtime-internal continuity rather than agent identity
- hidden runtime rebinding remains more subtle than a simple “new session means new member” rule
- Meerkat code still needs an explicit internal decision on reset-driven epoch rotation
Constraints
- Do not expose
RuntimeEpochIdin the Mob member contract. - Do not infer
GenerationfromSessionIdorRuntimeEpochId. - Do not use
RuntimeEpochIdas evidence of durable member identity. - Do not treat many processes in one realm as proof that one session needs distributed co-ownership.
Follow-on Material
- Canonical machine and composition definitions live under
meerkat-machine-schema/src/catalog/dsl/. - Canonical generated specs live under
specs/machines/andspecs/compositions/. - The public architecture hub is Architecture.
