Francisco Ignácio Fontoura Solla
342e528c87
feat(E10+): Escala e DRY pós-E10
...
- F1: loadMunicipalityScopeFromDocs evita segunda query em municipalityPageData
- F2: computeAllMunicipalityPotentials memoizado por processo
- F3: TooltipProvider movido para o layout de (app)
- F4: DRY nos filtros multi do mobile em MunicipalityFilters
2026-07-29 23:18:25 -03:00
Francisco Ignácio Fontoura Solla
f6b73b3e63
B60: wizard municipality search step with shared staff loader.
...
Staff wizards pick a municipality via word-start search, auto-advance with ?municipio=, and reuse searchStaffMunicipalityHits extracted from B48.
2026-07-29 23:10:06 -03:00
Francisco Ignácio Fontoura Solla
67058d0027
B51: add Atividades group to staff home search.
...
Staff can find activities by title with scoped access, municipality+date secondary, and word-start matching on the existing home-search POST.
2026-07-29 22:57:02 -03:00
Francisco Ignácio Fontoura Solla
38459b7426
B52: add Dobradinhas group to staff home search.
...
Staff can find state deputies by name or party with municipality counts in the global Início search, mirroring the B49/B50 loader and UI pattern.
2026-07-29 22:52:35 -03:00
Francisco Ignácio Fontoura Solla
ab001a00fb
B72: tighten home action strip horizontal gap (gap-6 → gap-4).
...
Polish the staff Início strip spacing per UX-1 feedback without changing button width or B67 pan behavior.
2026-07-29 22:47:23 -03:00
Francisco Ignácio Fontoura Solla
0109570b62
B65: anchor Início search and action strip to the mobile bottom.
...
The B46 flex spacer never filled the scrollport because min-h-full did not propagate; h-full min-h-0 plus home-dock groups the thumb zone above bottom nav.
2026-07-29 22:35:44 -03:00
Francisco Ignácio Fontoura Solla
bceab5d7df
Merge branch 'cursor/339abbdd' — B49 busca global Lideranças
2026-07-29 22:15:51 -03:00
Francisco Ignácio Fontoura Solla
2c80d9b54f
B49: home search Lideranças group on staff Início.
...
Extends POST /campanha/home-search with leadership hits (word-start, advisor scope, cap 25) and HomeSearchLeadershipGroup below Municípios.
2026-07-29 22:14:30 -03:00
Francisco Ignácio Fontoura Solla
af48505551
chore: format roadmap after B71–B72 merge.
...
Pre-push Prettier gate on docs/roadmap.md.
2026-07-29 22:14:08 -03:00
Francisco Ignácio Fontoura Solla
0bedd12482
docs(B71–B72): register home search polish and action strip gap.
...
Captures field feedback on search result bullets, group title, full-bleed hover, and tighter action strip spacing in UX-1.
2026-07-29 22:12:42 -03:00
Francisco Ignácio Fontoura Solla
0e73d47a62
B50: home search Assessores group for unrestricted staff.
...
Word-start on name, municipality count on the row, shared HomeSearchHitRow; POST /campanha/home-search aggregates advisors alongside municipalities.
2026-07-29 22:09:42 -03:00
Francisco Ignácio Fontoura Solla
f243c8a88a
docs(B68): mark delivered and register B68+ post-simplify perf debt.
...
Close roadmap/plan status after rebase conflict merge and capture simplify deferrals (RSC embed suggest, shared deficit comparator).
2026-07-29 22:06:39 -03:00
Francisco Ignácio Fontoura Solla
e733efbe42
B68: curated municipality suggestions on empty home search focus.
...
Staff see role-ranked shortcuts (advisor portfolio by signal age; CG/candidate by alta priority deficit) via POST mode suggest, without treating empty query as search.
2026-07-29 22:06:02 -03:00
Francisco Ignácio Fontoura Solla
e1eafe3145
Merge branch 'cursor/18dd8494' (B59 wizard chassis)
2026-07-29 22:03:04 -03:00
Francisco Ignácio Fontoura Solla
ee746b1240
docs: add B69/B70 leadership model and wizard plans
...
Register roadmap items for leadership simplification (exclusive flag, field cleanup) and the A4 update-leadership wizard grid flow.
2026-07-29 22:02:07 -03:00
Francisco Ignácio Fontoura Solla
dd23d2a44a
B59: chassis do wizard de campanha (shell, rotas /acoes, hrefs no Início).
...
Staff ganha CampaignWizardShell, rotas /campanha/acoes/<slug> com passo ponte até B60, e strip do Início com links nos fluxos wizard.
2026-07-29 22:02:04 -03:00
Francisco Ignácio Fontoura Solla
4cb59597ff
B67: restore fine-pointer drag pan on home action strip
...
B58 hid the scrollbar but dropped mouse drag-to-scroll; pointer-fine
handlers pan past an 8px threshold while coarse touch keeps native pan-x.
Includes simplify pass (imperative data-dragging, coarse-pointer test)
and pin ratchet for municipalityElectoralBaseline bypass count.
2026-07-29 21:57:53 -03:00
Francisco Ignácio Fontoura Solla
49d5b6da3c
B56: staff campaign summary on Início (central votes + E8 coverage).
2026-07-29 17:55:37 -03:00
Francisco Ignácio Fontoura Solla
34f3eacdce
docs: registrar B67 (pan na strip) e B68 (sugestões na busca)
...
Planos UX-1 do Início e atualização do roadmap com dependências e cortes.
2026-07-29 17:52:49 -03:00
Francisco Ignácio Fontoura Solla
e462d39fda
B13+: concordância LQ, readout de escopo no mapa e DRY do build de agregados.
...
Rede de segurança para E15, copy honesta no Quadro para assessores, uma varredura federal por ano no artefato e tupla de rank no bundle RSC.
2026-07-29 16:26:43 -03:00
Francisco Ignácio Fontoura Solla
7dcfd2989f
docs(roadmap): B66 busca no focus; município sticky no B59
...
Registra emenda ao B47 (limpeza e animação ao focar a busca) e absorve o lembrete de município visível no topo dos wizards no chassis B59.
2026-07-29 16:25:10 -03:00
Francisco Ignácio Fontoura Solla
274cde65a7
B58: polish Início action strip and centralize coarse press state.
...
Short staff labels, hidden scrollbar, circle feedback on hover/press, and long-press pressing lives in useCampaignLongPress for reuse.
2026-07-29 16:10:24 -03:00
Francisco Ignácio Fontoura Solla
3581880950
docs: register B65 mobile dock for Início search and actions
...
B46 delivered order and slots but the flex spacer does not anchor the
chrome to the bottom on mobile; add roadmap item and plan follow-up.
2026-07-29 16:09:31 -03:00
Francisco Ignácio Fontoura Solla
05072547cd
B48: home search results for municipalities and identity territories.
...
Staff Início posts to /campanha/home-search with scoped word-start matches, shared readout component, and simplify hardening (messages, fetch busy, malformed response guard).
2026-07-29 16:05:56 -03:00
Francisco Ignácio Fontoura Solla
cb38e26d8a
docs: register B64 wizard mudar tendência (UX-1 A3)
...
Add the two-step trend-change wizard plan and align roadmap, fluxos, and B59 scope with tiles, prefill, and skip behavior.
2026-07-29 16:03:20 -03:00
Francisco Ignácio Fontoura Solla
72084f1e56
docs: registrar planos B59–B63 dos wizards UX-1 no Início.
...
Detalha chassis, busca de município, ajuste de votos, simplificação do sinal e fluxo de registro; atualiza o rascunho de fluxos e o roadmap.
2026-07-29 15:43:15 -03:00
Francisco Ignácio Fontoura Solla
7bb7b5e261
B47: staff-only home search input with focused mode hiding action strip.
...
Debounced omnibox chassis and empty results region for B48+; no hit providers yet.
2026-07-29 15:31:46 -03:00
Francisco Ignácio Fontoura Solla
d04f23399f
Fill-in: move estimate scenario into municipality list filters.
...
Cenário lives in MunicipalityFilters with provider wrapping filters and results; roadmap and plan marked delivered.
2026-07-29 15:27:46 -03:00
Francisco Ignácio Fontoura Solla
4658cdd686
B46: anchor home actions in thumb zone via CampaignHomeLayout.
...
Mobile flex spacer keeps the B44/B45 strip in the lower viewport above bottom nav; md+ keeps actions at the top and reserves searchSlot order for B47.
2026-07-29 15:06:45 -03:00
Francisco Ignácio Fontoura Solla
b660d5adc0
docs: register B58 polish for home action strip (UX-1).
...
Consolidates heading removal, short labels, hover feedback, and hidden scrollbar into one roadmap item and plan before B46.
2026-07-29 15:04:28 -03:00
Francisco Ignácio Fontoura Solla
431157ed95
Register B56–B57: home campaign summary and deferred 7-day delta.
2026-07-29 14:51:04 -03:00
Francisco Ignácio Fontoura Solla
f9f9a14994
B45: mount persona home action catalog on /campanha.
...
Staff get six launchers with uncovered-municipalities linking to the sem_assessor list; leaders get two with contacts wired to the shared route constant.
2026-07-29 14:43:50 -03:00
Francisco Ignácio Fontoura Solla
6681133695
Register B46–B55: home thumb-zone and global search slices.
...
Adds plans and roadmap wiring for action-button placement and the fatiated Início search (input through row actions).
2026-07-29 14:30:13 -03:00
Francisco Ignácio Fontoura Solla
f03a28fd59
B44: UX-1 home action button and horizontal strip primitives.
...
Tooltip on fine pointer and long-press drawer on coarse without mounting on Início yet (B45).
2026-07-29 14:20:52 -03:00
Francisco Ignácio Fontoura Solla
926972fec6
B43: blank Início, Quadro staff home, and Contatos for leaders.
...
Split dashboard and leader contacts into dedicated routes, update nav and gates, and fix revalidation paths after the route move.
2026-07-29 14:02:35 -03:00
Francisco Ignácio Fontoura Solla
9c563aac8c
Document CG observed-use session and draft action-first home flows.
...
Capture the 2026-07-29 hands-on findings (O9–O11, U1–U11), transcript, and UX-1 wizard sketch so the 03/08 chassis work has a single source of truth.
2026-07-29 13:14:57 -03:00
Francisco Ignácio Fontoura Solla
be2cbfbb43
Extract Metropolitano TI peer rules into lib for E12+.
...
Unifies Salvador vs RMS subgroup logic for territory rollups, aggregate class slugs, and the intra-TI capture benchmark so the MAUP-sensitive rule cannot drift across call sites.
2026-07-29 08:15:09 -03:00
Francisco Ignácio Fontoura Solla
158ef22c2c
Resolve Salvador ZE in the staff "Onde estou" card (B14 / B8 F2-D1).
...
Point-in-polygon on the zone mesh opens the accessible ZE directly, with nearest-zone fallback within 30 km before the filtered list.
2026-07-29 07:56:58 -03:00
Francisco Ignácio Fontoura Solla
35a56ef3ee
B17+: skip relation loaders when columns hidden and keep column picker on empty lists.
2026-07-29 07:53:07 -03:00
Francisco Ignácio Fontoura Solla
ee44581ba4
Remove Tipo column and list kind filter from municipality list.
...
Drop the redundant type column, URL param, and filters while keeping municipality.kind for map and dossier; update tests and delivery docs.
2026-07-29 07:42:47 -03:00
Francisco Ignácio Fontoura Solla
77023db99d
B34+: scale and DRY after municipality chip lists.
...
Memoize access reads per req, cache portfolio index, trim chip revalidates, and shrink RSC payload via catalog-backed labels.
2026-07-28 19:49:29 -03:00
Francisco Ignácio Fontoura Solla
ac2390587e
B18: saved municipality list filters in localStorage and sidebar submenu.
...
Bookmarks the canonical list recorte beside Limpar, syncs via useSyncExternalStore, and matches active URLs with a pure href comparator so the app layout never imports the heavy URL serializer.
2026-07-28 19:25:12 -03:00
Francisco Ignácio Fontoura Solla
be0d587005
Dim the tour composer proposal when changing identity territory.
...
Wire CampaignListPendingBoundary/Results on /campanha/atividades/giros so TI navigation matches list pending UX; pin contract in tourRegionPending unit spec.
2026-07-28 18:41:36 -03:00
Francisco Ignácio Fontoura Solla
38c310a1db
Lift selected options to the top in shared header multi-filters.
...
Freeze order on Popover open so rows do not slide under the pointer, and keep the same presentation on the mobile NativeSelect without a snapshot.
2026-07-28 18:37:05 -03:00
Francisco Ignácio Fontoura Solla
73b9ab84ed
Remove the redundant zone list under the campaign map.
...
After B8 F2 the choropleth already opens each Salvador ZE; drop the textual list and zoneBreakdown from the bundle, keeping the mesh provenance caveat via hasZoneMunicipalities.
2026-07-28 16:00:14 -03:00
Francisco Ignácio Fontoura Solla
524dbb2198
Replace priority badge with flag indicator on municipality list.
...
Staff sees a Flag + tooltip on the name column and mobile card instead of the destructive “Prioritária” chip, with copy centralized in municipalityLabels.
2026-07-28 14:49:33 -03:00
Francisco Ignácio Fontoura Solla
394826c2f4
Rename municipality list goal column label to Cobertura.
...
Shorten the list header, mobile card, and sort summary via the B17 label SSoT while keeping glossary and KPI strips on the long metric name.
2026-07-28 14:30:31 -03:00
Francisco Ignácio Fontoura Solla
189ad7a349
E11: suggestion engine v1 — the human-in-the-loop decision queue.
2026-07-28 14:03:29 -03:00
Francisco Ignácio Fontoura Solla
fb64e36537
Record the B40 closing triage without opening an ID.
...
Nothing left from the reviewers scored high enough to earn a roadmap item, so
the four discards are written down with their reasons instead — a discard whose
reason is missing comes back next session dressed as an obvious win. The one
worth keeping is the enrollment toast's third spelling of the failure copy: it
is deliberate, because that toast has no retry affordance and ending the
sentence in "Tente novamente." would be a false instruction.
Three engineering deferrals gained the trigger they lacked (shared HMAC core,
an optional `bodySchema` on the route shell, promoting `postJson`) — all three
are second-call-site abstractions, so the trigger is the third.
Also corrects two statements this delivery falsified: the notebook still said
`postJson` translates `SyntaxError`, which the simplify pass deleted, and the
roadmap's B40 item carried the pre-optimization 130 kB that its own header line
had already restated as 126 kB.
2026-07-28 12:34:59 -03:00
Francisco Ignácio Fontoura Solla
763f64080a
Deliver B40: biometric login for /campanha.
...
WebAuthn platform passkeys: opt-in enrollment after a password login, a
password-less sign-in that mints the same 14-day campaign-token, and
revocation from the profile. The session is minted through Payload's public
pieces (checkLoginPermission, addSessionToUser, getFieldsToSign, jwtSign)
inside a transaction with an advisory lock, so a passkey login neither
bypasses a lockout nor evicts the account's other sessions. The rpID is
derived from NEXT_PUBLIC_SITE_URL and resolves to null when the request host
disagrees, so previews never offer a ceremony the browser would refuse.
2026-07-28 10:59:23 -03:00