teqo-backup/docs/plans
Francisco Ignácio Fontoura Solla da4ca2c713 Deliver B37: editable município chips on the dobradinhas list.
The "Municípios" column of /campanha/dobradinhas reuses
MunicipalityPortfolioCell unchanged, writing the inverted side of the
relation (municipality.stateDeputies) through a single transactional
batch action (setStateDeputyMunicipalitiesBatch): per-município advisory
lock, all-or-nothing on a partial-scope batch instead of a silent partial
apply, no floor (a dobradinha can hold zero municípios). stateDeputiesArraySchema's
cap moved 20 → 435 to fit a whole território batch from the município side.

The post-implementation critique found two P1s, and both were fixed instead
of deferred. First: MunicipalityPortfolioCell and LeadershipStateDeputyRelationCell
had grown the same chip-editing machine twice — optimistic delta, undo, ARIA
1.2 combobox, floor/ceiling, pointer-fine/coarse split — with incompatible
contracts. This was the 3rd call site B34+ was waiting for, so RelationChipCell
is now the single engine and both cells shrank to thin domain wrappers (chip/
search building, FormData, copy — nothing interaction-specific left in either).
LeadershipStateDeputyRelationCell also gained an ownerName prop and its first
dedicated test suite, which it shipped without before this.

Second: an advisor could see, and attempt to remove, a município chip outside
the portfolio they administer, failing silently at the document level.
MunicipalityPortfolioCell now filters the visible chips by addableIds instead
of only gating what can be added, so an advisor sees and can only touch
municípios they administer.

