Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

fix(events): `LlmRetry` 是纵贯全链的死事件——重试/退避/429 在前台与出口全部不可见

Fechada
#116 1 comentário 0 reações 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 1 dia

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
4/5
Tempo estimado
3-5 dias
Facilidade para iniciantes
32/100
Tipo de issue
Bug
Clareza
Claramente especificada
Status de atividade
Ativa
Stack de tecnologia
rust
Domínio
observability

Direção de pesquisa

Start from the LlmRetry definition at src/event.rs:265-275 and its two consumers: claude_json.rs:269-289 maps the api_retry frame, while the TUI at backend.rs:320 drops it with _ => None. Then read the provider retry loops in openai.rs:158-207 and anthropic.rs:129-155, which only log, plus run_core.rs:286 where the backoff sleep is folded into llm_ms. Done means call_llm emits LlmRetry with attempt/backoff/status and the TUI renders it; runtime visibility is deferred to #124.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

场景 gap 单(okguitar 提报)· 优先级 P1 · 依赖:无 · 验收:代码 diff 逐点核对;运行时可见性另需 Langfuse(#124)

基线 origin/main = fc29f3d4。

Summary

  • src/event.rs:265-275 定义 LlmRetry;消费方就位(claude_json.rs:269-289 映射 api_retry 帧;TUI backend.rs:320 显式 _ => None 丢弃并把"丢弃"钉进测试)——但全仓生产代码无任何发射点(grep 仅消费方+测试);重试只发生在 provider 内部并只打日志(openai.rs:158-207、anthropic.rs:129-155),provider 结构体无 sink 字段。
  • 叠加:Latency 把重试 sleep 吞进 llm_ms(run_core.rs:286 起表于 call_llm 之前)——一步 40s 无法区分"模型慢"还是"429 退避三次"。

建议

重试循环上提或 provider 暴露 attempt 回调/计数,call_llm 重试时发 LlmRetry(含 attempt/backoff/status);TUI 消费显示;429/5xx 分类计数进 metrics(与 #100 的行为修复互补)。

Linguagem predominante
Rust
Estrelas
4
Forks
0
Merge médio
3h 55min
PRs com merge (30d)
11

Preparar o ambiente

  • Inclui um Dockerfile ou arquivo Docker Compose
  • Sem modelo de pull request
  • Sem guia de contribuição

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de jeffkit/recursive

Todas as issues de jeffkit/recursive

Issues semelhantes

Mais issues de Rust

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.