teqo/.cursor/rules
Francisco Ignácio Fontoura Solla ef3d5b6c22 B31: coluna de dobradinhas na lista de lideranças
Coluna "Dobradinhas" em /campanha/liderancas com chips clicáveis
para /campanha/dobradinhas/<slug> e edição via Popover+Command
(padrão B27, escrita via server action delta + lock, como B19).

- LeadershipRowViewModel.stateDeputies (StateDeputySummary[]) via
  loadStateDeputySummaries, substituindo stateDeputyNames.
- setLeadershipStateDeputyMembership(Record): delta com
  withPayloadTransaction + acquireTextAdvisoryLocks + revalidatePath.
- nextStateDeputyIdsAfterMembership (lib/leadershipStateDeputyMembership.ts),
  espelha nextAdvisorIdsAfterMembership.
- loadStateDeputyOptions estendido com plainName/party/slug.
- Catálogo entregue uma vez por tabela via leadershipColumns(options)
  (columns factory, mesmo precedente de municipalityListColumns).

/simplify (1ª rodada): corrige revert otimista por delta (não pelo
snapshot inteiro), remove fallback silencioso na adição, extrai
sameIdSet compartilhado com MunicipalityListAdvisorsControl (B27), e
evita leitura+revalidação supérfluas no caminho no-op da action.

/simplify (2ª rodada, pós-rebase): troca o StateDeputyOptionsProvider
(Context) inicial pela columns factory acima — a 1ª rodada tinha
validado o Context por falta da evidência de que MunicipalityList.tsx
já resolve o mesmo problema sem Context; corrige revalidatePath para
o id concreto em vez do template dinâmico '/campanha/liderancas/[id]'
(que invalidava toda ficha a cada toggle); remove non-null assertion
movendo a guarda para dentro do setCurrent updater.

Gate verde: tsc, lint --max-warnings=0, format:check, unit 530/530,
int 406/406 (incl. os 6 de campaignLeadershipStateDeputyMembership),
build. Aikido: 0 achados nos arquivos novos/editados.
2026-07-26 19:50:15 -03:00
..
projects B31: coluna de dobradinhas na lista de lideranças 2026-07-26 19:50:15 -03:00
access-control-advanced.md feat: initial commit 2026-02-14 16:11:51 -03:00
access-control.md feat: initial commit 2026-02-14 16:11:51 -03:00
adapters.md feat: initial commit 2026-02-14 16:11:51 -03:00
campanha-action-feedback.mdc Sync all project docs with the deployed remodel and hardening; compile roadmap 2026-07-24 02:04:45 -03:00
campanha-edit-where-you-see.mdc Sync all project docs with the deployed remodel and hardening; compile roadmap 2026-07-24 02:04:45 -03:00
codebase-map.mdc C13: renomeia "Plano de Acao" para "Atividade" em toda a vertical /campanha 2026-07-25 20:50:38 -03:00
collections.md feat: initial commit 2026-02-14 16:11:51 -03:00
components.md Add Post and Tag collections for news and publications 2026-07-15 19:12:11 -03:00
endpoints.md feat: initial commit 2026-02-14 16:11:51 -03:00
engineering-standards.mdc Tooling: pnpm db:doctor + preflight no guard-dev-db (remedios nomeados, deteccao de volume compartilhado pos-corrupcao WAL), madge check:cycles e prettier no CI/pre-push, guard rails de data migration no skill, notas de processo (knip --fix, pipes) e gate atualizado nos docs/rules 2026-07-25 18:02:02 -03:00
field-type-guards.md feat: initial commit 2026-02-14 16:11:51 -03:00
fields.md feat: initial commit 2026-02-14 16:11:51 -03:00
hooks.md feat: initial commit 2026-02-14 16:11:51 -03:00
payload-overview.md feat: initial commit 2026-02-14 16:11:51 -03:00
plugin-development.md feat: initial commit 2026-02-14 16:11:51 -03:00
queries.md feat: initial commit 2026-02-14 16:11:51 -03:00
security-critical.mdc feat: initial commit 2026-02-14 16:11:51 -03:00