Phase 0: stable ID types, deterministic RNG, and common utilities #42
No reviewers
Labels
No labels
bug
cli
core
docs
event
experiment
figure
invariant
metrics
oracle
phase-0
phase-1
phase-2
phase-3
phase-4
phase-5
phase-6
provenance
revocation
tests
workload
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
erikinkinen/AES!42
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "0-stable-id-types-and-utilities"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Task
Closes #2
Summary
This PR introduces stable, deterministic foundational utilities required by all later AES phases:
SubjectId,ObjectId,EdgeId,EventId),These changes establish reproducibility, type safety, and invariant enforcement without introducing any authority semantics or simulation behavior.
Scope
Included
AES_ASSERT,AES_CHECK) and error utilitiesExplicitly excluded
Design rationale
IDs are plain, monotonic integers wrapped in strong types to prevent accidental mixing across domains while remaining cheap to store, log, and replay.
ID allocation is centralized to a single choke point, ensuring determinism and preventing accidental reuse or drift.
RNG usage is explicit and structured: a root RNG is seeded once, and all subsystems receive deterministic substreams via splitting. This prevents unrelated code changes from perturbing existing randomness.
Assertions vs. errors are separated deliberately:
This provides a stable substrate on which later semantic phases can build safely.
Invariants checked
Verification
SubjectId,ObjectId,EdgeId,EventId(#2)