From 8f57f4d855cc8f2796b4f163e3396f45824d9bb1 Mon Sep 17 00:00:00 2001 From: Codex Date: Mon, 8 Jun 2026 13:19:29 +0200 Subject: [PATCH] =?UTF-8?q?CRITICAL:=20fix=20nautilus=5Ftrader=20superviso?= =?UTF-8?q?rd=20path=20=E2=80=94=20revert=20/tmp=20clone=20to=20/mnt=20can?= =?UTF-8?q?onical?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A previous agent changed nautilus_trader to run from /tmp/blue_runtime_mirror/prod/ and updated PYTHONPATH + DOLPHIN_LOCAL_RUNTIME_ROOT to match. /tmp/blue_runtime_mirror no longer exists after the OOM reboot, so supervisord could not start BLUE. Fix: restore canonical paths for nautilus_trader: command: /mnt/dolphinng5_predict/prod/nautilus_event_trader.py directory: /mnt/dolphinng5_predict/prod PYTHONPATH: /mnt/dolphinng5_predict:/mnt/dolphinng5_predict/nautilus_dolphin:/mnt/dolphinng5_predict/prod DOLPHIN_LOCAL_RUNTIME_ROOT: /mnt/dolphinng5_predict Rule: NEVER point nautilus_trader at /tmp. /tmp dirs are volatile; canonical trader binaries must always be referenced via /mnt paths. Co-Authored-By: Claude Sonnet 4.6 --- prod/supervisor/dolphin-supervisord.conf | 402 +++++++++++++++++++++++ 1 file changed, 402 insertions(+) create mode 100644 prod/supervisor/dolphin-supervisord.conf diff --git a/prod/supervisor/dolphin-supervisord.conf b/prod/supervisor/dolphin-supervisord.conf new file mode 100644 index 0000000..f3432eb --- /dev/null +++ b/prod/supervisor/dolphin-supervisord.conf @@ -0,0 +1,402 @@ +; ============================================================================= +; Dolphin Service Supervisor Configuration +; Industrial-grade process management using Supervisor +; ============================================================================= + +[supervisord] +environment=DOLPHIN_LOG_ROOT="/tmp/dolphin_logs",PYTHONPATH="/mnt/dolphinng5_predict/prod:/mnt/dolphinng5_predict/prod/clean_arch",HZ_HOST="localhost:5701" +logfile=%(ENV_DOLPHIN_LOG_ROOT)s/supervisor/supervisord.log +logfile_maxbytes=50MB +logfile_backups=10 +loglevel=info +pidfile=%(ENV_DOLPHIN_LOG_ROOT)s/supervisor/supervisord.pid +nodaemon=false +minfds=1024 +minprocs=200 +user=root +directory=/mnt/dolphinng5_predict/prod + +[unix_http_server] +file=/tmp/dolphin-supervisor.sock +chmod=0777 + +[rpcinterface:supervisor] +supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface + +[supervisorctl] +serverurl=unix:///tmp/dolphin-supervisor.sock + +; ============================================================================= +; TRADING SERVICES (Migrated from systemd) +; ============================================================================= + +[program:clean_arch_trader] +command=/home/dolphin/siloqy_env/bin/python3 /mnt/dolphinng5_predict/prod/clean_arch/main.py +directory=/mnt/dolphinng5_predict/prod/clean_arch +autostart=false +autorestart=true +startsecs=10 +startretries=3 +stopwaitsecs=30 +stopasgroup=true +killasgroup=true +stdout_logfile=%(ENV_DOLPHIN_LOG_ROOT)s/supervisor/clean_arch_trader.log +stdout_logfile_maxbytes=50MB +stdout_logfile_backups=10 +stderr_logfile=%(ENV_DOLPHIN_LOG_ROOT)s/supervisor/clean_arch_trader-error.log +stderr_logfile_maxbytes=50MB +stderr_logfile_backups=10 +environment=PYTHONPATH="/mnt/dolphinng5_predict/prod:/mnt/dolphinng5_predict/prod/clean_arch",HZ_HOST="localhost:5701" + +[program:nautilus_trader] +; BLUE live-mainnet Nautilus trader. Canonical path is /mnt/dolphinng5_predict/prod/. +; DO NOT point this at /tmp/blue_runtime_mirror/ — /tmp is volatile and wiped on reboot. +command=/home/dolphin/siloqy_env/bin/python3 /mnt/dolphinng5_predict/prod/nautilus_event_trader.py +directory=/mnt/dolphinng5_predict/prod +autostart=false +autorestart=false +startsecs=10 +startretries=3 +stopwaitsecs=30 +stopasgroup=true +killasgroup=true +stdout_logfile=%(ENV_DOLPHIN_LOG_ROOT)s/supervisor/nautilus_trader.log +stdout_logfile_maxbytes=50MB +stdout_logfile_backups=10 +stderr_logfile=%(ENV_DOLPHIN_LOG_ROOT)s/supervisor/nautilus_trader-error.log +stderr_logfile_maxbytes=50MB +stderr_logfile_backups=10 +environment=PYTHONPATH="/mnt/dolphinng5_predict:/mnt/dolphinng5_predict/nautilus_dolphin:/mnt/dolphinng5_predict/prod",DOLPHIN_LOCAL_RUNTIME_ROOT="/mnt/dolphinng5_predict",PREFECT_API_URL="http://localhost:4200/api",PYTHONUNBUFFERED="1",DOLPHIN_DATA_VENUE="BINANCE",DOLPHIN_EXEC_VENUE="BINGX",DOLPHIN_BINGX_ENV="LIVE",DOLPHIN_BINGX_ALLOW_MAINNET="1",DOLPHIN_TRADER_ID="DOLPHIN-BINGX-001",DOLPHIN_BINGX_DEFAULT_LEVERAGE="1",DOLPHIN_BINGX_PREFER_WEBSOCKET="1",DOLPHIN_VOL_P60_THRESHOLD="0.00026414",DOLPHIN_ENABLE_ADVANCED_SL_LIVE="1",DOLPHIN_CATASTROPHIC_FLOOR_PCT="0.0120",DOLPHIN_OVERLAY_CATASTROPHIC_FLOOR_PCT="0.0050",DOLPHIN_OVERLAY_CATASTROPHIC_MAX_LOSS_USD="500",DOLPHIN_OVERLAY_ADVSL_LIVE="1",DOLPHIN_OVERLAY_ADVSL_MIN_BARS="6",DOLPHIN_OVERLAY_ADVSL_MFE_MAX_PCT="0.0020",DOLPHIN_OVERLAY_ADVSL_PRESSURE_MIN="1.85",DOLPHIN_OVERLAY_ADVSL_MAE_RISK_MIN="0.50",DOLPHIN_TRADE_LOG_DIR="/tmp/dolphin_logs/trader",DOLPHIN_MC_MODELS_DIR="" +rlimit_as=2GB +rlimit_nofile=1024 + +[program:dolphin_live] +command=/home/dolphin/siloqy_env/bin/python3 /mnt/dolphinng5_predict/prod/launch_dolphin_bingx.py +directory=/mnt/dolphinng5_predict/prod +autostart=false +autorestart=false +startsecs=15 +startretries=3 +stopwaitsecs=30 +stopasgroup=true +killasgroup=true +stdout_logfile=%(ENV_DOLPHIN_LOG_ROOT)s/supervisor/dolphin_live_prodgreen.log +stdout_logfile_maxbytes=50MB +stdout_logfile_backups=10 +redirect_stderr=true +environment=PYTHONPATH="/mnt/dolphinng5_predict:/mnt/dolphinng5_predict/nautilus_dolphin",PREFECT_API_URL="http://localhost:4200/api",PYTHONUNBUFFERED="1",DOLPHIN_DATA_VENUE="BINANCE",DOLPHIN_EXEC_VENUE="BINGX",DOLPHIN_BINGX_ENV="VST",DOLPHIN_BINGX_ALLOW_MAINNET="0",DOLPHIN_TRADER_ID="DOLPHIN-PRODGREEN-001",DOLPHIN_BINGX_DEFAULT_LEVERAGE="1",DOLPHIN_BINGX_PREFER_WEBSOCKET="1",DOLPHIN_BINGX_RECV_WINDOW_MS="60000" + +[program:dolphin_pink] +command=/home/dolphin/siloqy_env/bin/python3 /mnt/dolphinng5_predict/prod/launch_dolphin_pink.py +directory=/mnt/dolphinng5_predict/prod +autostart=false +autorestart=true +startsecs=15 +startretries=3 +stopwaitsecs=30 +stopasgroup=true +killasgroup=true +stdout_logfile=%(ENV_DOLPHIN_LOG_ROOT)s/supervisor/dolphin_live_pink.log +stdout_logfile_maxbytes=50MB +stdout_logfile_backups=10 +redirect_stderr=true +environment=PYTHONPATH="/mnt/dolphinng5_predict:/mnt/dolphinng5_predict/nautilus_dolphin",PREFECT_API_URL="http://localhost:4200/api",PYTHONUNBUFFERED="1",DOLPHIN_DATA_VENUE="BINANCE",DOLPHIN_EXEC_VENUE="BINGX",DOLPHIN_BINGX_ENV="VST",DOLPHIN_BINGX_ALLOW_MAINNET="0",DOLPHIN_TRADER_ID="DOLPHIN-PINK-001",DOLPHIN_BINGX_DEFAULT_LEVERAGE="1",DOLPHIN_BINGX_PREFER_WEBSOCKET="1",DOLPHIN_BINGX_RECV_WINDOW_MS="60000",DOLPHIN_PINK_PHASE="single_leg",DOLPHIN_PINK_VOL_P60_THRESHOLD="0.00008000" + +; DITAv2 — supervised kernel, launched separately from the legacy PINK/BLUE stack. +[program:dita_v2] +command=/home/dolphin/siloqy_env/bin/python3 /mnt/dolphinng5_predict/prod/launch_dita_v2.py +directory=/mnt/dolphinng5_predict/prod +autostart=false +autorestart=true +startsecs=10 +startretries=3 +stopwaitsecs=30 +stopasgroup=true +killasgroup=true +stdout_logfile=%(ENV_DOLPHIN_LOG_ROOT)s/supervisor/dita_v2.log +stdout_logfile_maxbytes=50MB +stdout_logfile_backups=10 +stderr_logfile=%(ENV_DOLPHIN_LOG_ROOT)s/supervisor/dita_v2-error.log +stderr_logfile_maxbytes=50MB +stderr_logfile_backups=10 +environment=PYTHONPATH="/mnt/dolphinng5_predict:/mnt/dolphinng5_predict/prod:/mnt/dolphinng5_predict/prod/clean_arch",PYTHONUNBUFFERED="1",DITA_V2_LAUNCHER_MODE="serve",DITA_V2_VENUE="BINGX",DITA_V2_ZINC="REAL",DITA_V2_CONTROL_PLANE="REAL_ZINC",DITA_V2_HAZELCAST="REAL",DITA_V2_MODE="DEBUG",DITA_V2_VERBOSITY="TRACE",DITA_V2_BACKEND_MODE="BINGX",DOLPHIN_BINGX_ENV="VST",DOLPHIN_BINGX_ALLOW_MAINNET="0",DOLPHIN_BINGX_DEFAULT_LEVERAGE="1",DOLPHIN_BINGX_PREFER_WEBSOCKET="1",DOLPHIN_BINGX_RECV_WINDOW_MS="60000" + +[program:scan_bridge] +command=/home/dolphin/siloqy_env/bin/python3 /mnt/dolphinng5_predict/prod/scan_bridge_service.py +directory=/mnt/dolphinng5_predict/prod +; Direct NG7/NG8 → HZ is primary. Keep scan_bridge as manual fallback only. +autostart=false +autorestart=true +startsecs=5 +startretries=5 +stopwaitsecs=10 +stopasgroup=true +killasgroup=true +stdout_logfile=%(ENV_DOLPHIN_LOG_ROOT)s/supervisor/scan_bridge.log +stdout_logfile_maxbytes=50MB +stdout_logfile_backups=10 +stderr_logfile=%(ENV_DOLPHIN_LOG_ROOT)s/supervisor/scan_bridge-error.log +stderr_logfile_maxbytes=50MB +stderr_logfile_backups=10 +environment=PYTHONPATH="/mnt/dolphinng5_predict/prod" + +; ============================================================================= +; DATA PIPELINE SERVICES +; ============================================================================= + +[program:exf_fetcher] +command=/home/dolphin/siloqy_env/bin/python3 /mnt/dolphinng5_predict/prod/exf_fetcher_flow.py --warmup 15 +directory=/mnt/dolphinng5_predict/prod +autostart=true +autorestart=true +startsecs=20 +startretries=5 +stopwaitsecs=15 +stopasgroup=true +killasgroup=true +stdout_logfile=%(ENV_DOLPHIN_LOG_ROOT)s/supervisor/exf.log +stdout_logfile_maxbytes=50MB +stdout_logfile_backups=10 +stderr_logfile=%(ENV_DOLPHIN_LOG_ROOT)s/supervisor/exf-error.log +stderr_logfile_maxbytes=50MB +stderr_logfile_backups=10 +environment=PYTHONPATH="/mnt/dolphinng5_predict:/mnt/dolphinng5_predict/nautilus_dolphin:/mnt/dolphinng5_predict/external_factors:/mnt/dolphinng5_predict/prod",PREFECT_API_URL="http://localhost:4200/api" + +[program:acb_processor] +command=/home/dolphin/siloqy_env/bin/python3 /mnt/dolphinng5_predict/prod/acb_processor_service.py +directory=/mnt/dolphinng5_predict/prod +autostart=true +autorestart=true +startsecs=10 +startretries=5 +stopwaitsecs=10 +stopasgroup=true +killasgroup=true +stdout_logfile=%(ENV_DOLPHIN_LOG_ROOT)s/supervisor/acb_processor.log +stdout_logfile_maxbytes=50MB +stdout_logfile_backups=10 +stderr_logfile=%(ENV_DOLPHIN_LOG_ROOT)s/supervisor/acb_processor-error.log +stderr_logfile_maxbytes=50MB +stderr_logfile_backups=10 +environment=PYTHONPATH="/mnt/dolphinng5_predict:/mnt/dolphinng5_predict/nautilus_dolphin:/mnt/dolphinng5_predict/prod" + +[program:meta_health] +command=/home/dolphin/siloqy_env/bin/python3 /mnt/dolphinng5_predict/prod/meta_health_service_v3.py +directory=/mnt/dolphinng5_predict/prod +autostart=true +autorestart=true +startsecs=5 +startretries=5 +stopwaitsecs=10 +stopasgroup=true +killasgroup=true +stdout_logfile=%(ENV_DOLPHIN_LOG_ROOT)s/supervisor/meta_health.log +stdout_logfile_maxbytes=50MB +stdout_logfile_backups=10 +stderr_logfile=%(ENV_DOLPHIN_LOG_ROOT)s/supervisor/meta_health-error.log +stderr_logfile_maxbytes=50MB +stderr_logfile_backups=10 +environment=PYTHONPATH="/mnt/dolphinng5_predict:/mnt/dolphinng5_predict/nautilus_dolphin:/mnt/dolphinng5_predict/prod",DOLPHIN_FAST_RECOVERY="1",DOLPHIN_MHS_USE_DITA_SENSORS="1",DOLPHIN_MHS_DITA_SENSOR_WEIGHT="0.02" + +[program:obf_universe] +command=/home/dolphin/siloqy_env/bin/python3 /mnt/dolphinng5_predict/prod/obf_universe_service.py +directory=/mnt/dolphinng5_predict/prod +autostart=true +autorestart=true +startsecs=15 +startretries=5 +stopwaitsecs=15 +stopasgroup=true +killasgroup=true +stdout_logfile=%(ENV_DOLPHIN_LOG_ROOT)s/supervisor/obf_universe.log +stdout_logfile_maxbytes=50MB +stdout_logfile_backups=10 +stderr_logfile=%(ENV_DOLPHIN_LOG_ROOT)s/supervisor/obf_universe-error.log +stderr_logfile_maxbytes=50MB +stderr_logfile_backups=10 +environment=PYTHONPATH="/mnt/dolphinng5_predict:/mnt/dolphinng5_predict/nautilus_dolphin:/mnt/dolphinng5_predict/prod" + +; Nautilus TradingNode paper/live portfolio launcher (DolphinActor-based). +; autostart=false: activate deliberately after nautilus_trader is confirmed healthy. +; Requires: nautilus_trader running + HZ healthy + DOLPHIN_SAFETY posture=APEX +[program:paper_portfolio] +command=/home/dolphin/siloqy_env/bin/python /mnt/dolphinng5_predict/prod/launch_paper_portfolio.py +directory=/mnt/dolphinng5_predict/prod +autostart=false +autorestart=true +startsecs=15 +startretries=3 +stopwaitsecs=30 +stopasgroup=true +killasgroup=true +stdout_logfile=%(ENV_DOLPHIN_LOG_ROOT)s/supervisor/paper_portfolio.log +stdout_logfile_maxbytes=50MB +stdout_logfile_backups=10 +stderr_logfile=%(ENV_DOLPHIN_LOG_ROOT)s/supervisor/paper_portfolio-error.log +stderr_logfile_maxbytes=50MB +stderr_logfile_backups=10 +environment=PYTHONPATH="/mnt/dolphinng5_predict:/mnt/dolphinng5_predict/nautilus_dolphin",PREFECT_API_URL="http://localhost:4200/api" + +; ============================================================================= +; GROUPS +; ============================================================================= + +[group:dolphin] +programs=nautilus_trader,dolphin_live,scan_bridge,clean_arch_trader,paper_portfolio,dita_v2 +priority=999 + +[group:dita_v2] +programs=dita_v2 +priority=950 + +[group:dolphin_data] +programs=exf_fetcher,acb_processor,obf_universe,meta_health,system_stats,esof_advisor,maras_service,vibriss_runner +priority=100 + +[program:maras_service] +command=/home/dolphin/siloqy_env/bin/python3 /mnt/dolphinng5_predict/prod/maras_service.py --interval 5.0 +directory=/mnt/dolphinng5_predict/prod +autostart=true +autorestart=true +startsecs=10 +startretries=5 +stopwaitsecs=10 +stopasgroup=true +killasgroup=true +stdout_logfile=%(ENV_DOLPHIN_LOG_ROOT)s/supervisor/maras_service.log +stdout_logfile_maxbytes=50MB +stdout_logfile_backups=10 +stderr_logfile=%(ENV_DOLPHIN_LOG_ROOT)s/supervisor/maras_service-error.log +stderr_logfile_maxbytes=50MB +stderr_logfile_backups=10 +environment=PYTHONPATH="/mnt/dolphinng5_predict:/mnt/dolphinng5_predict/prod",MARAS_POLL_INTERVAL="5.0" + +; ============================================================================= +; CLICKHOUSE OBSERVABILITY +; ============================================================================= + +[program:esof_advisor] +command=/home/dolphin/siloqy_env/bin/python3 /mnt/dolphinng5_predict/Observability/esof_advisor.py --interval 15 +directory=/mnt/dolphinng5_predict +autostart=true +autorestart=true +startsecs=10 +startretries=5 +stopwaitsecs=10 +stopasgroup=true +killasgroup=true +stdout_logfile=%(ENV_DOLPHIN_LOG_ROOT)s/supervisor/esof_advisor.log +stdout_logfile_maxbytes=50MB +stdout_logfile_backups=10 +stderr_logfile=%(ENV_DOLPHIN_LOG_ROOT)s/supervisor/esof_advisor-error.log +stderr_logfile_maxbytes=50MB +stderr_logfile_backups=10 +environment=PYTHONPATH="/mnt/dolphinng5_predict:/mnt/dolphinng5_predict/nautilus_dolphin:/mnt/dolphinng5_predict/external_factors" + +[program:system_stats] +command=/home/dolphin/siloqy_env/bin/python3 /mnt/dolphinng5_predict/prod/system_stats_service.py +directory=/mnt/dolphinng5_predict/prod +autostart=true +autorestart=true +startsecs=5 +startretries=5 +stopwaitsecs=5 +stdout_logfile=%(ENV_DOLPHIN_LOG_ROOT)s/supervisor/system_stats.log +stdout_logfile_maxbytes=10MB +stdout_logfile_backups=3 +stderr_logfile=%(ENV_DOLPHIN_LOG_ROOT)s/supervisor/system_stats-error.log +stderr_logfile_maxbytes=10MB +environment=PYTHONPATH="/mnt/dolphinng5_predict/prod" + +[eventlistener:ch_state_listener] +command=/home/dolphin/siloqy_env/bin/python3 /mnt/dolphinng5_predict/prod/supervisord_ch_listener.py +events=PROCESS_STATE,TICK_60 +autostart=true +autorestart=true +stderr_logfile=/tmp/ch_listener.log +stderr_logfile_maxbytes=10MB + +; ============================================================================= +; VIBRISS — Online Parameter Governance +; Per VIBRISS spec §12.3: supervisord entries for the runner and worker. +; Native process (no container) for immediate deployment, matching the +; maras_service pattern. Containerized runner also available via the wrapper. +; ============================================================================= + +[program:vibriss_runner] +command=/home/dolphin/siloqy_env/bin/python3 /mnt/dolphinng5_predict/prod/vibriss/vibriss_runner.py --mode shadow --namespace blue +directory=/mnt/dolphinng5_predict/prod +autostart=false +autorestart=true +startsecs=10 +startretries=5 +stopwaitsecs=30 +stopasgroup=true +killasgroup=true +stdout_logfile=%(ENV_DOLPHIN_LOG_ROOT)s/supervisor/vibriss_runner.log +stdout_logfile_maxbytes=50MB +stdout_logfile_backups=10 +stderr_logfile=%(ENV_DOLPHIN_LOG_ROOT)s/supervisor/vibriss_runner-error.log +stderr_logfile_maxbytes=50MB +stderr_logfile_backups=10 +environment= + PYTHONPATH="/mnt/dolphinng5_predict:/mnt/dolphinng5_predict/prod", + HZ_HOST="localhost:5701", + CH_URL="http://localhost:8123/", + CH_DB="dolphin", + CH_USER="dolphin", + CH_PASS="dolphin_ch_2026", + NATS_URL="nats://localhost:4222", + VIBRISS_ENABLE_NATS_TRANSPORT="1", + VIBRISS_NATS_SUBJECT_PREFIX="vibriss", + VIBRISS_MODE="shadow", + VIBRISS_NAMESPACE="blue", + VIBRISS_SPEC_DIR="/mnt/dolphin_training/vibriss/specs", + VIBRISS_STATE_DIR="/mnt/dolphin_training/vibriss/checkpoints", + VIBRISS_ENABLE_LIVE_ACTUATION="0", + VIBRISS_META_CADENCE_MODE="fixed", + DOLPHIN_LOG_ROOT="/mnt/dolphin_training/vibriss/logs" + +[program:vibriss_runner_container] +command=/mnt/dolphinng5_predict/prod/vibriss/infra/container/vibriss-container-wrapper.sh +directory=/mnt/dolphinng5_predict/prod +autostart=false +autorestart=true +startsecs=30 +startretries=3 +stopwaitsecs=40 +stopasgroup=true +killasgroup=true +stdout_logfile=/mnt/dolphin_training/vibriss/logs/supervisor/vibriss_runner_container.log +stdout_logfile_maxbytes=50MB +stdout_logfile_backups=10 +stderr_logfile=/mnt/dolphin_training/vibriss/logs/supervisor/vibriss_runner_container-error.log +stderr_logfile_maxbytes=50MB +stderr_logfile_backups=10 +environment= + DOLPHIN_LOG_ROOT="%(ENV_DOLPHIN_LOG_ROOT)s" + +[program:vibriss_worker] +command=/home/dolphin/siloqy_env/bin/python3 /mnt/dolphinng5_predict/prod/vibriss/vibriss_runner.py replay --param-set advsl.hold_substitute.v1 --out /mnt/dolphin_training/vibriss/replays +directory=/mnt/dolphinng5_predict/prod +autostart=false +autorestart=false +startsecs=0 +stopwaitsecs=30 +stopasgroup=true +killasgroup=true +stdout_logfile=/mnt/dolphin_training/vibriss/logs/supervisor/vibriss_worker.log +stdout_logfile_maxbytes=50MB +stdout_logfile_backups=10 +stderr_logfile=/mnt/dolphin_training/vibriss/logs/supervisor/vibriss_worker-error.log +stderr_logfile_maxbytes=50MB +stderr_logfile_backups=10 +environment= + PYTHONPATH="/mnt/dolphinng5_predict:/mnt/dolphinng5_predict/prod", + HZ_HOST="localhost:5701", + NATS_URL="nats://localhost:4222", + VIBRISS_ENABLE_NATS_TRANSPORT="1", + VIBRISS_NATS_SUBJECT_PREFIX="vibriss", + VIBRISS_MODE="shadow", + VIBRISS_NAMESPACE="blue", + DOLPHIN_LOG_ROOT="/mnt/dolphin_training/vibriss/logs"