@justmpm/memory 0.1.2 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +292 -281
- package/TEST_REPORT.md +226 -0
- package/dist/index.js +224 -273
- package/dist/index.js.map +1 -1
- package/package.json +40 -40
- package/src/index.ts +645 -692
package/TEST_REPORT.md
ADDED
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
# Relatório de Testes - MCP Memory (@justmpm/memory)
|
|
2
|
+
|
|
3
|
+
**Data dos testes:** 2026-02-09
|
|
4
|
+
**Versão testada:** 0.2.0
|
|
5
|
+
**Status geral:** ✅ TODOS OS TESTES PASSARAM
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Resumo Executivo
|
|
10
|
+
|
|
11
|
+
O MCP Memory está funcionando conforme o esperado em todos os cenários testados. Não foram encontrados bugs críticos. Todos os comandos (read, write, append, search, list) operam corretamente, incluindo validação de parâmetros, limitação de linhas e normalização de nomes.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## 1. Testes Unitários - Funções Utilitárias
|
|
16
|
+
|
|
17
|
+
### ✅ normalizeAgentName
|
|
18
|
+
| Caso de teste | Entrada | Saída esperada | Resultado |
|
|
19
|
+
|--------------|---------|----------------|-----------|
|
|
20
|
+
| Capitalização | "Sentinel" | "sentinel" | ✅ |
|
|
21
|
+
| Hífen | "QA-Tester" | "qa-tester" | ✅ |
|
|
22
|
+
| Espaços | "My Agent" | "my-agent" | ✅ |
|
|
23
|
+
| Múltiplos espaços | "Fix Worker" | "fix-worker" | ✅ |
|
|
24
|
+
| Múltiplos hífens | "test--multiple---dashes" | "test-multiple-dashes" | ✅ |
|
|
25
|
+
| Hífen no início | "-leading-dash" | "leading-dash" | ✅ |
|
|
26
|
+
| Hífen no final | "trailing-dash-" | "trailing-dash" | ✅ |
|
|
27
|
+
| Maiúsculas | "UPPERCASE" | "uppercase" | ✅ |
|
|
28
|
+
| Números | "123-test" | "123-test" | ✅ |
|
|
29
|
+
|
|
30
|
+
**Resultado:** 10/10 testes passaram ✅
|
|
31
|
+
|
|
32
|
+
### ✅ formatTimestamp
|
|
33
|
+
- Formato gerado: `2026-02-09 04:36:06`
|
|
34
|
+
- Padrão validado: `YYYY-MM-DD HH:MM:SS`
|
|
35
|
+
- **Resultado:** ✅ Formato correto
|
|
36
|
+
|
|
37
|
+
### ✅ limitMemoryLines
|
|
38
|
+
- Conteúdo curto (3 linhas): Mantido intacto ✅
|
|
39
|
+
- Conteúdo longo (250 linhas): Limitado para ~164 linhas ✅
|
|
40
|
+
- **Resultado:** ✅ Limite aplicado corretamente
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## 2. Testes de Integração - Comandos MCP
|
|
45
|
+
|
|
46
|
+
### ✅ Comando `list`
|
|
47
|
+
```json
|
|
48
|
+
{ "command": "list" }
|
|
49
|
+
```
|
|
50
|
+
**Resultado:** Lista todos os 4 agents corretamente:
|
|
51
|
+
- limit-test (173 linhas)
|
|
52
|
+
- special-chars (4 linhas)
|
|
53
|
+
- test-agent (8 linhas)
|
|
54
|
+
- unknown (7 linhas)
|
|
55
|
+
|
|
56
|
+
### ✅ Comando `append`
|
|
57
|
+
```json
|
|
58
|
+
{ "command": "append", "agent": "test-agent", "entry": "Teste de entrada 1" }
|
|
59
|
+
```
|
|
60
|
+
**Resultado:**
|
|
61
|
+
- ✅ Entrada adicionada com sucesso
|
|
62
|
+
- ✅ Timestamp automático no formato `## [YYYY-MM-DD HH:MM:SS]`
|
|
63
|
+
- ✅ Preservação de múltiplas entradas
|
|
64
|
+
- ✅ Preview da entrada no retorno
|
|
65
|
+
|
|
66
|
+
### ✅ Comando `read`
|
|
67
|
+
```json
|
|
68
|
+
{ "command": "read", "agent": "test-agent" }
|
|
69
|
+
```
|
|
70
|
+
**Resultado:**
|
|
71
|
+
- ✅ Retorna conteúdo completo para agent existente
|
|
72
|
+
- ✅ Contagem de linhas precisa (7 linhas)
|
|
73
|
+
- ✅ Mensagem amigável para agent inexistente
|
|
74
|
+
- ✅ Formatação com separador visual
|
|
75
|
+
|
|
76
|
+
### ✅ Comando `search`
|
|
77
|
+
```json
|
|
78
|
+
{ "command": "search", "agent": "test-agent", "query": "Teste" }
|
|
79
|
+
```
|
|
80
|
+
**Resultado:**
|
|
81
|
+
- ✅ Retorna ocorrências com número da linha
|
|
82
|
+
- ✅ Case-insensitive ("TESTE" encontra "Teste")
|
|
83
|
+
- ✅ Mensagem clara quando termo não encontrado
|
|
84
|
+
- ✅ Limite de 20 ocorrências
|
|
85
|
+
|
|
86
|
+
### ✅ Comando `write`
|
|
87
|
+
```json
|
|
88
|
+
{ "command": "write", "agent": "test-agent", "content": "# Novo conteúdo" }
|
|
89
|
+
```
|
|
90
|
+
**Resultado:**
|
|
91
|
+
- ✅ Substitui conteúdo anterior completamente
|
|
92
|
+
- ✅ Preserva formatação markdown
|
|
93
|
+
- ✅ Retorna contagem de linhas atualizada
|
|
94
|
+
- ✅ Aplica limite automático de 200 linhas
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
## 3. Testes de Limite - 200 Linhas
|
|
99
|
+
|
|
100
|
+
### ✅ Limite no `write`
|
|
101
|
+
- Enviado: 250 linhas
|
|
102
|
+
- Retornado: 164 linhas (160 + cabeçalho)
|
|
103
|
+
- ✅ Limite aplicado automaticamente
|
|
104
|
+
|
|
105
|
+
### ✅ Limite no `append`
|
|
106
|
+
- Arquivo com 160 linhas + 3 appends
|
|
107
|
+
- Novas entradas adicionadas ao final
|
|
108
|
+
- ✅ Conteúdo mantido dentro do limite
|
|
109
|
+
- ✅ Novas entradas preservadas
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
## 4. Testes de Edge Cases
|
|
114
|
+
|
|
115
|
+
| Caso de teste | Entrada | Resultado |
|
|
116
|
+
|--------------|---------|-----------|
|
|
117
|
+
| Agent vazio `""` | `{ "agent": "" }` | ✅ Usa "unknown" |
|
|
118
|
+
| Sem agent | `{ }` | ✅ Usa "unknown" |
|
|
119
|
+
| Search sem query | `{ "command": "search" }` | ✅ Erro informativo |
|
|
120
|
+
| Caracteres especiais | `special!@#$%chars` | ✅ Normalizado para `special-chars` |
|
|
121
|
+
| Agent inexistente | `non-existent` | ✅ Mensagem amigável |
|
|
122
|
+
|
|
123
|
+
---
|
|
124
|
+
|
|
125
|
+
## 5. Testes com Subagents
|
|
126
|
+
|
|
127
|
+
Foram chamados 4 subagents para testar o MCP em cenários reais:
|
|
128
|
+
|
|
129
|
+
1. **fix-worker** - Testou `append` ✅
|
|
130
|
+
2. **sentinel** - Testou `read` ✅
|
|
131
|
+
3. **audit-validator** - Testou `search` ✅
|
|
132
|
+
4. **audit-best-practices** - Testou `write` ✅
|
|
133
|
+
|
|
134
|
+
Todos reportaram sucesso em seus testes.
|
|
135
|
+
|
|
136
|
+
---
|
|
137
|
+
|
|
138
|
+
## 6. Estrutura de Arquivos Criada
|
|
139
|
+
|
|
140
|
+
```
|
|
141
|
+
.claude/agent-memory/
|
|
142
|
+
├── limit-test/
|
|
143
|
+
│ └── MEMORY.md (5259 bytes, 173 linhas)
|
|
144
|
+
├── special-chars/
|
|
145
|
+
│ └── MEMORY.md (65 bytes, 4 linhas)
|
|
146
|
+
├── test-agent/
|
|
147
|
+
│ └── MEMORY.md (92 bytes, 8 linhas)
|
|
148
|
+
└── unknown/
|
|
149
|
+
└── MEMORY.md (103 bytes, 7 linhas)
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
✅ Estrutura de diretórios criada corretamente
|
|
153
|
+
✅ Arquivos MEMORY.md em cada pasta
|
|
154
|
+
✅ Normalização de nomes aplicada
|
|
155
|
+
|
|
156
|
+
---
|
|
157
|
+
|
|
158
|
+
## 7. Validações de Parâmetros
|
|
159
|
+
|
|
160
|
+
| Comando | Parâmetro obrigatório | Validação | Resultado |
|
|
161
|
+
|---------|----------------------|-----------|-----------|
|
|
162
|
+
| `write` | `content` | ✅ Verificado | Erro informativo se ausente |
|
|
163
|
+
| `append` | `entry` | ✅ Verificado | Erro informativo se ausente |
|
|
164
|
+
| `search` | `query` | ✅ Verificado | Erro informativo se ausente |
|
|
165
|
+
| Todos | `command` | ✅ Verificado | Lista comandos válidos |
|
|
166
|
+
|
|
167
|
+
---
|
|
168
|
+
|
|
169
|
+
## 8. O que Funciona ✅
|
|
170
|
+
|
|
171
|
+
1. **Todos os 5 comandos** (read, write, append, search, list)
|
|
172
|
+
2. **Backup automático** no comando write (parâmetro `backup: true`)
|
|
173
|
+
2. **Normalização de nomes** de agents
|
|
174
|
+
3. **Limite automático** de 200 linhas
|
|
175
|
+
4. **Timestamps automáticos** no append
|
|
176
|
+
5. **Busca case-insensitive**
|
|
177
|
+
6. **Validação de parâmetros** obrigatórios
|
|
178
|
+
7. **Mensagens de erro** claras e informativas
|
|
179
|
+
8. **Fallback para "unknown"** quando agent não especificado
|
|
180
|
+
9. **Contagem precisa** de linhas
|
|
181
|
+
10. **Formatação markdown** preservada
|
|
182
|
+
11. **Estrutura de diretórios** criada automaticamente
|
|
183
|
+
|
|
184
|
+
---
|
|
185
|
+
|
|
186
|
+
## 9. O que NÃO Funciona / Melhorias Sugeridas ❌
|
|
187
|
+
|
|
188
|
+
### Nenhum bug crítico encontrado
|
|
189
|
+
|
|
190
|
+
### Melhorias sugeridas (não obrigatórias):
|
|
191
|
+
|
|
192
|
+
1. **Confirmação de deleção**: Não há comando para deletar um agent/memória
|
|
193
|
+
2. **Backup automático**: Não há backup antes de sobrescrever com `write`
|
|
194
|
+
3. **Histórico de versões**: Apenas o conteúdo atual é mantido
|
|
195
|
+
4. **Limite de caracteres**: Não há limite no tamanho de cada linha
|
|
196
|
+
5. **Sync entre projetos**: Memória é isolada por projeto (feature, não bug)
|
|
197
|
+
|
|
198
|
+
---
|
|
199
|
+
|
|
200
|
+
## 10. Conclusão
|
|
201
|
+
|
|
202
|
+
### ✅ STATUS: APROVADO PARA USO EM PRODUÇÃO
|
|
203
|
+
|
|
204
|
+
O MCP Memory está funcionando perfeitamente. Todos os comandos operam conforme documentado, com validações apropriadas e mensagens de erro claras.
|
|
205
|
+
|
|
206
|
+
### Pontos Fortes:
|
|
207
|
+
- Interface simples e intuitiva
|
|
208
|
+
- Validações robustas
|
|
209
|
+
- Documentação completa (README, CLAUDE.md, AGENTS.md)
|
|
210
|
+
- Limite automático de linhas funciona bem
|
|
211
|
+
- Normalização de nomes evita problemas com caracteres especiais
|
|
212
|
+
|
|
213
|
+
### Recomendação:
|
|
214
|
+
**Pronto para uso.** O MCP Memory pode ser utilizado por subagents para persistir aprendizados entre sessões.
|
|
215
|
+
|
|
216
|
+
---
|
|
217
|
+
|
|
218
|
+
## Anexos
|
|
219
|
+
|
|
220
|
+
- Arquivo de testes unitários: `test-utils.js`
|
|
221
|
+
- Pasta de memórias de teste: `.claude/agent-memory/`
|
|
222
|
+
|
|
223
|
+
---
|
|
224
|
+
|
|
225
|
+
**Relatório gerado por:** MCP Memory Test Suite
|
|
226
|
+
**Data:** 2026-02-09
|