Files
Pulse 22d9f5b21d feat: skill expansion — browser, security, SQL, files (16 skills total)
Novas skills instaladas:
- openclaw-agent-browser   v1.0.0  CLI Chromium — navegação, login, screenshots, state
- skill-security-audit    v1.0.0  SAST scanning, prompt injection, secrets audit
- sql-toolkit             v1.0.0  PostgreSQL/MySQL/SQLite — schema, query, otimização
- file                    v1.0.0  Organização de arquivos por contexto
- file-summary            v1.0.0  Extração e resumo de PDFs, Word, Excel

Workspace expandido:
- TOOLS.md: +Browser automation, Security audit, SQL, File management
- AGENTS.md: +Linux Analyst section (comandos, logs, rede, scripts) + Full-stack strategy
- MEMORY.md: 16 skills indexadas, stack map, comandos Linux ref
- SESSION-STATE.md: atualizado com contexto completo
- lock.json: sincronizado com 16 skills instaladas
2026-05-19 20:51:05 -03:00

851 B

Generic Traps

  • useState<User>() infiere User | undefined — manejar undefined inicial
  • Array.filter(x => x.active) no narrowea — necesita type guard: .filter((x): x is Active => x.active)
  • Promise.all([a(), b()]) infiere tupla solo con as const
  • <T = any> escapa el any al resto del código
  • <T extends object> permite arrays — usar Record<string, unknown> para objetos
  • <T extends string> con literal infiere string, no el literal
  • keyof T en función genérica es string | number | symbol
  • Arrays covariantes — Dog[] assignable a Animal[] pero push de Cat rompe runtime
  • Function params contravariantes — (Animal) => void NO assignable a (Dog) => void
  • { [K in keyof T]: X } pierde modificadores — usar -? o -readonly
  • Partial<T> y Required<T> son shallow — no afectan nested