Triagem da comunidade — Decidim · formulários & surveys
MDC-REL · 2026-09-02 · triagem da comunidade decidim forms & surveys — núcleo
relatório de análise · documento de trabalho

A comunidade reporta.
O upstream revisa.
O fork corrige.

Cada bug vive em três planos: a comunidade registra no MetaDecidim, o upstream discute em issues e PRs no GitHub, e este fork (lpirola/decidim) antecipa correções no núcleo de formulários e surveys. Este relatório cruza os três planos.

fonte: meta.decidim.org · GraphQL github.com/decidim/decidim · API fork: lpirola/decidim · spec interna recorte: bugs publicados ≥ 2021
55
bugs da comunidade (2021+)
51
PRs abertos no upstream
39
ainda sem desfecho (33 sem resposta)
7
defeitos QA tratados na spec do fork
Apuração · relatos por ano (2021–2026) cada traço = 1 relato · cor = estado hoje · encerrados 16 · em aberto 39
2021
8457
24
2022
329
14
2023
7
7
2024
5
5
2025
4
4
2026
1
1
sem resposta aceito / em andamento finalizado rejeitado
Seção 01 · meta.decidim.org

O que a comunidade reportou

Entre 2021 e 2026, o processo Report a Bug recebeu 55 relatos publicados (componente “I found a Bug!”, id 210 do processo bug-report). Destes, 33 nunca receberam resposta oficial — a última resposta registrada é de 04/05/2022. O fluxo do MetaDecidim esvaziou a partir de 2023; quem reporta bug hoje vai direto ao GitHub.

sem resposta — 33 (60.0%) aceito / em andamento — 6 finalizado — 11 rejeitado — 5 (39 em aberto · 16 encerrados)

Ritmo e resposta

24→1relatos por ano: 24 em 2021, 14 em 2022, 7 em 2023 e 1 em 2026 — declínio contínuo.
301dtempo mediano até a resposta oficial (mediana 301 dias entre os 22 respondidos; 8 levaram mais de 1 ano (36%)).
17/22dos bugs respondidos, 17 eram relatos de 2021 e 5 de 2022 — nenhum relato de 2023 em diante recebeu resposta.
74comentários no total; 67% dos relatos têm ao menos um comentário. Votos: nenhum (o componente não coleta suportes).

Áreas mais citadas nos relatos

