Skip to content

fix(update): card "Ver novidades" resiliente a falha da API (v1.36.2)#49

Merged
iscarelli merged 1 commit into
mainfrom
fix/release-notes-resilientes
Jun 12, 2026
Merged

fix(update): card "Ver novidades" resiliente a falha da API (v1.36.2)#49
iscarelli merged 1 commit into
mainfrom
fix/release-notes-resilientes

Conversation

@iscarelli

Copy link
Copy Markdown
Owner

Problema

Na página Admin → Atualizações, o card "Ver novidades" às vezes vira um link simples pro GitHub. Não é regressão de código: git diff v1.36.0 HEAD -- app.py routes/admin.py = 0 linhas; o card existe e funciona desde v1.24.0.

A causa é a fragilidade inerente: o card depende de uma chamada ao vivo à REST API do GitHub (/releases/latest) para buscar o corpo da release — latest_release_notes() (app.py). Essa chamada é fail-open: num rate limit (60/h por IP, sem token no servidor) ou timeout de 4s, ela devolvia '' e o template (templates/admin/update.html) caía no {% else %} → link.

Correção

  • latest_release_notes() reusa a última nota obtida com sucesso (_notes_cache) em vez de zerar quando a busca falha — o card só vira link se nunca obtivemos notas.
  • Timeout 4s → 8s (home-lab atrás de proxy).
  • 2 testes: reusa-last-good-on-failure e empty-when-never-fetched.

Escopo

  • app.py (1 função) + teste + CHANGELOG/VERSION. Sem schema, sem rota nova.
  • pytest: 152 passando.

🤖 Generated with Claude Code

… (v1.36.2)

latest_release_notes() reusa a última nota obtida com sucesso em vez de zerar
quando a REST API do GitHub falha (rate limit 60/h por IP / timeout), e o
timeout sobe de 4s para 8s. Assim o card de novidades não cai pro link simples
por uma falha pontual; só vira link se nunca obtivemos notas. + 2 testes.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@iscarelli iscarelli merged commit aea3fa7 into main Jun 12, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant