StockAIVest

Account
Param: ?accountId=...
Elegível para executar
forced: —
Bloqueios / Warnings
UI nunca bloqueia no load por bridge down. Teste de Bridge é sob demanda.
IBKR: —
Broker: —
Supervisor: —
Agent: —
WS: —
Pronto
Validador

Configuração do Trade Heart (E2E)

Checklist rápido baseado no /heart/console/state (sem probe de bridge no load).

Resultados
    Debug

    Start here

    Setup Wizard: configure identidade, execution_location, Bridge, loops e comando do Agent.

    ClickHouse-only (db=aivest)
    1) Identidade
    Carrega state sem chamar o Bridge.
    CH (read): aivest.heart_config_latest
    Fonte: ClickHouse via /heart/console/accounts. Param ?accountId= tem prioridade.
    2) Onde roda (execution_location)
    Regra: vm ⇒ TWS obrigatório · local ⇒ Gateway obrigatório.
    CH (write): aivest.heart_config_v1 · view: aivest.heart_config_latest
    Salva em /heart/console/heart-config.
    3) Configurar Bridge
    Nunca retorna apiKey após salva. Teste só roda no clique.
    CH (write): aivest.ibkr_bridge_config_v1 · view: aivest.ibkr_bridge_config_latest
    enabled só controla se existe chave; secrets não vazam.
    Pode ser sobrescrito pela policy (execution_location).
    Obrigatório quando execution_location=local.
    Obrigatório quando execution_location=vm.
    4) Ligar Heart + Loops
    Regra: NULL desabilita (zero hardcode). Local clampa >=30s.
    CH (write): aivest.heart_config_v1 · view: aivest.heart_config_latest
    O que cada campo faz
    • enabled: controla elegibilidade (se não for 1, a policy bloqueia execução).
    • execution_location: define o ambiente (local→Gateway / vm→TWS) e força o modo do Bridge.
    • agent_sync_interval_seconds: roda o sync pipeline (IBKR/estado → ClickHouse) quando habilitado.
    • agent_recon_interval_seconds: roda reconciliação de OCO/ordens quando habilitado.
    • agent_config_refresh_seconds: recarrega config/policy do CH periodicamente (mudanças entram “ao vivo”).
    • agent_heartbeat_seconds: grava heartbeat/status do Agent em CH (pra tela “Agentes/Status” deixar de ficar null).
    • manage_tf_minutes: a cada N minutos roda o Heart runner (dry_run ou execute, dependendo da policy + runner_default_mode).
    Blank = NULL (não inventa default).
    5) Run Agent
    Gera comandos prontos (copy). O browser não inicia o processo.
    CH (agent writes): aivest.heart_agent_status_v1 (view: aivest.heart_agent_status_latest) · runs: aivest.heart_runs (view: aivest.heart_runs_latest)
    Command
    Sem segredos. Use placeholders e export em shell.
    Agent status