Erster Stand des öffentlichen Ausschnitts aus dem Vault. Die .gitignore arbeitet als Positivliste: ausgeschlossen ist alles, eingeschlossen nur, was ausdrücklich wieder aufgenommen wird. Notizen, Projekte, Finanzen, das Sitzungsgedächtnis und settings.local.json bleiben damit außen vor. Der Kundenname in AI/Regelwerk/seo.md ist durch eine neutrale Bezeichnung ersetzt; die Regeln selbst sind unverändert. Co-Authored-By: Claude Opus 5 <[email protected]>
36 lines
1.3 KiB
Python
36 lines
1.3 KiB
Python
"""Probe-Backend des Koordinators: die echte App mit Attrappe und Wegwerf-Register auf eigenem Port.
|
|
|
|
Kein Broker-Aufruf, kein Ereignis im echten Register. Aufruf aus dem Projektordner:
|
|
python start_probe_backend.py <port> [sendeintervall_s]
|
|
"""
|
|
|
|
import dataclasses
|
|
import sys
|
|
import tempfile
|
|
from pathlib import Path
|
|
|
|
import uvicorn
|
|
|
|
from trading.broker.attrappe import BrokerAttrappe
|
|
from trading.dashboard.app import erzeuge_app
|
|
from trading.dashboard.config import lade_dashboard_config
|
|
from trading.killswitch.killswitch import lade_killswitch_config
|
|
from trading.registry.registry import Registry
|
|
|
|
port = int(sys.argv[1])
|
|
config = lade_dashboard_config("config/dashboard.toml")
|
|
aenderungen = {"port": port, "broker_wahl": "attrappe"}
|
|
if len(sys.argv) > 2:
|
|
aenderungen["sendeintervall_s"] = float(sys.argv[2])
|
|
config = dataclasses.replace(config, **aenderungen)
|
|
temp = Path(tempfile.mkdtemp(prefix="probe-backend-"))
|
|
app = erzeuge_app(
|
|
broker=BrokerAttrappe(),
|
|
registry=Registry(db_pfad=temp / "registry.db", artefakt_wurzel=temp / "artifacts"),
|
|
config=config,
|
|
killswitch_config=lade_killswitch_config("config/killswitch.toml"),
|
|
dist=Path("dashboard/dist"),
|
|
)
|
|
print(f"Probe-Backend auf 127.0.0.1:{port}, Takt {config.sendeintervall_s} s, Register {temp}", flush=True)
|
|
uvicorn.run(app, host="127.0.0.1", port=port, log_level="warning")
|