64 lines
3.5 KiB
Markdown
64 lines
3.5 KiB
Markdown
# MEMORY.md — Memória Curada do Pulse
|
|
|
|
_Atualizado: 2026-05-21 11:46 GMT-3 — Heartbeat ciclo 25_
|
|
|
|
## 🧠 Agente
|
|
- **Pulse** · Debian 12 container, `/root/.openclaw/workspace/`
|
|
- 27 skills: 16 clawhub-managed + 11 manuais; CLI v0.17.0
|
|
- Gitea remotos: workspace / pulse-docs / pulse-memory
|
|
- pulse-skills / pulse-wurthflow / apps/dashboard: sem .git
|
|
|
|
## ⚙ Infra
|
|
- Debian 12 no-systemd · Linux 6.1 cloud-amd64 · Node v24.15.0 · Docker 29.4
|
|
- OpenClaw PID 4247 at: **~40% CPU** / **8.1% MEM** / **662MB RSS** — elevated, likely heartbeat wait
|
|
- Disco **57G/87G 69%** — 27G livre — OK (anterior 78%)
|
|
- /root/.npm: 105M · /root/.cache: 143M · /tmp: 38M
|
|
- APT: **1 disponível** (libgnutls30/oldstable-security) — 710 instalados (anterior 0)
|
|
|
|
## 📚 Learnings Ativas
|
|
- `flat(Infinity)` DTS → `flat(2)`; tipo recursivo infinito quebra tsup v8 DTS builder
|
|
- `process.env` em SSR → `typeof window !== 'undefined'`
|
|
- Backticks aninhadas TS → `.replace()` fora do template
|
|
- Zod `.replace()` direto na string → `.transform(v => v.replace(...))`
|
|
- Clawhub CLI: sempre `npx clawhub` (PNP/HUSKY resolve); nunca bin direto
|
|
- Clawhub search: termos curtos; buscar categorias em SEPARADO; não frases longas
|
|
- Git URL: usar tokens, nunca host/user/pass embutido
|
|
- Clawhub: 11 skills retornam "local changes" (mismatch com repo oficial) — force update requires manual decision per skill
|
|
- `process.exit()` com booleano → Node 24 exige número (0/1) — Type/ERR_INVALID_ARG_TYPE
|
|
- Docker Swarm healthcheck: callback assíncrono precisa esperar `res.on('end')` antes de `process.exit()` — task morreu exit 137 por unhealthy
|
|
|
|
## 🐳 Docker Swarm
|
|
- 10 stacks (bot/code/database/design/dock/git/pro/project/proxy)
|
|
- Stack `project`: games-demo(1/1) · projects-landing(1/1) · pulse-libs(1/1 fix healthcheck)
|
|
- Domínios: games.octal.tec.br · projects.octal.tec.br · pulse-libs.octal.tec.br · test.octal.tec.br
|
|
- `--restart-condition` no stack deploy (não compose v3 restart policy padrão)
|
|
- Labels Caddy por service — pulse-libs fix health + label pulselibs.octal.tec.br
|
|
|
|
## 🔑 Skills counter
|
|
- **PATTERN_COUNTER**: `git.conventional-commits` c=2 (1 pt do threshold)
|
|
- Promovidos AGENTS.md: `react.testing-library` c=3 · `vitest.jsdom.mocks` c=3 ✅
|
|
- ERRORS.md: 3 entradas, 0 críticos, 2 resolved
|
|
- Clawhub: 5/16 up-to-date, 11 com local-changes pendentes force-update
|
|
|
|
## 🐛 Conhecidos
|
|
- `.jsonl stale-lock` detector: falso-positivo (não checa processo antes de marcar stale) — LOF
|
|
- `tool-call-echo-garbling`: cycles 10-14 garble em stdout tool_call_output^→; on-disk arquivos estão limpos — ignorar se on-disk OK
|
|
|
|
## 📦 Git Status
|
|
- workspace (master): M SESSION-STATE.md + MEMORY.md — pending commit
|
|
- pulse-docs (main): ✅ clean e pushed `e4f8268`
|
|
- pulse-memory (main): ✅ clean e pushed `7b0126a`
|
|
- pulse-libs / 3d-landing / pulse-dev / 3d-renderer: sem .git próprio
|
|
- /root/clones/pulse-docs: pulled novos runbooks
|
|
|
|
## ⏳ Pendências
|
|
- stale-lock detector: fix lsof/fuser antes de marcar stale (>1 dia)
|
|
- pulse-3d-landing: Three.js interativo + refletir lições em MEMORY
|
|
- apps/dashboard: decidir independente vs parte do workspace
|
|
- pulse-skills: domínio 3d-renderer
|
|
- pulse-wurthflow: investigar domínio
|
|
- USER.md compressão: etapas 1-2/5 agendado **2026-05-26**; etapa 3 mRNA extendida
|
|
- git.conventional-commits c=2 → precisa 1+ para promoção AGENTS.md
|
|
- SUSPICIOUS skills review: agendar em 30 dias da última revisão
|
|
- Clawhub 11 skills: "local changes" mismatch — avaliar force-update por skill
|