Skip to content

v0.1.2 — PDR (Perceive-Decide-React) plugin

Choose a tag to compare

@baladithyab baladithyab released this 13 May 20:53
· 890 commits to main since this release

v0.1.2 — PDR (Perceive-Decide-React) plugin

Reframes hermes-quant as a three-mode PDR plugin: advise (chat-mode
guidance), hitl (propose-approve-react with paper trading), autonomous
(deferred to v0.2). Same Analyst -> BMAAggregator -> DefaultRiskGate
pipeline drives all three.

KEY ADDITIONS:

  • HITL React layer (ADR-0015): quant_propose, quant_approve, quant_reject,
    quant_pending, quant_proposal tools + PaperReactor + JSONL+SQLite
    proposal store with lazy TTL expiration
  • Settlement journal (ADR-0010): markdown ledger, Pydantic-only writer,
    two-phase pending->resolved, atomic-rename, get_recent_lessons (no
    embeddings — explicit divergence from TradingAgents' removed
    FinancialSituationMemory)
  • MicrostructureLite analyst — second voice for BMA (Bollinger %B +
    trend quality + order-flow toxicity proxy)
  • Lookahead enforcement at the leaf data layer (as_of param on
    DataProvider, leaf-level filter, test_no_lookahead.py CI gate)
  • Path-safety guard (safe_symbol_component) for user-supplied tickers
  • Monotonic-clock heartbeat (wall-clock jump-backward no longer extends
    grace window; Phase-8 P1-ε)
  • Decision price exposed as top-level advisor field

NEW DOCS:

  • Founding charter saved verbatim to docs/charter/
  • 3 new ADRs: 0013 (integration stance), 0014 (advisor surface),
    0015 (HITL React)
  • Architecture review docs/reviews/2026-05-13-v0.1.2-architecture/

TEST COUNT: 273 (v0.1.1) -> 365 (v0.1.2). +92 tests covering HITL e2e,
journal, microstructure, no-lookahead invariant, monotonic heartbeat,
symbol safety, advisor contract. Zero regressions.

THE PDR LOOP CLOSES: HITL approve -> paper React (executions.jsonl)
-> journal entry -> next quant_recommend reads journal -> operator
sees prior decisions inline with new recommendations. Calibrator
update on rejections is config-gated and ready (consumer gates lift
when portfolio_loader rewrite lands).

DEFERRED TO v0.2:

  • autonomous mode with silence-bias gate
  • live broker reactors (alpaca, ccxt) gated by --live + creds
  • Discord button-based UI
  • KronosAnalyst, KairosAnalyst (deterministic neural)
  • ccxt provider for crypto (advisor returns gated asset_class_unsupported
    until then)
  • portfolio_loader rewrite (ADR-0011) -> calibrator gate lift
  • OHLCV file cache, trading_calendars for halt_until,
    halt-mirror staleness fallback