0

Pitch: Um stack trace de Java tem 60 linhas onde 3 importam.

A gente convive com isso há 30 anos porque quem lia o log era um humano que
aprendeu a ignorar o resto. Só que hoje, cada vez mais, quem lê o log é uma IA —
e ela paga por todas as 60 linhas em tokens e contexto.

Construí o Stacktale pra resolver isso: um appender de log (Logback, Log4j2,
Spring Boot) que, quando dá erro, escreve um relatório feito pra esse leitor —
causa raiz primeiro, o SEU frame marcado, o ruído de framework colapsado, a
história dos eventos que levaram ao erro, os campos da exceção, segredos
redigidos, repetições deduplicadas.

Medindo no meu próprio uso: ~98% menos tokens numa sessão, ~80% num erro único.

Open source (Apache-2.0), no Maven Central. O formato do relatório é versionado
e quero fechar com a comunidade antes do 1.0.

https://gabrielbbaldez.github.io/stacktale/

#java #springboot #observability #opensource

Carregando publicação patrocinada...
2

Achei a ideia interessante, principalmente pensando em IA e ferramentas automatizadas.

Mas lendo o post, confesso que fiquei com um certo receio da mensagem que ele passa. Para quem já trabalha há algum tempo com Java, interpretar stack traces acaba virando quase algo natural. Você aprende rapidamente onde olhar, o que ignorar e, principalmente, quando aquele "ruído" do framework na verdade é justamente a pista que faltava.

Já perdi as contas de quantas vezes detalhes em proxies, reflection, wrappers ou no encadeamento das exceções eram exatamente o que explicava o problema.

Por isso, não vejo stack traces tradicionais como algo "quebrado" para humanos. O problema que você está resolvendo, na minha visão, parece estar muito mais do lado de ferramentas automatizadas. Para uma IA, todas aquelas linhas realmente viram custo, contexto e dificuldade de análise.

Inclusive, acho essa direção bastante interessante. Estamos começando a entrar em uma era em que logs, traces e exceções não são consumidos apenas por pessoas, mas também por agentes e sistemas automatizados. Ter uma representação mais estruturada para esse cenário faz bastante sentido.

Só tomaria cuidado para não transmitir a ideia de que as outras 57 linhas "não importam". Em sistemas mais complexos, muitas vezes é justamente nelas que mora o problema.

Talvez o maior valor do Stacktale não seja simplificar o debugging humano, mas criar uma forma mais semântica e estruturada de representar falhas para consumo automatizado. Para mim, esse posicionamento torna o projeto ainda mais interessante.

exemplo simples é em plataformas como lovable e esse geradores de sites/aplicações completas porque quando algo falha normalmente ele já tenta resolver mas para ele resolver ele precisa entender o error. e ao contrário de nós que já temos memória muscular para saber exatamente qual linha temos que ler para saber o que querermos a IA tem que analisar o error como um todo.

1

Um esclarecimento importante, porque é bem o teu receio: o stacktale não mexe no teu log normal. O stack trace completo continua no console/arquivo de sempre, intacto — ele escreve um arquivo separado, destilado, pra IA consumir. Quem quiser as 58 linhas tem as 58 linhas. E mesmo na versão enxuta nada da cadeia é jogado fora: os wrapped by: (proxy, reflection, encadeamento — onde a pista costuma morar) ficam, o teu frame vem marcado com ← YOUR CODE, e as sequências de framework viram um contador (… 30 collapsed (spring ×20, tomcat ×10)) em vez de sumir. É reorganizar o sinal, não apagar o ruído.