--- title: "Dev Environment Full-Stack Pulse" created: 2026-05-20 tags: [dev, swarm, agents, taskboard, hot-reload] projeto: pulse-dev --- # πŸš€ Dev Environment Full-Stack Pulse ## Stack Swarm `dev` β€” arquitetura ``` β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ DEV ORCHESTRATOR β”‚ β”‚ (taskboard + Redis queue + log stream) β”‚ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”‚ FRONTEND 5173 β”‚ BACKEND 3001 β”‚ WORKERS (FEBE_DEV_OPS) β”‚ β”‚ Vite HMR β”‚ tsx HMR β”‚ β”‚ β”‚ [1 rΓ©plica] β”‚ [1 rΓ©plica] β”‚ [2 FE] [2 BE] [1 DevOps] β”‚ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”‚ Redis 6379 β€” fila `dev-tasks` + canal `dev-logs` β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ ``` ## ServiΓ§os ativos | ServiΓ§o | Imagem | Porta | DOMÍNIO | |---------|--------|-------|---------| | redis | redis:8-alpine | 6379 | interno | | taskboard | nginx:alpine | 80 | `board.octal.tec.br` | | dev-frontend | node:24-alpine | 5173 | `frontend.octal.tec.br` | | dev-backend | node:24-alpine | 3001 | `api.octal.tec.br` | | agent-frontend Γ—2 | node:24-alpine | β€” | workers | | agent-backend Γ—2 | node:24-alpine | β€” | workers | | agent-devops Γ—1 | node:24-alpine | β€” | workers | ## API Backend (porta 3001) | Rota | MΓ©todo | DescriΓ§Γ£o | |------|--------|-----------| | `/health` | GET | Health check | | `/tasks` | GET | Listar todas as tarefas | | `/tasks` | POST | Criar tarefa (adiciona na fila `dev-tasks`) | | `/tasks/:id` | PUT | Atualizar tarefa | | `/agents` | GET | Listar agentes conectados | ## Task Protocol (Redis) ```json { "id": "uuid", "type": "feature|bug|refactor|test|devops", "priority": "low|medium|high|critical", "domain": "frontend|backend|devops|fullstack", "title": "...", "description": "...", "files_affected": ["src/..."], "acceptance_criteria": ["..."], "created_at": "2026-05-20T19:00:00Z", "status": "pending|in_progress|done|blocked", "assignee": null | "agent-frontend" | "agent-backend" | "agent-devops" } ``` ## Agentes (worker loop) - `agent-frontend` Γ—2 β€” React/Vite specialist, BLPOP domΓ­nio=frontend|fullstack - `agent-backend` Γ—2 β€” Node/Express specialist, BLPOP domΓ­nio=backend|fullstack - `agent-devops` Γ—1 β€” Docker Swarm specialist, BLPOP domΓ­nio=devops Ciclo: `claimTask β†’ log(AGENT) β†’ process (2-6s) β†’ done β†’ redis.publish` ## Hot Reload | ServiΓ§o | Comando | Sistema | |---------|---------|---------| | Frontend | `npx vite --host 0.0.0.0 --port 5173` | Vite HMR (WS connect) | | Backend | `npx tsx watch --dir ./src server.ts` | tsx HMR (restart em mudanΓ§a) | CΓ³digo montado via volume bind mount (`:cached`) β€” qualquer alteraΓ§Γ£o arquivo β†’ hot reload instantΓ’neo. ## Vault Obsidian - Caminho: `/root/Obsidian-Pulse/` - Estrutura: Inbox / Projetos / Docker / Dev / Codex / Logs / Memorias / Templates - Skill: obsidian-vault-linker instalada e pronta ## Hotlinks - `[[Swarm-Stacks-Reference]]` β€” todas as 11 stacks - `[[Task-Protocol]]` β€” protocolo de tasks entre agentes - `[[MEMORY]]` β€” memΓ³ria curada do Pulse - `[[DEV-STACK-YML]]` β€” compose da stack `dev` ## ReferΓͺncias - runbook: `pulse-docs/runbooks/dev-stack.yml` - guia: `pulse-docs/runbooks/dev-environment.md` - MEMORY.md β†’ `{{project: pulse-memory β†’ MEMORY.md}}`