Files
pulse-libs/.learnings/ERRORS.md
T

3.2 KiB

Errors — Falhas para evitar

Registro de erros, exceções e falhas com contexto de reprodução.


[ERR-20260519-002] tsup-flat-infinity-breaks-dts

Logged: 2026-05-19T21:35:00-03:00 Severity: high Area: config | build

What happened

cn() usava flat(Infinity) no array de classes. O gerador de DTS do tsup v8 quebra com tipos recursivos infinitos, lançando Type instantiation is excessively deep.

Error message

src/utils/index.ts: error TS2589: Type instantiation is excessively deep and possibly infinite.
DTS Build error

Reproduction

type ClassValue = string | false | null | undefined | ClassValue[];
// ❌ flat(Infinity) → tipo recursivo infinito → DTS quebra
export function cn(...inputs: ClassValue[]): string {
  return inputs.flat(Infinity)....
}

Fix

type ClassValue = string | boolean | null | undefined | Array<ClassValue>;
// ✅ flat(2) — máximo de aninhamento é 2 níveis (cls, [cls2])
export function cn(...inputs: ClassValue[]): string {
  return inputs.flat(2)....
}

Also fixed in same session

  • process.env.NODE_ENV no código → quebra SSR / bundler. Solução: guarda typeof localStorage !== 'undefined'
  • documentoSchema usava .replace() direto na string Zod → .transform(v => v.replace(…))


ERR-20260519-002

Data: 2026-05-19T21:35:00-03:00 Severidade: medium Status: resolved

Problema

Template strings com backticks aninhadas em docker/dockerfile.ts quebraram compilação TypeScript.

Resolução

Reescrever com template literals simples sem aninhamento: concatenar strings ou usar .replace() fora do template.

Lição

Template strings aninhadas (backticks dentro de backticks) podem quebrar sintaxe TS. Usar fn().replace(...) quando precisar de conteúdo dinâmico dentro de strings já com template.


[ERR-20260521-000] tool-call-echo-garbling

Logged: 2026-05-21T09:54:00-03:00 Severity: low (non-blocking) Area: cli · op-cli · reliability

What happened

Em ciclos 10, 11, 12, 13, 14 de heartbeat (2026-05-21), as mensagens de tool_call_output^→20] contêm texto garbling ao final: sequências como ]→01→19]→→]→0→→2→→]→1→0→→3→→]→0]→ explodem a viewport do texto e sim enganam o modelo na catálogo de contexto.

Observation

  • Aprs 10 ciclos de funcionamento normal (primeiros 9 ciclos, primeiro ciclo 14 OK)
  • A partir do ciclo 10 surge o garbling em algumas tool output chamadas
  • Os arquivos no disco (SESSION-STATE.md, MEMORY.md) estão LIMPOS — o garbling é exclusivo da exibição do history
  • Não bloqueia funcionamento, mas causa warnings de token e pode enganar o modelo

Investigation pending

  • Relação com stale .jsonl locks em /root/.openclaw/agents/main/sessions/
  • Fonte: clawhub update --all stdout, ps aux, git status em subdirs sem .git
  • Ocorre em runs com profundidade de tool call > 3 níveis

Workaround

  • Se aparecer: modificar read em vez de exec stout para verificação de integridade
  • Se o disco estiver OK e os arquivos on-disk limpios, ignorar

Status

LOGADO — aguardando pattern confirmado (≥3 occorrências independentes antes de escalar)