Repository navigation
v1.4.0
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
Unreleased
cli-acoes-atualizacao Subcomandos CLI de ação para agendamento externo (carregar watchlist, atualizar fundamentos/documentos/notícias e resumir pendentes), marcador de data de referência dos fundamentos e escrita concorrente segura
Added
- Novo grupo de subcomandos CLI de ação (
carregar,atualizar,resumir) para agendamento externo:flowscope carregar watchlist,flowscope atualizar fundamentos|documentos|noticiaseflowscope resumir documentos|noticias. - Marcador
last_fundamentals({data, fetched_at}) emconfig.json, com resoluçãomarcador → fallback last_date, escrito pela CLI e pela GUI ao carregar fundamentos. - Leitura consultiva da data de referência: nó
/fundamentos/data-referenciana árvore de conhecimento, operaçãodata_referenciano núcleo de navegação, tool MCPnav_data_referenciae comandoflowscope nav data-referencia. - Segurança de escrita concorrente: escrita atômica com temporário único, lock global de ação na CLI e participação da GUI no mesmo lock nas fases de escrita.
Changed
- Núcleo de composição neutro
montar_nucleo()reusado por GUI e CLI, e extração do núcleo do lote de resumos para a camada de aplicação.
diagnosis-panel Painel "Diagnóstico" substitui o placeholder "Resumo Geral" com classificação qualitativa por eixos independentes e novos classificadores de liquidez e institucional
eficiencia-do-movimento Painel "Eficiência do Movimento" com gauge horizontal, card qualitativo e timeline de barras para os últimos 15 pregões
llm-chat-rag Recuperação vetorial como evolução da llm-chat, com VectorStore SQLite, embeddings e indexação de documentos consultada pela aba "Chat AI"
Added
- VectorStore em SQLite puro, com busca top-k por cosine similarity e filtro opcional por ticker.
- Módulo de embeddings com dois provedores:
fastembed(local, default) e liteLLM (API). - Porta
DocumentoIndexavel/DocumentSourcee fontes concretas, com extração de texto (HTML e PDF). - Pipeline de indexação (
IndexarDocumentosUseCase) e consulta RAG (ConsultarDocumentosUseCase) consumindo a portaLLMPortdallm-core. - Integração da consulta RAG à aba "Chat AI" como fonte adicional de contexto, pelo ponto de extensão da
llm-chat. - Chunker de texto em Python puro.
- Configuração de embedding persistida em
llm.embeddinge presets de provedores de embedding. - Dependência opcional
fastembedno grupo[llm]. - CLI
--index <TICKER>com--data-inicioe--data-fim.
participation-negociacoes Painel "Participação nas Negociações" renomeado, com gauge de concentração, card informativo e timeline AFT
1.4.0 — 2026-10-14
navegacao-mcp Núcleo de navegação compartilhado, servidor MCP embutido (flowscope --mcp) e subcomandos flowscope nav ...
Added
NavegacaoCoreemapplication/navegacao/, com operações canônicas, limites centralizados, paginação por cursor opaco, erros estruturados e confinamento de leitura; reusado pelo chat, pela CLI e pelo MCP.- Servidor MCP stdio embutido iniciado por
flowscope --mcp, alvo da revisão2026-07-28, comserver/discover,tools/list(sete toolsnav_*) etools/call, sem dependência nova. - Subcomandos
flowscope nav listar|obter|contar|existe|buscar|buscar-semantico|manifesto, com saída JSON e--pretty. - Guia docs/misc/mcp.md e link no
README.md.
Changed
ProtocoloNavegacaopassa a ser um adaptador fino sobre oNavegacaoCore, mantendo[RESULTADO_NAVEGACAO],focoe o limite de 8 operações por turno; o reset permanece no loop do chat.- Listagens passam a ser ordenadas deterministicamente por caminho canônico.
orientacao-chat-arvore Orientação da aba "Chat AI" atualizada para descrever a árvore de conhecimento navegável, as origens de contexto como ramos, o protocolo de navegação da LLM e a leitura somente de cache
Changed
- O texto de orientação da aba "Chat AI" em
TAB_CONTENTpassa a descrever a árvore de conhecimento navegável (ramos de origem do contexto), o protocolo de navegação da LLM, os orçamentos e a leitura somente de cache. - Mantida a estrutura do
bodydoTAB_CONTENT(título e seções Objetivo, Responde a pergunta, Como usar, Contexto enviado, Como interpretar) e o enquadramento dos ramos disponíveis.
reposicao-datas-uteis-b3 Datas substitutas de amostragem restritas a dias úteis da B3, com o predicado de feriados centralizado no domínio e reusado pelo calendário
Added
- Predicado de dia útil da B3 centralizado no domínio (
domain/b3/calendario.py, com a lista de feriados nacionais eis_business_day), respeitandolayer-boundaries.
Changed
infrastructure/b3/calendar.pyeinfrastructure/b3/holidays.pypassam a consumir/reexportar a definição do domínio, eliminando a duplicação.- Testes unitários cobrindo a candidata em feriado pulada, a continuidade da busca e o resolvedor do calendário usando a mesma definição.
Fixed
_find_replacement_datepassa a usaris_business_dayem vez decandidate.weekday() >= 5, de modo que feriados nacionais nunca sejam consultados como data substituta.
resumo-guidance-system-prompt Instruções estáveis de resumo de documentos/notícias e de avaliação de guidance em system_prompt, com orçamento de caracteres compatível com a fórmula XYZ
Changed
ResumirDocumentoUseCasepassa a enviar as instruções em umsystem_promptconstante e o texto do documento como única mensagemuser, cobrindo as sub-abas "Documentos" e "Notícias".AvaliarGuidanceUseCaseaplica o mesmo padrão: instruções emsystem_promptconstante e o trecho como mensagemuser.- Ajustes pontuais de prompt incorporam à versão enxuta regras da versão detalhada (sem markdown/listas, nada antes de
CURTO:/LONGO:, fidelidade ao conteúdo, guidance vazio ⇒ saída vazia, valor único ⇒ mínimo = máximo, ponto decimal semR$, dúvida em guidance ⇒NAO). - Orçamento de caracteres compatível com o XYZ: tetos de salvaguarda do resumo elevados (curto 280 → 450, longo 1500 → 2000) e orçamento declarado no prompt (400 / 1800), sem cortar a conclusão.
docs/misc/llm-payloads.md(§1.1 e §1.5) atualizado com o payload separado emsystem/user.
See CHANGELOG Archive for older releases.