1.8 KiB
1.8 KiB
Why
Evelyn currently discards every collected status-index point when it stops, so process restarts lose operational history. Each independently named Evelyn environment needs durable, operator-provisioned append-only storage while Evelyn—not Mission Control—continues to own collection, validation, and publication.
What Changes
- BREAKING Require every
EvelynImplto have a validated, NFC-normalized instance name that selects its permanentdata/evelyn/<name>/status.logidentity. - Reserve normalized instance names atomically and case-insensitively within the JVM until permanent, idempotent close.
- BREAKING Extend Evelyn lifecycle with permanent close in addition to restartable start/stop.
- Strictly validate externally provisioned storage, format version 1, every record, and non-decreasing timestamps before publishing restored history or starting sampling.
- Durably append each sampled type-1 status record before publishing it in memory, while isolating individual append failures.
- Keep Production and Test storage, lifecycle, and history independent and keep EMC presentation-only.
Capabilities
New Capabilities
None.
Modified Capabilities
evelyn-status-index-history: Replace process-local disposable history with named-instance storage, strict restore validation, persist-before-publish behavior, and distinct restartable stop versus permanent close semantics.
Impact
The change affects the public Evelyn lifecycle, EvelynImpl construction and persistence, and temporary Production/Test composition in NenjimHubImpl. Operators must provision each instance directory and versioned status.log before startup. EMC, AssetAZ Ticker, Raydium PriceSource, generated Detag sources, and unrelated services remain behaviorally unchanged.