Files
pulse-memory/memory/2026-05-20.md
T

7.6 KiB

Memória Diária — 2026-05-20

🕐 Heartbeats

  • 17:38 — Disco ok, stack project migrada OK, MEMORY 4000+ chars, aprendiados Portainer/caddy completos
  • 15:34 — Disco 65% ok, openclaw 3.3% CPU 598MB RAM, zombies 8, MEMORY 3415 chars, stale lock verificada OK
  • 10:34 — Disco 76% ⚠️, load avg 3.97/4.16, 55 zombies, MEMORY 1874 chars ok, clawhub CLI ausente
  • 07:34 — Disco 76% ok, 20 packages up (security), clawhub via openclaw skills works
  • 05:04 — Disco 76%, ~30 pacotes upgradable, zombies ~15
  • 02:04 — Disco 73% → 76% trending up

📊 Sistema Load

  • openclaw PID: ~3.3% CPU, ~600 MB RAM — normal
  • Zombies em queda: 8 (↓ de 55 na madrugada)
  • load avg estável ~3.9/4.1

💾 Disco

  • overlay: 87G total, 57G used (60%) — melhorou de 76%
  • Pacotes: 20 no total; ~6 aplicados; apenas tzdata pendente (só upgrade com aprovação)

🚨 Stale Lock — VERIFICADO 15:34

  • Arquivo 4a184408-c4c8-4817-83d6-a87cb292a650.jsonl — timestamp 15:35, session atual OK

📚 Learnings

  • ERRORS.md: 2 ERRs resolvidos na sessão, nenhum crítico pendente
  • PATTERN_COUNTER: react.testing-library promoted, vitest.jsdom.mocks promoted
  • vitest.pure-dom-matchers c=1, jsdom.fireEvent-change-writable c=1 — tracking

🐳 Docker Swarm + Portainer — Inventário completo 17:18 GMT-3

  • 1 node (Manager) · Cluster ID plz2xbh64yzhgy88jb9stm0pc
  • 22 containers · 22 imagens · overlay 10.0.0.0/8
  • 9 stacks (após migração)
  • Portainer CE v2.19.4 — https://dock.octal.tec.br — stack dock
  • Admin token PTR: ptr_ZE3R0WgRB07W7moQ7rpX135MqZ+F8OMuYC9U7Rqa5dU= Prefixo ptr_ OK em /api/status; 401 em /api/endpoints e /api/auth — escopo limitado

Stacks (10 totais — incluindo 'project' nova)

Stack Svc Ativas Notas
bot 2 2 beebot node:24 + redis:7-alpine
code 1 1 8dcode:latest
database 2 2 mongo:8.0 + mongo-express
design 7 7 Penpot 2.15.3 full-stack
dock 2 2 portainer-ce:2.19.4 + agent:2.19.4
git 1 1 gitea:latest (DOMAIN=git.octal.tec.br)
pro 2 2 leantime + mariadb:10.6
project 3 2 ⚠️ pulse-libs 0/1 (crash loop imagem)
proxy 2 2 caddy-docker-proxy:ci-alpine + test-octal
projects REMOVIDA substituida por 'project' 17:30

Domínios Caddy confirmados (6 ativos)

Domínio Stack Service Porta
dock.octal.tec.br dock dock_portainer 9443/9000
git.octal.tec.br git git_gitea 3000
ai.octal.tec.br bot bot_beebot 18789
manager.octal.tec.br pro pro_leantime 8080
games.octal.tec.br project project_games-demo 80
test.octal.tec.br proxy proxy_test-octal

Redes Overlay

ingress:10.0.0.0/24 · public:10.0.1.0/24 · dbn:10.0.2.0/24 mongo-cluster:10.0.3.0/24 · pro_leantime_net:10.0.4.0/24 design_internal:10.0.5.0/24 · proxy_proxy-net:10.0.6.0/24

Projetos Gitea criados

  • pulse-memory, pulse-skills, pulse-docs, pulse-projects — todos em git.octal.tec.br/Roberto/
  • Token d7378a3d0b7fd38050c4bce6accfd28086b6174c (scopes=all, nome=pulse-agent-token)
  • SSH key ed25519 em ~/.ssh/id_ed25519_gitea
  • pulse-docs commits: 42f4e0b + b2b5d2d

