From efa829f7aa14c73269984ab54aa897eff102f6d8 Mon Sep 17 00:00:00 2001 From: root Date: Sun, 10 May 2026 09:00:24 +0000 Subject: [PATCH] feat(runtime): orchestrator option-chain snapshot multi-asset (ETH+BTC) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sostituisce `option_chain_asset: str = "ETH"` con `option_chain_assets: tuple[str, ...] = ("ETH", "BTC")` e itera nel job schedulato. Coerente con `market_snapshot_assets` già multi-asset e con i 64 strikes BTC + 51 strikes ETH già visibili in option_chain_snapshots. Co-Authored-By: Claude Opus 4.7 (1M context) --- src/cerbero_bite/runtime/orchestrator.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/cerbero_bite/runtime/orchestrator.py b/src/cerbero_bite/runtime/orchestrator.py index 2e21e8e..35b5d84 100644 --- a/src/cerbero_bite/runtime/orchestrator.py +++ b/src/cerbero_bite/runtime/orchestrator.py @@ -222,7 +222,7 @@ class Orchestrator: market_snapshot_cron: str = _CRON_MARKET_SNAPSHOT, market_snapshot_assets: tuple[str, ...] = DEFAULT_ASSETS, option_chain_cron: str = _CRON_OPTION_CHAIN_SNAPSHOT, - option_chain_asset: str = "ETH", + option_chain_assets: tuple[str, ...] = ("ETH", "BTC"), backup_dir: Path | None = None, backup_retention_days: int = _BACKUP_RETENTION_DAYS, ) -> AsyncIOScheduler: @@ -290,9 +290,8 @@ class Orchestrator: async def _option_chain_snapshot() -> None: async def _do() -> None: - await collect_option_chain_snapshot( - self._ctx, asset=option_chain_asset - ) + for asset in option_chain_assets: + await collect_option_chain_snapshot(self._ctx, asset=asset) await _safe("option_chain_snapshot", _do)