4.6 KiB
RECENT_VIOLET_34C_a632c59
What This Work Was
This change completed the first V3.4c VIOLET-side mirror for BLUE live-factor inputs.
The goal was not to modify BLUE. The goal was to make VIOLET read the same live, published BLUE surfaces and reconstruct the same intermediate factors BLUE would see, without changing BLUE code, schemas, or state layout.
Scope
This work stayed inside VIOLET and added a read-only live-source adapter plus tests:
prod/clean_arch/violet/live_blue_source.pyprod/clean_arch/violet/test_violet_live_blue_source.py
It also reused the existing V3.4b live-factor helpers:
prod/clean_arch/violet/live_factor_source.pyprod/clean_arch/violet/live_factors.pyprod/clean_arch/violet/alpha_wrappers.py
Why This Was Needed
The earlier V3.4b adapter could source only the BLUE-published pieces that were already directly available in Hazelcast:
postureesof_score
The remaining sizing inputs were not flat HZ scalars. They had to be mirrored from the same BLUE inputs and kernels that generate them:
boost/betafrom the ACB outputmc_scalefrom MC-Forewarner statusob_median_imbalance/ob_agreement_pctfrom live OB datadc_statusfrom the signal generator
The V3.4c step is the read-only, VIOLET-side reconstruction of those live factors.
What Was Added
1. Live BLUE source adapter
live_blue_source.py now:
- reads
DOLPHIN_STATE_BLUE.latest_nautilus/engine_snapshot - reads
DOLPHIN_FEATURES.esof_latest/esof_advisor_latest - reads
DOLPHIN_FEATURES.acb_boost - reads
DOLPHIN_FEATURES.mc_forewarner_latest - reads live OB shard maps from
DOLPHIN_FEATURES.asset_*_ob - reconstructs
dc_statusfrom the published scan stream
The module stays read-only. It does not write Hazelcast. It does not call BLUE internals for mutation. It only mirrors what BLUE already published.
2. Stateful scan replay for DC
LiveBlueScanHistory was added to keep a per-asset price history on the VIOLET
side. This is needed because BLUE’s dc_status is derived from the live scan
sequence and a short price history, not from a single HZ scalar.
The adapter now:
- ingests each
latest_eigen_scan - keeps the asset histories in memory
- uses BLUE’s own
AlphaSignalGenerator - produces the same DC status labels that BLUE would emit
3. Read-only OB mirror
HazelcastOBProvider was added so VIOLET can feed BLUE’s own
OBFeatureEngine from the live asset_*_ob entries already published in HZ.
That lets the VIOLET path derive:
ob_median_imbalanceob_agreement_pct
without inventing a new OB schema or mutating BLUE.
4. Asset selection parity
The adapter now uses VioletAssetSelector on the replayed scan history so the
selected asset is not guessed from the current scan payload alone.
That matters because the exact factor sequence must track the same information BLUE would have at that point in the scan stream.
Exactness Rules Followed
The implementation was kept conservative:
- no BLUE file edits
- no BLUE schema changes
- no new HZ writers
- no invented factor names
- no silent fallback to fake live values when the live source exists
If input is malformed, the adapter rejects or neutralizes it instead of poisoning the history.
Examples of handled anomalies:
- missing
assets - non-finite prices
- negative prices
- malformed JSON payloads
- missing
posture - missing
esofpayloads - broken OB payloads
Tests Added
The new test file covers three layers:
Unit tests
- OB shard parsing from HZ payloads
- neutral handling for malformed ACB / ESOF / MC payloads
- scan replay ingestion
- DC preservation for
CONFIRM - DC preservation for
SKIP_CONTRADICT
Sequence parity tests
The new sequence test walks multiple scan events and checks that VIOLET tracks:
- the BLUE asset selector output
- the BLUE signal-generator
dc_status
at each step in the replayed scan history.
End-to-end smoke
A live Hazelcast smoke test reads the current cluster state and verifies the
adapter can build a typed SizingFactors object from the live BLUE surfaces.
Result
The V3.4c mirror now reconstructs the full live factor plane on the VIOLET side, read-only, with parity-style coverage around the intermediate factor computation.
Verification
Commit:
a632c59—VIOLET V3.4c: read-only BLUE live source parity
Tests run:
prod/clean_arch/violet/test_violet_live_blue_source.pyprod/clean_arch/violet/test_violet_live_factor_source.pyprod/clean_arch/violet/test_violet_live_factors.py
Observed result:
- V3.4c source tests passed
- existing V3.4b live-factor tests passed