All notable changes to DiaryMCP will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
-
Git Hooks Automáticos
post-commit: Captura automática após cada commitpost-merge: Captura automática após merges/pullspost-checkout: Captura automática ao trocar de branch- Execução não-bloqueante (background)
- Instalação automática via
install.sh
-
Daemon de Monitoramento
- Monitoramento de arquivos em tempo real com
watchdog - Captura inteligente baseada em:
- Número mínimo de mudanças (configurável, padrão: 10)
- Intervalo mínimo entre capturas (configurável, padrão: 5min)
- Extensões de arquivo específicas
- Scripts de controle:
daemon.sh(start/stop/restart/status) - Logs em
.diary/logs/daemon.log
- Monitoramento de arquivos em tempo real com
-
Armazenamento Local de Entradas
- Entradas salvas em
.diary/data/entries/com timestamps - Formato JSON estruturado
- Integrado com anonimizador de dados
- Entradas salvas em
-
Configuração Flexível
- Seção
auto_captureemmanifest.yaml - Controle granular de cada hook
- Configuração de sensibilidade do daemon
- Extensões de arquivo customizáveis
- Seção
-
Indexação Semântica
- Motor de busca local com
sentence-transformers+ FAISS - Modelo
all-MiniLM-L6-v2(leve, rápido, multilíngue) - Embeddings de 384 dimensões
- 100% offline (sem API calls)
- Motor de busca local com
-
CLI de Busca Poderosa
search.sh --index: Indexar todas entradassearch.sh "query": Busca semântica por linguagem naturalsearch.sh --recent N: Listar N entradas recentessearch.sh --stats: Estatísticas do índice- Filtros:
--branch,--top-k,--min-files
-
Auto-Indexação
- Entradas indexadas automaticamente ao serem capturadas
- Integrado com capturas manuais, git hooks e daemon
- Processo não-bloqueante e tolerante a falhas
-
Performance
- Indexação: ~100ms por entrada (após download do modelo)
- Busca: ~100-200ms por query
- Armazenamento: ~2KB overhead por entrada
-
Estrutura de Dados
- FAISS index para busca vetorial
- SQLite para metadados e filtragem
- Pickle para metadata cache
-
local/agent/cli.py- Adicionada função
_save_entry_locally()para persistir entradas - Adicionada função
_auto_index_entry()para indexação automática - Modificado
run_capture()para integrar armazenamento e indexação
- Adicionada função
-
local/install.sh- Instalação automática de git hooks
- Cópia de
search.shpara.diary/ - Cópia de
daemon.shpara.diary/ - Mensagens de instalação atualizadas com novas features
-
requirements.txt- Adicionado
faiss-cpu>=1.7.4para busca vetorial - Adicionado
watchdog>=3.0.0para monitoramento de arquivos - Atualizada seção de comentários para clarificar dependências
- Adicionado
-
local/config/.diary.yaml- Nova seção
auto_capturecom configurações de hooks e daemon - Documentação inline de todas as opções
- Nova seção
-
docs/AUTO_CAPTURE.md- Guia completo de auto-capture- Explicação dos dois modos (git hooks + daemon)
- Configuração detalhada
- Troubleshooting
- Melhores práticas
-
docs/SEMANTIC_SEARCH.md- Guia completo de busca semântica- Como funciona (tecnologias, pipeline)
- Instalação e uso básico
- Casos de uso reais
- API programática Python
- Configuração avançada
-
docs/QUICK_START_v2.md- Guia de início rápido atualizado- Instalação em 3 passos
- Workflow recomendado
- Exemplos práticos
- Comandos úteis
-
README.md- Atualizado com:- Destaque para features v2.1
- Links para nova documentação
- Início rápido simplificado
-
CHANGELOG.md- Este arquivo
-
local/daemon/__init__.py: Exports principaiswatcher.py: ClasseDiaryWatchercom lógica de monitoramento
-
local/search/__init__.py: Exports principaisindexer.py: ClasseEntryIndexerpara indexaçãosearcher.py: ClasseEntrySearcherpara busca
-
local/hooks/git/post-commit: Hook Git para auto-capturepost-merge: Hook Git para auto-capturepost-checkout: Hook Git para auto-capture
-
local/scripts/daemon.sh: Controle do daemon (start/stop/restart/status)search.sh: CLI de busca semântica
Captura Flow:
Git Event/File Change
↓
Git Hook / Daemon Trigger
↓
capture.sh (background)
↓
local.agent.cli.run_capture()
↓
ContextCollector.collect_full_context()
↓
DataAnonymizer.anonymize()
↓
_save_entry_locally() → .diary/data/entries/
↓
_auto_index_entry() → .diary/search/
↓
CloudUploader.upload() (opcional)
Busca Flow:
User Query
↓
search.sh
↓
EntrySearcher.search()
↓
SentenceTransformer.encode(query)
↓
FAISS.search(embedding)
↓
SQLite.filter(results)
↓
Ranked Results
-
Requirements Management
requirements.txtexpandido com LLMs, vector stores, retry logicrequirements-dev.txtpara desenvolvimento e testes
-
Logging System
shared/utils/logging.pycom logger centralizado- Integrado em todos os módulos principais
-
API Key Authentication
cloud/middleware/auth.pycom autenticação via API key- Validação de headers e tokens
-
Real LLM Integration
cloud/llm/client.pycom suporte OpenAI/Anthropiccloud/llm/prompts.pycom prompts especializados por agente- Retry logic com
tenacity - Fallback para heurísticas se LLM falhar
-
Unit Tests
tests/conftest.pycom fixtures pytesttests/test_validators.py- 15 testes de validaçãotests/test_consensus.py- 12 testes de consensotests/test_api.py- 10 testes de APItests/test_collector.py- 15 testes de coleta- Total: 52 testes unitários
docs/AUTENTICACAO.md- Guia de autenticaçãodocs/LLM_INTEGRATION.md- Guia de integração LLMdocs/CHANGELOG_v2_improvements.md- Log de melhorias v2.0docs/PLANEJAMENTO_PROXIMOS_SPRINTS.md- Roadmap futuro
- Arquitetura federada completa
- Orquestrador FastAPI
- Sistema de agentes especializados
- Consenso bizantino básico
- Fila de processamento
- Agente local com collector, anonymizer, uploader
- Estrutura de deployment
Veja docs/PLANEJAMENTO_PROXIMOS_SPRINTS.md para features planejadas:
- #6: Fila Persistente (Redis/RabbitMQ)
- #7: Real Byzantine Consensus
- #8: Complete Telegram Bot
- #9: Thread-Safety com locks
- #10: Padronização de Idioma (EN)
- #11: Auto-Capture Inteligente ✅
- #12: Busca Semântica Local ✅
Legend:
- Added: New features
- Changed: Changes to existing functionality
- Deprecated: Soon-to-be removed features
- Removed: Removed features
- Fixed: Bug fixes
- Security: Security improvements