Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/deskiziarecords/QUIMERIA-HYPERION/llms.txt

Use this file to discover all available pages before exploring further.

QUIMERIA-HYPERION writes all pipeline activity to five rotating log files under the logs/ directory. The directory is created automatically on first startup relative to the project root. Each log file is written by a dedicated logger in backend/logger.py using Python’s RotatingFileHandler — files rotate at 10 MB and keep five backups, except raw_bars.log which rotates at 50 MB.

Log streams

FileContent
logs/events.logFVGs detected, AMD state transitions, Judas swings, approved signals
logs/veto.logEvery bar’s Ring 0 decision — trade_allowed, veto reason, and p_fused score
logs/trades.logTrade opens and closes with entry price, exit price, and realized P&L
logs/session.logServer start, data loads, live feed start/stop, module import results
logs/raw_bars.logFull step() result JSON for every bar (50 MB rotation limit)
raw_bars.log grows quickly during backtests. It is intended for debugging and should not be left enabled in high-throughput production environments unless you have sufficient disk space.

Log rotation configuration

All five loggers are configured in backend/logger.py using _make_logger(). The defaults are:
ParameterValue
Max file size10 MB (50 MB for raw_bars.log)
Backup count5 rotated files
EncodingUTF-8
Timestamp formatYYYY-MM-DD HH:MM:SS UTC
Rotated files are named events.log.1, events.log.2, etc. The active log is always events.log.

Reading logs via the REST API

List available log files

curl http://localhost:8000/api/logs
[
  "events.log",
  "veto.log",
  "trades.log",
  "session.log",
  "raw_bars.log"
]

Read a log file (last N lines)

The lines query parameter controls how many lines from the end of the file are returned. The default is 100.
curl "http://localhost:8000/api/logs/events.log?lines=200"
curl "http://localhost:8000/api/logs/veto.log?lines=50"
curl "http://localhost:8000/api/logs/trades.log?lines=100"
# Last 200 lines of events log
curl "http://localhost:8000/api/logs/events.log?lines=200"

# Last 50 veto decisions
curl "http://localhost:8000/api/logs/veto.log?lines=50"

# Trade P&L history
curl "http://localhost:8000/api/logs/trades.log?lines=100"

Log entry formats

events.log

[2026-01-15 12:34:56 UTC] BAR#247 FVG_BULLISH low=1.10320 high=1.10580 strength=0.82
[2026-01-15 12:35:00 UTC] BAR#248 AMD_TRANSITION: ACCUMULATION → MANIPULATION
[2026-01-15 12:35:04 UTC] BAR#249 JUDAS_SWING high=1.10601 reversal_confirmed=True
[2026-01-15 12:35:08 UTC] BAR#250 SIGNAL APPROVED p_fused=0.87 confidence=0.91

veto.log

Every bar produces exactly one veto log entry with the Ring 0 decision:
[2026-01-15 12:34:56 UTC] BAR#247 VETO: trade_allowed=True  decision=PROCEED  p_fused=0.87
[2026-01-15 12:35:00 UTC] BAR#248 VETO: trade_allowed=False decision=HALT     reason=MANDRA:ΔE<0.02
[2026-01-15 12:35:04 UTC] BAR#249 VETO: trade_allowed=False decision=HALT     reason=FUSION:LAMBDA_VETO

trades.log

[2026-01-15 12:35:08 UTC] OPEN  #T001 BUY  EURUSD 0.10 lots @ 1.10512  SL=1.10200 TP=1.11000
[2026-01-15 13:22:41 UTC] CLOSE #T001 BUY  EURUSD 0.10 lots @ 1.10998  PnL=+$48.60

session.log

[2026-01-15 10:00:01 UTC] Server startup: QUIMERIA-HYPERION v1.1
[2026-01-15 10:00:02 UTC] Modules loaded: 18/18  Import errors: 0
[2026-01-15 10:00:03 UTC] Plugins discovered: 6
[2026-01-15 10:05:12 UTC] CSV loaded: EURUSD_H1.csv  bars=2340
[2026-01-15 12:34:50 UTC] Live feed started: EURUSDT 1m

TradingView dashboard panels

The frontend (frontend/index.html) displays three live log panels that stream from the same log files via the REST API:
PanelSourceUpdate frequency
Events panellogs/events.logEvery bar (on WebSocket frame)
Veto panellogs/veto.logEvery bar
Trades panellogs/trades.logOn open/close events
The dashboard also shows:
  • 14 SMK sensor bars — real-time λ scores from r['sensors']
  • 6 plugin sensor bars — forensic detector scores appended to sensors[]
  • AMD state machine — current IPDA phase (Accumulate / Manipulate / Distribute / Retrace)
  • Execution panel — AEGIS bridge status, veto authority indicator, and last signal ID
  • TradingView Lightweight Charts v4 — candlestick chart with FVG and order block overlays

Streaming logs from the command line

For server-side monitoring without the dashboard, follow the backend log directly:
# Follow the combined backend stdout/stderr
tail -f logs/backend.log

# Follow veto decisions in real time
tail -f logs/veto.log

# Follow trade opens and closes
tail -f logs/trades.log
During initial deployment, watch logs/session.log at startup to verify that all 18 SMK modules loaded without import errors. Each module emits a [INFO] or [WARN] line as it initializes.

System status endpoint

GET /api/status returns a comprehensive snapshot of the pipeline state, including module counts, live feed status, and bar count:
curl http://localhost:8000/api/status
{
  "status":        "ready",
  "bars_loaded":   2340,
  "symbol":        "EURUSD",
  "pipeline":      "initialized",
  "modules_ok":    18,
  "import_errors": 0,
  "plugins":       6,
  "live_feed": {
    "running":       false,
    "symbol":        null,
    "granularity":   null,
    "clients":       0
  },
  "aegis": {
    "slm":           true,
    "aegis":         true,
    "router":        true
  }
}

Build docs developers (and LLMs) love