| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| Horse 3.3.14 source code.tar.gz | 2026-10-14 | 815.4 kB | |
| Horse 3.3.14 source code.zip | 2026-10-14 | 1.1 MB | |
| README.md | 2026-10-14 | 2.5 kB | |
| Totals: 3 Items | 1.9 MB | 0 | |
Correções
- Corrige a propagação de
ExceptioneEHorseExceptionnos roteadores Tree e Radix: middlewares que envolvemNextpodem capturar e personalizar os erros das rotas e dos callbacks internos. (#616) - Aplica o tratamento padrão do core somente após a exceção escapar da cadeia: mantém JSON/status de
EHorseException,OnErrorpara outras exceções e o fallback 500 quando ainda não existe resposta de erro. - Preserva o controle de fluxo de
EHorseCallbackInterrupted, respostas de erro existentes e o envio dos cookies no fallback do Radix.
Proteção contra regressões
- Adiciona 36 casos DUnitX (18 por roteador) e 34 casos procedurais FPC (17 por roteador).
- Cobre os dois tipos de exceção, callbacks posteriores, middlewares internos, prioridade do middleware sobre
OnError, relançamento, fallback, JSON/status/Content-Type, interrupções e cookies (DUnitX). - O teste FPC reproduziu 18 falhas na versão anterior; com a correção, os 34 casos passam nas configurações padrão e Epoll, sem blocos de memória não liberados.
- Integra as regressões FPC ao GitHub Actions. O job Linux utiliza as suítes portáveis de FPC; a suíte Delphi/DUnitX é executada localmente com Delphi.
Validação
- Delphi 10 Seattle e Delphi 13 Florence, Tree/Radix: 95 testes por combinação, sem falhas ou erros.
- Na versão preparada 3.3.14: Delphi 13 Tree/Radix, 95 testes por configuração; FPC 3.2.2/Linux x86_64, 34 testes por configuração (padrão/Epoll), sem vazamentos detectados pelo
heaptrc. HORSE_VERSIONeTHorse.Versionconferidos como 3.3.14 no Delphi 10, Delphi 13 e FPC 3.2.2.-
As regressões FPC de propagação exercitam os roteadores diretamente; os testes de API HTTP e lifecycle hooks foram executados em Delphi.
-
GitHub Actions: os jobs
testefpc-trunk-keepalivepassaram tanto na PR da correção (#616) quanto na PR da versão (#617). Validação da versão: https://github.com/HashLoad/horse/actions/runs/38494183471.
Comportamento esperado
Um middleware que trata exceções pode agora definir sua própria resposta tanto para EHorseException quanto para Exception. Se nenhum middleware tratar o erro, ou se ele for relançado, o core aplica seu fallback. Aplicações que antes dependiam de o core interceptar o erro antes do middleware observarão essa correção de comportamento.
Comparação: https://github.com/HashLoad/horse/compare/3.3.13...3.3.14