teqo/src/collections
Francisco Ignácio Fontoura Solla 2bbb630af6 simplify(B27): fix optimistic-state clobber, unify JSON route error shell, dedupe advisor id resolution
- MunicipalityListAdvisorsControl: stop advancing lastPropsIDsRef from a
  successful delta response — it exists only to detect a genuine external
  prop change, and writing it there made a later stale re-render of the
  pre-edit content look external and clobber optimistic state back to it.
  Also reconcile with the latest confirmed server set on the error path
  once every in-flight delta settles (previously only the success path did),
  and consolidate chip/tooltip name resolution onto the shared
  advisorEntriesFromIds helper instead of a bespoke lookup with an
  '#id' placeholder.
- Extract campaignJsonMutationErrorResponse/parseCampaignJsonRequestBody
  (src/utilities/campaignJsonMutationRoute.ts) and adopt them in both
  municipios/advisors/route.ts and municipios/expected-votes/route.ts,
  removing the duplicated body-parse + error-mapping ladder.
- Municipality.ts's validateMunicipalityAdvisors now uses
  uniqueRelationshipIds instead of re-inlining the Set+map+filter dance
  the helper was extracted for.

Verified: tsc --noEmit, lint, format:check, check:cycles all clean;
full unit suite (450 tests) and the municipality/advisor int suites pass.
knip's pre-existing payload.config.ts load error is unrelated (P3).
Playwright's spawned webServer failed to boot in this sandbox (unrelated
module-resolution environment issue, reproduced even before this diff);
manual pnpm dev boots fine and the change is covered by unit/int tests.
2026-07-26 03:51:32 -03:00
..
Activity.ts C13 pos-simplify: fecha os residuos da varredura e estreita os guards 2026-07-25 21:29:32 -03:00
AllocationDecision.ts Implement C12 campaign foundation records 2026-07-24 19:27:15 -03:00
CampaignDemand.ts C13: renomeia "Plano de Acao" para "Atividade" em toda a vertical /campanha 2026-07-25 20:50:38 -03:00
CampaignInvite.ts Ship /campanha nuclei MVP with RBAC, invites, and vote estimates. 2026-07-18 15:01:56 -03:00
CampaignUser.ts 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
Consent.ts Lock down CMS/PII collection access and leader routes 2026-07-23 22:25:18 -03:00
Contact.ts 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
ElectionCandidate.ts Add TSE 2022 election results model and local seed import. 2026-07-18 18:25:19 -03:00
ElectionCandidateVote.ts Add TSE 2022 election results model and local seed import. 2026-07-18 18:25:19 -03:00
ElectionTally.ts Add TSE 2022 election results model and local seed import. 2026-07-18 18:25:19 -03:00
Leadership.ts 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
Media.ts Lock down CMS/PII collection access and leader routes 2026-07-23 22:25:18 -03:00
Municipality.ts simplify(B27): fix optimistic-state clobber, unify JSON route error shell, dedupe advisor id resolution 2026-07-26 03:51:32 -03:00
MunicipalityUpdate.ts Pass 2 W4f: varredura de copy Praca -> Municipio 2026-07-25 15:12:07 -03:00
Organization.ts C13 pos-simplify: fecha os residuos da varredura e estreita os guards 2026-07-25 21:29:32 -03:00
Petition.ts Lock down CMS/PII collection access and leader routes 2026-07-23 22:25:18 -03:00
Post.ts 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
Signature.ts Lock down CMS/PII collection access and leader routes 2026-07-23 22:25:18 -03:00
StateDeputy.ts 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
Subscription.ts Lock down CMS/PII collection access and leader routes 2026-07-23 22:25:18 -03:00
Supporter.ts Pass 2 W4f: varredura de copy Praca -> Municipio 2026-07-25 15:12:07 -03:00
SupporterImportBatch.ts Simplify C6 supporter paths and register C8 scale/DRY follow-ups. 2026-07-18 22:34:55 -03:00
Tag.ts 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
Users.ts Lock down CMS/PII collection access and leader routes 2026-07-23 22:25:18 -03:00
VotePledge.ts 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