['
Propostas (proposals)17
', '
Páginas/blogs/conteúdo16
', '
Processos participativos14
', '
Anexos/mídia/uploads10
', '
Email/newsletter9
', '
Design/UX9
']

menção por mineração de texto multilingue (en/ca/es) em título+corpo. Idiomas dos títulos: en 32 · ca 14 · es 9.

['0.23.55', '0.26.04', '0.23.14', '0.252', '0.262', '0.282', '0.292', '0.221', '0.24.01', '0.24.21', '0.241', '0.24.31']

versões citadas — instalações costumam reportar de versões antigas (0.23–0.26).

Relatos abertos que pedem triagem

Seleção de 12 dos 39 em aberto — lista íntegra em out/bugs_2021plus.csv. Cada id abre o relato original no MetaDecidim.

Seção 02 · github.com/decidim/decidim

O que o upstream está corrigindo

Em 02/09/2026 havia 51 PRs abertos43 de código (os demais são bots: dependabot, traduções Crowdin e backport) e 30 com rótulo type: fix. A fila é jovem: mediana de ~32 dias; 38 já têm aprovação em review. Só um PR passa de um ano de espera.

métricavalor
PRs abertos / de código51 · 43 de código · 8 bots
drafts / mudanças pedidas3 drafts · 3 com changes requested
última revisão38 aprovados · 10 comentados · 3 com pedidos
basedevelop 47 · release/0.32-stable 3 · 0.31-stable 1
linhas na fila+17.095 / −8.027
módulos mais tocadoscore 23 · proposals 11 · admin 11 · forms 9 · surveys 6
atenção · sem PR aberto

Exportar respostas grandes segue sem solução

Issue decidim/decidim#15443 (10/2025): survey com ~250 mil respostas faz o export “dizer que deu certo” e o ZIP nunca chegar — os exporters do decidim-core materializam tudo em memória (OOM). A correção pedida é streaming/lotes (find_each) + tratamento de erro. É o mesmo problema que a spec do fork registra como follow-up fora de escopo.

correções de surveys/forms na fila

· #17321 + #17194 — display conditions (4 issues: #13787, #15712, #16513, #17193)
· #17495 — exclusão de respostas (issue #12386, 02/2024)
· #17568 — perguntas perdidas no import de espaço (#17567)
· #17421 — locale da tradução automática do questionário
· #17216 — export com votos ocultos · #17331 — CSV de open data

Seção 03 · fork lpirola/decidim

O que o fork já corrige no núcleo

Base Decidim 0.32.1, branch internalize/qa-fixes-v0.32.1 (github.com/lpirola/decidim). A spec docs/internas/specs/spec-forms-surveys-correcoes-core.md (status ready-for-agent, 01/09/2026) documenta 7 defeitos levantados pelo QA nos fluxos de formulários e surveys — e estabelece um único contrato de comportamento para o ciclo de vida do questionário.

01
Formulário “encerrado” dentro da janela de respostas Estado inconsistente entre listagem admin, página pública e o que o servidor aceita.
implementado
02
Condicionantes não executam como configuradas Condições duplicadas, auto-referentes ou com dono errado ao salvar no editor.
implementado
03
Respostas enviadas mesmo com formulário encerrado Inclusive por requisição direta (POST), fora da janela ou com “permite respostas” desligado.
implementado
04
Edição de resposta enviada não funciona Decisão de produto: participante responde uma única vez; recurso de edição é removido no componente surveys.
removido
05
Exportação com HTML quebrado e colunas vazias Cabeçalhos com marcação HTML (último item sai corrompido) e colunas de separadores/blocos de título.
implementado
06
Perguntas de arquivo: limite, extensões e anexos invisíveis Participante não vê limite máximo nem extensões aceitas; anexos não aparecem no detalhe da resposta.
parcial
07
Formulário não numera as questões Sem numeração automática das perguntas respondíveis (pulando separadores e blocos de título).
pendente
estado da spec · implementado vs pendente

Implementado (com testes revisados): fonte única de verdade para “aberto” (Permite respostas + janela), guarda de submissão no controlador, condicionantes com dono correto, remoção da edição de respostas, exportação limpa só com perguntas respondíveis, max_choices como limite de arquivos e política de upload da organização.

Pendente: anexos clicáveis no detalhe/confirmação da resposta · texto de apoio com extensões/tamanhos aceitos · numeração automática das questões.

Fora de escopo (follow-up registrado): performance de exportação em larga escala (streaming, exportação em segundo plano) — espelha a issue #15443 do upstream. Sincronização com o Decidim oficial não está planejada nesta etapa: fork deliberado.

Seção 04 · leitura cruzada

O mesmo problema em três planos

Nem todo defeito do fork chegou à comunidade — e nem todo PR do upstream cobre o que o QA do fork encontrou. O quadro abaixo cruza o que é verificável em cada camada no recorte.

problema (defeito QA)comunidade · MetaDecidim 2021+upstream · GitHubfork · spec
Estado “aberto” incorreto / submissões fora da janela não relatado no recorte sem issue/PR específico identificado na fila implementado fonte única “Permite respostas” + janela; guarda de POST
Condicionantes corrompidas / não executam não relatado no recorte 4 issues abertas → PRs #17321, #17194 (backport) implementado dono correto + migração anti auto-referência
Edição de resposta enviada bug 16980 “não consigo publicar a resposta” (2022, sem resposta) issue #12386 → PR #17495 (exclusão de respostas) removido por decisão de produto (resposta única)
Exportação suja / perde dados bug 17364 “export sem nome do submissor” (2023, sem resposta) #15443 OOM em export grande (sem PR) · #16030 merged (survey errada) implementado export limpo · follow-up larga escala
Perguntas de arquivo: limites e anexos não relatado no recorte sem correlato claro na fila aberta parcial limite + política org feitos; anexos no detalhe pendente
Numeração das questões não relatado no recorte sem correlato claro na fila aberta pendente contrato definido na spec

“não relatado no recorte” ≠ inexistente: indica apenas que não há relato público no componente 210 publicado a partir de 2021.

Seção 05 · próximos passos

Recomendações

Triar os 33 relatos sem resposta da comunidade

Migrar/espelhar para issues no GitHub com rótulo status: triage e resposta automática no componente 210 apontando o canal ativo — os relatos mais antigos têm mais de 5 anos.

Fechar a família display conditions no upstream

Mergir #17321/#17194 (com backport 0.31/0.32) — são 4 issues abertas desde 2024 com corrupção de dados; e destravar #17495 (#12386, 2,5 anos aberta).

Atacar o export de respostas grandes (#15443)

PR dedicado em decidim-core/lib/decidim/exporters: streaming/lotes (find_each), job assíncrono com notificação e teste de volume ≥100 mil respostas — o fork já listou isso como follow-up da própria spec.

Concluir as pendências da spec do fork

Anexos clicáveis no detalhe/confirmação da resposta, texto de apoio com extensões/limites e numeração automática — com specs em vermelho primeiro, conforme o contrato já definido.

Documentar a semântica de “Permite respostas”

Explicitar no manual administrativo que o interruptor é o controle de abertura independente das datas — a fonte de confusão original do defeito 01.

Fontes e método

  • meta.decidim.org/api — GraphQL, processo id 53 · componente 210
  • api.github.comdecidim/decidim pulls/issues (via gh)
  • forklpirola/decidim @ 0.32.1
  • specdocs/internas/specs/spec-forms-surveys-correcoes-core.md

Reprodução

  • scripts/fetch_meta_bugs.py — coleta GraphQL
  • scripts/analyze_meta_bugs.py — análise + CSV/charts
  • scripts/fetch_github_prs.sh — PRs do upstream

Caveats

  • Classificação por área/sintoma = menção de texto (en/ca/es)
  • ~40% dos autores não identificáveis (participante excluído)
  • Números da comunidade referem-se ao recorte ≥ 2021
relatório gerado por script · dados públicos coletados em 2026-09-02 docs/internas · documento de trabalho — não é decisão oficial