97: Configure separate TEST and PROD instances of EvelynPerpsService

This commit is contained in:
2026-10-22 11:32:49 +02:00
parent 7aab307381
commit 0ec22d5215
16 changed files with 308 additions and 57 deletions
+8 -3
View File
@@ -440,12 +440,17 @@ positioner med stabile ID'er blandt søskende, adskilt fra visningsnavne. Positi
`LONG`/`SHORT` og decimal USD-størrelse. Svaret indeholder ingen JavaFX-elementer, farver eller formatering.
`impl.ref.EvelynPerpsServiceImpl` implementerer desuden `NenjimProcess`. Hub'en registrerer og starter det samme
objekt som `evelyn.perps.default` før EMC. Før `start()` afvises læsning; gentagen start afvises også.
objekt pr. miljø som `evelyn.perps.prod` og `evelyn.perps.test` før EMC.
Hub'en definerer den fælles hardcodede liste af `PerpsWalletConfiguration` (ID og visningsnavn) og giver den
til begge konstruktører. Hver instans kopierer konfigurationen og ejer sit eget snapshot. Eksempel-ID'erne er
ikke Solana-adresser. Servicen fordeler de to eksisterende eksempelporteføljer skiftevis efter wallet-rækkefølge;
positionerne for de to konfigurerede wallets er uændrede. Før `start()` afvises læsning; gentagen start afvises også.
Service-API'et eksponerer kun læsning, ingen lifecycle- eller positionsændringer. Servicen ejer de otte
uændrede eksempelpositioner fra den oprindelige Perps-fane og har ingen workers eller Jupiter/Phoenix-kald.
EMC læser snapshot'et straks ved åbning og hvert tredje sekund på en separat worker, uafhængigt af en eventuel
senere integrations opdateringsinterval. Begge miljøfaner viser fortsat de samme tydeligt markerede eksempler;
EMC læser hvert miljøs snapshot fra den tilsvarende service straks ved åbning og hvert tredje sekund på en
separat worker, uafhængigt af en eventuel senere integrations opdateringsinterval. Fejl i ét servicekald forhindrer ikke forsøget på det andet.
Begge miljøfaner viser fortsat de samme tydeligt markerede eksempler;
EMC ejer træstruktur, USD-formatering og grønne/røde rækker. Uændrede snapshots berører ikke eksisterende rækker,
foldestatus eller markering. Ved ændringer genbruges træelementer efter deres ID'er inden for samme forælder.
UI-opdateringer sker kun på JavaFX-tråden. Fejl bevarer visningen og stopper ikke næste pollingforsøg.
+11 -7
View File
@@ -271,7 +271,8 @@ jupiter-perps-alarm.default
evelyn.status.prod
evelyn.status.test
evelyn.iou-burner.prod
evelyn.perps.default
evelyn.perps.prod
evelyn.perps.test
nenjim.javafx-runtime.service
evelyn.mission-control.default
nenjim.process-manager.default
@@ -284,12 +285,15 @@ navngivne `Production`- og `Test`-instanser gennem `EvelynStatusServiceImpl` og
`EvelynStatusService`-views i Mission Control. Process Manager viser de nye ID'er fra Hub'ens startup-snapshot.
Historik ligger fortsat i `data/evelyn/<instance-name>/status.log` med formatversion 1 og kræver ingen migration.
Mission Control kræver også `evelyn.perps.default` før `evelyn.mission-control.default` i den private
`conf/NenjimHub.conf`. Hub'en konstruerer, registrerer og starter `EvelynPerpsServiceImpl` som en separat
proces og injicerer samme objekts read-only `EvelynPerpsService`-view i EMC. Process Manager viser ID'et efter
vellykket startup. Den lokale udviklingskonfiguration vælger nu servicen før EMC; andre deployments med EMC
skal tilføje samme linje. Udeladt eller forkert rækkefølge giver en tydelig konstruktionsfejl uden automatisk
indsættelse. Servicen bruger kun uændrede in-memory-eksempler og foretager ingen eksterne positionskald.
Mission Control kræver både `evelyn.perps.prod` og `evelyn.perps.test` før `evelyn.mission-control.default`
i den private `conf/NenjimHub.conf`. Erstat den tidligere `evelyn.perps.default`-linje med de to nye ID'er;
det gamle ID accepteres ikke længere. Hub'en konstruerer, registrerer og starter to separate
`EvelynPerpsServiceImpl`-processer med samme hardcodede wallet-konfiguration og injicerer deres read-only
service-views til de tilsvarende miljøfaner i EMC. Process Manager viser begge ID'er efter vellykket startup.
Den lokale udviklingskonfiguration er opdateret; andre deployments med EMC skal migreres tilsvarende.
Udeladt eller forkert rækkefølge giver en tydelig konstruktionsfejl uden automatisk indsættelse.
Det minimale versionsstyrede bootstrap-eksempel er uændret. Hver service ejer sit eget snapshot med
uændrede in-memory-eksempler og foretager ingen eksterne positionskald.
Hvis `evelyn.iou-burner.prod` vælges, skal både `assetaz.ticker.default` og
`evelyn.status.prod` stå før den. Hub'en injicerer Production status-servicen til