Após salvar a nota, o RSC refresh via server action via
redirecionava à etapa de escolha. Agora manda
para Início nesse caso; o client usa no sucesso.
Co-authored-by: Francisco Solla <fsolla@users.noreply.github.com>
No idle do passo de busca de município, resolve client-side o município
mais próximo no escopo do ator quando a permissão de geo já está granted
(reuso B14: campaignGeolocation + municipalityProximity + malha lazy).
- Prop RSC accessibleMunicipalities na rota acoes/[slug]
- Hook useWizardNearestMunicipality (fail-soft, só inScope)
- Merge geo no topo da lista B92 via wizardMunicipalitySuggestMerge
- Unit tests do merge/format
Closes#94
Co-authored-by: Francisco Solla <fsolla@users.noreply.github.com>
Merge client-side recent visits and last-acted municipality storage into
wizard municipality suggest idle list ahead of B92 server rankings.
- Add campaignLastActedMunicipality + wizardMunicipalitySuggestMerge libs
- Extend wizard-municipality-suggest with scopeMunicipalities for hit lookup
- Record last-acted on wizard write success (votes, signal, trend, leadership)
- Clear last-acted on logout alongside recent visits
Co-authored-by: Francisco Solla <fsolla@users.noreply.github.com>
Add wizard-municipality-suggest mode to home-search with cold-first
ranking (signal → E14 → trend → E10 class → 2022 votes). Wizard
municipality step now fetches suggestions when query is idle.
Co-authored-by: Francisco Solla <fsolla@users.noreply.github.com>
Cursor's Create-Agent API defaults omitted `fast` to true, so pool
workers requesting composer-2.5 were billed as composer-2.5-fast.
Co-authored-by: Francisco Solla <fsolla@users.noreply.github.com>
Quebra o empty state do passo 1 dos wizards (/campanha/acoes) em três
entregáveis: chassis+esquecidos (B92), continuity visitados/última ação (B93),
geo mais próximo (B94). Aguarda gate de confirmação antes do agent:register.
Co-authored-by: Francisco Solla <fsolla@users.noreply.github.com>
checkout/setup-node/pnpm já estavam em v5/v6 (Node 24); o aviso restante
vinha de styfle/cancel-workflow-action@0.12.1 (node20) usado no fail-fast.
Documenta runtimes nativos em AGENT-OPS.md.
Co-authored-by: Francisco Solla <fsolla@users.noreply.github.com>
- Substitui loadActivityOptions (pagination: false) por AsyncSearchCombobox
com busca server-backed filtrada por município (searchActivityRelationOptions).
- Pagina card Demandas vinculadas no detalhe da atividade (10/página) com
soma de custo em query separada e link Ver todas na lista filtrada.
- Adiciona filtro ?activity= na lista /campanha/demandas.
Co-authored-by: Francisco Solla <fsolla@users.noreply.github.com>
- Collection campaignVoteSummarySnapshot (snapshot diário statewide)
- Gravação idempotente on-read no loadCampaignHomeSummary + retenção 30d
- UI: seta + magnitude ao lado do total B56 (aria-label completo)
- Reusa rollup statewide para CG/candidato; assessor vê Δ global (opção A)
Co-authored-by: Francisco Solla <fsolla@users.noreply.github.com>
Freshness audit confirmou que perf de import/lista de apoiadores já
estava entregue em main desde 2026-07-19; atualiza status do plano
e CHANGELOG-AGENTS.
Co-authored-by: Francisco Solla <fsolla@users.noreply.github.com>
Registry B79 para /campanha/conceitos e /campanha/perfil: catálogo vazio
para staff, busca global no drawer expandido via CampaignStaffGlobalSearch.
Leader em /perfil continua sem drawer (lockdown B89).
Closes#26
Co-authored-by: Francisco Solla <fsolla@users.noreply.github.com>
Add composite action wrapping styfle/cancel-workflow-action@0.12.1 and
invoke it with if: failure() on every parallel job in ci-pr.yml and ci.yml.
Workflow-level actions: write permission enables cancellation. Document
fail-fast behavior in docs/AGENT-OPS.md CI table.
Closes#52
Co-authored-by: Francisco Solla <fsolla@users.noreply.github.com>