No migration, collection, or Consent. Docs updated: plan as-built, roadmap,
AGENTS.md, project notebook.
2026-07-28 09:34:39 -03:00
..
aproximar-mapa-pracas.md Sync all project docs with the deployed remodel and hardening; compile roadmap 2026-07-24 02:04:45 -03:00
autosave-status-lista-liderancas.md B32: editar Status de apoio na célula da lista de lideranças 2026-07-27 09:56:09 -03:00
autosave-tendencia-lista-municipios.md B24: auto-save e justificativa no popover de Tendência. 2026-07-26 14:05:36 -03:00
backtest-pos-eleicao.md Sync all project docs with the deployed remodel and hardening; compile roadmap 2026-07-24 02:04:45 -03:00
baseline-eleitoral-tse.md Restore full roadmap detail and align project documentation. 2026-07-19 16:19:36 -03:00
build-resiliente-metadata-ausente.md Format the metadata resilience plan for Prettier. 2026-07-27 08:21:25 -03:00
cadastro-nominal-apoiadores.md Sync all project docs with the deployed remodel and hardening; compile roadmap 2026-07-24 02:04:45 -03:00
camada-territorios-identidade.md E12: camada TI com rollups MAUP e benchmark intra-TI. 2026-07-26 21:26:47 -03:00
cenario-junto-filtros-municipios.md Pass 2 W5: close-out de documentacao 2026-07-25 16:08:38 -03:00
cenarios-estimativa-votos.md Sync all project docs with the deployed remodel and hardening; compile roadmap 2026-07-24 02:04:45 -03:00
chips-liderancas-lista-dobradinhas.md B36: chips de lideranças na lista de dobradinhas 2026-07-26 21:15:44 -03:00
chips-municipios-lista-dobradinhas.md Deliver B37: editable município chips on the dobradinhas list. 2026-07-28 09:34:39 -03:00
chips-municipios-lista-liderancas.md B34: editable município chips on the leaderships list. 2026-07-27 22:35:19 -03:00
classificacao-territorial-relativa.md E10: classificacao territorial relativa (Reduto/Expansao/Manutencao/Marginal/Sem base) sobre o artefato TSE, com coluna+sort+filtro na lista, badge no card da conta da cadeira e na capa do dossie; seam generico cellTooltip na CampaignTable e promocao do CampaignHoverTooltip para shared 2026-07-25 21:59:20 -03:00
combobox-assessores-lista-municipios.md B27: combobox + chips + auto-save no popover de Assessores da lista de municípios 2026-07-26 03:31:51 -03:00
compartilhar-pagina.md Restore full roadmap detail and align project documentation. 2026-07-19 16:19:36 -03:00
conta-da-cadeira.md E10+ registra os debitos do /simplify do E10 como fill-in de engenharia 2026-07-25 22:38:28 -03:00
convite-whatsapp-lista-liderancas.md B30: convite WhatsApp na lista de lideranças 2026-07-26 20:47:11 -03:00
decisao-arquitetura-dominios.md Pass 2 W5: close-out de documentacao 2026-07-25 16:08:38 -03:00
demandas-campanha.md Restore full roadmap detail and align project documentation. 2026-07-19 16:19:36 -03:00
dobradinhas-lista-liderancas.md docs(B31): marca adiado do Context como resolvido pela 2ª rodada de /simplify 2026-07-26 19:53:57 -03:00
documentacao-conceitos-campanha.md E18: documentação de conceitos de inteligência de campanha 2026-07-25 01:37:37 -03:00
dossie-municipio.md E9 /simplify: consolidate duplicated helpers, dead passthrough, comment drift 2026-07-25 02:24:18 -03:00
edicao-rapida-lista-pracas.md Sync all project docs with the deployed remodel and hardening; compile roadmap 2026-07-24 02:04:45 -03:00
email-celular-lista-liderancas.md Fix /campanha/liderancas 500: RSC-safe phone display 2026-07-26 20:16:01 -03:00
escala-dry-pos-a4.md Deliver A7 Fase 2 cityCode TSE geography filters and absorb simplify debts. 2026-07-19 22:48:08 -03:00
escala-dry-pos-a8.md Deliver A8 IBGE voter profile on Eleitorado tab with post-simplify scale plan. 2026-07-19 23:05:27 -03:00
escala-dry-pos-a9.md Sync all project docs with the deployed remodel and hardening; compile roadmap 2026-07-24 02:04:45 -03:00
escala-dry-pos-b2.md Register the B8+ review debts from capture-review-debts. 2026-07-27 02:04:09 -03:00
escala-dry-pos-b3.md Sync all project docs with the deployed remodel and hardening; compile roadmap 2026-07-24 02:04:45 -03:00
escala-dry-pos-b8f2.md Register the B8+ review debts from capture-review-debts. 2026-07-27 02:04:09 -03:00
escala-dry-pos-b13.md simplify(B13): corrige classe agregada, bolhas em pane proprio e registra debitos 2026-07-26 05:12:37 -03:00
escala-dry-pos-b16.md Pass 2 W5: close-out de documentacao 2026-07-25 16:08:38 -03:00
escala-dry-pos-b17.md Record the B17 closing triage as B17+. 2026-07-28 09:23:04 -03:00
escala-dry-pos-b32.md B17: column picker on the seven CampaignTable list surfaces. 2026-07-28 08:25:16 -03:00
escala-dry-pos-b33.md Register the B42 review debts on the roadmap. 2026-07-27 20:54:12 -03:00
escala-dry-pos-b34.md Record the B32+ closing triage on the two parent plans. 2026-07-28 08:11:07 -03:00
escala-dry-pos-c2.md Tooling: prettier como autoridade de formatacao (organize-imports deterministico, scripts format/format:check, normalizacao mecanica de 312 arquivos; artefatos gerados e migrations excluidos via .prettierignore) 2026-07-25 17:22:20 -03:00
escala-dry-pos-c3.md Add missing C7 modules and register C11 simplify follow-ups. 2026-07-19 03:52:22 -03:00
escala-dry-pos-c6.md Format F4b plan and TECH-DEBT after Prettier check. 2026-07-27 08:34:57 -03:00
escala-dry-pos-c7.md Implement C12 campaign foundation records 2026-07-24 19:27:15 -03:00
escala-dry-pos-c8.md Deliver C9 scale/DRY for supporters and register C10 follow-ups. 2026-07-19 03:23:25 -03:00
escala-dry-pos-c9.md Deliver C9 scale/DRY for supporters and register C10 follow-ups. 2026-07-19 03:23:25 -03:00
escala-dry-pos-e1.md Mark E4 spreadsheet import as cut in roadmap and project docs. 2026-07-19 22:06:25 -03:00
escala-dry-pos-e2.md Deliver A5 mobilization insight and absorb E7 F2 int follow-up. 2026-07-19 22:34:35 -03:00
escala-dry-pos-e10.md docs(B33): registra débito de engenharia do /simplify (B33+) 2026-07-26 16:27:37 -03:00
escala-dry-pos-e12.md chore: format after E12 (pre-push gate). 2026-07-26 21:27:23 -03:00
escala-dry-pos-field-desk.md Refactor campaign dashboard UX and add product discovery artifacts. 2026-07-19 21:56:01 -03:00
escala-dry-pos-onda0.md Add allowlisted global cache revalidation for Onda 0 F1. 2026-07-19 22:21:16 -03:00
escala-dry-pos-reset-senha-perfil.md Sync all project docs with the deployed remodel and hardening; compile roadmap 2026-07-24 02:04:45 -03:00
escala-dry-pos-visitados-recentemente.md Refactor campaign dashboard UX and add product discovery artifacts. 2026-07-19 21:56:01 -03:00
escala-percentual-mapa-pracas.md Sync all project docs with the deployed remodel and hardening; compile roadmap 2026-07-24 02:04:45 -03:00
escala-relativa-mapa.md simplify(B13): corrige classe agregada, bolhas em pane proprio e registra debitos 2026-07-26 05:12:37 -03:00
estimativa-votos-praca.md Sync all project docs with the deployed remodel and hardening; compile roadmap 2026-07-24 02:04:45 -03:00
eventos-agenda-mobilizacao.md Restore full roadmap detail and align project documentation. 2026-07-19 16:19:36 -03:00
explicacao-colunas-header-listas.md B22: explicacao por coluna no header das listas — description em CampaignTableHead/MunicipalitySortableHead, campaignConceptOneLiner como fonte unica E18, municipalityColumnDescriptions cobrindo as 11 colunas de /campanha/municipios 2026-07-26 02:58:54 -03:00
exportar-csv-assinaturas.md Add admin CSV export for signatures and contacts. 2026-07-23 00:53:04 -03:00
feedback-pendente-compositor-giro.md Register the E13 review debts on the roadmap. 2026-07-27 21:12:05 -03:00
field-desk-ux-pos-critique.md Refactor campaign dashboard UX and add product discovery artifacts. 2026-07-19 21:56:01 -03:00
fila-de-alocacao.md E9: Fila de alocação (déficit como default do staff, frescor, coluna da vergonha) 2026-07-25 02:24:17 -03:00
filtros-auto-pracas.md Sync all project docs with the deployed remodel and hardening; compile roadmap 2026-07-24 02:04:45 -03:00
filtros-no-header-lista-municipios.md B16: Filtros no header da lista de municípios 2026-07-25 03:13:28 -03:00
filtros-salvos-municipios.md docs(B38): registra sidebar recolhido em tablet + fill-in de limitar o mapa a Bahia 2026-07-26 18:05:51 -03:00
gerenciar-assessores.md B19: registra gatilho de defer do N+1 no batch de território/ZE 2026-07-25 02:43:26 -03:00
hover-mapa-pracas.md Sync all project docs with the deployed remodel and hardening; compile roadmap 2026-07-24 02:04:45 -03:00
icone-prioridade-lista-municipios.md Register fill-in to replace the priority badge with an icon+tooltip on the municipalities list. 2026-07-24 18:25:36 -03:00
import-planilha-projecao.md Import projection-sheet strategy columns into municipalities (E4R fase 2) 2026-07-24 15:58:06 -03:00
insight-alavancagem-chapa.md Deliver A5 ticket leverage and flip insights with simplify cleanup. 2026-07-19 17:34:06 -03:00
insight-classificacao-territorial.md Deliver A5-2 territorial classification insight and absorb review debts. 2026-07-19 18:15:07 -03:00
insight-dobradinha-2026.md Sync all project docs with the deployed remodel and hardening; compile roadmap 2026-07-24 02:04:45 -03:00
insight-inteligencia-competitiva.md Restore full roadmap detail and align project documentation. 2026-07-19 16:19:36 -03:00
insight-mobilizacao-brancos-nulos.md Deliver A5 mobilization insight and absorb E7 F2 int follow-up. 2026-07-19 22:34:35 -03:00
insight-taxa-conversao.md Deliver A5 slice 1 conversion-rate insight and absorb review debts. 2026-07-19 14:05:11 -03:00
inteligencia-campanha.md Tooling: prettier como autoridade de formatacao (organize-imports deterministico, scripts format/format:check, normalizacao mecanica de 312 arquivos; artefatos gerados e migrations excluidos via .prettierignore) 2026-07-25 17:22:20 -03:00
lembrar-de-mim-sessao-campanha.md Add remembered campaign sessions 2026-07-27 08:57:26 -03:00
limitar-mapa-a-bahia.md fix(mapa): limita pan/zoom do BahiaMap ao estado 2026-07-26 18:47:06 -03:00
link-territorio-lista-municipios.md B25: link do território na lista de municípios 2026-07-26 18:59:49 -03:00
login-biometrico-campanha.md Fix Prettier on B40/B41 plan docs. 2026-07-26 22:17:04 -03:00
mapa-bahia-geometrias.md Tooling: prettier como autoridade de formatacao (organize-imports deterministico, scripts format/format:check, normalizacao mecanica de 312 arquivos; artefatos gerados e migrations excluidos via .prettierignore) 2026-07-25 17:22:20 -03:00
mapa-mental-arquitetura.md Pass 2 W5: close-out de documentacao 2026-07-25 16:08:38 -03:00
mapa-pracas-filtrado.md Sync all project docs with the deployed remodel and hardening; compile roadmap 2026-07-24 02:04:45 -03:00
mapa-projecao-municipios.md Pass 2 W5: close-out de documentacao 2026-07-25 16:08:38 -03:00
motor-de-sugestoes.md Sync all project docs with the deployed remodel and hardening; compile roadmap 2026-07-24 02:04:45 -03:00
municipio-mais-proximo.md B8+: escala das malhas em unidades reais, contrato do map key e degradacao 2026-07-27 01:59:36 -03:00
municipios-prioritarios-inicio.md B20: municípios prioritários no Início com déficit E9 e CTA para a lista. 2026-07-25 20:01:51 -03:00
niveis-de-envolvimento.md Move the level control onto B42's shared cell-edit overlay. 2026-07-27 21:24:45 -03:00
notifications.md Sync all project docs with the deployed remodel and hardening; compile roadmap 2026-07-24 02:04:45 -03:00
onda-0-ripd-nota-mvp.md Deliver Onda 0 MVP: provisional Consent, privacy policy, and /privacidade. 2026-07-19 03:38:21 -03:00
onda-0.md Sync roadmap and intel plans with the 2026-07-23 field session; add E4R/A11/E16/E17 plans 2026-07-24 02:54:28 -03:00
ordenacao-colunas-lista-municipios.md Register B16–B18 municipality list UX plans and mark column reorder out of scope. 2026-07-24 19:14:01 -03:00
ordenacao-filtros-lista-dobradinhas.md docs(B33): registra débito de engenharia do /simplify (B33+) 2026-07-26 16:27:37 -03:00
ordenacao-filtros-lista-liderancas.md Record B29 post-simplify deferrals on the parent plan. 2026-07-28 01:44:47 -03:00
overview-lista-nucleos.md Restore full roadmap detail and align project documentation. 2026-07-19 16:19:36 -03:00
pagina-territorios-identidade.md B21: cria página própria dos territórios 2026-07-25 21:50:24 -03:00
perfil-eleitorado-ibge.md Deliver A8 IBGE voter profile on Eleitorado tab with post-simplify scale plan. 2026-07-19 23:05:27 -03:00
pinagem-superficies-lista.md Pass 2 W5: close-out de documentacao 2026-07-25 16:08:38 -03:00
pixel-meta-abaixo-assinado.md Add Meta Pixel tracking to public petition pages. 2026-07-21 10:51:47 -03:00
planejador-de-giros.md Register the E13 review debts on the roadmap. 2026-07-27 21:12:05 -03:00
poligonos-pracas-zona.md docs: plan fill-in to drop zone list from campaign home map 2026-07-27 00:00:29 -03:00
polimento-mobile-lista-municipios.md Register the E14 closing triage on B32+. 2026-07-27 22:24:34 -03:00
pwa-campanha.md Restore full roadmap detail and align project documentation. 2026-07-19 16:19:36 -03:00
ranking-votos-municipio.md E10+ registra os debitos do /simplify do E10 como fill-in de engenharia 2026-07-25 22:38:28 -03:00
registrar-sinal-lista-municipios.md B26: registrar sinal tipado a partir da célula Último sinal na lista de municípios. 2026-07-25 20:42:01 -03:00
registro-fundacao.md Implement C12 campaign foundation records 2026-07-24 19:27:15 -03:00
remodelagem-municipios.md Sync all project docs with the deployed remodel and hardening; compile roadmap 2026-07-24 02:04:45 -03:00
remodelagem-pracas.md Sync all project docs with the deployed remodel and hardening; compile roadmap 2026-07-24 02:04:45 -03:00
remover-coluna-tipo-municipios.md Docs: registra B20–B37, C13 (Atividade) e fill-ins de listas no roadmap e notebook. 2026-07-25 19:40:07 -03:00
remover-lista-zonas-mapa-inicio.md docs: plan fill-in to drop zone list from campaign home map 2026-07-27 00:00:29 -03:00
renomear-coluna-cobertura-meta.md Docs: registra B20–B37, C13 (Atividade) e fill-ins de listas no roadmap e notebook. 2026-07-25 19:40:07 -03:00
renomear-plano-acao-para-atividade.md C13 pos-simplify: fecha os residuos da varredura e estreita os guards 2026-07-25 21:29:32 -03:00
reordenar-colunas-lista-municipios.md Register B16–B18 municipality list UX plans and mark column reorder out of scope. 2026-07-24 19:14:01 -03:00
reset-senha-foto-perfil.md Restore full roadmap detail and align project documentation. 2026-07-19 16:19:36 -03:00
roles-admin-payload.md Add users.roles so Payload /admin can separate editors from admins. 2026-07-27 01:54:29 -03:00
scroll-horizontal-lista-municipios.md Note B41 critique deferrals on the parent plan. 2026-07-27 10:38:06 -03:00
selecionados-no-topo-filtros-header.md Docs: registra B20–B37, C13 (Atividade) e fill-ins de listas no roadmap e notebook. 2026-07-25 19:40:07 -03:00
seletor-colunas-lista-municipios.md Record the B17 closing triage as B17+. 2026-07-28 09:23:04 -03:00
sidebar-recolhido-tablet.md B38: sidebar recolhido em tablet no shell /campanha 2026-07-26 18:40:31 -03:00
sistema-listas-campanha.md Tooling: prettier como autoridade de formatacao (organize-imports deterministico, scripts format/format:check, normalizacao mecanica de 312 arquivos; artefatos gerados e migrations excluidos via .prettierignore) 2026-07-25 17:22:20 -03:00
split-election-insights.md Pass 2 W5: close-out de documentacao 2026-07-25 16:08:38 -03:00
tabela-ti-inicio.md Tooling: prettier como autoridade de formatacao (organize-imports deterministico, scripts format/format:check, normalizacao mecanica de 312 arquivos; artefatos gerados e migrations excluidos via .prettierignore) 2026-07-25 17:22:20 -03:00
territorio-multi-municipio-bairro.md Restore full roadmap detail and align project documentation. 2026-07-19 16:19:36 -03:00
tooltip-celulas-listas.md docs: registra débitos do /simplify pós-B23 no plano (paridade a11y da nota de tendência, wrapper Popover+tooltip) 2026-07-26 03:24:55 -03:00
visitados-recentemente.md Restore full roadmap detail and align project documentation. 2026-07-19 16:19:36 -03:00
whatsapp-canal-fundacao.md Sync all project docs with the deployed remodel and hardening; compile roadmap 2026-07-24 02:04:45 -03:00
whatsapp-envio-liderancas.md Sync all project docs with the deployed remodel and hardening; compile roadmap 2026-07-24 02:04:45 -03:00
whatsapp-interno-campanha.md Sync all project docs with the deployed remodel and hardening; compile roadmap 2026-07-24 02:04:45 -03:00
whatsapp-sugestao-atualizacoes.md Sync all project docs with the deployed remodel and hardening; compile roadmap 2026-07-24 02:04:45 -03:00
zonas-por-municipio.md Tooling: prettier como autoridade de formatacao (organize-imports deterministico, scripts format/format:check, normalizacao mecanica de 312 arquivos; artefatos gerados e migrations excluidos via .prettierignore) 2026-07-25 17:22:20 -03:00