* docs/11-gui-streamlit.md — replaces the original spec with what was
actually built: implementation status table, real page filenames
(1_Status, 2_Audit, 3_Equity, 4_History, 5_Position), per-page
inventory of implemented vs deferred sections, GUI ↔ engine table
showing arm_kill/disarm_kill via manual_actions and the
not_supported markers for force_close + approve/reject_proposal,
consumer signature with cron */1, lock model clarified (no GUI
lockfile), DoD updated with current state.
* docs/05-data-model.md — manual_actions is no longer "pianificata":
populated by gui/data_layer.py, drained by the manual_actions job;
per-kind status table (arm/disarm OK, others not_supported).
* docs/09-development-roadmap.md — Phase 4.5 marked implemented with
per-task ✅/⏳ markers for the deferred items (auto-refresh,
AppTest, force-close hook).
* docs/06-operational-flow.md — adds Flusso 5b describing the
manual_actions consumer pattern (enqueue → KillSwitch transition →
audit log linkage).
360/360 tests still pass.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Each bot now manages its own notification + portfolio aggregation:
* TelegramClient calls the public Bot API directly via httpx, reading
CERBERO_BITE_TELEGRAM_BOT_TOKEN / CERBERO_BITE_TELEGRAM_CHAT_ID from
env. No credentials → silent disabled mode.
* PortfolioClient composes DeribitClient + HyperliquidClient + the new
MacroClient.get_asset_price/eur_usd_rate to expose equity (EUR) and
per-asset exposure as the bot's own slice (no cross-bot view).
* mcp-telegram and mcp-portfolio removed from MCP_SERVICES / McpEndpoints
and the cerbero-bite ping CLI; health_check no longer probes portfolio.
Docs (02/04/06/07) and docker-compose updated to reflect the new
architecture.
353/353 tests pass; ruff clean; mypy src clean.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>