c07690b4d4
- MEMORY.md: revisada com 6 novas lições (inclui vitest.jsdom.mocks) - SESSION-STATE.md: sync com project SESSION-STATE.md - memory/2026-05-20.md: sessao criada (22:56 → 00:18) - .learnings/LEARNINGS.md: LRN-006, LRN-007 adicionados - .learnings/PATTERN_COUNTER.md: react.testing-library + vitest.jsdom.mocks = 3 - AGENTS.md: Test & Mocking Best Practices promovido de PATTERN_COUNTER
53 lines
3.1 KiB
Markdown
53 lines
3.1 KiB
Markdown
# MEMORY.md — Memória Curada
|
|
|
|
_Menos de 3.500 chars._
|
|
|
|
## 🧠 Agente OpenClaw — Instalação 2026-05-19 / Evolução 2026-05-20
|
|
- Skills ativas: TS, E2E, Docker, SQL, security, browser, vision, nova-self-improver
|
|
- Ambiente: container Debian 12, diretório `/root/.openclaw/workspace/`
|
|
- Workshop: @pulse-libs/core (biblioteca universal atomizada)
|
|
- Stack: React/Vue, TS strict, Vitest, Pino/Zod, Docker multi-stage
|
|
- Auto-melhoria: sistema ativo via nova-self-improver v1.0.0
|
|
|
|
## ⚙️ Infra
|
|
- `systemd` ausente no container ─ usar `ps`/`df` em vez de `systemctl`
|
|
- Clawhub CLI: `/var/lib/openclaw/tools/node/npm/bin/clawhub` (não no PATH global)
|
|
- Disco: 74% / 87G usado ─ alerta se passar de 80% (estava 100% na 1ª sessão, melhorou)
|
|
- gh CLI / obs CLI: **não instalados** (bloqueado por disco)
|
|
|
|
## 📦 Skills Instaladas
|
|
Agrupadas por função:
|
|
- **Frontend**: agent-browser, openclaw-agent-browser, typescript, vision (imagemagick)
|
|
- **Tests**: e2e-testing-patterns, multi-search-engine-2-0-1
|
|
- **Backend**: sql-toolkit, redis-labs-integration
|
|
- **DevOps/Infra**: xcloud-docker-deploy, security-audit, openclaw-config, openclaw-power-ops
|
|
- **Docs/Diagrams**: file, file-summary, d2-diagram-creator
|
|
- **Qualidade code**: uncle-bob, nephew self-improvement labs
|
|
|
|
## 📝 Diretrizes Auto-Melhoria
|
|
- Erro → ERRORS.md imediatamente
|
|
- Pattern 3x no PATTERN_COUNTER → promover para AGENTS.md
|
|
- A cada 10 sessões: comprimir USER.md
|
|
|
|
## 🔑 Lições Aprendidas (High-Signal)
|
|
- `flat(Infinity)` em arrays de classes quebra tsup DTS ─ usar `flat(2)` no máximo
|
|
- `process.env` no código quebra SSR ─ guardar com `typeof window !== 'undefined'`
|
|
- Backticks aninhados em TS templates: quebram compilação ─ usar `fn().replace()` por fora
|
|
- Zod schema: use `.transform(v => v.replace(...))` em vez de `.replace()` direto
|
|
- **Vitest jsdom global `vi.useFakeTimers()` quebra `setTimeout/clearInterval` dentro dos `useEffect` dos próprios hooks** ─ usar `act() + waitFor()` ao invés; fakeTimers só em testes isolados com `beforeEach`/`afterEach` locais
|
|
- **useClipboard com `delay=0` → `setTimeout(fn, 0)` dispara no próximo microtick e reseta `copied=false` antes do `expect`** ─ usar `delay >= 5000` em testes
|
|
- **`navigator.clipboard` mock deve ser um `vi.fn()` direto (não `Object.defineProperty` na raiz)** — assim `mockResolvedValue`/`mockRejectedValue` funcionam em cada teste
|
|
|
|
## 📁 Biblioteca libs/ (workspace)
|
|
10 módulos de padrões: TS, React, Vue, Linux, DB, Browser, SAST, CleanCode, Deploy, Docs
|
|
`libs/INDEX.md` como índice central
|
|
|
|
## 📅 Decisões Relevantes
|
|
- 2026-05-19: WürthFlow.md criado ─ arquitetura viva do workspace
|
|
- 2026-05-19: tsup v8 ESM+CJS+DTS OK ─ 57 testes 100% pass
|
|
- 2026-05-19: `react.testing-library` e `vitest.jsdom.mocks` chegaram a Count=3 → **promovidos para AGENTS.md**
|
|
- 2026-05-20 00:18: **80/80 testes @pulse-libs/core** (validators 24 + utils 33 + hooks 23) — suite 100% verde
|
|
- Ignorar SUSPICIOUS skills por padrão
|
|
- Clawhub search = múltiplas queries curtas
|
|
- `vi.useFakeTimers()` NÃO usar globalmente — quebra useEffect de outros hooks
|