Lições técnicas

  • token ptr_ Portainer = JWT access token (nao eh senha login); usado em Authorization: Bearer Prefixo ptr_ OK em /api/status; 401 em /api/endpoints e /api/auth — escopo limitado
  • POST /api/auth (login) requer senha admin — nao documentada no pulse-memory
  • Container Alpine Portainer sem find/ls; usar docker inspect e docker service inspect
  • docker network ls nao mostra Subnet — precisa docker network inspect
  • caddy-docker-proxy (lucaslorentz/caddy-docker-proxy:ci-alpine) le labels caddy= e caddy.reverse_proxy=
  • docker stack deploy compose v3.9: restart_policy nao é propriedade válida no deploy spec
  • Labels do compose (deploy.labels) nao sao aplicadas em container labels no Swarm — usar docker service create com --label-add diretamente
  • Agent-browser CLI nao instalado — nao existe no PATH, usar curl/API diretamente
  • Portainer UI: stack criada externamente aparece com aviso limitado — precisa admin JWT para indentificar/gerenciar

🐳 Stack Project Migration — 17:30-17:38 GMT-3

Objetivo

Subir stack 'project' no Portainer/Swarm como modelo, migrando todos os serviços da stack antiga 'projects'.

Ações executadas

  1. Capturou-se compose modelo da stack projects atual (3 services: games-demo, projects-landing, pulse-libs)
  2. Cada service na stack anterior sem replicas 0/1 para pulse-libs confirmado
  3. Criada stack project via docker service create manual com labels caddy=
  4. Removida stack projects antiga
  5. Validado: games.octal.tec.br → HTTP 200 (nginx respondendo via caddy-docker-proxy)
  6. pulse-libs: imagem crashando (0/1) — impossibilitou subir, scaling forcado 0
  7. games-demo: 1/1 rodando
  8. projects-landing: 1/1 rodando

Problemas encontrados

  • restart_policy no compose: docker stack deploy recusa propriedade não suportada na versão 3.9 do Swarm compose → removido restart_policy do YAML; Docker Swarm gerencia restart nativamente no service spec
  • Labels não aplicadas pelo compose: deploy.labels do compose v3 não se tornam container labels no Swarm → solução: usar docker service create --label-add "<key>" "<value>" diretamente por CLI
  • pulse-libs imagem unavailable: imagem local projects-landing:latest e pulse-libs:latest → warning "could not be accessed on a registry" — imagens precisam estar no registry acessível ou usar --with-registry-auth

Commits realizados

  • pulse-docs: commit stack model project-stack.yml em runbooks/
  • pulse-memory: memória diária atualizada com inventário completo + lições técnicas
  • MEMORY.md + TOOLS.md: atualizados com stack 10 stacks + domínios caddy + Portainer info

Domínio games.octal.tec.br validado

  • curl: HTTP 200 em 0.189s — caddy proxy funcionando

🗂️ Sistema de Memória Gitea — Sessão 10:24-11:40

  • IPv6 cassado exec: whitespace or comments before JSON → adapter -s --compressed + jq funcionou
  • Admin octal autenticou no swarm como root via docker exec
  • Gitea config: SQLite3, port 3000, SSH 2222, DOMAIN=git.octal.tec.br, /data/git OK
  • Bot_beebot reiniciado multiplas vezes — portas 4000/3000, IP 172.21.0.5
  • create-user-api.json 404 — admin CLI: gitea admin user create e a forma correta
  • Token pulse-agent-token criado para Roberto — retorna sha1 unica
  • 4 repos criados via API POST: pulse-memory/pulse-skills/pulse-docs/pulse-projects
  • Estrutura de pastas via git clone local -> mv -> git commit

🗃️ Portainer Docs — Documentação cru estudada

🅷 Alertas

  • pulse-libs imagem crashando — pulse-libs:latest nao acessivel no registry local → necessario rebuildar imagem e subir com --with-registry-auth ou empurrar para registry publico
  • Portainer admin senha nao documentada — necessaria para acao via API /api/auth
  • Zombies em queda (8 de 55) — cleanup so no reboot do container
  • Clawhub pendente rebuild — openclaw skills update (skills/estao usando origens diferentes de paths)
  • Stack 'projects' removida — confirmada por stack ls (agora 'project' no lugar)