Files
5f5a2bffd6 feat(detector): persist all risk assessments to risk_assessments table (#109)
* feat(detector): persist all risk assessments to risk_assessments table

* docs+test: add CHANGELOG and persistence regression tests

Documents the persist-all-assessments feature shipped in 8a0e8c9 and adds two regression tests covering: (1) sub-threshold assessments still hit the DB, and (2) DB write failures do not block alert dispatch.

* fix: add detector mock to pipeline test fixture

The persist_assessments feature accesses settings.detector which the
existing mock_settings fixture didn't include.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix: ruff lint and format fixes for persist assessment

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: jp-vps-deploy <vps-deploy@schrodinger01>
Co-authored-by: schrodinger01 <schrodinger01@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-06-14 15:20:29 -04:00

1.4 KiB

Changelog

All notable changes to this project are documented in this file. The format is loosely based on Keep a Changelog.

[Unreleased]

Added

  • Risk-assessment persistence: every signal-bearing trade now writes a row to the new risk_assessments table, regardless of whether the assessment meets the alert threshold. This is the ground-truth log future backtests will read instead of grepping alerts.log / journalctl.
    • Pipeline: Pipeline._score_and_alert calls Pipeline._persist_assessment for every assessment; failures are caught and never block alert dispatch.
    • Storage: new RiskAssessmentModel, RiskAssessmentDTO, and RiskAssessmentRepository (alembic migration shipped previously).
    • Config: DETECTOR_PERSIST_ASSESSMENTS env var (default true) controls the write path so it can be disabled without code changes.
    • Tests: tests/test_persist_assessment.py covers (a) sub-threshold rows are persisted with should_alert=False and dispatch is skipped, and (b) DB failures during persistence do not block dispatching.

Changed

  • Alert threshold (DETECTOR_ALERT_THRESHOLD) is now fully env-driven; the legacy hard-coded 0.6 default has been raised to 0.80 for production.

Notes

  • Backtest scripts can now source data from risk_assessments directly. The alerts.log parsing path remains for one release as a fallback.