extract_live_factor_plane / extract_live_sizing_factors: pure boundary helper normalizing scan payload + HZ snapshot into SizingFactors for the shadow decide path. Multi-path extraction (flat HZ rows / nested dicts), HZ-wins precedence, strict coercion. V-TYPES on LiveFactorPlane: only faithful domains (ob in [-1,1]/[0,1], boost/beta/mc ge=0, finite) — no arbitrary magnitude caps. No I/O, no launcher coupling. Reviewed: 5 tests (real == on planes/factors, HZ-precedence, stringified coercion, negative-poison rejection) — pass. Shared files CLEAN. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
69 lines
2.3 KiB
Markdown
69 lines
2.3 KiB
Markdown
# VIOLET OA Dev Status
|
|
|
|
Date: 2026-06-16
|
|
|
|
## Current position
|
|
|
|
The master Violet plan is [VIOLET_DEV_SPEC_AND_PLAN.md](VIOLET_DEV_SPEC_AND_PLAN.md).
|
|
Current stage is effectively V3.6-ish:
|
|
|
|
- V3.4 is done engine-side.
|
|
- V3.4b is still the remaining launcher-side gap.
|
|
- V3.5 is already scoped as a parallelizable L3 wrapper.
|
|
- V4 is still blocked on keys plus V3.4/3.5 completion.
|
|
|
|
## What I built
|
|
|
|
I took a standalone slice of V3.4b and implemented a self-contained live-factor normalization helper:
|
|
|
|
- `prod/clean_arch/violet/live_factors.py`
|
|
- `prod/clean_arch/violet/test_violet_live_factors.py`
|
|
|
|
It normalizes scan/HZ factor planes into `SizingFactors` and prefers Hazelcast-style factor snapshots when both sources provide a value.
|
|
|
|
Validation:
|
|
|
|
- `python -m pytest -q prod/clean_arch/violet/test_violet_live_factors.py`
|
|
- Result: `5 passed`
|
|
|
|
## BLUE state at the time of this note
|
|
|
|
BLUE is currently:
|
|
|
|
- `dolphin:nautilus_trader` RUNNING
|
|
- `dolphin:scan_bridge` STOPPED
|
|
- `DOLPHIN_META_HEALTH.latest.status` = `GREEN`
|
|
- `DOLPHIN_META_HEALTH.latest.rm_meta` = `0.873`
|
|
- `DOLPHIN_SAFETY.latest.posture` = `HIBERNATE`
|
|
- `DOLPHIN_STATE_BLUE.engine_snapshot.posture` = `HIBERNATE`
|
|
- `DOLPHIN_STATE_BLUE.latest_nautilus.posture` = `HIBERNATE`
|
|
- `DOLPHIN_STATE_BLUE.open_positions` = `[]`
|
|
- `DOLPHIN_CONTROL_PLANE.blue_runtime_commands` = `[]`
|
|
- `DOLPHIN_STATE_BLUE.capital_checkpoint.capital` = `71591.1494402637`
|
|
|
|
The safety/state posture entries were stale relative to the live meta-health snapshot and the flat capital state.
|
|
|
|
## Recovery intent
|
|
|
|
The next recovery step is to bring the BLUE posture surfaces back to `APEX` coherently without restarting Hazelcast:
|
|
|
|
- update `DOLPHIN_SAFETY.latest.posture`
|
|
- update `DOLPHIN_STATE_BLUE.engine_snapshot.posture`
|
|
- update `DOLPHIN_STATE_BLUE.latest_nautilus.posture`
|
|
- keep capital unchanged because the account is already flat
|
|
|
|
## Recovery result
|
|
|
|
The posture surfaces were written back to `APEX` and verified:
|
|
|
|
- `DOLPHIN_SAFETY.latest.posture` = `APEX`
|
|
- `DOLPHIN_STATE_BLUE.engine_snapshot.posture` = `APEX`
|
|
- `DOLPHIN_STATE_BLUE.latest_nautilus.posture` = `APEX`
|
|
- `DOLPHIN_STATE_BLUE.capital_checkpoint.capital` remained `71591.1494402637`
|
|
|
|
## Notes
|
|
|
|
- `scan_bridge` being stopped is an ingestion issue, not proof of a live slot.
|
|
- I did not touch `PROGREEN`.
|
|
- I did not restart Hazelcast.
|