# MEMORY.md — Memória Curada do Pulse ## 🧠 Agente OpenClaw - Nome: **Pulse** · Debian 12 container, `/root/.openclaw/workspace/` - Projeto core: `@pulse-libs/core` — 136/136 testes ✅ (React/Vue, TS strict, Vitest, Pino/Zod, tsup v8, Docker multi-stage) - Projeto 3D: `pulse-3d-landing/` → `test.octal.tec.br` — 17KB, vanilla JS + CSS + Three.js, 200 OK - Shared lib: `@pulse-libs/ui` v0.1.0 — 10 atoms (2D), 3 molecules, 4 organisms, 3 templates - 20 skills instaladas + 2 Self-Improvers ativos ## ⚙️ Infra - Disco 66%, 87G total (29G disponível) — estável, caiu de 76% → 66% desde manhã - Container Debian 12 — sem systemd - Gitea: `git.octal.tec.br` → SSH `~/.ssh/id_ed25519_gitea` - 4 repos Gitea: pulse-memory, pulse-skills, pulse-docs, pulse-projects - Workspace: 443MB (sem `node_modules/` raiz; cada projeto tem o seu) ## 🐳 Docker Swarm — 11 stacks, 22 containers - Node `s1` Leader, Docker 29.4.3 · Cluster `plz2xbh64yzhgy88jb9stm0pc` - Admin JWT via senha admin + API `/api/auth` - Stacks remanescentes são criadas via `docker stack deploy` CLI → API Portainer bloqueia por `Attachable=false` - **11 stacks**: `bot`/beebot, `code`/8dcode, `database`/mongo, `design`/penpot, `dev`/fullstack-api, `dock`/portainer, `git`/gitea, `pro`/leantime, `project`/games-demo+landing, `proxy`/caddy - **Dev stack**: TaskBoard + API (port 3001) + Vite (port 5173) + 5 agent workers (Redis BLPOP + pub/sub) - **Portainer**: https://dock.octal.tec.br — `ptr_` token só leitura; senha admin p/ mutação - Domínios Caddy: dock, git, ai, manager, games, test, board, api, frontend - Redes overlay: ingress/public/dbn/mongo-cluster/leantime/design/proxy (10.0.0.0/24→.6) ## 📚 Lições Recentes (erros resolvidos) - `flat(Infinity)` DTS tsup quebra → usar `flat(2)` - `flat(∞)` tipo recursivo infinito no TS → limite a 2 níveis - `process.env` direto quebra SSR → `typeof window !== 'undefined'` - Backticks aninhadas TS → mover `.replace()` para fora do template - Zod → usar `.transform()` em schemas, não `.replace()` direto na string - Portainer API `/api/auth` requer senha admin, não token PTR - `docker stack deploy` compose v3 não aceita `restart_policy` — gerencia nativamente pelo Swarm - `deploy.labels` do compose não aplica no container — usar `docker service update --label-add` - Rede `public` `Attachable=false` — stacks CLI funcionam mas Portainer API bloqueia ## 🔑 Skills — estado 2026-05-20 - **13 módulos externos** (clawhub index): xcloud-docker-deploy, openclaw-config, next-best-practices, openclaw-ops, openclaw-agent-browser, obsidian-vault-linker, d2-diagram-creator, e2e-testing-patterns, taskflow — todos **✅ up-to-date** - **7 com local changes**: agent-browser-clawdbot, vision, self-improvement, multi-search, redis-labs, nova-self-improver, typescript → avaliar `npx clawhub update --force ` - **7 workspace skills**: clean-code, gitea-api, nextjs-patterns, nova-self-improver, security, sql-toolkit, taskflow — gerenciadas localmente ## 🔔 Alerta: APT upgrades pendentes (~20 pacotes) - libc6, dpkg, bash, bash-completion, libssl3, libgnutls, libglib2, libexif, libpq, libpng, liblcms2, libnghttp2, libopenjp2, libxslt - Nenhuma falha apt — aguardando aprovação explícita para `apt upgrade` ## 📝 Obsidian Vault - `/root/Obsidian-Pulse/` — 7 pastas (Inbox, Projetos, Docker, Dev, Codex, Logs, Memorias, Templates) - Skill obsidian-vault-linker instalada