Francisco Solla
9f331e4bb2
merge main into OPS53 branch (fix portado)
Agent PR Ready + auto-merge / ready-automerge (pull_request) Has been skipped
CI (PR) / scope (pull_request) Successful in 43s
CI (PR) / lint (pull_request) Successful in 1m0s
CI (PR) / docs-guards (pull_request) Successful in 8s
CI (PR) / plans-only-closes (pull_request) Successful in 7s
CI (PR) / format (pull_request) Successful in 1m15s
CI (PR) / typecheck (pull_request) Has been skipped
CI (PR) / knip (pull_request) Has been skipped
CI (PR) / cycles (pull_request) Has been skipped
CI (PR) / unit (pull_request) Has been skipped
CI (PR) / int (pull_request) Has been skipped
CI (PR) / build (pull_request) Has been skipped
CI (PR) / e2e (1) (pull_request) Has been skipped
CI (PR) / e2e (2) (pull_request) Has been skipped
CI (PR) / checks (pull_request) Successful in 2s
2026-08-17 22:45:00 -03:00
Francisco Solla
e46c2e7092
fix(ops OPS53): deploy — compose run consome o stdin do bash -s (migrate com </dev/null); build via --network host + proxy socat (BuildKit recusa rede bridge custom)
...
Agent PR Ready + auto-merge / ready-automerge (pull_request) Has been skipped
CI (PR) / scope (pull_request) Successful in 45s
CI (PR) / docs-guards (pull_request) Successful in 7s
CI (PR) / lint (pull_request) Successful in 57s
CI (PR) / plans-only-closes (pull_request) Successful in 10s
CI (PR) / format (pull_request) Successful in 1m10s
CI (PR) / knip (pull_request) Successful in 40s
CI (PR) / typecheck (pull_request) Successful in 49s
CI (PR) / cycles (pull_request) Successful in 46s
CI (PR) / unit (pull_request) Successful in 1m15s
CI (PR) / build (pull_request) Has been skipped
CI (PR) / e2e (1) (pull_request) Has been skipped
CI (PR) / e2e (2) (pull_request) Has been skipped
CI (PR) / int (pull_request) Successful in 2m31s
CI (PR) / checks (pull_request) Successful in 1s
Primeiro deploy real validado manualmente (0aec0d50 ): build+push+migrate+rollout+healthcheck+smoke verdes.
2026-08-17 22:41:33 -03:00
Francisco Solla
0aec0d5040
feat(PUB5): slogan 'Mais saúde mais futuro' no hero e rodapé
CI / e2e (1) (push) Successful in 11m3s
CI / static (push) Successful in 2m8s
CI / int (push) Successful in 2m15s
CI / build (push) Successful in 2m58s
CI / e2e (2) (push) Successful in 4m41s
CI / checks (push) Successful in 2s
CI / deploy homeserver (teqo-1313) (push) Failing after 5s
2026-08-18 01:31:28 +00:00
Francisco Solla
8854fcb85b
style(plans S1-S4): prettier nos planos e no rascunho UI (format pós-commit do lote)
Agent PR Ready + auto-merge / ready-automerge (pull_request) Has been skipped
CI (PR) / docs-guards (pull_request) Successful in 7s
CI (PR) / plans-only-closes (pull_request) Successful in 7s
CI (PR) / scope (pull_request) Successful in 1m2s
Agent pool supervisor / tick (pull_request) Successful in 40s
CI (PR) / lint (pull_request) Successful in 1m18s
Main merge flips claimed issues to done + in-prod / issue-done (pull_request) Successful in 16s
CI (PR) / format (pull_request) Successful in 1m27s
Promote plan-issue Related on main merge / plan-issue-ready (pull_request) Successful in 15s
CI / static (push) Successful in 2m22s
CI / int (push) Successful in 2m38s
CI (PR) / typecheck (pull_request) Has been skipped
CI (PR) / knip (pull_request) Has been skipped
CI (PR) / cycles (pull_request) Has been skipped
CI (PR) / unit (pull_request) Has been skipped
CI / build (push) Successful in 3m40s
CI (PR) / int (pull_request) Has been skipped
CI (PR) / build (pull_request) Has been skipped
CI (PR) / e2e (1) (pull_request) Has been skipped
CI (PR) / e2e (2) (pull_request) Has been skipped
CI (PR) / checks (pull_request) Successful in 2s
CI / e2e (1) (push) Successful in 6m3s
CI / e2e (2) (push) Successful in 5m11s
CI / checks (push) Successful in 1s
CI / deploy homeserver (teqo-1313) (push) Failing after 10s
2026-08-17 22:02:14 -03:00
Francisco Solla
b5ae7497df
style(docs): prettier nos planos S1-S4 (destrava format:check de main)
Agent PR Ready + auto-merge / ready-automerge (pull_request) Has been skipped
CI (PR) / scope (pull_request) Successful in 38s
CI (PR) / docs-guards (pull_request) Successful in 7s
CI (PR) / lint (pull_request) Successful in 55s
CI (PR) / plans-only-closes (pull_request) Successful in 10s
CI (PR) / format (pull_request) Successful in 1m5s
CI (PR) / typecheck (pull_request) Successful in 39s
CI (PR) / knip (pull_request) Successful in 41s
CI (PR) / cycles (pull_request) Successful in 43s
CI (PR) / unit (pull_request) Successful in 59s
CI (PR) / build (pull_request) Has been skipped
CI (PR) / e2e (1) (pull_request) Has been skipped
CI (PR) / e2e (2) (pull_request) Has been skipped
CI (PR) / int (pull_request) Successful in 2m10s
CI (PR) / checks (pull_request) Successful in 2s
Agent pool supervisor / tick (pull_request) Has been skipped
Main merge flips claimed issues to done + in-prod / issue-done (pull_request) Has been skipped
Promote plan-issue Related on main merge / plan-issue-ready (pull_request) Has been skipped
2026-08-17 21:55:17 -03:00
Francisco Solla
760b726fb4
plan(S1-S4): seção de conteúdos na home de campanha — artigos, YouTube, Instagram + compartilhar WhatsApp
2026-08-17 21:55:17 -03:00
Francisco Solla
f22df5bc6e
style(plan): prettier no rascunho UI do PUB5
2026-08-17 21:55:17 -03:00
Francisco Solla
96083a93f4
plan(PUB5): slogan da campanha 'Mais saúde mais futuro' no hero e rodapé
2026-08-17 21:55:17 -03:00
Francisco Solla
bffffa479b
plan(OPS54): silencia o warning do pnpm sobre pnpm.onlyBuiltDependencies ignorado
2026-08-17 21:55:17 -03:00
Francisco Solla
02c922eac8
docs(ops OPS53): falha conhecida do runner — PATH dos containers quebra com runner.envs.PATH só de host
CI / static (push) Failing after 1m24s
CI / int (push) Successful in 2m39s
CI / build (push) Successful in 3m47s
CI / e2e (2) (push) Successful in 5m45s
CI / e2e (1) (push) Successful in 7m24s
CI / checks (push) Failing after 4s
CI / deploy homeserver (teqo-1313) (push) Has been skipped
2026-08-18 00:50:41 +00:00
Francisco Solla
6a3f61f968
ops(OPS53): etapa de deploy no CI para o homeserver (teqo-1313)
...
Job deploy em ci.yml (runs-on host na workstation) streama
scripts/deploy-homeserver.sh para o homeserver via SSH: build dos stages
runner+migrator com secrets do teqo-1313.env, push no registry local,
migrate pelo serviço de maintenance antes do rollout, up + smoke. Zero
secrets novos no Forgejo; HEAD guard + flock; rollback automático com
backup do compose; runbook docs/ops/teqo-1313-deploy.md; invariantes
unit do script (bash -n + estrutura).
2026-08-18 00:50:41 +00:00
Francisco Solla
87410ccc63
plan(S1-S4): seção de conteúdos na home de campanha — artigos, YouTube, Instagram + compartilhar WhatsApp
CI / int (push) Failing after 2s
CI / static (push) Failing after 1m41s
CI / e2e (1) (push) Has been cancelled
CI / build (push) Has been cancelled
CI / e2e (2) (push) Has been cancelled
CI / checks (push) Has been cancelled
2026-08-18 00:47:52 +00:00
Francisco Solla
9dc6b42802
docs(ops OPS53): falha conhecida do runner — PATH dos containers quebra com runner.envs.PATH só de host
Agent PR Ready + auto-merge / ready-automerge (pull_request) Has been skipped
CI (PR) / docs-guards (pull_request) Successful in 7s
CI (PR) / plans-only-closes (pull_request) Successful in 7s
CI (PR) / scope (pull_request) Successful in 36s
CI (PR) / lint (pull_request) Successful in 47s
CI (PR) / format (pull_request) Successful in 59s
CI (PR) / typecheck (pull_request) Successful in 36s
CI (PR) / knip (pull_request) Successful in 37s
CI (PR) / cycles (pull_request) Successful in 38s
CI (PR) / unit (pull_request) Successful in 53s
CI (PR) / build (pull_request) Has been skipped
CI (PR) / e2e (1) (pull_request) Has been skipped
CI (PR) / e2e (2) (pull_request) Has been skipped
CI (PR) / int (pull_request) Successful in 2m52s
CI (PR) / checks (pull_request) Successful in 1s
Promote plan-issue Related on main merge / plan-issue-ready (pull_request) Has been skipped
Main merge flips claimed issues to done + in-prod / issue-done (pull_request) Successful in 15s
Agent pool supervisor / tick (pull_request) Successful in 33s
2026-08-17 21:34:37 -03:00
Francisco Solla
346da3896e
style(plan): prettier no rascunho UI do PUB5
Agent PR Ready + auto-merge / ready-automerge (pull_request) Has been skipped
CI (PR) / docs-guards (pull_request) Successful in 10s
CI (PR) / plans-only-closes (pull_request) Successful in 11s
CI (PR) / scope (pull_request) Successful in 57s
CI (PR) / lint (pull_request) Successful in 1m5s
Agent pool supervisor / tick (pull_request) Successful in 40s
CI (PR) / format (pull_request) Successful in 1m14s
Main merge flips claimed issues to done + in-prod / issue-done (pull_request) Successful in 20s
Promote plan-issue Related on main merge / plan-issue-ready (pull_request) Successful in 16s
CI / static (push) Successful in 2m30s
CI / int (push) Successful in 2m50s
CI (PR) / typecheck (pull_request) Has been skipped
CI (PR) / knip (pull_request) Has been skipped
CI (PR) / cycles (pull_request) Has been skipped
CI (PR) / unit (pull_request) Has been skipped
CI (PR) / int (pull_request) Has been skipped
CI (PR) / build (pull_request) Has been skipped
CI (PR) / e2e (1) (pull_request) Has been skipped
CI (PR) / e2e (2) (pull_request) Has been skipped
CI (PR) / checks (pull_request) Successful in 1s
CI / build (push) Successful in 3m41s
CI / e2e (1) (push) Successful in 7m51s
CI / e2e (2) (push) Successful in 5m54s
CI / checks (push) Successful in 1s
2026-08-17 21:34:27 -03:00
Francisco Solla
220142cc75
plan(PUB5): slogan da campanha 'Mais saúde mais futuro' no hero e rodapé
2026-08-17 21:33:12 -03:00
Francisco Solla
9c74b9634f
ops(OPS53): etapa de deploy no CI para o homeserver (teqo-1313)
...
Agent PR Ready + auto-merge / ready-automerge (pull_request) Has been skipped
CI (PR) / docs-guards (pull_request) Failing after 3s
CI (PR) / plans-only-closes (pull_request) Failing after 5s
CI (PR) / cycles (pull_request) Has been skipped
CI (PR) / unit (pull_request) Has been skipped
CI (PR) / int (pull_request) Has been skipped
CI (PR) / build (pull_request) Has been skipped
CI (PR) / e2e (1) (pull_request) Has been skipped
CI (PR) / e2e (2) (pull_request) Has been skipped
CI (PR) / checks (pull_request) Failing after 1s
CI (PR) / scope (pull_request) Successful in 32s
CI (PR) / lint (pull_request) Successful in 43s
CI (PR) / format (pull_request) Successful in 51s
CI (PR) / typecheck (pull_request) Successful in 32s
CI (PR) / knip (pull_request) Successful in 34s
Job deploy em ci.yml (runs-on host na workstation) streama
scripts/deploy-homeserver.sh para o homeserver via SSH: build dos stages
runner+migrator com secrets do teqo-1313.env, push no registry local,
migrate pelo serviço de maintenance antes do rollout, up + smoke. Zero
secrets novos no Forgejo; HEAD guard + flock; rollback automático com
backup do compose; runbook docs/ops/teqo-1313-deploy.md; invariantes
unit do script (bash -n + estrutura).
2026-08-17 21:24:32 -03:00
Francisco Solla
dfd57344e3
plan(OPS54): silencia o warning do pnpm sobre pnpm.onlyBuiltDependencies ignorado
Agent PR Ready + auto-merge / ready-automerge (pull_request) Has been skipped
CI (PR) / docs-guards (pull_request) Successful in 7s
CI (PR) / plans-only-closes (pull_request) Successful in 7s
CI (PR) / scope (pull_request) Successful in 31s
CI (PR) / typecheck (pull_request) Has been skipped
CI (PR) / knip (pull_request) Has been skipped
CI (PR) / cycles (pull_request) Has been skipped
CI (PR) / unit (pull_request) Has been skipped
CI (PR) / lint (pull_request) Successful in 40s
CI (PR) / format (pull_request) Successful in 49s
CI (PR) / int (pull_request) Has been skipped
CI (PR) / build (pull_request) Has been skipped
CI (PR) / e2e (1) (pull_request) Has been skipped
CI (PR) / e2e (2) (pull_request) Has been skipped
CI (PR) / checks (pull_request) Successful in 1s
Main merge flips claimed issues to done + in-prod / issue-done (pull_request) Successful in 13s
Promote plan-issue Related on main merge / plan-issue-ready (pull_request) Successful in 14s
Agent pool supervisor / tick (pull_request) Successful in 41s
CI / static (push) Successful in 1m52s
CI / int (push) Successful in 2m6s
CI / build (push) Successful in 2m54s
CI / e2e (1) (push) Successful in 4m30s
CI / e2e (2) (push) Successful in 3m57s
CI / checks (push) Successful in 1s
2026-08-17 21:03:43 -03:00
Francisco Solla
e03ba1f83b
ops(OPS51): migra o banco de produção do Neon para o Postgres do homeserver (teqo_1313)
...
CI / static (push) Successful in 1m45s
CI / int (push) Successful in 2m2s
CI / build (push) Successful in 2m38s
CI / e2e (1) (push) Successful in 4m10s
CI / e2e (2) (push) Successful in 3m39s
CI / checks (push) Successful in 1s
Dump pg_dump -Fc do Neon no homeserver (/srv/hdd/backups/teqo-neon-pre-migracao/),
restore como a role teqo_1313 (o container já lia o banco preparado — sem mudança
de config). Neon intacto como rollback. Divergência da intenção (A/B validada como
B): destino = teqo_1313, não teqo_prod. Débito de media registrado (#10 → OPS52).
2026-08-17 22:41:18 +00:00
Francisco Solla
5afb54b692
chore(OPS53): prettier no plano
Main merge flips claimed issues to done + in-prod / issue-done (pull_request) Successful in 12s
Promote plan-issue Related on main merge / plan-issue-ready (pull_request) Successful in 12s
Agent pool supervisor / tick (pull_request) Successful in 29s
CI / static (push) Successful in 1m41s
CI / int (push) Successful in 1m55s
CI / build (push) Successful in 2m37s
CI / e2e (1) (push) Successful in 4m8s
CI / e2e (2) (push) Successful in 3m43s
CI / checks (push) Successful in 1s
Agent PR Ready + auto-merge / ready-automerge (pull_request) Has been skipped
CI (PR) / scope (pull_request) Successful in 30s
CI (PR) / lint (pull_request) Successful in 43s
CI (PR) / docs-guards (pull_request) Successful in 7s
CI (PR) / format (pull_request) Successful in 53s
CI (PR) / plans-only-closes (pull_request) Successful in 7s
CI (PR) / typecheck (pull_request) Has been skipped
CI (PR) / knip (pull_request) Has been skipped
CI (PR) / cycles (pull_request) Has been skipped
CI (PR) / unit (pull_request) Has been skipped
CI (PR) / int (pull_request) Has been skipped
CI (PR) / build (pull_request) Has been skipped
CI (PR) / e2e (1) (pull_request) Has been skipped
CI (PR) / e2e (2) (pull_request) Has been skipped
CI (PR) / checks (pull_request) Successful in 1s
2026-08-17 16:06:05 -03:00
Francisco Solla
8cc4900cf0
plan(OPS53): etapa de deploy no CI para o homeserver (container teqo-1313)
Agent PR Ready + auto-merge / ready-automerge (pull_request) Has been skipped
CI (PR) / docs-guards (pull_request) Successful in 7s
CI (PR) / plans-only-closes (pull_request) Successful in 7s
CI (PR) / scope (pull_request) Successful in 31s
CI (PR) / typecheck (pull_request) Has been skipped
CI (PR) / knip (pull_request) Has been skipped
CI (PR) / cycles (pull_request) Has been skipped
CI (PR) / unit (pull_request) Has been skipped
CI (PR) / lint (pull_request) Successful in 42s
CI (PR) / format (pull_request) Failing after 48s
CI (PR) / int (pull_request) Has been skipped
CI (PR) / build (pull_request) Has been skipped
CI (PR) / e2e (1) (pull_request) Has been skipped
CI (PR) / e2e (2) (pull_request) Has been skipped
CI (PR) / checks (pull_request) Failing after 1s
2026-08-17 16:01:21 -03:00
Francisco Solla
f151376641
ops(OPS50): remove deploy Vercel do pipeline — produção é self-hosted no homeserver (jorgesolla1313.com.br); ci.yml vira verificador puro (sem deploy/requeue), apaga vercel-promote.yml, scripts/tests/vercel.json e secrets VERCEL_*
Agent PR Ready + auto-merge / ready-automerge (pull_request) Has been skipped
CI (PR) / docs-guards (pull_request) Successful in 7s
CI (PR) / plans-only-closes (pull_request) Successful in 7s
CI (PR) / scope (pull_request) Successful in 32s
CI (PR) / lint (pull_request) Successful in 40s
CI (PR) / format (pull_request) Failing after 47s
CI (PR) / typecheck (pull_request) Successful in 31s
CI (PR) / knip (pull_request) Successful in 32s
CI (PR) / cycles (pull_request) Successful in 32s
CI (PR) / unit (pull_request) Successful in 46s
CI (PR) / int (pull_request) Has been skipped
CI (PR) / build (pull_request) Has been skipped
CI (PR) / e2e (1) (pull_request) Has been skipped
CI (PR) / e2e (2) (pull_request) Has been skipped
CI (PR) / checks (pull_request) Failing after 1s
2026-08-17 13:17:17 -03:00
Francisco Solla
2f538e396b
OPS50: ajusta changelog ao formato prettier
2026-08-16 23:34:28 -03:00
Francisco Solla
f20305759a
OPS50: port CI e scripts de agentes do GitHub para o Forgejo
...
Workflows nativos em .forgejo/workflows/ (ci, ci-pr, agent-pool,
automerge, issue-transition, plan-issue, vercel-promote, archive),
removendo .github/workflows e .github/actions. Runner Forgejo v13 com
services Postgres por porta + DB_HOST via gateway do bridge. Libs de
agente sobre o novo cliente forgejo-api.mjs (zero dependências,
GITHUB_SERVER_URL/FORGEJO_API_URL), helpers de workflow plain-Node.
pnpm issue corrigido (await em função sync) e validado ao vivo. Testes:
forgejoApi.unit.spec.ts novo, pin do matrix do ci.yml atualizado.
Closes #1 (parte 1 — docs/issues/pool seguem na parte 2)
2026-08-16 23:32:20 -03:00
Francisco Solla
8d16b8a0cb
plan(OPS50-52): planos de intenção — CI Forgejo, DB Neon→homeserver, Blob→Garage
...
Agent PR Ready + auto-merge / ready-automerge (pull_request) Has been skipped
CI (PR) / scope (pull_request) Failing after 4s
CI (PR) / lint (pull_request) Failing after 3s
CI (PR) / format (pull_request) Failing after 4s
CI (PR) / docs-guards (pull_request) Failing after 3s
CI (PR) / plans-only-closes (pull_request) Failing after 4s
CI (PR) / typecheck (pull_request) Has been skipped
CI (PR) / knip (pull_request) Has been skipped
CI (PR) / cycles (pull_request) Has been skipped
CI (PR) / unit (pull_request) Has been skipped
CI (PR) / int (pull_request) Has been skipped
CI (PR) / build (pull_request) Has been skipped
CI (PR) / e2e (pull_request) Has been skipped
CI (PR) / checks (pull_request) Failing after 2s
Agent pool supervisor / tick (pull_request) Failing after 5s
Main merge flips claimed issues to done + in-prod / issue-done (pull_request) Failing after 3s
Promote plan-issue Related on main merge / plan-issue-ready (pull_request) Failing after 3s
CI / static (push) Failing after 3s
CI / int (push) Failing after 4s
CI / build (push) Failing after 3s
CI / e2e (2) (push) Failing after 3s
CI / checks (push) Failing after 2s
CI / deploy (push) Has been skipped
CI / requeue (push) Failing after 4s
CI / e2e (1) (push) Failing after 4s
Related #1 #2 #3
2026-08-16 21:54:25 -03:00
Francisco Solla
665157a0c0
feat(site): hero da campanha responsivo aos boards do Penpot
...
A primeira dobra da home pública agora acompanha as referências do Penpot
em 393, 768, 1024, 1280, 1366 e 1920 px. No desktop, a escala e a posição
horizontal das fotos dependem somente da largura: Solla, Lula e Wagner
ficam ancorados ao rodapé real do hero mesmo quando o conteúdo aumenta a
seção, e um palco centralizado de 1920 px preserva a proximidade entre
retrato e texto em monitores ultrawide. E2E fixa a geometria das seis
referências, transições de proporção, desktops baixos, ultrawide e os
overrides da WCAG 1.4.12; o caso de regressão também roda no Firefox.
2026-08-16 20:33:00 -03:00
Francisco Solla
98b1f5c089
style(site): formata artefatos da campanha
2026-08-16 00:50:07 -03:00
Francisco Solla
7ddc281f22
feat(site): publica home da campanha Jorge Solla 1313
2026-08-16 00:49:24 -03:00
Francisco Solla
d6df8c6360
Merge pull request #741 from fsolla/C139-contatos-pagina-da-entidade-contact-lista-desktop-cards
...
C139 — Contatos — página da entidade Contact (lista desktop + cards mobile)
2026-08-13 19:27:17 +00:00
Francisco Solla
d4342a96d7
docs(C139): plano C140 — form reset do React 19 em formulários de campanha
...
Débito colhido no simplify do C139: ~21 forms com action={submitAction}
apagam o digitado em erro (provado na sessão). Registrado como #740 com
depends em #728 .
2026-08-13 15:20:39 -03:00
Francisco Solla
a06f810a40
Merge pull request #739 from fsolla/C134-e2e-agenda-dia-hardcoded-17-de-agosto-de-2026-no-teste-
...
test(C134): e2e agenda deriva o dia do picker de término de hoje + 1 (sem data hardcoded)
2026-08-13 18:17:27 +00:00
Francisco Solla
fe0a7999a9
test(C134): e2e agenda deriva o dia do picker de término de hoje + 1 (sem data hardcoded)
...
O teste C104 clicava em '17 de agosto de 2026' fixo no picker de término;
quebrava deterministicamente ~2026-09, quando o dia sairia do grid visível.
Agora o alvo é civilDatePlusDays(formatBahiaCivilDate(new Date()), 1) —
sempre dentro do grid (dia do mês ou day 1 do mês seguinte como outside day).
Absorve também o flake pré-existente do redirect canônico ?tab=overview nos
3 sítios de toHaveURL do detalhe (mesmo regex da linha 219, C123).
2026-08-13 15:01:23 -03:00
Francisco Solla
b420598328
Merge pull request #734 from fsolla/OPS45-e2e-campaigne2efixtures-deixa-lixo-no-banco-de-teste-c
...
OPS45: e2e fixtures — purge de resíduo no claim + robustez dos int specs
2026-08-13 17:56:11 +00:00
Francisco Solla
9471c8f0aa
OPS44: changelog por entrega + guards de docs + merge por rebase
2026-08-13 17:55:22 +00:00
Francisco Solla
bf25100ed5
chore(OPS45): e2e fixtures — purge de resíduo no claim de município + robustez dos int specs ( Closes #723 )
...
O cleanup do campaignE2EFixtures estava completo em runs normais (proxy auto-own
cobre contact/stateDeputy); o lixo vinha de runs crashados, cujo cleanup nunca
roda. O claim e2e agora purga resíduo como o int já fazia, e a purga ganhou a
classe dobradinha (stateDeputy vinculados via municipality.stateDeputies + fichas
órfãs com ref-check incluindo stateDeputy — FK ON DELETE RESTRICT).
peopleList.int.spec.ts passa a varrer todas as páginas (lista global de 25/pág)
com dedupe; personDelete/peopleList usam personName() nos nomes fixos, imunes ao
invariante global de nome de dobradinha.
2026-08-13 14:18:54 -03:00
Francisco Solla
1daaaf9f4e
feat(C139): domínio de contatos — URL state, loader com vínculos e invariante de nome
...
Fase 2 do plano aprovado. Três módulos em src/utilities/contacts/:
- contactListUrl: contrato de params (q|gender|state|city|ausencia|vinculo|sort|dir|page),
canonicalize, hrefs de sort e where de fonte com 'phones.value' like (ILIKE verificado
no Postgres local).
- contactListData: loader com UM find em contact (user threadado, overrideAccess false),
vínculos (liderancas/dobradinhas/assessores/equipe) como facets sobre o conjunto
legível, filtro/sort/paginação em memória, nulos no fim (precedente B15).
- contactNameInvariant: lock contact-name:{normalized} + prefilter ILIKE + veredito
exato em memória; mensagem de conflito pt-BR.
38 testes unit novos; format + tsc limpos.
2026-08-13 14:05:24 -03:00
Francisco Solla
69044a04bc
plan(C139): nome obrigatório e único na criação, com aviso de conflito
2026-08-13 13:10:01 -03:00
Francisco Solla
9583bb16e8
plan(C139): revisão do rascunho UI — coluna CEP, Apagar no mobile, inputs sem moldura
2026-08-13 13:05:03 -03:00
Francisco Solla
dca6ccdc88
plan(C139): remove rascunho do C135 (cancelado no lote 2026-08-13)
2026-08-13 12:57:24 -03:00
Francisco Solla
977dab044e
Merge pull request #729 from fsolla/plans/plan-issue-43
...
plan(C139): Contatos - pagina da entidade Contact + cancelamento dos planos abertos de Pessoas
2026-08-13 15:56:35 +00:00
Francisco Solla
72d189cfd7
style(plan): prettier no rascunho UI do C139 + re-render PNGs
2026-08-13 12:55:24 -03:00
Francisco Solla
65a5881b2d
plan(C139): Contatos — página da entidade Contact; cancela planos abertos de Pessoas (C121/C130+/C132/C135-C138)
2026-08-13 12:53:12 -03:00
Francisco Solla
c2296701e2
style(plans): C135 — formata HTML do rascunho UI (prettier)
2026-08-13 12:05:24 -03:00
Francisco Solla
8ed3da8982
docs(plans): C135 — pessoas mobile feed/cards edge-to-edge com drawer de edição e faixa de status
2026-08-13 12:05:24 -03:00
Francisco Solla
98b03d8e91
Merge pull request #718 from fsolla/C130-pessoas-ajustes-da-tabela-desktop-contato-completo-base
...
C130 — Pessoas: ajustes da tabela desktop (contato completo, base sob o nome, caret, tooltips, Dobra em, filtro/ordenação por partido)
2026-08-12 16:20:44 -03:00
Francisco Solla
ef41e0c6a3
Merge pull request #726 from fsolla/B200-municipios-mobile-encaixes-dos-cards-densidade-alinhame
...
B200 — Municípios mobile: encaixes dos cards — densidade, alinhamento de labels e avatares (pós-B196)
2026-08-12 16:01:40 -03:00
Francisco Solla
65659bac2f
C130: ajustes da tabela desktop de pessoas (contato completo, base sob o nome, caret, tooltips, Dobra em, filtro/ordenação por partido)
2026-08-12 16:01:25 -03:00
Francisco Solla
98f8ec9b9b
Merge pull request #710 from fsolla/C128-pessoas-qualquer-pessoa-pode-assessorar-liderar-e-ou-do
...
C128 — Pessoas: qualquer pessoa pode assessorar, liderar e/ou dobrar — ciclo de vida nas tabelas pela lista
2026-08-12 15:45:55 -03:00
Francisco Solla
3ee2d83350
feat(B200): encaixes dos cards mobile de municípios — densidade, alinhamento de labels e pilha de avatares (pós-B196)
2026-08-12 15:40:02 -03:00
Francisco Solla
6f89a8ff59
fix(C128): separadores entre entradas do changelog pós-rebase (C123)
2026-08-12 15:31:01 -03:00
Francisco Solla
c0645067f1
feat(C128): ciclo de vida das capacidades pelas células de /campanha/pessoas ( Closes #695 )
...
Qualquer pessoa visível ganha/perde Assessora, Lidera e Aliada em pela
lista: a primeira cidade cria a entidade (conta staff sem credenciais
utilizáveis / liderança / dobradinha), a última remove da tabela com
confirmação destrutiva (manifest: votos+convites da liderança, conta+
autorias+assessorado da assessora; dobradinha sem diálogo). Saída
destrutiva por escopo: assessor encerra Lidera/Aliada com a capacidade
inteira na carteira; Assessora segue coordenação/candidato. Escritas
person-centric por contactId com extração dos deltas B34/B37 e da
cascata de conta (deleteCampaignUserAccount, nextFreeStubCampaignEmail,
matchers de conflito) — sem twin. commitGuard/commitWithNullOwner/
extraFormFields como opt-ins no RelationChipCell. Corrige bug latente
C116 (célula Assessora nunca salvava — contactId faltava no FormData).
Sem migration. Int: 28, unit: 6, e2e: +2.
2026-08-12 15:29:56 -03:00