Resumo
O Paperclip canary/v2026.810.0-canary.0 corrige a disputa entre execuções concorrentes ao reservar uma issue de rotina. A rota de checkout passa a devolver conflito recuperável quando o banco aponta violação de unicidade, e a origem inclui testes para as formas encapsuladas do erro.
Novidades
- Paperclip canary/v2026.810.0-canary.0 — Diagnóstico de banco: o servidor adiciona
isUniqueViolation, que percorre a cadeia decausee reconhece os campos de constraint usados pelos drivers PostgreSQL.
Melhorias
- Paperclip canary/v2026.810.0-canary.0 — Checkout de issues: a rota
POST /issues/:id/checkoutidentifica a constraintissues_open_routine_execution_uqe traduz a disputa concorrente em resposta HTTP 409.
Correções
- Paperclip canary/v2026.810.0-canary.0 — Execuções de rotina: uma reserva concorrente deixa de propagar erro 500 e deixa de encerrar a execução do agente quando a causa é uma violação de unicidade esperada.
Breaking changes
Não há breaking change descrito nas notas públicas do release.
Ponto de Atenção
- Paperclip canary/v2026.810.0-canary.0 — Escopo do checkout: a correção cobre a rota de checkout; o caminho de adoção por
assertCheckoutOwnerainda pode apresentar o mesmo erro. Teste concorrência nessa rota e nas rotas de heartbeat, plugins e pipelines antes da atualização.
Notas da versão
- Paperclip canary/v2026.810.0-canary.0 — Testes: a origem adiciona testes para erros encapsulados e diretos, nomes de constraint, fallback por mensagem, constraints diferentes, códigos não relacionados e cadeia de
causeautorreferente.