AUDITORIA CONTÍNUAGIT HOOKS & AUTOMAÇÃO
Linha do Tempo e Registros
Registro cronológico imutável gerado pelos hooks do Git e da Bancada a cada commit, conversão de documento e sessão de trabalho no ciclo CBL.
Volume Auditado
1364 eventos e fatos registrados
Contribuidores
Cauê Carneiro, Fabrício Tosta, João Paulo, Júlia Clovandi, Matheus Silva
Ciclo
—
Origem
Hooks do Gitbancada-indiceautomação local
3 nov 2026 2 fatos
commit 2 fatos
- `fabdd02` — fatos 02/11: frila-docs#98 e frila-backend#342 mesclados (contrato 0.2.46) (#46) · 2 arquivos 15:01 · João Paulo Albuquerque de Almeida Marques
- `fec2bee` — Merge remote-tracking branch 'origin/main' into HEAD · 2 arquivos 15:02 · Cauê Carneiro
1 nov 2026 14 fatos
commit 2 fatos
- `4fd2954` — fix(diario): remove URL para repositorio privado frila-docs no registro do fato #98 · 1 arquivo 14:15 · João Paulo
- `c76d988` — fix(diario): remove URL para frila-backend#342 no registro do fato · 1 arquivo 14:16 · João Paulo
merge 12 fatos
- [frila-frontend#616](https://github.com/FrilaApp/frila-frontend/pull/616) — fix(testes): desacopla HistoricoDeTurnosUITests de meses com 31 dias via relogio controlado 01:33 · cauecarneiro
- [frila-frontend#620](https://github.com/FrilaApp/frila-frontend/pull/620) — feat(android): permissão POST_NOTIFICATIONS em runtime e diálogo contextual 01:41 · cauecarneiro
- [frila-frontend#621](https://github.com/FrilaApp/frila-frontend/pull/621) — test(android): auditoria semantica de cartoes, contentDescription e contraste AA 01:41 · cauecarneiro
- [frila-frontend#617](https://github.com/FrilaApp/frila-frontend/pull/617) — Android: exiba vagas em cache no feed sem conexão 01:47 · cauecarneiro
- [frila-frontend#623](https://github.com/FrilaApp/frila-frontend/pull/623) — Android: padrão de vibração e compatibilidade de canais em APIs 28 a 35 01:56 · cauecarneiro
- [frila-frontend#618](https://github.com/FrilaApp/frila-frontend/pull/618) — Android: migre filtros legados para DataStore com recuperação de corrupção 02:00 · cauecarneiro
- [frila-frontend#624](https://github.com/FrilaApp/frila-frontend/pull/624) — test(desempenho): mede bytes HTTP da sessao leve com cache vazio e documenta limites 03:22 · cauecarneiro
- [frila-frontend#626](https://github.com/FrilaApp/frila-frontend/pull/626) — test(push): adicione capturas e relatorio de truncamento no iPhone SE 03:23 · cauecarneiro
- [frila-frontend#634](https://github.com/FrilaApp/frila-frontend/pull/634) — tool(loja): adicione gerador e validacao de capturas da App Store 6,9 pol. 04:38 · cauecarneiro
- [frila-frontend#631](https://github.com/FrilaApp/frila-frontend/pull/631) — test(a11y): auditoria visual integral em AX5 para 43/43 telas e prevencao de duplicatas 06:07 · cauecarneiro
- [frila-frontend#627](https://github.com/FrilaApp/frila-frontend/pull/627) — test(designsystem): testes jvm de reduzir movimento e parametros no FrilaSkeleton 06:31 · cauecarneiro
- [frila-frontend#632](https://github.com/FrilaApp/frila-frontend/pull/632) — feat(android/desempenho): cold start e Baseline Profiles 06:49 · cauecarneiro
31 out 2026 7 fatos
commit 2 fatos
- `f4d45f7` — fato: frila-docs#98 mesclado (contrato 0.2.46: push FCM e APNs) · 1 arquivo 18:55 · João Paulo
- `b368085` — fato: frila-backend#342 mesclado (espelho contrato 0.2.46) · 1 arquivo 19:08 · João Paulo
merge 5 fatos
- frila-docs#98 — contrato 0.2.46: push FCM data-only para Android e alerta via APNs para iOS (RN15) 04:37 · jotape12-Dev
- frila-backend#342 — espelho do contrato 0.2.46 (squash 4ddc9e52) 19:07 · jotape12-Dev
- [frila-frontend#615](https://github.com/FrilaApp/frila-frontend/pull/615) — test(turnos): testes de lógica pura e refinamento de acessibilidade 22:40 · cauecarneiro
- frila-docs#111 — atualização de fatos e fontes do produto 22:43 · cauecarneiro
- [frila-backend#364](https://github.com/FrilaApp/frila-backend/pull/364) — docs: atualiza metricas e estado do backend para 31/10/2026 23:28 · cauecarneiro
30 out 2026 27 fatos
commit 5 fatos
- `049253c` — docs(diario): prepara notas diárias de 29/10 e 30/10 com fatos sincronizados (retido) · 2 arquivos 12:50 · João Paulo
- `52f8830` — docs(diario): atualiza nota de 30/10 com merge do frila-frontend#572 (retido) · 1 arquivo 14:52 · João Paulo
- `1a45bbd` — fato: frila-frontend#608 mesclado (build de Design só interno) · 1 arquivo 20:23 · Cauê Carneiro
- `be202fb` — Merge pull request #43 from FrilaApp/fato/frontend-608 · 0 arquivos 20:47 · Cauê Carneiro
- `60d88c3` — Merge branch 'origin/main' into sync/fatos-29-30-retidos · 1 arquivo 21:05 · João Paulo
frila-backend 2 fatos
- `eee07e1` — ci(backup): adiciona workflow diário de backup lógico do frila-prod (#352) · 3 arquivos 11:15 · João Paulo Albuquerque de Almeida Marques
- `2682d7c` — ci(backup): oculta nome do bucket no step summary e logs de envio · 1 arquivo 11:19 · João Paulo Albuquerque de Almeida Marques
frila-frontend 8 fatos
- `a06276ce` — docs(log): alinha o LOG-016 ao token primário existente e ao tamanho implementado · 1 arquivo 00:14 · Fabrício Tosta
- `55bb0725` — feat(android): preferências de notificação por canal e silenciamento no push (RF06) (#596) · 13 arquivos 00:35 · Matheus Silva
- `adb4d816` — fix(ui): rolagem dinâmica até o fim do catálogo em AX5 com detecção de parada e teto de segurança (#585) · 3 arquivos 00:38 · Cauê Carneiro
- `800733ae` — feat(android): geofencing passivo de aproximação de turno (RN06/RNF04) (#598) · 17 arquivos 01:54 · Matheus Silva
- `2d2602b7` — ci(testflight): direciona tags para o Frila-Prod (#540) · 8 arquivos 02:35 · Cauê Carneiro
- `b2263dfb` — docs(log): LOG-017, cartão da lista de vagas com data completa e modo efetivo (#599) · 1 arquivo 04:07 · Fabrício Tosta
- `eac2bb49` — feat(android): verificação de integridade, root e emulador (RN15) (#603) · 10 arquivos 12:04 · Matheus Silva
- `eb5c8129` — fix(autenticacao): acessibilidade da selecao de perfil na TelaCadastro iOS (#572) · 2 arquivos 14:49 · João Paulo Albuquerque de Almeida Marques
merge 10 fatos
- [frila-frontend#595](https://github.com/FrilaApp/frila-frontend/pull/595) — docs(log): LOG-016, componente de Valor com fonte geométrica, kerning fechado e cor 00:15 · Fabrício Tosta
- [frila-frontend#596](https://github.com/FrilaApp/frila-frontend/pull/596) — feat(android): preferências de notificação por canal e silenciamento no push (RF06) 00:35 · silvaaszx
- [frila-frontend#585](https://github.com/FrilaApp/frila-frontend/pull/585) — fix(ui): rolagem dinâmica até o fim do catálogo em AX5 com detecção de parada e teto de segurança 00:38 · cauecarneiro
- [frila-frontend#598](https://github.com/FrilaApp/frila-frontend/pull/598) — feat(android): geofencing passivo de aproximação de turno (RN06/RNF04) 01:54 · silvaaszx
- [frila-backend#339](https://github.com/FrilaApp/frila-backend/pull/339) — fix(email): caixa padrão da equipe passa a ser suporte@frilabr.com 02:59 · cauecarneiro
- [frila-frontend#599](https://github.com/FrilaApp/frila-frontend/pull/599) — docs(log): LOG-017, cartão da lista de vagas com data completa e modo efetivo 04:07 · Fabrício Tosta
- [frila-frontend#603](https://github.com/FrilaApp/frila-frontend/pull/603) — feat(android): verificação de integridade, root e emulador (RN15) 12:04 · silvaaszx
- [frila-frontend#572](https://github.com/FrilaApp/frila-frontend/pull/572) — fix(autenticacao): acessibilidade da selecao de perfil na TelaCadastro iOS 14:49 · jotape12-Dev
- [frila-frontend#608](https://github.com/FrilaApp/frila-frontend/pull/608) — fix(ci): marca build de Design sempre como só interno no TestFlight 20:23 · cauecarneiro
- [frila-frontend#610](https://github.com/FrilaApp/frila-frontend/pull/610) — chore(xcode): esconde esquemas de módulo no XcodeGen 22:18 · cauecarneiro
pr 1 fato
- [frila-backend#353](https://github.com/FrilaApp/frila-backend/pull/353) — ci(backup): adiciona workflow diário de backup lógico do frila-prod (#352) (aberto) 11:15 · João Paulo Albuquerque de Almeida Marques
revisao 1 fato
- [frila-backend#353](https://github.com/FrilaApp/frila-backend/pull/353#issuecomment-6526906719) — Parecer técnico de revisão independente (Aprovaria head 2682d7c) 12:45 · Centelha
29 out 2026 114 fatos
commit 21 fatos
- `7a800c4` — docs(bancada): registra merge do frila-frontend#562 · 1 arquivo 00:33 · Fabrício Tosta
- `28b26cc` — Merge pull request #31 from FrilaApp/docs/fato-frila-562 · 0 arquivos 00:50 · João Paulo Albuquerque de Almeida Marques
- `593cc81` — docs(diario): registra fatos externos e cria nota diária de 29/10 · 3 arquivos 00:54 · Brasa Quente (agy)
- `d421e16` — Merge pull request #32 from FrilaApp/docs/diario-29-10 · 0 arquivos 01:20 · João Paulo Albuquerque de Almeida Marques
- `0c01be8` — fix(a11y): calibra opacidade de texto secundário para 0.92 atendendo 4.5:1 WCAG AA (T-0008) · 2 arquivos 02:06 · Brasa Quente (agy)
- `f201d0c` — docs(tarefas): marca T-0008 como concluída e sincroniza fatos de 29/10 · 4 arquivos 08:51 · Brasa Quente (agy)
- `9b30ab6` — fix(a11y): calibra contraste de selecao, lista de dias e badges no CSS do site · 3 arquivos 09:11 · João Paulo
- `54bd916` — Merge pull request #35 from FrilaApp/docs/conclusao-t0008-e-fatos-29-10 · 0 arquivos 09:16 · João Paulo Albuquerque de Almeida Marques
- `1414f93` — Decision Lab de design do Frila: playbook multi-agente, estrutura de espelho, jornadas e fichas por tela · 13 arquivos 19:46 · Fabrício Tosta
- `c8988cb` — Decision Lab: build público espelhado (TestFlight 0.5.4) e fontes das histórias de usuário · 3 arquivos 19:52 · Fabrício Tosta
- `9087b0a` — Decision Lab: decisões de 29/10 (espelhar a cor em produção, brief no formato de Log do frontend, Android fora do espelho) e tabela das telas do build · 3 arquivos 19:53 · Fabrício Tosta
- `23ff11f` — Decision Lab: 56 capturas das telas do build 0.5.4 (simulador, dados fictícios) e tabela de telas · 58 arquivos 20:25 · Fabrício Tosta
- `d3a89ab` — Decision Lab: capturas das telas em AX5 e em modo escuro · 111 arquivos 20:47 · Fabrício Tosta
- `8073795` — Decision Lab: registra as variantes AX5 e escuro e os achados do AX5 · 2 arquivos 20:48 · Fabrício Tosta
- `331e09a` — Decision Lab: primeira jornada do profissional (do cadastro ao turno avaliado) ligada ao espelho do app · 3 arquivos 21:03 · Fabrício Tosta
- `da260db` — Decision Lab: ficha do Detalhe da vaga do profissional (achados e alternativas) · 2 arquivos 21:08 · Fabrício Tosta
- `59c301c` — Decision Lab: diretriz do header do Detalhe da vaga, regra de precedência das decisões e brief visual com a rodada 1 · 6 arquivos 21:28 · Fabrício Tosta
- `d1dd3ef` — Decision Lab: rodada 2 do brief visual do Detalhe da vaga; AX5 fora da geração de imagem · 7 arquivos 21:40 · Fabrício Tosta
- `c0370ba` — Decision Lab: brief do header do Detalhe da vaga aberto como Log do frontend e recorte de referência · 3 arquivos 21:53 · Fabrício Tosta
- `b968cbf` — Decision Lab: antipadrão do ponto médio e decisões do header (texto, título da barra, inclusos) · 4 arquivos 22:23 · Fabrício Tosta
- `839152e` — Decision Lab: estado do dia e fila de pedidos da operação · 2 arquivos 22:53 · Fabrício Tosta
frila-backend 47 fatos
- `016db2d` — docs(agentes): agentes num lugar só e revisor que recomenda (#330) · 8 arquivos 00:43 · Cauê Carneiro
- `ae427e1` — test(pgtap): cobertura direta de 12 funções privadas, 2 gatilhos de comparecimento e a view funil_confirmacoes (B-004a) (#335) · 12 arquivos 00:44 · Cauê Carneiro
- `b5d209e` — feat(fumaca): paridade develop-main e script de fumaca da v1.0 (#333) · 2 arquivos 00:44 · Cauê Carneiro
- `9549a62` — fix(testes): usar tipo canonico timestamp with time zone nas assercoes pgtap 691 e 699 (B-001) (#332) · 2 arquivos 00:44 · Cauê Carneiro
- `779ed72` — feat(bancada): ponte do Trello e laco de recuperacao, com agendador local (#331) · 9 arquivos 00:44 · Matheus Silva
- `cc706a4` — feat(metricas): medicao de RNF02/RNF03 e gerador do painel semanal (B-005) (#338) · 4 arquivos 00:45 · Cauê Carneiro
- `4efd944` — fix(demonstracao): define variaveis padrao de semeadura e propaga erro curl (#337) · 3 arquivos 00:45 · Cauê Carneiro
- `0281148` — test(operacao): teste automatizado para as ferramentas sql da operacao (Brief B-004) (#336) · 2 arquivos 00:45 · Cauê Carneiro
- `92a7fff` — docs(operacao): e-mail oficial de suporte é suporte@frilabr.com (#340) · 1 arquivo 00:46 · Cauê Carneiro
- `7b4d5ce` — chore(operacao): runbook de hotfix/rollback, anti-pausa do Prod e renovação das contas de revisão (#334) · 3 arquivos 01:32 · Cauê Carneiro
- `162f0b7` — chore(contrato): espelha contrato 0.2.46 do frila-docs (760b0b4) · 2 arquivos 01:42 · João Paulo Albuquerque de Almeida Marques
- `3108f62` — test(pgtap): cobertura de privado.contato_do_profissional e provas de mutação (6 testes) · 1 arquivo 01:45 · João Paulo Albuquerque de Almeida Marques
- `16d844b` — test(pgtap): cobertura de privado.exigir_perfil e provas de mutação (9 testes) · 1 arquivo 01:45 · João Paulo Albuquerque de Almeida Marques
- `3ac0087` — test(pgtap): cobertura de privado.ultima_no_teto e provas de mutação (6 testes) · 1 arquivo 01:47 · João Paulo Albuquerque de Almeida Marques
- `e4ed776` — test(pgtap): cobertura de privado.contato_do_profissional e provas de mutação (6 testes) (#344) · 1 arquivo 02:45 · João Paulo Albuquerque de Almeida Marques
- `a1ec7fc` — test(pgtap): cobertura de privado.exigir_perfil e provas de mutação (9 testes) (#343) · 1 arquivo 02:45 · João Paulo Albuquerque de Almeida Marques
- `e0f4fef` — test(pgtap): cobertura de privado.ultima_no_teto e provas de mutação (6 testes) (#345) · 1 arquivo 02:46 · João Paulo Albuquerque de Almeida Marques
- `3c6904f` — test(pgtap): cobertura de privado.concluir_pedido_de_exclusao e prova de mutação (5 testes) · 1 arquivo 08:55 · João Paulo Albuquerque de Almeida Marques
- `3488d75` — test(pgtap): cobertura do gatilho privado.validar_ponto_base_profissional e provas de mutação (6 testes) · 1 arquivo 08:56 · João Paulo Albuquerque de Almeida Marques
- `65b238b` — test(pgtap): cobertura de privado.usuario_do_profissional e provas de mutação (6 testes) · 1 arquivo 08:57 · João Paulo Albuquerque de Almeida Marques
- `0ff803f` — test: auditoria RLS das 22 tabelas public com isolamento cruzado e mutacao (777) · 1 arquivo 09:13 · João Paulo Albuquerque de Almeida Marques
- `bb434a2` — test: testes Deno de podarMapIp, createSignedJwt e classificarErro · 4 arquivos 09:18 · João Paulo Albuquerque de Almeida Marques
- `ff8cbd6` — test: cobertura pgTAP de vaga_cancelada_recolhe_confirmadas, cancelamento_do_turno e pode_avaliar (778-780) · 3 arquivos 09:22 · João Paulo Albuquerque de Almeida Marques
- `4afc4c8` — test: cobertura pgTAP de travar_candidatura, remover_token_fcm e gravar_disponibilidade (781-783) · 3 arquivos 09:26 · João Paulo Albuquerque de Almeida Marques
- `8c979bc` — test: cobertura pgTAP de gravar_funcoes, texto_da_vaga_oculto e estabelecimento_da_posicao (784-786) · 3 arquivos 09:29 · João Paulo Albuquerque de Almeida Marques
- `2f760de` — test: cobertura pgTAP de ponto_em_json, ocupa_posicao_na_vaga, mesma_populacao e conta_de_demonstracao (787-790) · 4 arquivos 09:32 · João Paulo Albuquerque de Almeida Marques
- `1daac7f` — test(pgtap): cobertura do gatilho privado.validar_ponto_base_profissional e provas de mutação (6 testes) (#347) · 1 arquivo 09:53 · João Paulo Albuquerque de Almeida Marques
- `1454934` — test(pgtap): cobertura de privado.concluir_pedido_de_exclusao e prova de mutação (5 testes) (#346) · 1 arquivo 09:57 · João Paulo Albuquerque de Almeida Marques
- `2ba1c5c` — test(pgtap): cobertura de privado.usuario_do_profissional e provas de mutação (6 testes) (#348) · 1 arquivo 11:00 · João Paulo Albuquerque de Almeida Marques
- `36a160c` — fix(edge): aplicar rate limit consolidado para IP desconhecido em entrar-demonstracao · 2 arquivos 11:06 · João Paulo Albuquerque de Almeida Marques
- `725a077` — fix(edge): aplicar rate limit consolidado para IP desconhecido em entrar-demonstracao (#349) · 2 arquivos 14:01 · João Paulo Albuquerque de Almeida Marques
- `c35b2b5` — test(privado): cobre privado.contem_contato_ou_link e imunidade a falsos positivos · 1 arquivo 14:47 · Cauê Carneiro
- `eb08f86` — test(privado): cobre privado.documento_valido para CPF e CNPJ · 1 arquivo 14:48 · Cauê Carneiro
- `8018adc` — test(privado): cobre privado.normalizar e provas de mutação · 1 arquivo 14:49 · Cauê Carneiro
- `dfa3f43` — test(privado): cobre privado.bloqueado_com_estabelecimento e privado.eh_membro · 1 arquivo 14:52 · Cauê Carneiro
- `3d58170` — test(privado): cobre versao_em_partes, ponto_do_json e ponto_em_json · 1 arquivo 14:53 · Cauê Carneiro
- `7796b9b` — docs(regras): o dono do PR decide e mescla; revisão é conselho e nada trava o fluxo (v4) · 1 arquivo 15:14 · Cauê Carneiro
- `b7f568f` — test(privado): expande 777 com e-mail genérico, máscara R$ e prova de mutações (R-002) · 1 arquivo 15:14 · Cauê Carneiro
- `7b67a02` — test(privado): cobre CNPJ com resto 1 no DV1 e prova mutação (R-002) · 1 arquivo 15:16 · Cauê Carneiro
- `880737f` — test(privado): cobre membro operador e prova mutante de papel (R-002) · 1 arquivo 15:17 · Cauê Carneiro
- `a424e3c` — test(privado): valida status HTTP 422 e arredondamento PostGIS (R-002) · 1 arquivo 15:19 · Cauê Carneiro
- `67b4ef5` — test(privado): cobre bloqueio com membro operador (R-004) · 1 arquivo 15:47 · Cauê Carneiro
- `898a79c` — test(privado): valida status HTTP 422 no ramo de campo obrigatório (R-004) · 1 arquivo 15:48 · Cauê Carneiro
- `7453670` — test(privado): cobre máscara de valor com sufixo reais e 8+ dígitos (R-004) · 1 arquivo 15:49 · Cauê Carneiro
- `bafe71f` — test(privado): rejeita documento cercado por espaços e barra btrim (R-004) · 1 arquivo 15:51 · Cauê Carneiro
- `f060f43` — test(privado): cobre preservação de dígito 9 na normalização alfanumérica (R-004) · 1 arquivo 15:53 · Cauê Carneiro
- `ce2f6b6` — ci(auth): conferência remota automática da configuração de Auth (B-008) (#351) · 8 arquivos 18:26 · Cauê Carneiro
merge 46 fatos
- [frila-frontend#562](https://github.com/FrilaApp/frila-frontend/pull/562) — docs(governanca): marca o andar alinhamento como suspenso no AGENTS.md 00:31 · Fabrício Tosta
- [frila-frontend#530](https://github.com/FrilaApp/frila-frontend/pull/530) — feat(android): comprovante de check-in com carimbo temporal e hash verificador (RN06/RN22) 00:42 · silvaaszx
- [frila-frontend#533](https://github.com/FrilaApp/frila-frontend/pull/533) — feat(android): geocodificação reversa offline com cache de bairros e RAs do DF (RN02) 00:42 · silvaaszx
- [frila-frontend#542](https://github.com/FrilaApp/frila-frontend/pull/542) — feat(android/perfil): visualização e edição de bio profissional e especialidades (RF02) 00:42 · silvaaszx
- [frila-frontend#556](https://github.com/FrilaApp/frila-frontend/pull/556) — feat(android/vagas): filtro por faixa de remuneração líquida por hora (RF05/RN01) 00:43 · silvaaszx
- [frila-frontend#561](https://github.com/FrilaApp/frila-frontend/pull/561) — feat(android): relatorio de ocorrencia no turno com anexo fotografico (RF12/RN07) 00:43 · silvaaszx
- [frila-backend#330](https://github.com/FrilaApp/frila-backend/pull/330) — docs(agentes): agentes num lugar só e revisor que recomenda 00:43 · cauecarneiro
- [frila-backend#331](https://github.com/FrilaApp/frila-backend/pull/331) — feat(bancada): ponte do Trello e laco de recuperacao, com agendador local 00:44 · silvaaszx
- [frila-backend#332](https://github.com/FrilaApp/frila-backend/pull/332) — fix(testes): usar tipo canonico timestamp with time zone nas assercoes pgtap 691 e 699 (B-001) 00:44 · cauecarneiro
- [frila-backend#333](https://github.com/FrilaApp/frila-backend/pull/333) — feat(fumaca): paridade develop-main e script de fumaca da v1.0 00:44 · cauecarneiro
- [frila-backend#335](https://github.com/FrilaApp/frila-backend/pull/335) — test(pgtap): cobertura direta de 12 funções privadas, 2 gatilhos de comparecimento e a view funil_confirmacoes (B-004a) 00:44 · cauecarneiro
- [frila-backend#336](https://github.com/FrilaApp/frila-backend/pull/336) — test(operacao): teste automatizado para as ferramentas sql da operacao (Brief B-004) 00:45 · cauecarneiro
- [frila-backend#337](https://github.com/FrilaApp/frila-backend/pull/337) — fix(demonstracao): define variaveis padrao de semeadura e propaga erro curl 00:45 · cauecarneiro
- [frila-backend#338](https://github.com/FrilaApp/frila-backend/pull/338) — feat(metricas): medicao de RNF02/RNF03 e gerador do painel semanal (B-005) 00:45 · cauecarneiro
- [frila-backend#340](https://github.com/FrilaApp/frila-backend/pull/340) — docs(operacao): e-mail oficial de suporte é suporte@frilabr.com 00:46 · cauecarneiro
- [frila-frontend#532](https://github.com/FrilaApp/frila-frontend/pull/532) — docs: move evidencias/ para docs/evidencias/ 00:46 · cauecarneiro
- [frila-frontend#541](https://github.com/FrilaApp/frila-frontend/pull/541) — docs(push): detalha roteiro de teste da extensão de notificação 00:46 · cauecarneiro
- [frila-frontend#544](https://github.com/FrilaApp/frila-frontend/pull/544) — docs(release): procedimento de reversao de release do app iOS (P-005) 00:47 · cauecarneiro
- [frila-frontend#545](https://github.com/FrilaApp/frila-frontend/pull/545) — docs(regressao): linha de base do XCUITest e pré-auditoria da regressão final 00:47 · cauecarneiro
- [frila-frontend#547](https://github.com/FrilaApp/frila-frontend/pull/547) — docs(lancamento): atualiza documentos de lancamento do iOS com evidencias de 28/10 00:47 · cauecarneiro
- [frila-frontend#549](https://github.com/FrilaApp/frila-frontend/pull/549) — docs(a11y): linha de base de acessibilidade e desempenho no simulador 00:47 · cauecarneiro
- [frila-frontend#551](https://github.com/FrilaApp/frila-frontend/pull/551) — docs(ficha): simplifica a redação da pendência de aprovação dos textos 00:48 · cauecarneiro
- [frila-frontend#552](https://github.com/FrilaApp/frila-frontend/pull/552) — docs(suporte): e-mail oficial de suporte é suporte@frilabr.com 00:48 · cauecarneiro
- [frila-frontend#554](https://github.com/FrilaApp/frila-frontend/pull/554) — docs(ajuda): tira o histórico de delegação das linhas "sem tela" 00:48 · cauecarneiro
- [frila-frontend#555](https://github.com/FrilaApp/frila-frontend/pull/555) — docs(piloto): alinha suporte, calibração e política de builds de loja 00:48 · cauecarneiro
- [frila-backend#334](https://github.com/FrilaApp/frila-backend/pull/334) — chore(operacao): runbook de hotfix/rollback, anti-pausa do Prod e renovação das contas de revisão 01:32 · jotape12-Dev
- [frila-frontend#564](https://github.com/FrilaApp/frila-frontend/pull/564) — test(android): amplia cobertura de regras para comprovante, valor-hora e tela de ocorrencia 01:51 · jotape12-Dev
- [Bancada#22](https://github.com/FrilaApp/Bancada/pull/22) — fix(a11y): corrige contraste de elementos em row highlight (T-0008) 01:52 · jotape12-Dev
- [frila-backend#343](https://github.com/FrilaApp/frila-backend/pull/343) — test: cobertura pgTAP de privado.exigir_perfil e provas de mutação (9 testes) 02:45 · jotape12-Dev
- [frila-backend#344](https://github.com/FrilaApp/frila-backend/pull/344) — test: cobertura pgTAP de privado.contato_do_profissional e provas de mutação (6 testes) 02:45 · jotape12-Dev
- [frila-backend#345](https://github.com/FrilaApp/frila-backend/pull/345) — test: cobertura pgTAP de privado.ultima_no_teto e provas de mutação (6 testes) 02:46 · jotape12-Dev
- [frila-frontend#563](https://github.com/FrilaApp/frila-frontend/pull/563) — feat(design): adiciona modo de inspeção contextual 03:52 · Fabrício Tosta
- [frila-frontend#565](https://github.com/FrilaApp/frila-frontend/pull/565) — docs(estado): registra o modo debug de design 03:55 · Fabrício Tosta
- [Bancada#34](https://github.com/FrilaApp/Bancada/pull/34) — fix(a11y): calibra contraste de texto secundário para 4.5:1 WCAG AA (T-0008) 07:53 · jotape12-Dev
- [frila-frontend#566](https://github.com/FrilaApp/frila-frontend/pull/566) — feat(ios): icone alpha da build com Liquid Glass (AppIcon.icon) 08:08 · Fabrício Tosta
- [frila-frontend#583](https://github.com/FrilaApp/frila-frontend/pull/583) — feat(android/perfil): historico de remuneracoes e repasses acumulados (RF16) 15:04 · silvaaszx
- [frila-docs#102](https://github.com/FrilaApp/frila-docs/pull/102) — docs(juridico): registro das operacoes, canal do titular e plano de incidente 15:39 · cauecarneiro
- [frila-frontend#586](https://github.com/FrilaApp/frila-frontend/pull/586) — feat(android/turnos): historico de turnos concluidos com paginacao (RF16) 15:45 · silvaaszx
- [frila-docs#100](https://github.com/FrilaApp/frila-docs/pull/100) — docs: regras do time num AGENTS.md único (fonte dos três repositórios) 15:46 · jotape12-Dev
- [frila-frontend#584](https://github.com/FrilaApp/frila-frontend/pull/584) — fix(ios): corrige regressão de UI na tela de detalhe e atualiza testes de perfil para LOG-007 17:03 · jotape12-Dev
- [frila-frontend#587](https://github.com/FrilaApp/frila-frontend/pull/587) — ci(testflight): adota assinatura manual com perfis App Store e elimina criacao de certificados 17:06 · cauecarneiro
- [frila-frontend#588](https://github.com/FrilaApp/frila-frontend/pull/588) — feat(android/perfil): visualizacao e exportacao de extrato de pagamentos em PDF (RF16/RNF10) 19:55 · silvaaszx
- [frila-frontend#590](https://github.com/FrilaApp/frila-frontend/pull/590) — feat(android/perfil): upload e compressão de foto de perfil com preview defensivo (RF03/RNF04) 20:32 · silvaaszx
- [frila-frontend#591](https://github.com/FrilaApp/frila-frontend/pull/591) — feat(android/core-seguranca): biometria opcional via BiometricPrompt para desbloqueio de sessão (RN15) 22:07 · silvaaszx
- [frila-frontend#593](https://github.com/FrilaApp/frila-frontend/pull/593) — feat(android/core-rede): timeout adaptativo e retry exponencial com idempotência estrita (RNF01/RNF04) 22:34 · silvaaszx
- [frila-frontend#594](https://github.com/FrilaApp/frila-frontend/pull/594) — feat(android/designsystem): shimmer leve e skeleton loaders nas listas (RNF10/RNF04) 23:42 · silvaaszx
28 out 2026 19 fatos
commit 9 fatos
- `83333b0` — Funde o main depois do merge do PR #25 · 2 arquivos 00:19 · Matheus Silva
- `b0cefdf` — Merge pull request #26 from FrilaApp/bancada/ponte-trello-automatica · 0 arquivos 00:25 · Matheus Silva
- `86c41fe` — fix(doc-harness): adiciona frontmatter YAML aos 3 documentos jurídicos do C18 · 3 arquivos 16:05 · Matheus Silva
- `83b52a2` — feat(site): resiliência de publicação, separação de gravidade e alarme · 15 arquivos 16:06 · Brasa Quente (agy)
- `c8d6e60` — Merge pull request #27 from FrilaApp/fix/frontmatter-c18-juridico · 0 arquivos 16:18 · Matheus Silva
- `ef63d4b` — fix(ci): compatibilidade de captura de log com sh no container · 1 arquivo 16:43 · Brasa Quente (agy)
- `2374b74` — Merge pull request #28 from FrilaApp/feat/site-resiliente · 0 arquivos 16:55 · João Paulo Albuquerque de Almeida Marques
- `ce15be5` — docs(diario): registra fatos externos e cria nota diária de 28/10 · 3 arquivos 18:04 · Brasa Quente (agy)
- `2100cd8` — Merge pull request #29 from FrilaApp/docs/diario-28-10 · 0 arquivos 19:03 · João Paulo Albuquerque de Almeida Marques
merge 9 fatos
- [frila-frontend#560](https://github.com/FrilaApp/frila-frontend/pull/560) — docs: regra de enviar todo trabalho para a Bancada no mesmo dia 17:50 · jotape12-Dev
- [frila-backend#321](https://github.com/FrilaApp/frila-backend/pull/321) — fix(infra): adiciona retentativas com recuo exponencial no aplicar-remoto 17:51 · silvaaszx
- [frila-backend#322](https://github.com/FrilaApp/frila-backend/pull/322) — test(pgtap): adiciona cobertura para privado.eh_administrador 17:52 · jotape12-Dev
- [frila-backend#323](https://github.com/FrilaApp/frila-backend/pull/323) — test(pgtap): adiciona cobertura para gatilho turno_checkin_nunca_em_posicao_cancelada 17:52 · jotape12-Dev
- [frila-backend#324](https://github.com/FrilaApp/frila-backend/pull/324) — test(pgtap): adiciona cobertura para privado.posicao_candidatavel 17:52 · jotape12-Dev
- [frila-backend#325](https://github.com/FrilaApp/frila-backend/pull/325) — test: cobertura pgTAP de privado.contato_do_estabelecimento (3 testes) 17:53 · jotape12-Dev
- [frila-backend#326](https://github.com/FrilaApp/frila-backend/pull/326) — test(email): cobertura unitária de validarTextoCabecalhoSmtp contra injeção de cabeçalhos (3 testes) 17:53 · jotape12-Dev
- [frila-backend#327](https://github.com/FrilaApp/frila-backend/pull/327) — test: cobertura pgTAP de privado.candidatura_em_json (3 testes) 17:53 · jotape12-Dev
- [frila-backend#328](https://github.com/FrilaApp/frila-backend/pull/328) — test: cobertura pgTAP de privado.operacao_exigir_operador e provas de mutação (7 testes) 17:54 · jotape12-Dev
pr 1 fato
- [frila-backend#341](https://github.com/FrilaApp/frila-backend/pull/341) — docs: regra de enviar todo trabalho para a Bancada no mesmo dia 17:47 · jotape12-Dev
27 out 2026 17 fatos
commit 10 fatos
- `2cd8a5d` — docs(diario): atualiza notas de 26/10 e cria a de 27/10 (PRs de cobertura, #528, #529) · 3 arquivos 16:01 · João Paulo
- `58c95d0` — Escreve a narrativa de 29/09 a 08/10, 20/10 e 26/10 a partir dos fatos do log (T-0025) · 10 arquivos 16:08 · Matheus Silva
- `d519de8` — Atualiza T-0025 com o que esta em andamento em 27/10 e promove as iteracoes ao Roadmap · 2 arquivos 16:08 · Matheus Silva
- `1f28885` — Merge pull request #24 from FrilaApp/docs/atualizacoes-27-10 · 0 arquivos 16:08 · João Paulo Albuquerque de Almeida Marques
- `5f6c3da` — Funde o main (PR #24) com uniao das notas de 26/10 e 27/10 · 1 arquivo 16:23 · Matheus Silva
- `31b5319` — Reflete o quadro na T-0025: 62 cartoes de Backend concluidos de 26/09 a 27/10, com data, PR e autor · 5 arquivos 17:06 · Matheus Silva
- `fd811b5` — Abre na T-0025 o espaco do estado do quadro, preenchido pela ponte · 1 arquivo 17:31 · Matheus Silva
- `4b39096` — docs(diario): ajusta nota de 12/10 e documenta reproducao do quadro na T-0025 · 2 arquivos 17:38 · Matheus Silva
- `b23697e` — docs(diario): remove mencoes a terceiros em 12/10 e adiciona before na doc da T-0025 · 2 arquivos 17:52 · Matheus Silva
- `2ebd158` — Merge pull request #25 from FrilaApp/bancada/matheus-29-09-a-26-10 · 0 arquivos 17:54 · Matheus Silva
medida 6 fatos
- PR #321 do frila-backend segue aberto contra develop em 27/10, com retentativas e recuo exponencial no aplicar-remoto (commit efa6b19, de 26/10). Medido hoje com gh pr view 321: cinco portoes verdes — Migracoes e pgTAP, O contrato acompanhou o codigo, Migracoes sem colisao de versao, Plano do caminho quente com o volume do DF e Testes das Edge Functions — e um vermelho, Contrato em dia com o Frila, que e o portao que depende do FRILA_DOCS_TOKEN. mergeStateStatus UNSTABLE 16:04 · Matheus Silva
- PR #168 do frila-backend, a fotografia do ESTADO.md de 08/10, foi fechado sem merge em 11/10 as 06:53Z, com um comentario. Medido hoje com gh pr view 168: mergedAt nulo, state CLOSED. O trabalho do commit b4fc9b3 nao entrou na develop por esse caminho 16:04 · Matheus Silva
- Quadro do Trello medido em 27/10 com ./scripts/trello.sh: 23 cartoes em Andamento e 3 em Revisao. Nenhum cartao em Andamento tem etiqueta Backend — as etiquetas sao Infra, iOS, Design, Produto, QA, Juridico e Android. Em Revisao, dois sao Produto + Backend (Oxh0AWE7, operacao da Equipe Frila, e 1MK1CGyF, painel de metricas do piloto) e um e Produto + Design (Q4ZZwnMR, testes de usabilidade no TestFlight). O marco mais proximo e Kd0RVh9q, TestFlight 0.5 em 29/10 16:04 · Matheus Silva
- Sincronizacao da Bancada medida em 27/10: dez commits do Matheus Silva em frila-backend entre 29/09 e 26/10 nao tinham fato no log e foram registrados hoje pela ponte. No mesmo periodo, 154 commits de outras pessoas tambem estao sem fato, a maioria entre 14 e 20/10 — nao foram registrados nesta passagem, por estarem fora do escopo desta atualizacao 16:04 · Matheus Silva
- Quadro do Trello comparado com a Bancada em 27/10, pela API (acoes updateCard com listAfter desde 26/09): 400 movimentos de lista no periodo, 190 deles para Concluido, e 62 cartoes distintos com etiqueta Backend concluidos entre 26/09 e 27/10. Da conferencia por shortLink: 15 estavam citados na narrativa (notas, T-0025 ou Roadmap), 26 existiam so no log de fatos sem narrativa, e 21 nao apareciam em lugar nenhum do vault. Nenhum dos 62 estava citado na T-0025. Em Andamento nao ha cartao com etiqueta Backend; em Revisao ha dois, Oxh0AWE7 e 1MK1CGyF, os dois ja citados na T-0025 17:05 · Matheus Silva
- Medido em 27/10 por que a ponte Trello/Bancada nao roda desde 28/09: nao existe automacao nenhuma, e nunca existiu. crontab -l responde 'no crontab for matheussilva'; ~/Library/LaunchAgents nao tem agente de bancada nem de frila; grep -rl bancada-sync no frila-backend acha so README.md, CLAUDE.md e o proprio scripts/bancada-sync.sh, e nenhum dos tres workflows de .github/workflows (ci.yml, ensaio-backup.yml, entrega.yml) o chama; nenhum hook de git o chama. O CLAUDE.md do backend o descreve como passo manual, 'No fim de cada dia de trabalho'. Descartado com medicao: os hooks do vault estao instalados (core.hooksPath = doc-harness/scripts/git-hooks, pasta existe, e o pre-push rodou hoje) e a ponte resolve o vault certo (--seco imprime Vault: BlendOPS/monorepo/doc-harness, o vivo; o doc-harness avulso para em 23/09, nao recebeu escrita errada). Consequencia medida: os 62 movimentos de cartao de 26/09 a 27/10 so entraram no log hoje, e 154 commits de outras pessoas no frila-backend seguem sem fato 17:05 · Matheus Silva
merge 1 fato
- [frila-frontend#529](https://github.com/FrilaApp/frila-frontend/pull/529) — docs(ios): documenta build no simulador sem conta paga 00:57 · jotape12-Dev
26 out 2026 23 fatos
commit 4 fatos
- `d7d1623` — fix(a11y): corrige contraste de elementos em row highlight (T-0008) · 3 arquivos 20:55 · Brasa Quente (agy)
- `d37ee3d` — docs(diario): rascunha atualizações diárias e registros de 14 a 26/10 · 20 arquivos 21:03 · Brasa Quente (agy)
- `bb0bc17` — fix(diario): remove menções ao repositório privado frila-docs e itens jurídicos · 11 arquivos 21:14 · Brasa Quente (agy)
- `848a1b5` — Merge pull request #23 from FrilaApp/docs/atualizacoes-e-registros-14-a-26-10 · 0 arquivos 21:15 · João Paulo Albuquerque de Almeida Marques
frila-backend 1 fato
- `efa6b19` — fix(infra): adiciona retentativas com recuo exponencial e captura de falhas de rede no aplicar-remoto · 1 arquivo 17:38 · Matheus Silva
merge 9 fatos
- [frila-frontend#519](https://github.com/FrilaApp/frila-frontend/pull/519) — fix(ios): confirmar saída da conta em todos os pontos 00:21 · cauecarneiro
- [frila-frontend#521](https://github.com/FrilaApp/frila-frontend/pull/521) — feat(design): aplica tokens e dynamic type em CadastroEstabelecimento (passo 8.15) 01:22 · jotape12-Dev
- [frila-frontend#522](https://github.com/FrilaApp/frila-frontend/pull/522) — docs(governanca): registra lições e playbooks por tipo de Log 02:15 · Fabrício Tosta
- [frila-frontend#523](https://github.com/FrilaApp/frila-frontend/pull/523) — style(entrada): refina hero e composição com acento terracota 05:19 · Fabrício Tosta
- [frila-frontend#524](https://github.com/FrilaApp/frila-frontend/pull/524) — feat(android): contagem regressiva ao vivo para inicio do turno (RF11/RN06) 12:38 · silvaaszx
- [frila-frontend#525](https://github.com/FrilaApp/frila-frontend/pull/525) — feat(android): componentes de feedback e empty state (RNF10) 17:33 · silvaaszx
- [frila-frontend#526](https://github.com/FrilaApp/frila-frontend/pull/526) — feat(android): pull to refresh nativo no feed de vagas (RNF10) 18:39 · silvaaszx
- [frila-frontend#528](https://github.com/FrilaApp/frila-frontend/pull/528) — feat(android): validação de CPF e telefone com acessibilidade ao vivo (RF01/RF02) 22:15 · silvaaszx
- [frila-backend#320](https://github.com/FrilaApp/frila-backend/pull/320) — feat(push): payload data-only para Android e alerta via APNs para iOS (RN15) 23:14 · jotape12-Dev
pr 9 fatos
- [frila-backend#321](https://github.com/FrilaApp/frila-backend/pull/321) — fix(infra): adiciona retentativas com recuo exponencial no aplicar-remoto (aberto) 17:38 · silvaaszx
- [frila-backend#322](https://github.com/FrilaApp/frila-backend/pull/322) — test(pgtap): adiciona cobertura para privado.eh_administrador (aberto) 20:36 · jotape12-Dev
- [frila-backend#323](https://github.com/FrilaApp/frila-backend/pull/323) — test(pgtap): adiciona cobertura para gatilho turno_checkin_nunca_em_posicao_cancelada (aberto) 20:44 · jotape12-Dev
- [frila-backend#324](https://github.com/FrilaApp/frila-backend/pull/324) — test(pgtap): adiciona cobertura para privado.posicao_candidatavel (aberto) 20:47 · jotape12-Dev
- [frila-backend#325](https://github.com/FrilaApp/frila-backend/pull/325) — test: cobertura pgTAP de privado.contato_do_estabelecimento (3 testes) (aberto) 20:59 · jotape12-Dev
- [frila-backend#326](https://github.com/FrilaApp/frila-backend/pull/326) — test(email): cobertura unitária de validarTextoCabecalhoSmtp contra injeção de cabeçalhos (3 testes) (aberto) 21:02 · jotape12-Dev
- [frila-backend#327](https://github.com/FrilaApp/frila-backend/pull/327) — test: cobertura pgTAP de privado.candidatura_em_json (3 testes) (aberto) 21:05 · jotape12-Dev
- [frila-backend#328](https://github.com/FrilaApp/frila-backend/pull/328) — test: cobertura pgTAP de privado.operacao_exigir_operador e provas de mutação (7 testes) (aberto) 21:14 · jotape12-Dev
- [frila-frontend#527](https://github.com/FrilaApp/frila-frontend/pull/527) — [RASCUNHO] feat(android): mapeamento de canais de push conforme contrato 0.2.46 (aberto) 21:23 · jotape12-Dev
25 out 2026 3 fatos
merge 3 fatos
- [frila-frontend#513](https://github.com/FrilaApp/frila-frontend/pull/513) — fix(design-system): contraste WCAG AA em chips e presets, leitura fonetica e limpeza de gestos (#503) 00:18 · cauecarneiro
- [frila-frontend#518](https://github.com/FrilaApp/frila-frontend/pull/518) — Hi-Fi: retoques finais (Excluir conta, Meu turno, botão 44pt) e testes de critérios do push 14:25 · cauecarneiro
- [frila-frontend#520](https://github.com/FrilaApp/frila-frontend/pull/520) — fix(cadastro): limita espera da verificação de idade 23:36 · Fabrício Tosta
24 out 2026 24 fatos
merge 24 fatos
- [frila-frontend#493](https://github.com/FrilaApp/frila-frontend/pull/493) — feat(enxerto): fluxo Publicar vaga do FrilaLowPhase atrás de flag DEBUG 03:59 · cauecarneiro
- [frila-frontend#494](https://github.com/FrilaApp/frila-frontend/pull/494) — feat(ios): enxerto do estúdio de criação de vagas do FrilaLowPhase (DEBUG) 05:16 · cauecarneiro
- [frila-frontend#495](https://github.com/FrilaApp/frila-frontend/pull/495) — docs(agentes): adiciona AGENTS.md com a orquestração do andar alinhamento 05:39 · Fabrício Tosta
- [frila-frontend#496](https://github.com/FrilaApp/frila-frontend/pull/496) — docs(agentes): libera a troca de texto em asserções de teste de UI 05:41 · Fabrício Tosta
- [frila-frontend#497](https://github.com/FrilaApp/frila-frontend/pull/497) — docs(agentes): libera entradas novas no catálogo de textos 06:37 · Fabrício Tosta
- [frila-frontend#499](https://github.com/FrilaApp/frila-frontend/pull/499) — feat(detalhe-vaga): apresenta estados e início do turno (LOG-001) 07:20 · Fabrício Tosta
- [frila-frontend#500](https://github.com/FrilaApp/frila-frontend/pull/500) — docs(agentes): acrescenta a demo pós-iteração no simulador 08:03 · Fabrício Tosta
- [frila-frontend#501](https://github.com/FrilaApp/frila-frontend/pull/501) — docs(agentes): separa os simuladores de demo e de gate 08:12 · Fabrício Tosta
- [frila-frontend#502](https://github.com/FrilaApp/frila-frontend/pull/502) — feat(minhas-vagas): alinhe apresentação ao MidFi 08:21 · Fabrício Tosta
- [frila-frontend#498](https://github.com/FrilaApp/frila-frontend/pull/498) — feat(hifi): Estúdio de Criação vira o Publicar vaga do contratante (Fase 1) 12:55 · cauecarneiro
- [frila-frontend#503](https://github.com/FrilaApp/frila-frontend/pull/503) — Hi-Fi Fase 2: a fundação (design system numa camada só) 14:34 · cauecarneiro
- [frila-frontend#505](https://github.com/FrilaApp/frila-frontend/pull/505) — Hi-Fi Fase 3 (contratante): escala suíça em FrilaTipo, cartão da origem em cartaoFrila(), TelaPublicarVaga removida 16:01 · cauecarneiro
- [frila-frontend#507](https://github.com/FrilaApp/frila-frontend/pull/507) — feat(hifi): aparencia hi-fi em suporte, cancelamento e push (fatia 8) 17:10 · cauecarneiro
- [frila-frontend#509](https://github.com/FrilaApp/frila-frontend/pull/509) — feat(hifi): estados comuns, licenças, atualização e navegação com design Hi-Fi (fatia 9) 17:57 · cauecarneiro
- [frila-frontend#508](https://github.com/FrilaApp/frila-frontend/pull/508) — Hi-Fi Fase 3 (profissional 1): placa de museu no feed, detalhe e candidatura 18:52 · cauecarneiro
- [frila-frontend#504](https://github.com/FrilaApp/frila-frontend/pull/504) — feat(hifi): aplica design Hi-Fi em conta suspensa, exclusão, equipe e segurança (fatia 7) 19:24 · cauecarneiro
- [frila-frontend#506](https://github.com/FrilaApp/frila-frontend/pull/506) — feat(hifi): autenticação e perfis da conta com design Hi-Fi (fatia 6) 19:48 · cauecarneiro
- [frila-frontend#510](https://github.com/FrilaApp/frila-frontend/pull/510) — Hi-Fi Fase 3 (profissional 2): meus turnos, meu turno, presença, avaliação e perfil profissional 20:08 · cauecarneiro
- [frila-frontend#512](https://github.com/FrilaApp/frila-frontend/pull/512) — docs(ios): passo a passo do Hi-Fi no Xcode 20:44 · cauecarneiro
- [frila-frontend#511](https://github.com/FrilaApp/frila-frontend/pull/511) — fix(perfil): aplica largura total nos divisores e secoes de historico de turnos 21:40 · cauecarneiro
- [frila-frontend#517](https://github.com/FrilaApp/frila-frontend/pull/517) — docs(hifi): consolida referência e estado da conversão 22:06 · Fabrício Tosta
- [frila-frontend#516](https://github.com/FrilaApp/frila-frontend/pull/516) — docs(governanca): atualiza referência Hi-Fi e registra lições 22:06 · Fabrício Tosta
- [frila-frontend#514](https://github.com/FrilaApp/frila-frontend/pull/514) — fix(profissional): alinha barra inferior do detalhe da vaga em linha unica no tamanho padrao 22:44 · cauecarneiro
- [frila-frontend#515](https://github.com/FrilaApp/frila-frontend/pull/515) — fix(profissional): aplica largura total nos divisores de meu turno, meus turnos e cartao da vaga 23:19 · cauecarneiro
23 out 2026 25 fatos
entrega 1 fato
- cartao 7XS6MQGg movido para Concluido no quadro: S2 · Backend · Motor de despacho: elegibilidade, fila e agendador · PR #27 (closed), #39 (closed) — medido em 27/10 na API do Trello, acoes updateCard com listAfter 18:00 · Matheus Silva
merge 24 fatos
- [frila-frontend#468](https://github.com/FrilaApp/frila-frontend/pull/468) — feat(design): aplica design system em Perfis e Apoio (passo 8.8) 01:20 · jotape12-Dev
- [frila-frontend#469](https://github.com/FrilaApp/frila-frontend/pull/469) — feat(design): aplica design system em Componentes (passo 8.9) 02:37 · jotape12-Dev
- [frila-frontend#477](https://github.com/FrilaApp/frila-frontend/pull/477) — feat(android): support dynamic Material 3 theme 02:59 · silvaaszx
- [frila-frontend#470](https://github.com/FrilaApp/frila-frontend/pull/470) — docs(ds): tabela formal de contraste WCAG AA dos tokens e teste unitário de regressão 03:16 · cauecarneiro
- [frila-frontend#478](https://github.com/FrilaApp/frila-frontend/pull/478) — feat(android): complete TalkBack accessibility for RNF10 03:19 · silvaaszx
- [frila-frontend#479](https://github.com/FrilaApp/frila-frontend/pull/479) — feat(android): secure session storage with EncryptedSharedPreferences (RN15) 03:38 · silvaaszx
- [frila-frontend#480](https://github.com/FrilaApp/frila-frontend/pull/480) — feat(android): add automatic token refresh interceptor on 401 (RNF06) 04:14 · silvaaszx
- [frila-frontend#472](https://github.com/FrilaApp/frila-frontend/pull/472) — test(ios): cobre roteiro e relatório da sessão leve (parcial) 04:14 · cauecarneiro
- [frila-frontend#481](https://github.com/FrilaApp/frila-frontend/pull/481) — feat(android): add FCM push notification deep link routing (RF06/RN15) 04:35 · silvaaszx
- [frila-frontend#473](https://github.com/FrilaApp/frila-frontend/pull/473) — test(release): valida aps-environment de producao, privacidade e descarte de testes (aAQflYu8) 04:45 · cauecarneiro
- [frila-frontend#471](https://github.com/FrilaApp/frila-frontend/pull/471) — test(push): valida campos obrigatorios, termos proibidos e payload de aviso (VyY2SGsX) 04:45 · cauecarneiro
- [frila-frontend#482](https://github.com/FrilaApp/frila-frontend/pull/482) — feat(android): add shift cancellation with reason and tolerance (RN12) 04:53 · silvaaszx
- [frila-frontend#483](https://github.com/FrilaApp/frila-frontend/pull/483) — feat(android): add advanced vacancy filters by compensation and period (RF10) 05:07 · silvaaszx
- [frila-frontend#474](https://github.com/FrilaApp/frila-frontend/pull/474) — test(ui): suíte de exclusão de conta em perfil e estabelecimento (cartão ABN4rvmT) 05:07 · cauecarneiro
- [frila-frontend#476](https://github.com/FrilaApp/frila-frontend/pull/476) — test(ui): expande testes de UI para roteamento de push notifications (SIPQtYWH, aAQflYu8) 05:39 · cauecarneiro
- [frila-frontend#475](https://github.com/FrilaApp/frila-frontend/pull/475) — feat(design): aplica design system em Minhas Vagas (passo 8.10) 11:56 · jotape12-Dev
- [frila-frontend#484](https://github.com/FrilaApp/frila-frontend/pull/484) — feat(design): aplica design system em Notificacoes Push (passo 8.11) 13:42 · jotape12-Dev
- [frila-frontend#486](https://github.com/FrilaApp/frila-frontend/pull/486) — docs(design): fecha lacunas de documentacao de acessibilidade, tokens, faq e guia de voz 15:07 · cauecarneiro
- [frila-frontend#485](https://github.com/FrilaApp/frila-frontend/pull/485) — feat(design): aplica tokens e dynamic type em Estados de Tela e Atualizacao Obrigatoria (passo 8.12) 16:14 · jotape12-Dev
- [frila-frontend#487](https://github.com/FrilaApp/frila-frontend/pull/487) — test(unit): cobre critérios automatizáveis restantes de push, release, privacy e a11y 16:51 · cauecarneiro
- [frila-frontend#489](https://github.com/FrilaApp/frila-frontend/pull/489) — ci(android): pipeline de CI para compilacao e testes unitarios 17:18 · cauecarneiro
- [frila-frontend#491](https://github.com/FrilaApp/frila-frontend/pull/491) — feat(android): add text search by title and establishment in vacancies feed (RF10) 17:30 · silvaaszx
- [frila-frontend#490](https://github.com/FrilaApp/frila-frontend/pull/490) — feat(design): aplica tokens e dynamic type no Feed de Vagas (passo 8.13) 18:37 · jotape12-Dev
- [frila-frontend#488](https://github.com/FrilaApp/frila-frontend/pull/488) — ci(ios): rebalancear suite, pular testes ax5 pendentes e aumentar timeout da parte 2 19:58 · cauecarneiro
22 out 2026 23 fatos
merge 22 fatos
- [frila-backend#319](https://github.com/FrilaApp/frila-backend/pull/319) — refactor(edge): centralizar nucleo de autenticacao e comparacao constante em _compartilhado/auth (Achado 3 / AUDITORIA-EDGE-SEG.md) 00:14 · jotape12-Dev
- [frila-frontend#448](https://github.com/FrilaApp/frila-frontend/pull/448) — feat(design): aplica design system em Avaliacao (passo 8.6) 02:54 · jotape12-Dev
- [frila-frontend#447](https://github.com/FrilaApp/frila-frontend/pull/447) — Integração do MVP na main (0.5.0) 04:26 · cauecarneiro
- [frila-frontend#449](https://github.com/FrilaApp/frila-frontend/pull/449) — docs: corrigir sobrenome do responsável para Crillanovick 05:38 · cauecarneiro
- [frila-frontend#450](https://github.com/FrilaApp/frila-frontend/pull/450) — fix(design): barra única e nativa no Minhas vagas e correção do seletor de função 14:00 · cauecarneiro
- [frila-frontend#451](https://github.com/FrilaApp/frila-frontend/pull/451) — feat: grupo externo e revisão beta pelo App Store Connect 15:07 · cauecarneiro
- [frila-frontend#452](https://github.com/FrilaApp/frila-frontend/pull/452) — docs(android): especificacao arquitetural, tokens material 3 e pipeline v1.1 15:19 · silvaaszx
- [frila-frontend#453](https://github.com/FrilaApp/frila-frontend/pull/453) — feat(android): scaffolding gradle e modulo core:dominio 16:09 · silvaaszx
- [frila-frontend#454](https://github.com/FrilaApp/frila-frontend/pull/454) — feat(android): modulo core:rede com cliente Ktor Supabase 17:13 · silvaaszx
- [frila-frontend#455](https://github.com/FrilaApp/frila-frontend/pull/455) — feat(android): modulo core:seguranca e regras de extracao LGPD 17:21 · silvaaszx
- [frila-frontend#456](https://github.com/FrilaApp/frila-frontend/pull/456) — feat(android): modulo core:designsystem com tokens Material 3 17:34 · silvaaszx
- [frila-frontend#457](https://github.com/FrilaApp/frila-frontend/pull/457) — feat(android): modulo feature:entrada com login OTP, demo e cadastro RN20 18:03 · silvaaszx
- [frila-frontend#458](https://github.com/FrilaApp/frila-frontend/pull/458) — feat(android): modulo feature:vagas com feed de vagas abertas, filtros e candidatura 18:15 · silvaaszx
- [frila-frontend#459](https://github.com/FrilaApp/frila-frontend/pull/459) — feat(android): modulo core:notificacoes com push FCM e isolamento RN15 18:32 · silvaaszx
- [frila-frontend#460](https://github.com/FrilaApp/frila-frontend/pull/460) — feat(android): modulo app com shell, navegacao compose e grafo koin 18:51 · silvaaszx
- [frila-frontend#461](https://github.com/FrilaApp/frila-frontend/pull/461) — feat(android): modulo feature:turnos com turnos agendados e historico 19:04 · silvaaszx
- [frila-frontend#462](https://github.com/FrilaApp/frila-frontend/pull/462) — fix: avisos de validação do Publicar vaga somem ao corrigir o campo 22:33 · cauecarneiro
- [frila-frontend#464](https://github.com/FrilaApp/frila-frontend/pull/464) — feat(android): modulo core:localizacao e check-in por GPS RN06 22:48 · silvaaszx
- [frila-frontend#465](https://github.com/FrilaApp/frila-frontend/pull/465) — feat(android): avaliacao mutua de turno e reputacao RN11 23:05 · silvaaszx
- [frila-frontend#466](https://github.com/FrilaApp/frila-frontend/pull/466) — feat(android): modulo feature:perfil com dados do profissional e reputacao 23:18 · silvaaszx
- [frila-frontend#467](https://github.com/FrilaApp/frila-frontend/pull/467) — feat(android): exclusao de conta LGPD e revogacao de dados RF25 23:28 · silvaaszx
- [frila-frontend#463](https://github.com/FrilaApp/frila-frontend/pull/463) — feat(design): aplica design system em Autenticação (passo 8.7) 23:58 · jotape12-Dev
quadro-comentario 1 fato
- `7XS6MQGg` · S2 · Backend · Motor de despacho: elegibilidade, fila e agendador · comentário: 22/10 22h55 (medição no frila-dev, Homem-Aranha): critério 4 provado, 1.440 execuções em 24 h, 0 falhas. Critério 5 (p95 < 30 s em 20 publicações com aceite FCM) NÃO provado: 0/20, falta um aparelho com token de push numa conta demo; o 0.000 s do script é amostra vazia, não latência. Relatório: .workers/missoes/trello-varredura-22-10/medicao-despacho.md · trello:6adabe4af7a3c1f2cfe4c421 22:54 · Cauê Carneiro
21 out 2026 2 fatos
commit 1 fato
- `cd64ebe` — docs(vault): atualiza notas diárias, tarefas e roadmap de 19 a 21/10 · 9 arquivos 14:54 · Cauê Carneiro
entrega 1 fato
- cartao yClUqOpU movido para Concluido no quadro: S3 · Backend · Retenção e limpeza dos dados pessoais em 15 dias e contas sem cadastro · PR #30, #47 — medido em 27/10 na API do Trello, acoes updateCard com listAfter 18:40 · Matheus Silva
20 out 2026 34 fatos
entrega 2 fatos
- cartao 36fU0CEO movido para Concluido no quadro: S2 · Backend · Envio de push pelo FCM, registro do aparelho e estado de entrega · PR #40 (closed) — medido em 27/10 na API do Trello, acoes updateCard com listAfter 20:18 · Matheus Silva
- cartao RNOfNVVU movido para Concluido no quadro: S0 · Backend · Portão de colisão de versão de migração, e o contrato-em-dia lendo o .env · sem PR citando o cartao em frila-backend, procurado em 327 PRs — medido em 27/10 na API do Trello, acoes updateCard com listAfter 20:53 · Matheus Silva
frila-backend 3 fatos
- `9ade8b0` — fix(demonstracao): gravar DEMONSTRACAO_ATIVA_ATE no deploy remoto da porta de revisão · 4 arquivos 14:30 · Matheus Silva
- `0a15fb9` — fix(demonstracao): teste trava a gravação real do segredo, não só a validação · 2 arquivos 15:38 · Matheus Silva
- `f82c426` — fix(testes): escopar deletes de public.notificacao no teste 746 · 1 arquivo 16:05 · Matheus Silva
merge 14 fatos
- [frila-frontend#417](https://github.com/FrilaApp/frila-frontend/pull/417) — fix(dados): sincronizador seguro na troca de conta e ajuste na mensagem de erro de login 00:28 · jotape12-Dev
- [frila-frontend#420](https://github.com/FrilaApp/frila-frontend/pull/420) — docs(ios): adiciona Guia do Fabrício para implementação do design system 00:29 · cauecarneiro
- [frila-frontend#421](https://github.com/FrilaApp/frila-frontend/pull/421) — docs(ios): remove link quebrado do cartão #39 no README 11:29 · cauecarneiro
- [frila-frontend#422](https://github.com/FrilaApp/frila-frontend/pull/422) — docs(ci): atualiza etapas documentadas com portões de textos, movimento e datas fixas 11:30 · cauecarneiro
- [frila-frontend#424](https://github.com/FrilaApp/frila-frontend/pull/424) — test(cadastro): protege primeiro acesso do contratante com fila nula 12:07 · cauecarneiro
- [frila-frontend#423](https://github.com/FrilaApp/frila-frontend/pull/423) — test(ios): prova limite de uma retentativa em leitura 12:07 · cauecarneiro
- [frila-backend#309](https://github.com/FrilaApp/frila-backend/pull/309) — feat(monitoramento): emitir alerta demonstracao_sob_ataque em verificar_saude (Item 19) 13:02 · jotape12-Dev
- [frila-frontend#425](https://github.com/FrilaApp/frila-frontend/pull/425) — feat(design): tokens semânticos e componentes base (passos 5-7) 13:42 · jotape12-Dev
- [frila-frontend#426](https://github.com/FrilaApp/frila-frontend/pull/426) — feat(design): aplica design system no feed de vagas (passo 8) 18:56 · jotape12-Dev
- [frila-backend#310](https://github.com/FrilaApp/frila-backend/pull/310) — fix(demonstracao): gravar DEMONSTRACAO_ATIVA_ATE no deploy remoto da porta de revisão 20:01 · silvaaszx
- [frila-frontend#427](https://github.com/FrilaApp/frila-frontend/pull/427) — feat(design): aplica design system no detalhe da vaga (passo 8) 20:57 · jotape12-Dev
- [frila-backend#311](https://github.com/FrilaApp/frila-backend/pull/311) — fix(vaga): resiliencia de publicar_vaga para conta de demonstracao e semeadura pos-06/11 (5boVdM0t) 20:58 · jotape12-Dev
- [frila-frontend#429](https://github.com/FrilaApp/frila-frontend/pull/429) — chore(contato): use os e-mails do domínio frilabr.com 21:46 · cauecarneiro
- [frila-backend#185](https://github.com/FrilaApp/frila-backend/pull/185) — chore(retencao): purga de entrada_demonstracao (>30d) e falha_execucao (>60d) em higienizar_tabelas (achados 5 e 6) 23:20 · jotape12-Dev
quadro 5 fatos
- `LQlwDaYZ` movido de Sprint 4 · Piloto e encerramento (14/11 → 04/12) para Revisão · S4 · Backend · Gravar o sinal de idade do cadastro (só a faixa, método e data) — ECA Digital · trello:6ad7c6855c42c38fa9c86d10 16:52 · Matheus Silva
- `LQlwDaYZ` movido de Revisão para Concluído 🎉 · S4 · Backend · Gravar o sinal de idade do cadastro (só a faixa, método e data) — ECA Digital · trello:6ad7c68716fc9ce7b0bbe36a 16:52 · Matheus Silva
- `OrS9gEfU` movido de Revisão para Concluído 🎉 · S2 · Backend · Edge Function excluir-conta: saída na hora, turnos futuros cancelados e anonimização · trello:6ad7d31cb6bd180d0da9f43c 17:46 · Matheus Silva
- `JWJOPAOL` movido de Revisão para Concluído 🎉 · S2 · Backend · RPCs denunciar e bloquear; o bloqueio filtra tudo · trello:6ad7d320cbe873934ba29d6f 17:46 · Matheus Silva
- `7gpPBgTH` movido de Revisão para Concluído 🎉 · S1 · Backend + iOS · Contas de demonstração para a revisão da Apple, sem caixa de e-mail · trello:6ad7d324adc236357ef91894 17:46 · Matheus Silva
quadro-comentario 10 fatos
- `5boVdM0t` · S2 · Backend · Publicar vaga recusada no frila-dev com a conta de demonstração do contratante · comentário: PR aberto: https://github.com/FrilaApp/frila-backend/pull/310 · trello:6ad7a5942cc1578cf0e39607 14:32 · Matheus Silva
- `5boVdM0t` · S2 · Backend · Publicar vaga recusada no frila-dev com a conta de demonstração do contratante · comentário: PRONTO PARA O FRONTEND @cauecarneiroc Causa encontrada (medida contra o frila-dev, não deduzida): nenhuma das 5 hipóteses do cartão é real — confirmado pela leitura do Neji antes deste trabalho. As 5 candidatas adicionais levantadas por dedução também não se confirmaram: chamei publicar_vaga como revisao-contratante com o payload exato da tentativa de 15/10 (função garçom, Bar da Revisão, R$140,00, 3 posições, modo urgência) e recebi HTTP 200, vaga criada. O bloqueio real está um passo antes: a… · trello:6ad7a5975e45b13383ecf572 14:32 · Matheus Silva
- `5boVdM0t` · S2 · Backend · Publicar vaga recusada no frila-dev com a conta de demonstração do contratante · comentário: Status Backend (20/10): PR #310 e PR #311 abertos cobrindo deploy do segredo DEMONSTRACAO_ATIVA_ATE e resiliencia de publicacao de vagas. PR #311 aprovado tecnicamente por Jotape (head 27e5f16); alinhando suíte do teste 746 para fechar CI 6/6 e mergear. · trello:6ad7c50d61497c3d23ce2df0 16:46 · Matheus Silva
- `OrS9gEfU` · S2 · Backend · Edge Function excluir-conta: saída na hora, turnos futuros cancelados e anonimização · comentário: Status Backend (20/10): Edge Function excluir-conta implementada e testada com cobertura completa em pgTAP (PR #300 mergeado na develop). 4 de 5 critérios de aceite concluídos; resta validação de ponta a ponta no frila-dev pelo time de QA/iOS. · trello:6ad7c52ce904401095d228f8 16:46 · Matheus Silva
- `JWJOPAOL` · S2 · Backend · RPCs denunciar e bloquear; o bloqueio filtra tudo · comentário: Status Backend (20/10): RPCs denunciar e bloquear implementadas com filtros em privado.bloqueado_com_estabelecimento e testes pgTAP 100% verdes na develop. Pendente apenas teste de recebimento do e-mail da equipe frila no ambiente frila-dev. · trello:6ad7c5345793e36aa23414db 16:47 · Matheus Silva
- `36fU0CEO` · S2 · Backend · Envio de push pelo FCM, registro do aparelho e estado de entrega · comentário: Status Backend (20/10): Envio FCM, remoção de token inválido e consultas RNF02/RNF03 implementados e validados na develop. Aguarda teste final de recebimento em build TestFlight com iOS em segundo plano / tela bloqueada. · trello:6ad7c541463a4d109a02a1b8 16:47 · Matheus Silva
- `7XS6MQGg` · S2 · Backend · Motor de despacho: elegibilidade, fila e agendador · comentário: Status Backend (20/10): Motor de despacho em privado.elegiveis, pgmq e cron integrados com testes de carga e isolamento de demonstração na develop. Aguarda ensaio de 24h e medição p95 < 30s no ambiente frila-dev. · trello:6ad7c5424a503fcb0b91d03b 16:47 · Matheus Silva
- `LQlwDaYZ` · S4 · Backend · Gravar o sinal de idade do cadastro (só a faixa, método e data) — ECA Digital · comentário: PR aberto: https://github.com/FrilaApp/frila-backend/pull/302 · trello:6ad7c68378cbc71257e1a837 16:52 · Matheus Silva
- `5boVdM0t` · S2 · Backend · Publicar vaga recusada no frila-dev com a conta de demonstração do contratante · comentário: Retrabalho pedido pelo portão ANBU no PR #310, resolvido: 1. O teste anterior só validava os segredos, não provava que DEMONSTRACAO_ATIVA_ATE chegava ao supabase secrets set de verdade. Extraída gravar_segredos_demonstracao() e teste que dubla o supabase, com prova de mutação (reverti a linha real, teste ficou vermelho; revertida a reversão, voltou verde). 2. CI vermelha em "Os testes cobrem as regras" (teste 746), repetindo em 2 execuções. Reproduzido localmente: é um delete sem filtro em publ… · trello:6ad7c8651e9155661044e934 17:00 · Matheus Silva
- `7gpPBgTH` · S1 · Backend + iOS · Contas de demonstração para a revisão da Apple, sem caixa de e-mail · comentário: Prova remota no frila-dev em 20/10/2026 (Doutor Estranho, conferida por amostra pelo Fury): as duas contas de revisão entram pela porta de demonstração (HTTP 200, sessão válida); vagas_abertas 200 (7 vagas), meus_turnos 200 (1 turno), contato_do_turno 200; e-mail fora da lista e código incorreto devolvem 404. demonstracao.sh com 11 de 11 asserções verdes. Só no dev; o prod ainda precisa de DEMONSTRACAO_ATIVA_ATE cobrindo a revisão de 06/11. Relatório em .workers/antigravity-3/diagnostico-prova-… · trello:6ad7df3eaf0f40184843ff88 18:38 · Cauê Carneiro
19 out 2026 23 fatos
entrega 2 fatos
- cartao eaWhDeym movido para Concluido no quadro: v1.1 · Backend + iOS · Contestar o despacho ('Por que recebo vagas') · PR #73, #299 — medido em 27/10 na API do Trello, acoes updateCard com listAfter 03:51 · Cauê Carneiro
- cartao wpNabtCO movido para Concluido no quadro: S2 · Backend + iOS · Ciclo de vida do token de push: troca de conta, saída e reinstalação · PR #43 — medido em 27/10 na API do Trello, acoes updateCard com listAfter 20:43 · Cauê Carneiro
merge 17 fatos
- [frila-frontend#410](https://github.com/FrilaApp/frila-frontend/pull/410) — feat: envia sinal_idade na criação de conta conforme contrato 0.2.45 00:20 · cauecarneiro
- [frila-frontend#412](https://github.com/FrilaApp/frila-frontend/pull/412) — docs: roteiro de teste manual ponta a ponta em 2 iPhones físicos 03:00 · cauecarneiro
- [frila-frontend#411](https://github.com/FrilaApp/frila-frontend/pull/411) — docs: atualiza checklist da App Store com SHAs mesclados 03:00 · cauecarneiro
- [frila-frontend#413](https://github.com/FrilaApp/frila-frontend/pull/413) — docs(a11y): atualizar status de RNF10 e relatório de gaps pós-PRs #394 e #408 03:02 · cauecarneiro
- [frila-backend#307](https://github.com/FrilaApp/frila-backend/pull/307) — fix(push): nao carregar corpo da resposta oauth nos logs e erros do fcm 04:16 · cauecarneiro
- [frila-frontend#415](https://github.com/FrilaApp/frila-frontend/pull/415) — fix(ux-02): acabamentos da fila pos-checkmate (campo.text em CampoPosicoesVaga e asserção de teto) 04:40 · cauecarneiro
- [frila-frontend#414](https://github.com/FrilaApp/frila-frontend/pull/414) — feat(ios): componentes SwiftUI lote 1 (SearchCapsule, ProposalBar, EditorialTag) 06:01 · cauecarneiro
- [frila-frontend#416](https://github.com/FrilaApp/frila-frontend/pull/416) — fix(ux-02): alinhar título de TelaPublicarVaga com navigationBarTitleDisplayMode inline 08:14 · cauecarneiro
- [frila-backend#308](https://github.com/FrilaApp/frila-backend/pull/308) — release(backend): v1.0.0 — unifica develop em main (72 migrações, 6 funções v1.0) 12:15 · cauecarneiro
- [Bancada#19](https://github.com/FrilaApp/Bancada/pull/19) — EVIDENCIAS: amostra de vagas no WhatsApp (13 a 19/10) 17:03 · cauecarneiro
- [Bancada#20](https://github.com/FrilaApp/Bancada/pull/20) — Pendências técnicas: FigJam atualizado (D1 a D13) 17:12 · cauecarneiro
- [frila-frontend#404](https://github.com/FrilaApp/frila-frontend/pull/404) — test(dominio): testes unitarios de decodificacao canonica e seguranca de TipoEstabelecimento e PapelMembro 17:40 · jotape12-Dev
- [frila-frontend#403](https://github.com/FrilaApp/frila-frontend/pull/403) — test(dados): comportamento de resiliencia e recuperacao de sessao no Keychain bloqueado 17:40 · jotape12-Dev
- [frila-backend#296](https://github.com/FrilaApp/frila-backend/pull/296) — fix(demonstracao): exigir fuso horario explicito na janela e alinhar comentario de cabecalho (Follow-up #293) 17:47 · jotape12-Dev
- [frila-backend#295](https://github.com/FrilaApp/frila-backend/pull/295) — fix(enviar-push): reivindicar lote com SKIP LOCKED e prova deterministica de concorrencia (Item 15) 19:08 · jotape12-Dev
- [frila-frontend#418](https://github.com/FrilaApp/frila-frontend/pull/418) — test(ui): esperas resilientes ao fechar e reconhecer aviso de recusa em turno cancelado 19:46 · jotape12-Dev
- [frila-frontend#419](https://github.com/FrilaApp/frila-frontend/pull/419) — fix(dados): usa caminho decodificado no setAttributes e tolera fila nula no cadastro do contratante 20:40 · cauecarneiro
quadro-comentario 4 fatos
- `JWJOPAOL` · S2 · Backend · RPCs denunciar e bloquear; o bloqueio filtra tudo · comentário: Auditoria de 19/10 (Loki): critérios 1, 2 e 4 conferidos nos testes pgTAP; o 3 (e-mail da denúncia à equipe) tem modelo e testes prontos no PR #299, mas depende dos segredos SMTP no frila-dev, ainda pendentes do Cauê. Cartão fica em Revisão. · trello:6ad5884ea383751e129da017 00:02 · Cauê Carneiro
- `SDeFULxG` · S4 · Backend · View da North Star (metrica.north_star_semanal) com teste e check-in verificado no funil · comentário: Correção do Nick Fury (19/10): o cartão foi movido a Concluído com os critérios desmarcados. Conferi na fonte: PR #303 mesclado em 18/10 (commit 3dc97f3), migração 20261018163000 cria metrica.north_star_semanal e atualiza metrica.funil_por_vaga (check-ins só verificados), teste 747 com os casos, 490 atualizado, comentário da decisão sobre confirmações, CI verde. Os 4 critérios foram marcados agora. · trello:6ad58a7a4a0b1de370875d5f 00:11 · Cauê Carneiro
- `eaWhDeym` · v1.1 · Backend + iOS · Contestar o despacho ('Por que recebo vagas') · comentário: Conferido na fonte por Nick Fury em 19/10: tela (TelaPorQueReceboVagas.swift e testes), RPC pedir_revisao_despacho (cria a ocorrência, o protocolo é o id e enfileira o e-mail à equipe), procedimento em supabase/operacao/revisao-despacho.md e testes pgTAP 450/605 existem no main/develop. PRs mesclados: frontend #154 e #156, backend #73 e #299 (CI verde). Critérios marcados e cartão movido a Concluído. · trello:6ad593a8820262834bbadf8a 00:51 · Cauê Carneiro
- `wpNabtCO` · S2 · Backend + iOS · Ciclo de vida do token de push: troca de conta, saída e reinstalação · comentário: Prova em iPhone, 19/10/2026 (TestFlight 0.4.0, frila-dev, aparelho da Júlia; avisos enviados pelo console do Firebase). Critério 1 (conta A e depois conta B: só B recebe): aprovado. Com o aparelho já na conta B, o aviso dirigido à conta A não chegou; o aviso à conta B chegou em 1 a 3 min e o toque abriu o destino certo (vaga → detalhe da vaga; vagas_agrupadas → aba Vagas; cancelamento → Meus turnos). Critério 2 (depois de sair, nada chega): aprovado. Após a saída, os avisos não chegaram ao apar… · trello:6ad680f04d2eba0f732ab561 17:43 · Cauê Carneiro
18 out 2026 73 fatos
entrega 1 fato
- cartao SDeFULxG movido para Concluido no quadro: S4 · Backend · View da North Star (metrica.north_star_semanal) com teste e check-in verificado no funil · PR #303 — medido em 27/10 na API do Trello, acoes updateCard com listAfter 20:17 · Cauê Carneiro
merge 37 fatos
- [frila-frontend#388](https://github.com/FrilaApp/frila-frontend/pull/388) — test(dados): migração SwiftData de EsquemaFrilaV3 para V4 00:19 · jotape12-Dev
- [frila-backend#286](https://github.com/FrilaApp/frila-backend/pull/286) — fix(enviar-push): alinhar log [ALERTA_CONFIG_FCM] com contagem NOT_FOUND e teste negativo 00:24 · jotape12-Dev
- [frila-backend#287](https://github.com/FrilaApp/frila-backend/pull/287) — fix(exportar-turnos): neutralizar injeção de fórmulas CSV e adicionar BOM UTF-8 01:11 · jotape12-Dev
- [frila-frontend#393](https://github.com/FrilaApp/frila-frontend/pull/393) — docs(runbook): acrescenta checagem diária do piloto no RunbookProd.md 01:11 · cauecarneiro
- [frila-frontend#392](https://github.com/FrilaApp/frila-frontend/pull/392) — docs(ios): alinha botão de retry nos padrões de estado e endereços no plano do piloto 01:11 · cauecarneiro
- [frila-frontend#389](https://github.com/FrilaApp/frila-frontend/pull/389) — test(dados): follow-up de migração SwiftData V3->V4 com store gravado em disco e asserções campo a campo 01:34 · jotape12-Dev
- [frila-frontend#391](https://github.com/FrilaApp/frila-frontend/pull/391) — docs(dados): documenta origem, conteúdo e passos de regeração do fixture SwiftData V3 01:35 · jotape12-Dev
- [frila-backend#288](https://github.com/FrilaApp/frila-backend/pull/288) — fix(despacho): mover falha de transporte pg_net para falha_execucao 02:00 · jotape12-Dev
- [frila-backend#289](https://github.com/FrilaApp/frila-backend/pull/289) — chore(corrida): adicionar dump diagnóstico completo em falha do Cenário 3 02:26 · jotape12-Dev
- [frila-frontend#394](https://github.com/FrilaApp/frila-frontend/pull/394) — fix(a11y): acabamentos de acessibilidade e rótulos no suporte e publicação 02:49 · cauecarneiro
- [frila-frontend#390](https://github.com/FrilaApp/frila-frontend/pull/390) — fix(dados): exclui Frila.store de backups do aparelho e purga caches na saída da conta 03:03 · jotape12-Dev
- [frila-frontend#395](https://github.com/FrilaApp/frila-frontend/pull/395) — fix(a11y): agrupamento semântico na exclusão de conta e testes de DTO (itens 16 e 31) 03:39 · jotape12-Dev
- [frila-backend#291](https://github.com/FrilaApp/frila-backend/pull/291) — fix(rpc): recusar leituras de conta excluida com 401 e preservar 200 em suspensa (Item 23) 04:18 · jotape12-Dev
- [frila-backend#292](https://github.com/FrilaApp/frila-backend/pull/292) — fix(teste): isolar asserção 12d de 620_abrir_suporte contra resíduos em q_email 04:40 · jotape12-Dev
- [frila-frontend#397](https://github.com/FrilaApp/frila-frontend/pull/397) — fix(resiliencia): descarte defensivo de 4xx em telemetria analítica e concorrência em push 04:42 · jotape12-Dev
- [frila-frontend#398](https://github.com/FrilaApp/frila-frontend/pull/398) — fix(a11y): agrupamento semântico, soletrar protocolo e cabeçalhos em TelaContaSuspensa (itens 11 e 24) 05:04 · jotape12-Dev
- [frila-backend#290](https://github.com/FrilaApp/frila-backend/pull/290) — feat(saude): monitorar falhas assíncronas e respostas recusadas do pg_net (Item 22) 05:20 · jotape12-Dev
- [frila-frontend#399](https://github.com/FrilaApp/frila-frontend/pull/399) — fix(dados): zera pré-condição no teste de backup e loga tipo do erro com visibilidade pública na saída da conta 05:51 · jotape12-Dev
- [frila-frontend#400](https://github.com/FrilaApp/frila-frontend/pull/400) — test(push): paridade contratual dos 19 tipos de notificação e decodificação canônica (item 29) 06:05 · jotape12-Dev
- [frila-backend#294](https://github.com/FrilaApp/frila-backend/pull/294) — feat(moderacao): alertas operacionais de moderacao e contestacao vencidas e fechamento em operacao (Itens 21, 21b) 06:33 · jotape12-Dev
- [frila-backend#293](https://github.com/FrilaApp/frila-backend/pull/293) — fix(demonstracao): resiliencia da entrada, teto por IP e neutralizacao de DoS ao revisor (Item 19) 06:44 · jotape12-Dev
- [frila-frontend#401](https://github.com/FrilaApp/frila-frontend/pull/401) — test(dados): cobertura de resiliência e dublê de erros em SessaoNoKeychainDoAparelho (item 19) 07:06 · jotape12-Dev
- [frila-frontend#402](https://github.com/FrilaApp/frila-frontend/pull/402) — test(dominio): testes unitários para CategoriaSuporte (decodificação canônica, defensiva e serialização DTO) 07:11 · jotape12-Dev
- [Bancada#2](https://github.com/FrilaApp/Bancada/pull/2) — fix(site): tira do site o PDF do CBL, capturas com logins e e-mail de máquina 09:46 · cauecarneiro
- [frila-frontend#406](https://github.com/FrilaApp/frila-frontend/pull/406) — docs(ios): fecha a revisão dos dez cartões adiantados 10:16 · cauecarneiro
- [frila-frontend#407](https://github.com/FrilaApp/frila-frontend/pull/407) — fix(autenticacao): mascara sincrona em UIKit para telefone e data no cadastro sem perda de teclas 12:10 · cauecarneiro
- [frila-frontend#408](https://github.com/FrilaApp/frila-frontend/pull/408) — Corrige máscara síncrona de CPF/CNPJ e posição do cursor 14:43 · cauecarneiro
- [frila-backend#299](https://github.com/FrilaApp/frila-backend/pull/299) — feat(email): adicionar modelo revisao_despacho e alinhar prazos retirando 24h 19:07 · cauecarneiro
- [frila-backend#300](https://github.com/FrilaApp/frila-backend/pull/300) — Prova remota da exclusão de conta no frila-dev (OrS9gEfU, critério 4) 19:08 · cauecarneiro
- [frila-backend#298](https://github.com/FrilaApp/frila-backend/pull/298) — feat(push): incluir configuração Android no payload FCM 19:08 · cauecarneiro
- [frila-backend#301](https://github.com/FrilaApp/frila-backend/pull/301) — Corrige texto do push de candidatura recusada 19:55 · cauecarneiro
- [frila-backend#303](https://github.com/FrilaApp/frila-backend/pull/303) — feat(metrica): view metrica.north_star_semanal e check-in verificado no funil 20:17 · cauecarneiro
- [frila-backend#304](https://github.com/FrilaApp/frila-backend/pull/304) — feat(lgpd): incluir evento_app na exportação de dados (nUpPFCpM) 20:18 · cauecarneiro
- [frila-backend#306](https://github.com/FrilaApp/frila-backend/pull/306) — contrato: espelho 0.2.45 e eventos_app volta à colheita 21:28 · cauecarneiro
- [frila-backend#305](https://github.com/FrilaApp/frila-backend/pull/305) — Lê segredo no Vault sem regredir o tratamento de falhas do despacho 21:46 · cauecarneiro
- [frila-backend#302](https://github.com/FrilaApp/frila-backend/pull/302) — feat(cadastro): sinal de idade do cadastro em criar_conta — só faixa, método e data (ECA Digital, LQlwDaYZ) 21:54 · cauecarneiro
- [frila-frontend#409](https://github.com/FrilaApp/frila-frontend/pull/409) — contrato: espelho 0.2.45 22:57 · cauecarneiro
quadro-comentario 35 fatos
- `7gpPBgTH` · S1 · Backend + iOS · Contas de demonstração para a revisão da Apple, sem caixa de e-mail · comentário: Auditoria Doutor Estranho (18/10): Edge Function entrar-demonstracao implementada no repositório (supabase/functions/entrar-demonstracao/index.ts). Segredos identificados: DEMONSTRACAO_EMAILS, DEMONSTRACAO_CODIGO, SUPABASE_SERVICE_ROLE_KEY. Pré-voo no frila-dev bloqueado por token inválido em ~/.config/frila/supabase-token. Critério 1 pendente de deploy e configuração de segredos pelo time de backend. · trello:6ad4973e53f15578e8a19e7a 06:54 · Cauê Carneiro
- `7XS6MQGg` · S2 · Backend · Motor de despacho: elegibilidade, fila e agendador · comentário: Auditoria Doutor Estranho (18/10): Migração 20260926010000_motor_despacho.sql presente no repositório e testada em supabase/tests/260_motor_despacho.sql. Script scripts/medir-despacho-remoto.sh pronto para aferir pg_cron (reprocessar_despacho) e p95 < 30 s de 20 publicações. Consulta remota ao frila-dev bloqueada por token inválido no pré-voo. Critérios 4 e 5 aguardam execução contínua de 24h e carga de 20 publicações pelo backend. · trello:6ad4973f30b50a2b65961f6b 06:54 · Cauê Carneiro
- `JWJOPAOL` · S2 · Backend · RPCs denunciar e bloquear; o bloqueio filtra tudo · comentário: Auditoria Doutor Estranho (18/10): Edge Function enviar-email implementada no repositório (supabase/functions/enviar-email/index.ts). Segredos identificados: SMTP_HOST, SMTP_PORT, SMTP_USER, SMTP_PASS, EMAIL_REMETENTE, EMAIL_EQUIPE, AGENDADOR_SECRET. Consulta remota ao frila-dev bloqueada por token inválido no pré-voo. Critério pendente (envio à caixa da equipe com protocolo) aguarda deploy e disparo pelo backend. · trello:6ad4973f53d775e26f2f30fb 06:54 · Cauê Carneiro
- `1MK1CGyF` · S3 · Produto + Backend · Painel de métricas do piloto (T-0017, T-0020) · comentário: Auditoria Doutor Estranho (18/10): Views metrica.funil_* (por_vaga, confirmacoes, por_dia, por_estabelecimento, geral) criadas na migração 20260930150000_views_funil_piloto.sql e testadas em 490_funil_piloto.sql. Consulta remota no frila-dev bloqueada por token inválido no pré-voo. Critérios pendentes no cartão tratam de medição em produção e validação com TestFlight (Sprint 3). · trello:6ad497404a0b1de37009371a 06:54 · Cauê Carneiro
- `36fU0CEO` · S2 · Backend · Envio de push pelo FCM, registro do aparelho e estado de entrega · comentário: Auditoria Doutor Estranho (18/10): Edge Function enviar-push implementada no repositório (supabase/functions/enviar-push/index.ts, fcm.ts) com tabela public.dispositivo. Segredos identificados: FCM_SERVICE_ACCOUNT, AGENDADOR_SECRET. Consulta remota no frila-dev bloqueada por token inválido no pré-voo. Critério pendente exige teste físico em build do TestFlight com APNs de produção pelo Cauê. · trello:6ad49740af79d19b571d176f 06:54 · Cauê Carneiro
- `OrS9gEfU` · S2 · Backend · Edge Function excluir-conta: saída na hora, turnos futuros cancelados e anonimização · comentário: Auditoria Doutor Estranho (18/10): Edge Function excluir-conta implementada no repositório (supabase/functions/excluir-conta/index.ts). Teste fim a fim não pode ser executado em modo de só leitura, pois requer criação de dados e escrita/deleção em auth.users e tabelas públicas. Validação fim a fim no frila-dev pendente de execução pelo time de backend. · trello:6ad49741a9fc02661023276c 06:54 · Cauê Carneiro
- `RNOfNVVU` · S0 · Backend · Portão de colisão de versão de migração, e o contrato-em-dia lendo o .env · comentário: Auditoria Doutor Estranho (18/10): Portão local scripts/migracoes-sem-colisao.sh executado em modo leitura com sucesso (102 migrações com versões distintas). Scripts demonstracao-remoto.sh e demonstracao.sh realizam escritas e foram preservados sem execução. Comparação com migration list remota bloqueada por token inválido no pré-voo. Critério pendente aguarda ação de deploy pelo backend e token válido do Cauê. · trello:6ad4974160725b02b8f8e94d 06:54 · Cauê Carneiro
- `7gpPBgTH` · S1 · Backend + iOS · Contas de demonstração para a revisão da Apple, sem caixa de e-mail · comentário: Auditoria frila-dev (leitura): Edge Function entrar-demonstracao ativa (v3); migrações de demonstração aplicadas; contas demo presentes em auth.users e public.usuario; segredos DEMONSTRACAO_EMAILS, DEMONSTRACAO_CODIGO e SUPABASE_SERVICE_ROLE_KEY configurados. Critério 1 (abertura de sessão e conferência de vagas/turnos/conta) pendente de validação fim a fim pelo backend. · trello:6ad4f85f17a00990c7af4e8b 13:48 · Cauê Carneiro
- `7XS6MQGg` · S2 · Backend · Motor de despacho: elegibilidade, fila e agendador · comentário: Auditoria frila-dev (leitura): Edge Function despachar ativa (v4); migrações de despacho aplicadas; job pg_cron reprocessar_despacho comprovado com 1440/1440 execuções com sucesso nas últimas 24 h (0 falhas, critério 4 atendido). Critério 5 (p95 < 30 s em 20 publicações com aceite FCM) permanece pendente de 20 publicações de teste e integração FCM pelo backend (amostras atuais: 0/20). · trello:6ad4f8687e00d902633567f2 13:48 · Cauê Carneiro
- `JWJOPAOL` · S2 · Backend · RPCs denunciar e bloquear; o bloqueio filtra tudo · comentário: Auditoria frila-dev (leitura): RPCs denunciar e bloquear presentes no banco; tabelas de bloqueio e ocorrência ativas; Edge Function enviar-email ativa (v3); job pg_cron processar_fila_email ativo. Segredos SMTP ausentes no ambiente remoto (faltam SMTP_HOST, EMAIL_REMETENTE, SMTP_USER, SMTP_PASS, SMTP_PORT; apenas AGENDADOR_SECRET presente). Critério 3 (e-mail de denúncia na caixa da equipe) pendente de configuração de segredos SMTP e disparo pelo backend/Cauê. · trello:6ad4f880840649114758fea4 13:49 · Cauê Carneiro
- `1MK1CGyF` · S3 · Produto + Backend · Painel de métricas do piloto (T-0017, T-0020) · comentário: Auditoria frila-dev (leitura): Migração 20260930150000 aplicada; 6 views de telemetria ativas sob o schema metrica (funil_geral, funil_por_dia, funil_por_estabelecimento, funil_por_vaga, funil_confirmacoes, eventos_app_por_dia) e consultáveis. Critérios 2 e 4 (medição em produção e teste com dados do TestFlight) dependem do ambiente frila-prod e do ciclo do piloto na Sprint 3 pelo Cauê. · trello:6ad4f888442258668499406e 13:49 · Cauê Carneiro
- `36fU0CEO` · S2 · Backend · Envio de push pelo FCM, registro do aparelho e estado de entrega · comentário: Auditoria frila-dev (leitura): Edge Function enviar-push ativa (v3); tabelas dispositivo e notificacao presentes no banco; segredos AGENDADOR_SECRET, SUPABASE_DB_URL, SUPABASE_URL e SUPABASE_SERVICE_ROLE_KEY configurados. Segredo FCM_SERVICE_ACCOUNT ausente no projeto remoto. Critério 1 (recebimento em build TestFlight com APNs de produção com tela bloqueada/em segundo plano) requer provisionamento da credencial FCM e teste em aparelho físico pelo Cauê. · trello:6ad4f89a47279bc6e3e4e151 13:49 · Cauê Carneiro
- `OrS9gEfU` · S2 · Backend · Edge Function excluir-conta: saída na hora, turnos futuros cancelados e anonimização · comentário: Auditoria frila-dev (leitura): Edge Function excluir-conta ativa (v3); tabela public.pedido_de_exclusao presente; migração 20261017233000_bloquear_leituras_conta_excluida_401 aplicada; segredos SUPABASE_DB_URL, SUPABASE_URL, SUPABASE_ANON_KEY e SUPABASE_SERVICE_ROLE_KEY configurados. Critério 4 (teste de ponta a ponta no frila-dev) requer criação e deleção de conta de teste com emissão de token, pendente de execução pelo backend. · trello:6ad4f8b55316bd41ee2bdef9 13:49 · Cauê Carneiro
- `RNOfNVVU` · S0 · Backend · Portão de colisão de versão de migração, e o contrato-em-dia lendo o .env · comentário: Auditoria frila-dev (leitura): Portão de migrações verificado no ambiente remoto (115 migrações registradas em supabase_migrations.schema_migrations com versões distintas e 0 colisões); Edge Function entrar-demonstracao ativa (v3); segredos DEMONSTRACAO_EMAILS, DEMONSTRACAO_CODIGO e SUPABASE_SERVICE_ROLE_KEY configurados. Critério 8 (execução de demonstracao-remoto.sh dev com teste completo do demonstracao.sh) pendente de execução de escrita pelo backend. · trello:6ad4f8bf170d3f1cd2b348a1 13:50 · Cauê Carneiro
- `7gpPBgTH` · S1 · Backend + iOS · Contas de demonstração para a revisão da Apple, sem caixa de e-mail · comentário: PENDENTE DO BACKEND (conferido no frila-dev em 18/10 14h03, só leitura) Já está pronto: função entrar-demonstracao ativa (v3), migrações aplicadas, 2 contas de demonstração criadas, segredos DEMONSTRACAO_EMAILS, DEMONSTRACAO_CODIGO e SERVICE_ROLE presentes. O que falta (critério 1): provar de ponta a ponta no frila-dev que a chamada abre sessão e que as listagens voltam com dados reais. A leitura não pode fazer isso (exige escrita). Quem faz: time do backend. Como fechar: rodar a chamada contra… · trello:6ad4fbe944c4a22f60250f96 14:03 · Cauê Carneiro
- `7XS6MQGg` · S2 · Backend · Motor de despacho: elegibilidade, fila e agendador · comentário: PENDENTE DO BACKEND (conferido no frila-dev em 18/10 14h03, só leitura) Já está pronto: função despachar ativa (v4), migração 20260926010000 aplicada, job reprocessar_despacho estável (1440/1440 sucessos nas últimas 24 h; critério 4 atendido), segredos do agendador presentes. O que falta (critério 5): 20 publicações no frila-dev com aceite do FCM e p95 abaixo de 30 s. Hoje: 0/20 amostras (./scripts/medir-despacho-remoto.sh). Depende também do segredo do FCM no frila-dev (ver cartão 36fU0CEO). Q… · trello:6ad4fbea8d77700125e7c2ce 14:03 · Cauê Carneiro
- `JWJOPAOL` · S2 · Backend · RPCs denunciar e bloquear; o bloqueio filtra tudo · comentário: PENDENTE DO BACKEND (conferido no frila-dev em 18/10 14h03, só leitura) Já está pronto: RPCs denunciar e bloquear, tabelas de bloqueio e ocorrência, função enviar-email ativa (v3), cron processar_fila_email ativo. O que falta (critério 3): os segredos de SMTP não existem no frila-dev. Faltam SMTP_HOST, SMTP_PORT, SMTP_USER, SMTP_PASS e EMAIL_REMETENTE (só o AGENDADOR_SECRET está lá). Sem eles nenhum e-mail com protocolo sai. Quem faz: time do backend grava os segredos (valores nunca no cartão, … · trello:6ad4fbea7f4357c07c4c2b5f 14:03 · Cauê Carneiro
- `OrS9gEfU` · S2 · Backend · Edge Function excluir-conta: saída na hora, turnos futuros cancelados e anonimização · comentário: PENDENTE DO BACKEND (conferido no frila-dev em 18/10 14h03, só leitura) Já está pronto: função excluir-conta ativa (v3), tabela pedido_de_exclusao, migração 20261017233000 aplicada, segredos obrigatórios presentes. O que falta (critério 4): teste de ponta a ponta no frila-dev, pedindo a exclusão de uma conta de teste e conferindo que os dados somem. A leitura não pode fazer isso (exige escrita e deleção). Quem faz: time do backend, com conta criada só para o teste (nunca a de demonstração da Ap… · trello:6ad4fbeb024ef54d92ef5974 14:03 · Cauê Carneiro
- `RNOfNVVU` · S0 · Backend · Portão de colisão de versão de migração, e o contrato-em-dia lendo o .env · comentário: PENDENTE DO BACKEND (conferido no frila-dev em 18/10 14h03, só leitura) Já está pronto: portão de migrações sem colisão (115 migrações aplicadas no frila-dev, sem versão duplicada) e função entrar-demonstracao ativa (v3) com os segredos de demonstração. O que falta (critério 8): rodar demonstracao-remoto.sh para subir a porta e demonstracao.sh passando contra ele no caminho verde. É um teste com escrita, fora do alcance da leitura. Quem faz: time do backend. Como fechar: comentar aqui a execuçã… · trello:6ad4fbeba311d188b9d54dae 14:03 · Cauê Carneiro
- `36fU0CEO` · S2 · Backend · Envio de push pelo FCM, registro do aparelho e estado de entrega · comentário: PENDENTE DO BACKEND: segredo do FCM (conferido no frila-dev em 18/10 14h03, só leitura) A função enviar-push está ativa (v3), com tabelas dispositivo e notificacao e os segredos de banco presentes. Falta a conta de serviço do FCM (FCM_SERVICE_ACCOUNT) no frila-dev: sem ela a função não envia nada. Quem faz: time do backend grava o segredo no frila-dev (valor nunca no cartão, no chat nem no repositório) e avisa aqui. Isso também destrava o critério 5 do cartão 7XS6MQGg. Continua do Cauê (aparelh… · trello:6ad4fbec8d1909840ce92b42 14:03 · Cauê Carneiro
- `eaWhDeym` · v1.1 · Backend + iOS · Contestar o despacho ('Por que recebo vagas') · comentário: PENDENTE DO BACKEND (conferido em 18/10 14h35, só leitura) Já está pronto: RPCs criterios_de_notificacao e pedir_revisao_despacho ativas, com geração de protocolo e ocorrência tipo revisao_despacho (testes pgTAP 450 e 605). O que falta (critério 2): Em supabase/functions/enviar-email/modelos.ts, a função modeloDe só trata denuncia e contestacao; implementar os modelos de e-mail para tipo revisao_despacho (para equipe e para autor). Quem faz: time do backend. Como fechar: implementar os modelos … · trello:6ad502bf182e87d6f187022e 14:32 · Cauê Carneiro
- `LQlwDaYZ` · S4 · Backend · Gravar o sinal de idade do cadastro (só a faixa, método e data) — ECA Digital · comentário: PENDENTE DO BACKEND (conferido em 18/10 14h35, só leitura) Já está pronto: RPC criar_conta funcional com verificação de maioridade legal no fuso de Brasília (migração 20261017200000_maioridade_fuso_brasilia.sql). O que falta: Adicionar 3 colunas em public.usuario (sinal_idade, idade_aferida_por, idade_aferida_em), parâmetro opcional sinal_idade em public.criar_conta validando valores permitidos (dezoito_ou_mais, recusou, indisponivel; 422 para inválido) e teste pgTAP de cobertura. Quem faz: tim… · trello:6ad502d426de4a9b55f47b41 14:33 · Cauê Carneiro
- `5boVdM0t` · S2 · Backend · Publicar vaga recusada no frila-dev com a conta de demonstração do contratante · comentário: PENDENTE DO BACKEND (conferido em 18/10 14h35, só leitura) Já está pronto: RPC publicar_vaga ativa no develop (migração 20260929234100_modo_selecao.sql) e estabelecimento Bar da Revisão cadastrado. O que falta (critérios 1 a 4): Analisar log do frila-dev (22:21:44Z de 15/10) para identificar e corrigir o erro na chamada de publicar_vaga pela conta revisao-contratante, validar publicação ponta a ponta e semear no mínimo 3 vagas futuras abertas pós 06/11 para o Bar da Revisão. Quem faz: time do b… · trello:6ad502dd2883b82f877dc280 14:33 · Cauê Carneiro
- `nUpPFCpM` · S2 · Backend + iOS · Exportar meus dados (US25) · comentário: PENDENTE DO BACKEND (conferido em 18/10 14h35, só leitura) Já está pronto: RPC e Edge Function exportar_meus_dados cobrindo 18 tabelas de dados pessoais em public (teste supabase/tests/440_exportar_meus_dados.sql). O que falta (critério 1): Incluir os registros de public.evento_app vinculados ao usuario_id na exportação de dados (contrato MeusDados em openapi.yaml e extração do backend), movendo evento_app de fora para cobertas no teste 440. Quem faz: time do backend e frila-docs. Como fechar: … · trello:6ad502e578ac24a577db3a4e 14:33 · Cauê Carneiro
- `SDeFULxG` · S4 · Backend · View da North Star (metrica.north_star_semanal) com teste e check-in verificado no funil · comentário: PENDENTE DO BACKEND (conferido em 18/10 14h35, só leitura) Já está pronto: Consulta da métrica especificada no Plano de Métricas e estrutura de views em metrica.funil_por_vaga (migração 20260930150000_views_funil_piloto.sql). O que falta (critérios 1 a 4): Criar migração da view metrica.north_star_semanal (com filtros de estado cumprida, presenca verificada e exclusão de teste/equipe), ajustar checkins verificado no funil_por_vaga, registrar decisão de confirmacoes no comentário da view e criar… · trello:6ad502f55316bd41ee3a809b 14:33 · Cauê Carneiro
- `eaWhDeym` · v1.1 · Backend + iOS · Contestar o despacho ('Por que recebo vagas') · comentário: PR #299 do backend mesclado (CI verde, 257 testes das funções): modelo revisao_despacho para equipe e autor, sem relato por e-mail; promessa de 24 h removida, prazos de 5 dias úteis e 15 dias corridos. · trello:6ad5192ae0e451c133f3cc2d 16:08 · Cauê Carneiro
- `OrS9gEfU` · S2 · Backend · Edge Function excluir-conta: saída na hora, turnos futuros cancelados e anonimização · comentário: PR #300 do backend mesclado: scripts/excluir-conta-remoto.sh (recusa prod). No frila-dev, 13 verificações OK (Auth 404, token antigo 401, elegiveis 1→0, perfil e painel 'Conta encerrada', anonimização, reputação de B igual). Faltam 3 verificações do turno futuro: o frila-dev está sem frila.agendador_secret (publicar_vaga 400; exclusão com turno futuro 500). Critério 4 fica aberto até o segredo existir. · trello:6ad5192cb004776fb1a9433b 16:08 · Cauê Carneiro
- `nUpPFCpM` · S2 · Backend + iOS · Exportar meus dados (US25) · comentário: Auditoria dos critérios de aceite (18/10 16h15): - Critério 1 (todas as tabelas com dado do usuário): FALTA. Das 22 tabelas de public, 18 estão cobertas em privado.meus_dados; evento_app possui usuario_id mas permanece na lista 'fora' (teste 440_exportar_meus_dados.sql:251) aguardando inclusão no contrato/backend. - Critério 2 (nada guardado no servidor): OK. privado.meus_dados é STABLE; Edge Function responde com Cache-Control: no-store; sem storage, tabelas auxiliares ou vazamento em log (PRs… · trello:6ad51a745ecf44f1f13195c1 16:13 · Cauê Carneiro
- `nUpPFCpM` · S2 · Backend + iOS · Exportar meus dados (US25) · comentário: Conferência de 18/10 (por amostra, contra a develop do backend 84b06e4): critérios 2 e 3 cumpridos (privado.meus_dados é STABLE e a função responde com Cache-Control: no-store; item de exportar em Meu perfil e em Estabelecimento, PerfisDaConta.swift:233 e :377, sem submenu). Critério 1 NÃO cumprido: public.evento_app tem usuario_id e está na lista 'fora' de supabase/tests/440_exportar_meus_dados.sql:248-251 (provisório, cartão 3zsjXW60); as outras 18 tabelas com dado do titular estão cobertas. … · trello:6ad51aaeb4df84fb338d5aa9 16:14 · Cauê Carneiro
- `SDeFULxG` · S4 · Backend · View da North Star (metrica.north_star_semanal) com teste e check-in verificado no funil · comentário: PR #303 do backend mesclado na develop (3dc97f3) em 18/10, com CI verde no mesmo commit (execução 39159120537: pgTAP, Edge Functions, contrato, colisão de versão e plano do caminho quente). Primeira revisão feita pelo Estranho (Gemini), sem achados abertos. · trello:6ad529625d18a9ac941f27ac 17:17 · Cauê Carneiro
- `nUpPFCpM` · S2 · Backend + iOS · Exportar meus dados (US25) · comentário: PR #304 do backend mesclado na develop (77afee2) em 18/10 com CI verde no mesmo commit (0ce06bb): exportar_meus_dados passa a incluir eventos_app. O cartão segue em Revisão: falta o contrato 0.2.45 no frila-docs (campo eventos_app em MeusDados) e a retirada da subtração em scripts/contrato-respostas.sql. · trello:6ad5298544e35973b3fac630 17:18 · Cauê Carneiro
- `nUpPFCpM` · S2 · Backend + iOS · Exportar meus dados (US25) · comentário: Backend: PR #306 mesclado na develop (3fc9ba77), CI verde no mesmo commit. O guarda de contrato do exportarMeusDados passou a aceitar eventos_app (já consta em MeusDados desde o contrato 0.2.45, frila-docs#96), junto com a migração do #304 e a RPC do #303. Espelho do contrato do backend em 0.2.45. Falta o lado do app: PR #409 (espelho 0.2.45 + fixtures) com a CI rodando; o cartão fica onde está até o app estar provado. · trello:6ad53a135b3b894a0a56e6de 18:28 · Cauê Carneiro
- `LQlwDaYZ` · S4 · Backend · Gravar o sinal de idade do cadastro (só a faixa, método e data) — ECA Digital · comentário: Backend: PR #302 mesclado na develop (CI verde no mesmo commit bfb9e66; teste 749 com 23/23; revisão do Loki sem achados). criar_conta aceita sinal_idade (dezoito_ou_mais, recusou, indisponivel); guarda só a faixa, o método e o instante; contrato 0.2.45 já descreve. Falta o lado do app (envio do sinal_idade) e a aplicação no frila-dev pelo workflow Entrega. · trello:6ad54010a5bd2ba603c5d6eb 18:54 · Cauê Carneiro
- `LQlwDaYZ` · S4 · Backend · Gravar o sinal de idade do cadastro (só a faixa, método e data) — ECA Digital · comentário: App: o cadastro agora envia sinal_idade (dezoito_ou_mais, recusou ou indisponivel) no criar_conta, conforme o contrato 0.2.45. PR 410 do frila-frontend mesclado em 18/10 com a CI verde (Parte 1 e Parte 2) e as classes AutenticacaoTests, ContratoDoClienteSupabaseTests e ContratoTests passando. A parte do backend segue neste cartão. · trello:6ad56273a5998c806d104dd0 21:21 · Cauê Carneiro
- `nUpPFCpM` · S2 · Backend + iOS · Exportar meus dados (US25) · comentário: Conferido em 18/10: PR #304 do frila-backend mesclado (77afee2, 18/10 20h18Z) com a migration 20261018193000_exportar_evento_app.sql e o teste supabase/tests/440_exportar_meus_dados.sql. Auditoria do Steve Rogers cobre os 3 critérios; movendo para Concluído. · trello:6ad585837f0df98b5fe84a00 23:50 · Cauê Carneiro
17 out 2026 49 fatos
merge 47 fatos
- [frila-frontend#360](https://github.com/FrilaApp/frila-frontend/pull/360) — test(cancelamento): fecha lacunas de teste da US16 (casos 1, 2, 3 e 8) 00:39 · cauecarneiro
- [frila-backend#267](https://github.com/FrilaApp/frila-backend/pull/267) — test(pgtap): cobertura e mutacao executada das RPCs de leitura (734) 02:02 · jotape12-Dev
- [frila-frontend#361](https://github.com/FrilaApp/frila-frontend/pull/361) — docs(ios): gerador das páginas públicas no repositório e correção de contraste 02:32 · cauecarneiro
- [Bancada#16](https://github.com/FrilaApp/Bancada/pull/16) — docs(cbl): vincula marcos da investigacao aos artefatos de produto e engenharia 03:36 · cauecarneiro
- [frila-frontend#363](https://github.com/FrilaApp/frila-frontend/pull/363) — docs: atualiza produtos Firebase integrados no app (Crashlytics e FCM) 04:37 · cauecarneiro
- [frila-frontend#364](https://github.com/FrilaApp/frila-frontend/pull/364) — docs(ios): cobrir SecaoDeCandidatos e DestinoAvaliacaoDoContratante no checklist (#168) 04:50 · cauecarneiro
- [frila-backend#263](https://github.com/FrilaApp/frila-backend/pull/263) — test(pgtap): cobertura da RPC atualizar_perfil_profissional (Top 7 RPC) 06:38 · jotape12-Dev
- [frila-frontend#367](https://github.com/FrilaApp/frila-frontend/pull/367) — fix(ux-03): cadastro do estabelecimento com seletor das 35 RAs, mascara de CPF/CNPJ e busca com submit 17:03 · cauecarneiro
- [frila-frontend#366](https://github.com/FrilaApp/frila-frontend/pull/366) — feat(design): toque tátil, sombra em camadas e leitura fonética de dinheiro (#D-01) 17:03 · cauecarneiro
- [frila-frontend#365](https://github.com/FrilaApp/frila-frontend/pull/365) — fix(ux-02): resolver achados 6, 7, 9 e 10 (publicação, sincronização de turnos e confirmação de urgência) 17:11 · cauecarneiro
- [frila-frontend#370](https://github.com/FrilaApp/frila-frontend/pull/370) — fix(ios): preservar disponibilidade e leitura do perfil em AX5 17:31 · cauecarneiro
- [frila-frontend#368](https://github.com/FrilaApp/frila-frontend/pull/368) — fix(ux-06): limites dinamicos no seletor de periodo do historico de turnos 17:31 · cauecarneiro
- [frila-frontend#362](https://github.com/FrilaApp/frila-frontend/pull/362) — test(dominio): testes unitários para RegraDePresenca e PermissaoDeLocalizacao (Lacuna 7) 18:15 · jotape12-Dev
- [frila-frontend#373](https://github.com/FrilaApp/frila-frontend/pull/373) — fix(ux-02): atender nits do Loki sobre stepper, sincronizacao do fim e alerta (#365 follow-up) 18:26 · jotape12-Dev
- [frila-frontend#372](https://github.com/FrilaApp/frila-frontend/pull/372) — test(ci): exigir FrilaMovimento.animacao no 1o argumento de .animation e adicionar caso ruim (#366 follow-up) 18:26 · jotape12-Dev
- [frila-frontend#376](https://github.com/FrilaApp/frila-frontend/pull/376) — docs(lgpd): lacunas da auditoria de dados pessoais no Registro de Tratamento 19:05 · jotape12-Dev
- [frila-frontend#371](https://github.com/FrilaApp/frila-frontend/pull/371) — fix(ux-05): contadores, conclusao de fluxos e placeholder na confianca, avaliacao, suporte e cancelamento 19:27 · cauecarneiro
- [frila-frontend#369](https://github.com/FrilaApp/frila-frontend/pull/369) — fix(ux-01): cadastro suave com mascara dd/mm/aaaa e remocao da caixa +18 19:34 · cauecarneiro
- [frila-backend#270](https://github.com/FrilaApp/frila-backend/pull/270) — test(entrar-demonstracao): cobrir falha fechada quando codigo esperado e vazio ou ausente 19:47 · jotape12-Dev
- [frila-frontend#380](https://github.com/FrilaApp/frila-frontend/pull/380) — docs(privacidade): acrescenta linha da Netlify em operadores e atualiza data 19:55 · cauecarneiro
- [frila-frontend#374](https://github.com/FrilaApp/frila-frontend/pull/374) — test(ci): exigir prefixo FrilaMovimento.animacao( no 1o argumento de .animation (#372 follow-up) 19:55 · jotape12-Dev
- [frila-backend#268](https://github.com/FrilaApp/frila-backend/pull/268) — test(enviar-email): cobrir falha_de_autenticacao definitiva e arquivamento imediato sem retentativas 19:57 · jotape12-Dev
- [frila-backend#269](https://github.com/FrilaApp/frila-backend/pull/269) — test(saude): cobrir header Cache-Control no-store e timestamp ISO estrito contra mutacoes 20:00 · jotape12-Dev
- [frila-backend#272](https://github.com/FrilaApp/frila-backend/pull/272) — test(exportar-turnos): cobrir rejeicao estrita de Authorization fora do padrao Bearer 20:17 · jotape12-Dev
- [frila-backend#271](https://github.com/FrilaApp/frila-backend/pull/271) — test(exportar-meus-dados): cobrir rejeicao estrita de Authorization fora do padrao Bearer 20:20 · jotape12-Dev
- [frila-backend#274](https://github.com/FrilaApp/frila-backend/pull/274) — test(enviar-push): cobrir classificacao de erros transitorios e permanentes no sendFcmMessage 20:22 · jotape12-Dev
- [frila-backend#273](https://github.com/FrilaApp/frila-backend/pull/273) — test(excluir-conta): cobrir rejeicao estrita de Authorization fora do padrao Bearer 20:22 · jotape12-Dev
- [frila-frontend#375](https://github.com/FrilaApp/frila-frontend/pull/375) — test(dominio): reforçar testes de PermissaoDeLocalizacao e ErroDeLocalizacao contra tautologias (#362 follow-up) 20:27 · jotape12-Dev
- [frila-backend#275](https://github.com/FrilaApp/frila-backend/pull/275) — feat(rpc): devolver da_equipe em candidatos_da_vaga 20:42 · jotape12-Dev
- [frila-frontend#378](https://github.com/FrilaApp/frila-frontend/pull/378) — test(dominio): testes unitários para Protocolo e TipoDeProtocolo 20:53 · jotape12-Dev
- [frila-frontend#383](https://github.com/FrilaApp/frila-frontend/pull/383) — docs(lgpd): texto do aviso push passa pela Google e pela Apple (Registro de Tratamento) 20:54 · jotape12-Dev
- [frila-backend#279](https://github.com/FrilaApp/frila-backend/pull/279) — test(edge): follow-ups dos PRs #268 (enviar-email) e #270 (entrar-demonstracao) 21:11 · jotape12-Dev
- [frila-frontend#385](https://github.com/FrilaApp/frila-frontend/pull/385) — docs(privacidade): alinha justificativa de Precise Location com ponto base e estabelecimento 21:12 · jotape12-Dev
- [frila-backend#280](https://github.com/FrilaApp/frila-backend/pull/280) — fix(enviar-email): refinar regex de autenticacao com lookaround e flexoes authenticat/authoriz 21:13 · jotape12-Dev
- [frila-frontend#379](https://github.com/FrilaApp/frila-frontend/pull/379) — test(dominio): testes unitários para funções temporais e contratuais de FormatadorFrila 21:23 · jotape12-Dev
- [frila-frontend#377](https://github.com/FrilaApp/frila-frontend/pull/377) — test(dominio): testes unitários para CausaDoCancelamento e CancelamentoDaPosicao 21:43 · jotape12-Dev
- [frila-backend#277](https://github.com/FrilaApp/frila-backend/pull/277) — chore(contrato): espelha contrato 0.2.44 (recusas de presenca) 21:53 · jotape12-Dev
- [frila-backend#281](https://github.com/FrilaApp/frila-backend/pull/281) — fix(enviar-push): restringir desregistro FCM a UNREGISTERED e status 410 21:54 · jotape12-Dev
- [frila-frontend#293](https://github.com/FrilaApp/frila-frontend/pull/293) — feat(ios): visual do design do Fabrício na v1.0 e tela do código mantida ao voltar ao app 22:03 · cauecarneiro
- [frila-frontend#386](https://github.com/FrilaApp/frila-frontend/pull/386) — docs(privacidade): cita NovaVaga.ponto e nota sobre FiltroVagasDTO na justificativa de localizacao precisa 22:04 · jotape12-Dev
- [frila-backend#283](https://github.com/FrilaApp/frila-backend/pull/283) — feat(saude): alertar falha de configuracao do FCM via verificar_saude e enviar-push 22:51 · jotape12-Dev
- [frila-frontend#381](https://github.com/FrilaApp/frila-frontend/pull/381) — test(dominio): testes unitários para modelos de cache e fila de ações (Lacuna 4) 22:54 · jotape12-Dev
- [frila-backend#282](https://github.com/FrilaApp/frila-backend/pull/282) — fix(identidade): verificar maioridade legal no fuso de Brasília (RN20) 23:06 · jotape12-Dev
- [frila-frontend#384](https://github.com/FrilaApp/frila-frontend/pull/384) — fix(dados): apaga ContatoDoTurnoPersistido de turnos vencidos e limpa contatos órfãos 23:12 · jotape12-Dev
- [frila-frontend#382](https://github.com/FrilaApp/frila-frontend/pull/382) — fix(apresentacao): alinha 4 textos da interface ao Guia de Voz oficial 23:18 · jotape12-Dev
- [frila-backend#285](https://github.com/FrilaApp/frila-backend/pull/285) — fix(rls): habilitar RLS nas 9 tabelas de privado e adicionar pgTAP dinamico 23:45 · jotape12-Dev
- [frila-frontend#387](https://github.com/FrilaApp/frila-frontend/pull/387) — contrato(ios): espelho do contrato 0.2.44 23:50 · jotape12-Dev
quadro-comentario 2 fatos
- `LQlwDaYZ` · S4 · Backend · Gravar o sinal de idade do cadastro (só a faixa, método e data) — ECA Digital · comentário: Varredura 17/10 (Pantera Negra): conferido no develop do backend — sinal_idade ainda não existe (git grep vazio); o cartão é do time do backend (RPC criar_conta + colunas em public.usuario). O app já consulta a faixa etária (VerificadorDeIdade.swift). · trello:6ad419add1b741c6d34c187d 21:58 · Cauê Carneiro
- `SDeFULxG` · S4 · Backend · View da North Star (metrica.north_star_semanal) com teste e check-in verificado no funil · comentário: Varredura 17/10 (Pantera Negra): conferido no develop do backend — a view metrica.north_star_semanal não existe; a consulta está pronta em iOS/Docs/PlanoDeMetricas.md:45-67. Falta migração + pgTAP (backend). · trello:6ad419adeba8fa4e8ede3f1c 21:58 · Cauê Carneiro
15 out 2026 4 fatos
commit 1 fato
- `3aa77c4` — T-0017: fórmulas conferidas no esquema real e critérios aprovados · 1 arquivo 21:39 · Cauê Carneiro
quadro-comentario 3 fatos
- `IYAb8v1i` · S3 · Backend + QA · Consultas quentes com o volume do DF simulado (RNF11) · comentário: PR aberto: https://github.com/FrilaApp/frila-backend/pull/195 · trello:6ad12d72438b1c8176ba0fb2 16:45 · João Paulo
- `5boVdM0t` · S2 · Backend · Publicar vaga recusada no frila-dev com a conta de demonstração do contratante · comentário: Nick Fury (agente do Cauê, frontend): pedido de prioridade. @matheussilva95408964 @joaopauloalbuquerque7 este cartão passou a ser MUST e caminho crítico, no topo da Sprint 2, com prazo pedido para terça 20/10 (23h59). O Cauê pediu prioridade: a revisão da Apple (submissão prevista em 06/11) usa a conta de demonstração do contratante, e hoje ela não consegue publicar vaga no frila-dev. O que precisamos de vocês: o log do frila-dev em torno de 22:21:44Z de 15/10 (nós não temos acesso a ele), a ca… · trello:6ad166143b2366e03b87d5d2 20:47 · Cauê Carneiro
- `SDeFULxG` · S4 · Backend · View da North Star (metrica.north_star_semanal) com teste e check-in verificado no funil · comentário: @matheussilva95408964 @joaopauloalbuquerque7 cartão novo do backend, sem pressa: é para o piloto (Sprint 4), prazo pedido 13/11. Vem do plano de métricas aprovado hoje (cartão qorNKAlB, frontend PR #321). Tudo o que precisa está na descrição. · trello:6ad172b200383b7cf34c8304 21:41 · Cauê Carneiro
14 out 2026 7 fatos
entrega 1 fato
- cartao NLgx2GCO movido para Concluido no quadro: v1.1 · Backend · Registrar a ocorrência de suporte quando o e-mail do turno chega (par do #21) · sem PR citando o cartao em frila-backend, procurado em 327 PRs — medido em 27/10 na API do Trello, acoes updateCard com listAfter 17:18 · João Paulo
merge 5 fatos
- [frila-backend#177](https://github.com/FrilaApp/frila-backend/pull/177) — fix(testes): ativa privado.ambiente no 440 e 430 para congelar relogio do produto 01:21 · jotape12-Dev
- [frila-backend#176](https://github.com/FrilaApp/frila-backend/pull/176) — feat(scripts): adiciona subcomando criar ao trello.sh 03:24 · jotape12-Dev
- [frila-backend#178](https://github.com/FrilaApp/frila-backend/pull/178) — feat(push): envia mutable-content: 1 no payload APNs para Notification Service Extension do iOS (h6RoObK6) 18:36 · jotape12-Dev
- [frila-frontend#290](https://github.com/FrilaApp/frila-frontend/pull/290) — feat(telemetria): implementa registrarEvento e suporte ao contrato 0.2.41 19:07 · jotape12-Dev
- [frila-frontend#291](https://github.com/FrilaApp/frila-frontend/pull/291) — feat(ios): extensão de serviço de notificação (NSE), testes e provisionamento (#h6RoObK6) 22:31 · jotape12-Dev
quadro-comentario 1 fato
- `NLgx2GCO` · v1.1 · Backend · Registrar a ocorrência de suporte quando o e-mail do turno chega (par do #21) · comentário: Decisão registrada em 14/10/2026: o item 1 (como o e-mail chega ao backend) foi resolvido pela Opção C. Não há ingestão de e-mail: o app chama a RPC abrir_suporte, que grava a ocorrência (tipo suporte, origem app) com protocolo curto e idempotência (PR #169, contrato 0.2.40; pgTAP 620). Operação da Equipe Frila no PR #171 (consultar-ocorrencias, fechar-chamado-sem-email). Edge Function de ingestão não será feita; cartão substituído por #169 e #171. · trello:6acfb962b577777f87dcc700 14:18 · João Paulo
13 out 2026 12 fatos
commit 2 fatos
- `f69c9cb` — docs(tarefas): atualiza T-0017 com plano de metricas e dicionario de eventos (#qorNKAlB) · 1 arquivo 14:32 · Cauê Carneiro
- `376da08` — docs(diario): cria notas diárias a partir do modelo de 26/09 a 13/10 · 17 arquivos 19:53 · João Paulo
frila-backend 8 fatos
- `ab27db8` — docs(operacao): passo a passo do SMTP próprio no Supabase Auth (#XtZTlTIA) (#173) · 1 arquivo 09:38 · Cauê Carneiro
- `d16ca66` — docs(operacao): documenta processo de termos bloqueados e cartao J5 (P8/P9, J5/J6) · 3 arquivos 10:31 · João Paulo
- `1b6dd7a` — feat(filtro): revisao da lista de termos bloqueados e desativacao no relato de contestacao (ggEzge6h) · 6 arquivos 10:38 · João Paulo
- `082ae81` — fix(contrato): manter espelho estritamente identico ao frila-docs main (0.2.41) · 2 arquivos 10:41 · João Paulo
- `ca15391` — docs(operacao): documenta processo de termos bloqueados e cartao J5 (P8/P9, J5/J6) (#174) · 3 arquivos 11:14 · João Paulo Albuquerque de Almeida Marques
- `e8c1c6f` — feat(filtro): revisao da lista de termos bloqueados e desativacao no relato de contestacao (ggEzge6h) (#175) · 4 arquivos 18:44 · João Paulo Albuquerque de Almeida Marques
- `1b7b262` — feat(scripts): adiciona subcomando criar ao trello.sh · 1 arquivo 19:23 · João Paulo
- `d1ecacf` — fix(scripts): ajusta formato de strings no subcomando criar do trello.sh · 1 arquivo 19:47 · João Paulo
quadro 1 fato
- `ggEzge6h` movido de Revisão para Concluído 🎉 · S0 · Backend · Filtro de texto ofensivo nos campos livres (diretriz 1.2) · trello:6aceb5035f2255edf1e9aaca 19:47 · João Paulo
quadro-comentario 1 fato
- `ggEzge6h` · S0 · Backend · Filtro de texto ofensivo nos campos livres (diretriz 1.2) · comentário: Concluído: PRs #87 (frila-docs), #174 (frila-backend) e #175 (frila-backend). · trello:6aceb4fc537d3f87bc497255 19:47 · João Paulo
12 out 2026 11 fatos
entrega 2 fatos
- cartao cVPDVZ7v movido para Concluido no quadro: S0 · Backend · Autoteste do portão de colisão de versão de migração · sem PR citando o cartao em frila-backend, procurado em 327 PRs — medido em 27/10 na API do Trello, acoes updateCard com listAfter 18:13 · Cauê Carneiro
- cartao jl6nbekI movido para Concluido no quadro: v1.1 · Backend + iOS · Equipe de confiança sempre notificada · PR #68, #71 — medido em 27/10 na API do Trello, acoes updateCard com listAfter 18:13 · Cauê Carneiro
quadro 3 fatos
- `RTmRTHbo` movido de Revisão para Concluído 🎉 · S1 · Backend + iOS · Republicar vaga anterior (US05) · trello:6acd2349e0e7a7c62b8caa11 15:13 · Cauê Carneiro
- `d3A1WjG3` movido de Revisão para Concluído 🎉 · v1.1 · Backend + iOS · Modo seleção: escolher candidato e fechamento automático · trello:6acd234eb8dc86ff67069ea2 15:13 · Cauê Carneiro
- `qcVimM84` movido de Revisão para Concluído 🎉 · S2 · Backend + iOS · Aviso de hora excedida quando o fim passa sem check-out · trello:6acd2350482d31efe6749c7f 15:13 · Cauê Carneiro
quadro-comentario 6 fatos
- `RTmRTHbo` · S1 · Backend + iOS · Republicar vaga anterior (US05) · comentário: Fechado pelo Maestro: auditoria do Loki item a item (.workers/missoes/2026-10-12-loki-prova-por-criterio-resultado.md), com teste:linha, script rodado (teste-migracoes-sem-colisao.sh 13/13) e PRs mesclados; CI da develop do backend verde (c443953). Conferido por amostra. · trello:6acd2348f9b05e207092d437 15:13 · Cauê Carneiro
- `jl6nbekI` · v1.1 · Backend + iOS · Equipe de confiança sempre notificada · comentário: Fechado pelo Maestro: auditoria do Loki item a item (.workers/missoes/2026-10-12-loki-prova-por-criterio-resultado.md), com teste:linha, script rodado (teste-migracoes-sem-colisao.sh 13/13) e PRs mesclados; CI da develop do backend verde (c443953). Conferido por amostra. · trello:6acd234acfc13ff64a7a3efd 15:13 · Cauê Carneiro
- `cVPDVZ7v` · S0 · Backend · Autoteste do portão de colisão de versão de migração · comentário: Fechado pelo Maestro: auditoria do Loki item a item (.workers/missoes/2026-10-12-loki-prova-por-criterio-resultado.md), com teste:linha, script rodado (teste-migracoes-sem-colisao.sh 13/13) e PRs mesclados; CI da develop do backend verde (c443953). Conferido por amostra. · trello:6acd234c13ac2be48b803ef1 15:13 · Cauê Carneiro
- `d3A1WjG3` · v1.1 · Backend + iOS · Modo seleção: escolher candidato e fechamento automático · comentário: Fechado pelo Maestro: auditoria do Loki item a item (.workers/missoes/2026-10-12-loki-prova-por-criterio-resultado.md), com teste:linha, script rodado (teste-migracoes-sem-colisao.sh 13/13) e PRs mesclados; CI da develop do backend verde (c443953). Conferido por amostra. · trello:6acd234d8fa9ecb802bf4613 15:13 · Cauê Carneiro
- `qcVimM84` · S2 · Backend + iOS · Aviso de hora excedida quando o fim passa sem check-out · comentário: Fechado pelo Maestro: auditoria do Loki item a item (.workers/missoes/2026-10-12-loki-prova-por-criterio-resultado.md), com teste:linha, script rodado (teste-migracoes-sem-colisao.sh 13/13) e PRs mesclados; CI da develop do backend verde (c443953). Conferido por amostra. · trello:6acd234ffc7a55feaeff43fc 15:13 · Cauê Carneiro
- `36fU0CEO` · S2 · Backend · Envio de push pelo FCM, registro do aparelho e estado de entrega · comentário: Conferência de 12/10 contra o frila-dev (somente leitura, PR 229 do frontend): a edge function 'despachar' publicada, versão 1, não lê a fila nem chama o FCM e responde {processadas: 0}; há 2 notificações 'pendente' e nenhum dispositivo registrado. Se o código do envio já está em develop, falta publicá-lo no frila-dev; se não está, a implementação do adaptador FCM segue pendente. Pedido ao time do backend: confirmar qual dos dois e atualizar o cartão (o 0.5 de 29/10 depende disto). · trello:6acd2c5e8a19be8ac970e1c7 15:52 · Cauê Carneiro
11 out 2026 4 fatos
frila-backend 2 fatos
- `d328954` — docs(estado): corrige assinatura, coluna e recusas de republicar_posicoes_restantes · 2 arquivos 01:34 · João Paulo
- `c443953` — docs(estado): consolidacao da fotografia em 10/10/2026 (contrato 0.2.41, 102 migracoes, 2.723 assercoes pgTAP) (#172) · 2 arquivos 03:56 · João Paulo Albuquerque de Almeida Marques
quadro-comentario 2 fatos
- `qcVimM84` · S2 · Backend + iOS · Aviso de hora excedida quando o fim passa sem check-out · comentário: Julgamento do dossiê (Viúva Negra, 11/10, leitura das fontes, sem execução): unicidade da notificação confirmada (teste 480, linhas 181-199, ON CONFLICT em privado.notificar); blindagem contra hora extra confirmada (payload estrito, 22023 para chave fora do vocabulário, valorAcordado imutável no iOS, zero ocorrências de negócio). Sem ressalva impeditiva. Fica de fora: push em aparelho real, que depende do FCM e do aparelho do Cauê. · trello:6acb27bdcd74de62aff2ecb0 03:07 · Cauê Carneiro
- `nUpPFCpM` · S2 · Backend + iOS · Exportar meus dados (US25) · comentário: Decisão do Cauê (11/10): a exportação de dados passa a incluir a telemetria evento_app vinculada por usuario_id. Contrato e backend: encaminhar ao time do backend; o cartão fica em Revisão até alinhar contrato, exportação e testes. · trello:6acb981a513bc098c423e1df 11:07 · Cauê Carneiro
10 out 2026 16 fatos
frila-backend 5 fatos
- `d9c2d0e` — test(mutacao): cobre indice unico parcial vaga_uma_republicacao_ativa_idx contra 23505 · 1 arquivo 20:21 · João Paulo
- `4901ad0` — feat(operacao): operacao do suporte por e-mail (P6, D16, SU-RN10, SU-RN11) · 5 arquivos 20:24 · João Paulo
- `d113eaf` — feat(selecao): republicar posicoes restantes em urgencia (D1-C, contrato 0.2.41) (#170) · 13 arquivos 21:21 · João Paulo Albuquerque de Almeida Marques
- `f73020b` — feat(operacao): operacao do suporte por e-mail (P6, D16, SU-RN10, SU-RN11) (#171) · 5 arquivos 21:56 · João Paulo Albuquerque de Almeida Marques
- `8237af4` — docs(estado): consolida fotografia do backend em 10/10/2026 (contrato 0.2.41, 102 migracoes, 2723 assercoes pgTAP) · 2 arquivos 23:22 · João Paulo
quadro 1 fato
- `pd7zOS5P` movido de Em andamento para Concluído 🎉 · v1.1 · Backend + iOS · Relatório consolidado e exportação de turnos (CSV e PDF) · trello:6aca3c076f1502f5624e5709 10:22 · Cauê Carneiro
quadro-comentario 10 fatos
- `d3A1WjG3` · v1.1 · Backend + iOS · Modo seleção: escolher candidato e fechamento automático · comentário: 10/10: Doutor Fantástico assumiu temporariamente. Loki revisa o PR frontend #176; Doutor Estranho verifica byte a byte o espelho 0.2.41 e os portões. CI 38031351545 verde no SHA 2fdccc2758fcb78712446ebb374258bdcf27a509; revisão ainda em andamento, sem novo critério marcado. · trello:6aca34d05ccf65ae1caa1c64 09:51 · Cauê Carneiro
- `d3A1WjG3` · v1.1 · Backend + iOS · Modo seleção: escolher candidato e fechamento automático · comentário: Integridade do PR frontend #176 conferida por Doutor Estranho: espelho idêntico a docs@cf1008f, verificadores de contrato/fixtures/textos aprovados, CI 38031351545 verde. Prova: .workers/antigravity-3/relatorio-integridade-176.md. Atenção: backend #170 permanece aberto com falha no check Migrações e pgTAP (execução 38007611337); funcionamento ponta a ponta depende do merge e aplicação das migrações pelo time backend. Revisão Loki pendente; nenhum aceite ponta a ponta marcado. · trello:6aca3680e410472cc93be756 09:58 · Cauê Carneiro
- `d3A1WjG3` · v1.1 · Backend + iOS · Modo seleção: escolher candidato e fechamento automático · comentário: PR frontend #176 reprovado por Loki: 2 bloqueios, 2 médias e 3 baixas. Revisão: https://github.com/FrilaApp/frila-frontend/pull/176#issuecomment-6097761792. Maestro confirmou por amostra VM criada no body e releitura em Tasks; correção antes do merge. CI verde no SHA antigo não prova correções futuras. Backend #170 segue pendente. Não há novos critérios concluídos. · trello:6aca371e41bdaf732500b9f2 10:01 · Cauê Carneiro
- `d3A1WjG3` · v1.1 · Backend + iOS · Modo seleção: escolher candidato e fechamento automático · comentário: Encaminhamento ao time backend: CI do PR #170, execução 38007611337/SHA fe9ba4c3, reprovou por falta de cobertura do índice vaga_uma_republicacao_ativa_idx no portão scripts/mutacao.sh. Log linha 1382: SOBREVIVEU — nenhum teste reclamou; linha 1452: exit code 1. Não foi timeout/travamento. Inferência/recomendação: testar diretamente a violação do índice (23505), de modo que retirar o índice torne pgTAP vermelho. Prova: .workers/antigravity-3/relatorio-ci-170.md. Este é D1-C/modo seleção; US05/R… · trello:6aca38b18082d63dc017aad8 10:08 · Cauê Carneiro
- `pd7zOS5P` · v1.1 · Backend + iOS · Relatório consolidado e exportação de turnos (CSV e PDF) · comentário: Conferência para encerramento técnico (10/10): os quatro critérios já marcados têm execução registrada. Backend PR155 mesclado, CI37517272875 no SHA d21106cf: exportar-turnos Deno e pgTAP480 aprovados, incluindo seed (valores/contrapartes) e 204 sem arquivo. Frontend PR106/156 mesclados; CI37162421958/SHA d64d154 verde com exportação CSV/PDF e compartilhamento. Dossiê: .workers/missoes/2026-10-10-steve-dossie-fechamento-relatorio.md. Não foi executada homologação integrada no frila-dev nem apro… · trello:6aca3c066ef1e9be9fb4a6cf 10:22 · Cauê Carneiro
- `qcVimM84` · S2 · Backend + iOS · Aviso de hora excedida quando o fim passa sem check-out · comentário: Dossiê de evidências conferido em 10/10: backend CI https://github.com/FrilaApp/frila-backend/actions/runs/36797668907 (SHA 5b2b8c9, incorporado no PR79/ae80c9b), pgTAP 480 aprovado: gera aviso para profissional/casa uma vez e não gera após check-out. Frontend CI https://github.com/FrilaApp/frila-frontend/actions/runs/36973853084 executou SHA b03559a (PR66, merge2fb0c0e); suítes UI verdes. Auditoria estrutural do iOS confirma valorAcordado e registro de check-out, sem acréscimo calculado no flu… · trello:6aca93e61614ec07b617f602 16:37 · Cauê Carneiro
- `nUpPFCpM` · S2 · Backend + iOS · Exportar meus dados (US25) · comentário: Auditoria em 10/10: CI backend37928208052 e frontend38011357592 verdes; pgTAP440 e UI dos dois perfis confirmados. Ressalva impede conclusão do critério1: public.evento_app possui usuario_id e fica fora de MeusDados; fonte440 SHA0892777 declara como motivo contrato sem telemetria (cartão3zsjXW60), não impessoalidade. A mensagem de teste que diz não guardar dado do titular precisa correção pelo time backend. Mantido em Revisão; recomendação: alinhar contrato/exportação ao critério completo antes… · trello:6aca94803503e39096a37eee 16:39 · Cauê Carneiro
- `d3A1WjG3` · v1.1 · Backend + iOS · Modo seleção: escolher candidato e fechamento automático · comentário: PR frontend176 mesclado em 10/10: https://github.com/FrilaApp/frila-frontend/pull/176 — sete achados de código corrigidos e revisão Loki aprovada. Prova local21unitários+4UI, capturas padrão/XXXL e recusa real. CI https://github.com/FrilaApp/frila-frontend/actions/runs/38080819102 verde no SHA9b6c6b2e79abe07fbea177b0ff8711299a8e1754; merged4a9099036905fd4bbe4fa062cf65ffad18c3368. Limite: UI testou retentativa/chave, não forçou re-render do pai; @state auditado por fonte. Backend170 continua dep… · trello:6acaa427bdd0f50473c03922 17:46 · Cauê Carneiro
- `nUpPFCpM` · S2 · Backend + iOS · Exportar meus dados (US25) · comentário: Recomendação (Auditoria Frila, 10/10/2026): A tabela public.evento_app guarda dado direto do titular (usuario_id not null) e sua ausência na exportação decorre de lacuna no contrato MeusDados da API. Recomendação: incluir a telemetria no contrato (frila-docs) e encaminhar ao backend (frila-backend); manter o cartão em Revisão até alinhar contrato, exportação e testes. · trello:6acae2c596df4702322ab9a3 22:13 · Cauê Carneiro
- `RTmRTHbo` · S1 · Backend + iOS · Republicar vaga anterior (US05) · comentário: Prova de republicar vaga encerrada (Homem-Aranha, 10/10): PR 180 em rascunho (frila-frontend, commit 5854d87). UI RepublicarVagaUITests 1/1 e suíte RepublicarVagaViewModelTests aprovada (Swift Testing), com nova prova de preservação de função, valor, local e instruções. Lacuna registrada: o cartão copiado não exibe as instruções (decisão de produto, sem mudança de tela). CI remota 0 pelo teto. Falta revisão antes de sair do rascunho. · trello:6acae6fe9f88ff5c18e75233 22:31 · Cauê Carneiro
9 out 2026 5 fatos
commit 1 fato
- `be6aa97` — docs: piloto e v1.0 sem cobrança (#151) · 3 arquivos 21:36 · Cauê Carneiro
frila-backend 4 fatos
- `0892777` — feat(suporte): suporte por e-mail opcao C (RPC abrir_suporte, pgTAP 620 e contrato 0.2.40) (#169) · 9 arquivos 09:09 · João Paulo Albuquerque de Almeida Marques
- `143de93` — feat(selecao): migrações P1-P4 de republicar_posicoes_restantes e painel (D1-C, contrato 0.2.41) · 2 arquivos 20:49 · João Paulo
- `4ca364a` — feat(selecao): pgtap 630, corrida-ciclo, espelho contrato 0.2.41 e recusas vigiadas no portao (P5-P7) · 8 arquivos 21:01 · João Paulo
- `fe9ba4c` — test: atualiza assercoes de estrutura e painel com republicada_de e republicavel_em_urgencia · 2 arquivos 21:06 · João Paulo
8 out 2026 19 fatos
frila-backend 11 fatos
- `1900c83` — feat(contrato): vigia lote 8 com 15 recusas criticas (422 e 401) (#163) · 6 arquivos 10:15 · João Paulo Albuquerque de Almeida Marques
- `72061fe` — feat(contrato): vigia lote 9 com 15 recusas criticas (422 e 401) · 5 arquivos 10:33 · Faísca (agy)
- `d59d138` — feat(contrato): vigia lote 9 com 15 recusas criticas (422 e 401) (#164) · 5 arquivos 14:20 · João Paulo Albuquerque de Almeida Marques
- `c96fa49` — feat(contrato): encerra lote 10 cobrindo 100% das recusas do contrato · 5 arquivos 14:30 · Faísca (agy)
- `426dfac` — docs: protocolo de conclusão do worker e lock do banco no CLAUDE.md · 1 arquivo 15:05 · João Paulo
- `c944bce` — feat(contrato): encerra lote 10 cobrindo 100% das recusas do contrato (#165) · 5 arquivos 15:08 · João Paulo Albuquerque de Almeida Marques
- `330489d` — docs: protocolo de conclusão do worker e lock do banco no CLAUDE.md (#166) · 1 arquivo 15:36 · João Paulo Albuquerque de Almeida Marques
- `5497442` — feat(contrato): endurece portao exigindo isentas no contrato e zero nao vigiados (#167) · 4 arquivos 16:49 · João Paulo Albuquerque de Almeida Marques
- `bd22a3a` — feat(suporte): migracao de categoria_suporte, origem em ocorrencia e rpc abrir_suporte (P1 e P2) · 2 arquivos 17:28 · Trovão (agy)
- `b4fc9b3` — docs(estado): fotografia de 08/10, contrato 0.2.38 e numeros do portao · 1 arquivo 17:43 · Matheus Silva
- `51ed5df` — feat(suporte): pgtap 620, espelho contrato 0.2.40 e recusas vigiadas no portao (P3 e P4) · 7 arquivos 17:49 · Trovão (agy)
quadro-comentario 8 fatos
- `d3A1WjG3` · v1.1 · Backend + iOS · Modo seleção: escolher candidato e fechamento automático · comentário: Medido em 08/10/2026 contra origin/develop f6525a8. O nucleo deste cartao esta entregue: escolher_candidato e fechamento automatico em supabase/migrations/20260929234100_modo_selecao.sql (PR #82), avisos em 20260929234000_avisos_do_modo_selecao.sql, e a reposicao dentro de 24 h ou por atraso em 20261007110000_modo_selecao_reabertura_urgencia.sql (PR #161). Faltam dois itens que o contrato 0.2.38 (PR #162) acrescentou para este mesmo cartao: 1. Candidato.da_equipe em candidatos_da_vaga (D7). O c… · trello:6ac719c9f73072e389cabb14 01:19 · Matheus Silva
- `pd7zOS5P` · v1.1 · Backend + iOS · Relatório consolidado e exportação de turnos (CSV e PDF) · comentário: Medido em 08/10/2026 contra origin/develop f6525a8. A parte de backend esta entregue. A Edge Function exportar-turnos aceita de e ate opcionais, com padrao dos ultimos 15 dias quando omitidos, exige formato (422 campo_obrigatorio) e recusa intervalo maior que 30 dias com 422 intervalo_maximo_excedido. Entrou pelo PR #155, com o contrato 0.2.37, e tem 31 testes unitarios em Deno. A checklist de criterios de aceite deste cartao esta inteiramente marcada. O que resta e a tela de Historico no iOS, … · trello:6ac719ca1a70f87f1d2cd7e5 01:19 · Matheus Silva
- `RNOfNVVU` · S0 · Backend · Portão de colisão de versão de migração, e o contrato-em-dia lendo o .env · comentário: Medido em 08/10/2026 contra origin/develop f6525a8. Os dois portoes deste cartao estao na develop: scripts/migracoes-sem-colisao.sh e scripts/contrato-em-dia.sh. O PR #37 tem titulo identico ao cartao e foi mergeado em 28/09, mas nao cita o shortLink do cartao, portanto o vinculo PR-cartao e por titulo, nao por link. A entrega esta comprovada por arquivo presente na develop. · trello:6ac719caa9c398945499eb00 01:19 · Matheus Silva
- `cVPDVZ7v` · S0 · Backend · Autoteste do portão de colisão de versão de migração · comentário: Medido em 08/10/2026 contra origin/develop f6525a8. O autoteste esta na develop, em scripts/teste-migracoes-sem-colisao.sh. Nenhum PR cita o shortLink deste cartao. O PR provavel e o #56, por titulo, mergeado na develop. A entrega esta comprovada por arquivo presente na develop, nao por link de PR. · trello:6ac719cbb66365c91db21f15 01:19 · Matheus Silva
- `ggEzge6h` · S0 · Backend · Filtro de texto ofensivo nos campos livres (diretriz 1.2) · comentário: Medido em 08/10/2026 contra origin/develop f6525a8. O filtro esta na develop, em supabase/migrations/20260923200000_filtro_de_texto_ofensivo.sql (privado.normalizar na linha 36 e privado.texto_aceitavel na linha 82). Chegou pelo PR #9, mergeado em 24/09. O PR #8 foi fechado sem merge, com base em s0/contrato-0.2.2, portanto a entrega nao esta la. Pendencia fora do codigo, registrada no docs/ESTADO.md: a revisao da lista de termos bloqueados pela Julia. · trello:6ac719cb9cab59a8436b3015 01:19 · Matheus Silva
- `36fU0CEO` · S2 · Backend · Envio de push pelo FCM, registro do aparelho e estado de entrega · comentário: Medido em 08/10/2026 contra origin/develop f6525a8. A entrega esta na develop, mas nao pelo PR deste cartao. O PR #40 foi fechado sem merge. O codigo chegou pelo PR #41, o resgate dos PRs #1 a #6 do repositorio temporario, mergeado em 26/09. Na develop: supabase/migrations/20260926020000_registro_dispositivo_e_push.sql (registro do dispositivo na linha 10, gravar_aceite_push na 91, gravar_falha_push na 122, notificacao_expirada na 192) e supabase/functions/enviar-push/index.ts. · trello:6ac719cbed2fc4243b45a61f 01:19 · Matheus Silva
- `7XS6MQGg` · S2 · Backend · Motor de despacho: elegibilidade, fila e agendador · comentário: Medido em 08/10/2026 contra origin/develop f6525a8. A entrega esta na develop, mas nao pelos PRs deste cartao. Os PRs #39 e #27 foram fechados sem merge. O codigo chegou pelo PR #41, o resgate dos PRs #1 a #6, mergeado em 26/09. Na develop: supabase/migrations/20260926010000_motor_despacho.sql (privado.elegiveis na linha 90), supabase/functions/despachar/index.ts, e o agendador em 20260929130000_agendar_fechamento_e_reconciliacao.sql. · trello:6ac719cc87941c6679e58404 01:19 · Matheus Silva
- `NLgx2GCO` · v1.1 · Backend · Registrar a ocorrência de suporte quando o e-mail do turno chega (par do #21) · comentário: Levantamento do quadro e do codigo em 08/10/2026, contra origin/develop f6525a8. Este e o unico cartao com etiqueta Backend sem membro e sem dependencia aberta de outra frente. O item 1, a escolha de como o e-mail chega ao backend, continua sem registro e e pre-requisito para codar. O que existe hoje, medido: todo o caminho de e-mail da develop e de SAIDA. Entrada nao existe. Zero ocorrencias de inbound e de pub/sub nas 23 fontes de supabase/functions/, e nenhum parse de e-mail recebido. O job … · trello:6ac719cc26010ed7630b6a1e 01:19 · Matheus Silva
7 out 2026 24 fatos
commit 1 fato
- `19f2e6f` — docs: notas de superado sobre cobrança e prioridade paga (#151) · 5 arquivos 17:19 · Cauê Carneiro
frila-backend 11 fatos
- `6cb9815` — feat(contrato): vigia lote 7 com 15 recusas criticas (422) · 5 arquivos 09:39 · Faísca (agy)
- `ffa2ccf` — fix(ci): restaura dados de demonstracao e isola fixtures no teste 440 · 2 arquivos 10:11 · Trovão (agy)
- `be7ac3c` — feat(contrato): vigia lote 7 com 15 recusas criticas (422) (#159) · 5 arquivos 10:27 · João Paulo Albuquerque de Almeida Marques
- `6e1baf8` — test(modo-selecao): reproduz defeito de reabertura (<24h e atraso) e cobre lacunas do 480 · 2 arquivos 10:43 · João Paulo
- `7656834` — chore(contrato): espelha contrato 0.2.38 do frila-docs (modo seleção: da_equipe, selecao_lembrete, textos dos avisos) · 2 arquivos 10:49 · Marika (Claude)
- `50d4cb1` — fix(ci): restaura dados de demonstracao e isola fixtures no teste 440 (#160) · 2 arquivos 10:54 · João Paulo Albuquerque de Almeida Marques
- `3f292bc` — fix(modo-selecao): reposicao dentro de 24h ou por atraso reabre em urgencia (D4=C, D5=A) · 2 arquivos 10:57 · João Paulo
- `58f3be9` — chore(contrato): espelha contrato 0.2.38 do frila-docs (modo seleção: da_equipe, selecao_lembrete, textos dos avisos) (#162) · 2 arquivos 14:08 · João Paulo Albuquerque de Almeida Marques
- `f6525a8` — feat(modo-selecao): reposicao dentro de 24h ou por atraso reabre em urgencia (D4=C, D5=A) (#161) (#161) · 3 arquivos 14:52 · João Paulo Albuquerque de Almeida Marques
- `de6c473` — feat(contrato): vigia lote 8 com 15 recusas criticas (422 e 401) · 5 arquivos 15:29 · Faísca (agy)
- `371701b` — fix(contrato): evita broken pipe no grep de verificacao da colheita · 1 arquivo 17:43 · Faísca (agy)
quadro-comentario 12 fatos
- `d3A1WjG3` · v1.1 · Backend + iOS · Modo seleção: escolher candidato e fechamento automático · comentário: Descrição atualizada em 07/10/2026: referências para Requisitos v1.5.0 e contrato 0.2.37/0.2.38; decisões D1 a D9 aprovadas (frila-docs#75); contrato 0.2.38 em frila-docs#76. · trello:6ac64d98094beb71e79b9591 10:48 · João Paulo
- `d3A1WjG3` · v1.1 · Backend + iOS · Modo seleção: escolher candidato e fechamento automático · comentário: **Evidência dos critérios, conferida em 07/10/2026** por leitura do código (Tony Stark; amostra reconferida pelo Nick Fury), em `frila-frontend` `d141e0f` (CI do iOS verde) e `frila-backend` `f6525a8`. Os testes citados existem e estão na CI; ninguém os rodou de novo para este comentário. Os 5 critérios têm prova no código: `supabase/tests/480_modo_selecao.sql`, `corrida-ciclo.sh` (`ci.yml:85`), `CandidatosDaVagaViewModelTests.swift:220,286`, `ModoSelecaoDoContratanteUITests.swift:64,138,190`, … · trello:6ac68fc56ef2cb4a1f6f99dd 15:30 · Cauê Carneiro
- `jl6nbekI` · v1.1 · Backend + iOS · Equipe de confiança sempre notificada · comentário: **Evidência dos critérios, conferida em 07/10/2026** por leitura do código (Tony Stark; amostra reconferida pelo Nick Fury), em `frila-frontend` `d141e0f` (CI do iOS verde) e `frila-backend` `f6525a8`. Os testes citados existem e estão na CI; ninguém os rodou de novo para este comentário. Os 4 critérios têm prova: `supabase/tests/440_equipe_de_confianca.sql:199-207,287,294,339`, `EquipeDeConfiancaViewModelTests.swift:17,87,125,145`, `EquipeDeConfiancaUITests.swift:59,75` (app: PR 155 do frila-f… · trello:6ac68fc62c15a58105a30d0c 15:30 · Cauê Carneiro
- `RTmRTHbo` · S1 · Backend + iOS · Republicar vaga anterior (US05) · comentário: **Evidência dos critérios, conferida em 07/10/2026** por leitura do código (Tony Stark; amostra reconferida pelo Nick Fury), em `frila-frontend` `d141e0f` (CI do iOS verde) e `frila-backend` `f6525a8`. Os testes citados existem e estão na CI; ninguém os rodou de novo para este comentário. O critério aberto ("a partir de uma vaga encerrada, a vaga nova sai sem redigitar os campos copiados") tem prova: `RepublicarVagaUITests.swift:5`, `RepublicarVagaViewModelTests.swift:68`, `supabase/tests/200_r… · trello:6ac68fc98e7de3993d54c364 15:30 · Cauê Carneiro
- `qcVimM84` · S2 · Backend + iOS · Aviso de hora excedida quando o fim passa sem check-out · comentário: **Evidência dos critérios, conferida em 07/10/2026** por leitura do código (Tony Stark; amostra reconferida pelo Nick Fury), em `frila-frontend` `d141e0f` (CI do iOS verde) e `frila-backend` `f6525a8`. Os testes citados existem e estão na CI; ninguém os rodou de novo para este comentário. Os 3 critérios têm prova: `supabase/tests/480_alerta_fim_sem_checkout.sql:182-199,213-227,268-287`; no app, a busca por hora extra em `iOS/Sources` não acha nenhuma tela que calcule ou sugira. Não marquei: o c… · trello:6ac68fcaac9952b99b59f7ff 15:30 · Cauê Carneiro
- `nUpPFCpM` · S2 · Backend + iOS · Exportar meus dados (US25) · comentário: **Evidência dos critérios, conferida em 07/10/2026** por leitura do código (Tony Stark; amostra reconferida pelo Nick Fury), em `frila-frontend` `d141e0f` (CI do iOS verde) e `frila-backend` `f6525a8`. Os testes citados existem e estão na CI; ninguém os rodou de novo para este comentário. Os 3 critérios têm prova: `supabase/tests/440_exportar_meus_dados.sql:56-79,101,209-255`, `exportar-meus-dados/index_test.ts:87,100`, `PerfisDaConta.swift:197,300`, `ItemExportarDados.swift:63-67`, `ExportarDa… · trello:6ac68fcbbe8707098765e9a7 15:30 · Cauê Carneiro
- `eaWhDeym` · v1.1 · Backend + iOS · Contestar o despacho ('Por que recebo vagas') · comentário: **Evidência dos critérios, conferida em 07/10/2026** por leitura do código (Tony Stark; amostra reconferida pelo Nick Fury), em `frila-frontend` `d141e0f` (CI do iOS verde) e `frila-backend` `f6525a8`. Os testes citados existem e estão na CI; ninguém os rodou de novo para este comentário. Critérios 1, 3 e 4 têm prova: `PorQueReceboVagasViewModelTests.swift:29`, `PorQueReceboVagasUITests.swift:32`, `supabase/tests/450_contestar_despacho.sql:172-204`, `605_revisao_despacho_opcao_b.sql:70-89`, `su… · trello:6ac68fd53104f946fc9f480c 15:30 · Cauê Carneiro
- `eaWhDeym` · v1.1 · Backend + iOS · Contestar o despacho ('Por que recebo vagas') · comentário: **Pergunta ao backend sobre a 0.2.37 (uma contestação por despacho).** O contrato diz "uma contestação por despacho", e o servidor (`supabase/migrations/20261006160000_revisao_despacho_opcao_b.sql:44-51`, develop `f6525a8`) recusa pela existência de **qualquer** ocorrência desse tipo do mesmo autor, sem identificar um despacho e sem olhar o estado. Na prática é uma contestação por profissional, para sempre: quem contestou uma vez e foi respondido nunca mais consegue pedir revisão pelo app. É es… · trello:6ac691b0ab88117759ee2aa3 15:38 · Cauê Carneiro
- `eaWhDeym` · v1.1 · Backend + iOS · Contestar o despacho ('Por que recebo vagas') · comentário: **App: contrato 0.2.37 no `main`** (frila-frontend PR 156, merge `2cdc754`, 07/10). "Por que recebo vagas" trata o `409 contestacao_ja_aberta`: fecha o formulário, diz que já existe contestação, orienta o recurso por e-mail e não oferece reenvio; Meu perfil conserva o protocolo ou o bloqueio ao reabrir a folha. Prova local do merge: 1.119 testes, 0 falhas (unitários e 6 classes de interface). A pergunta ao backend sobre "por despacho" × "por autor" está no comentário anterior. · trello:6ac693f4a855fd930c136b5e 15:48 · Cauê Carneiro
- `pd7zOS5P` · v1.1 · Backend + iOS · Relatório consolidado e exportação de turnos (CSV e PDF) · comentário: **App: janela de exportação da 0.2.37 no `main`** (frila-frontend PR 156, merge `2cdc754`, 07/10): `de` e `ate` opcionais (omitidos, o servidor usa os últimos 15 dias), a tela bloqueia janela acima de 30 dias e o `422 intervalo_maximo_excedido` tem mensagem própria. Prova local do merge: 1.119 testes, 0 falhas. **Os 4 critérios, com prova** (leitura do Tony Stark em 07/10, amostra reconferida por mim): CSV e PDF com os campos da RN17 (`exportar-turnos/index_test.ts:340,385`); período sem turnos… · trello:6ac693f5dbea327304c1d93d 15:48 · Cauê Carneiro
- `d3A1WjG3` · v1.1 · Backend + iOS · Modo seleção: escolher candidato e fechamento automático · comentário: **App: modo seleção da v1.1 implementado conforme `requisitos/modo-selecao-v1.1.md` e o contrato 0.2.38** (branch `feature/modo-selecao-v11-contrato-0238`, PR a caminho): selo "Da sua equipe" (`da_equipe`, sem reordenar), aviso `selecao_lembrete`, reposição em urgência (D4 e D5) e prazo de escolha na vaga. **Três pontos para o backend e o produto decidirem** (o app marcou cada um como inferência): 1. **D1, "republicar em urgência com um toque" não cabe na 0.2.38.** `republicar_vaga` (develop, m… · trello:6ac693f818a8dd190585a531 15:48 · Cauê Carneiro
- `d3A1WjG3` · v1.1 · Backend + iOS · Modo seleção: escolher candidato e fechamento automático · comentário: **App: modo seleção da v1.1 no `main`** (frila-frontend PR 158, merge `c4c77ef`, 07/10), conforme `requisitos/modo-selecao-v1.1.md` e o contrato 0.2.38. Entrou: selo "Da sua equipe" (`da_equipe`, sem reordenar a lista), aviso `selecao_lembrete` levando a casa aos candidatos, reposição em urgência (D4 e D5) no dublê e nas telas dos dois lados, opção Seleção só com início a mais de 24 horas, prazo de escolha visível e aviso de janela curta. A tabela de conformidade (requisitos, recusas, critérios… · trello:6ac6a49525c8fed2988fc039 16:59 · Cauê Carneiro
6 out 2026 15 fatos
entrega 1 fato
- cartao oTMpueLZ movido para Concluido no quadro: S1 · Backend · Contrato 0.2.29: meu_estabelecimento sem o documento · sem PR citando o cartao em frila-backend, procurado em 327 PRs — medido em 27/10 na API do Trello, acoes updateCard com listAfter 19:50 · João Paulo
frila-backend 9 fatos
- `2e3f86a` — Entrega contínua: develop no frila-dev, tag no frila-prod (#207) (#89) · 9 arquivos 09:18 · Cauê Carneiro
- `c0c5607` — Registra o SMTP proprio do frila-dev, e o codigo no lugar do link (#81) · 1 arquivo 11:04 · Cauê Carneiro
- `4ec0807` — feat(contrato): vigia lote 4 com 15 recusas criticas e assercao de code (#154) · 5 arquivos 14:13 · João Paulo Albuquerque de Almeida Marques
- `d21106c` — feat(contrato): revisao de despacho (opcao B) e exportacao de turnos (0.2.37) · 6 arquivos 16:11 · Trovão (agy)
- `c1b838e` — feat(contrato): vigia lote 5 com 15 recusas criticas e assercao de code · 5 arquivos 17:46 · Trovão (agy)
- `15c437d` — feat(contrato): vigia lote 6 com 15 recusas criticas de autenticacao (401) · 5 arquivos 18:16 · Trovão (agy)
- `9e6c439` — docs(estado): consolida fotografia do backend em 06/10/2026 · 1 arquivo 18:19 · Bigorna (agy)
- `be45a91` — docs(estado): consolida fotografia do backend em 06/10/2026 (#158) · 1 arquivo 18:21 · João Paulo Albuquerque de Almeida Marques
- `b1806e4` — feat(contrato): vigia lote 6 com 15 recusas criticas de autenticacao (401) (#157) · 5 arquivos 19:00 · João Paulo Albuquerque de Almeida Marques
quadro 1 fato
- `pVvubZJy` movido de Revisão para Concluído 🎉 · S2 · Backend · Contestação da suspensão e erros de cancelamento fora do contrato · trello:6ac550dc955d28b88325b5d0 16:49 · João Paulo
quadro-comentario 4 fatos
- `pVvubZJy` · S2 · Backend · Contestação da suspensão e erros de cancelamento fora do contrato · comentário: Ao adaptar o app do iOS à 0.2.35 e à 0.2.36, achamos duas frases do contrato que admitem uma leitura que o servidor não tem. Abri um PR só de texto (0.2.37, sem mudança de comportamento nem de schema) e marquei o João Paulo como revisor: https://github.com/FrilaApp/frila-docs/pull/73 1. "Turno em andamento" no cancelamento: o servidor decide pelo estado da posição, e não pelo horário. Depois de `inicio_em`, a posição confirmada continua cancelável. O nosso dublê tinha lido como "o horário já pa… · trello:6ac53065e5f7c034a1927a80 14:31 · Cauê Carneiro
- `eaWhDeym` · v1.1 · Backend + iOS · Contestar o despacho ('Por que recebo vagas') · comentário: Parte do iOS deste cartão entrou no `main` do frila-frontend em 06/10: https://github.com/FrilaApp/frila-frontend/pull/154 - A tela "Por que recebo vagas" mostra os critérios reais vindos de `criterios_de_notificacao`: função, grade semanal, distância máxima, equipes de confiança e o teto de notificações. Tem estado próprio para carregando, vazio, sem rede e erro. - "Contestar" envia o relato por `pedir_revisao_despacho` e mostra o protocolo com o prazo de resposta. Relato em branco ou curto (4… · trello:6ac532cc0f688a966e44b372 14:41 · Cauê Carneiro
- `pVvubZJy` · S2 · Backend · Contestação da suspensão e erros de cancelamento fora do contrato · comentário: O app do iOS já segue a 0.2.35 e a 0.2.36: https://github.com/FrilaApp/frila-frontend/pull/153 (no `main` em 06/10, prova local com 1.075 testes e 0 falhas) e o espelho do contrato em https://github.com/FrilaApp/frila-frontend/pull/152. - Reenvio do cancelamento pelo mesmo autor conclui a ação da fila offline como sucesso. O `409` no reenvio vira aviso visível na tela do turno ou da vaga, em vez de ser descartado. - Conta suspensa com contestação enviada mostra o protocolo e não oferece contest… · trello:6ac534b0a2e3de0c847e40af 14:49 · Cauê Carneiro
- `jl6nbekI` · v1.1 · Backend + iOS · Equipe de confiança sempre notificada · comentário: Parte do iOS deste cartão entrou no `main` do frila-frontend em 06/10: https://github.com/FrilaApp/frila-frontend/pull/155 - Em Estabelecimento, a tela "Equipe de confiança" lista a equipe por `equipe_de_confianca` e remove por `remover_da_equipe`, com confirmação. - "Incluir na equipe" aparece na tela do turno do contratante só com presença verificada, e chama `incluir_na_equipe`; quem já está na equipe vê "Na equipe de confiança". O servidor é quem decide: `403 sem_permissao` com `sem_turno_c… · trello:6ac538bd6f1715d396d16099 15:06 · Cauê Carneiro
5 out 2026 9 fatos
frila-backend 9 fatos
- `72c5737` — feat(cancelamentos): reenvio idempotente de cancelar_posicao e cancelar_vaga (pVvubZJy, 0.2.35) · 3 arquivos 09:11 · João Paulo
- `3b5f9d8` — test(contrato): atualiza hash do espelho 0.2.35 e ajusta fixture das recusas 409 de cancelamento · 2 arquivos 15:09 · João Paulo
- `96216cf` — feat(contrato): vigia lote 3 com 15 recusas criticas e assercao de code · 5 arquivos 15:17 · João Paulo
- `14aeb51` — chore(contrato): atualiza espelho para versao 0.2.35 do frila-docs · 2 arquivos 15:27 · João Paulo
- `1048093` — test(cancelamentos): ajusta testes preexistentes 380, 480 e 485 para cancelamento idempotente 0.2.35 · 3 arquivos 15:27 · João Paulo
- `fd8dacb` — chore(contrato): adiciona marca corpo-sem-mudanca-de-superficie para base 0.2.35 · 1 arquivo 16:19 · João Paulo
- `edb1322` — ci: rerun CI after runner docker daemon crash · 0 arquivos 16:39 · João Paulo
- `0123e5a` — docs(fluxo): cartão vai direto a Concluído; Revisão só para PR que espera outra pessoa · 6 arquivos 17:06 · Cauê Carneiro
- `0849707` — feat(contas): devolve protocolo de contestacao respondida em situacao_da_conta (0.2.36) · 4 arquivos 22:51 · Trovão (agy)
4 out 2026 25 fatos
entrega 1 fato
- cartao pk2RDTtN movido para Concluido no quadro: v1.1 · iOS + Backend · Suporte por e-mail a partir do turno · sem PR citando o cartao em frila-backend, procurado em 327 PRs — medido em 27/10 na API do Trello, acoes updateCard com listAfter 13:17 · Cauê Carneiro
frila-backend 18 fatos
2× chore(contrato): espelha contrato 0.2.34 do frila-docs · 2 arquivos 11:15–11:41 · João Paulo
- `7838001` — chore(contrato): espelha contrato 0.2.34 do frila-docs · 2 arquivos 11:15
- `247eb67` — chore(contrato): espelha contrato 0.2.34 do frila-docs · 2 arquivos 11:41
- `e6d7990` — test(fechamento): fixa relogio do produto no teste 280 · 1 arquivo 11:22 · João Paulo
- `ff69d07` — feat(contrato): audita e valida colecoes exercitadas no portao de contrato · 4 arquivos 11:23 · João Paulo
- `273d52c` — Revert "test(fechamento): fixa relogio do produto no teste 280" · 1 arquivo 11:23 · João Paulo
- `de3c434` — fix(test): congela relogio no inicio do teste 280 para evitar falha por virada de data · 1 arquivo 11:23 · João Paulo
- `4e97d7c` — test(relogio): congela frila.agora antes da vaga no 280 (vaga_encerrada depois de 04/10) · 1 arquivo 11:27 · João Paulo
- `ee8d012` — Revert "fix(test): congela relogio no inicio do teste 280 para evitar falha por virada de data" · 1 arquivo 11:30 · João Paulo
- `a656ae7` — test(relogio): move congelamento de frila.agora para o topo de 280 · 1 arquivo 11:33 · João Paulo
- `3604bea` — test(relogio): congela frila.agora no teste 280 para desacoplar da data corrente · 1 arquivo 11:41 · João Paulo
- `788ca86` — docs(changelog): cria CHANGELOG.md para a versao 1.0.0 e aponta no README · 2 arquivos 15:53 · João Paulo
- `1e5a2a3` — test(ciclo): integra configuracao_do_app no ciclo-completo e documenta operacao de emergencia · 2 arquivos 19:52 · João Paulo
- `ab6ff6a` — feat(demonstracao): renovacao idempotente e parametrizada dos dados demo (RzllRo3o) · 5 arquivos 20:04 · João Paulo
- `33d2969` — feat(ci): portão contra bomba-relógio de relógio em testes pgTAP · 3 arquivos 20:17 · João Paulo
- `4bfd4ac` — fix(ci): usa fetch-depth 0 no job migracoes para autoteste de relogio · 2 arquivos 20:19 · João Paulo
- `b72ddf0` — feat(contrato): vigia 15 recusas criticas com assercao de status e code · 5 arquivos 20:24 · João Paulo
- `f35be4e` — test(privacidade): adiciona testes exaustivos de privacidade RN15, RN17 e LGPD para push, exportacao e emails · 3 arquivos 22:06 · João Paulo
- `e261db5` — feat(contrato): vigia lote 2 com 20 recusas criticas e assercao de code · 5 arquivos 22:13 · João Paulo
quadro-comentario 6 fatos
- `pd7zOS5P` · v1.1 · Backend + iOS · Relatório consolidado e exportação de turnos (CSV e PDF) · comentário: 04/10 00h25 · PR #106 entrou no main (00:14): Histórico de turnos no perfil com período, exportação em CSV e PDF pela Edge Function exportar-turnos do contrato (fixtures do contrato para CSV, PDF e requisição), período sem turnos tratado como vazio sem arquivo, e testes (ExportacaoDeTurnosTests, HistoricoDeTurnosViewModelTests, HistoricoDeTurnosUITests). Local antes do merge: 811 verdes. Revisão adversarial do Loki feita. Os critérios de valores contra o seed e o 204 real dependem do backend (e… · trello:6ac1c772cfc96102e60312f6 00:26 · Cauê Carneiro
- `pk2RDTtN` · v1.1 · iOS + Backend · Suporte por e-mail a partir do turno · comentário: 04/10 10h20 · PR #131 entrou no main: botão 'Ajuda com este turno' nos rodapés de Meu turno (profissional) e do turno do contratante, ao lado de Denunciar/Bloquear; a folha mostra o prazo de resposta (até 5 dias úteis, sem atendimento ao vivo) e, em risco, o aviso com 190 e 180; o e-mail sai pelo compositor do sistema para o suporte com o assunto '[Turno <id>] <função>' e só os dados do turno (sem telefone). 8 testes de view model (SuporteTurnoTests) e de interface (SuporteTurnoUITests). Local:… · trello:6ac251f4a1a57c0b539f03a9 10:17 · Cauê Carneiro
- `pVvubZJy` · S2 · Backend · Contestação da suspensão e erros de cancelamento fora do contrato · comentário: Item 2 resolvido pelo PR #70 do frila-docs (contrato 0.2.34) e espelho integrado no backend via PR #140. Cartão segue aberto por causa dos itens 1 e 3. · trello:6ac2a1d433d41d57698fcfac 15:58 · João Paulo
- `CvopSHh6` · S0 · iOS + Backend · Versão mínima do app e aviso de atualização obrigatória · comentário: PR #143 (test(ciclo): integra configuracao_do_app no ciclo-completo e documenta operacao de emergencia) mergeado na develop em 04/10. Integrou a verificação da RPC no ciclo-completo.sh e documentou o procedimento de emergência em supabase/operacao/subir-versao-minima.md. · trello:6ac2f6689116c8b7a7ad521d 21:59 · João Paulo
- `RzllRo3o` · S4 · iOS + Backend · Correções 1.0.x durante o piloto · comentário: Atualizações de 04/10 entregues no backend: 1. Item de versão mínima atendido pelo PR #143 (documentação operacional em supabase/operacao/subir-versao-minima.md e validação no ciclo-completo.sh). 2. Item 6 (renovação dos dados de demonstração a cada envio) atendido pelo PR #144 (função idempotente privado.renovar_dados_demonstracao, scripts/renovar-demonstracao.sh protegido por EU_SEI_QUE_E_PRODUCAO=1 e restauração pós-teste no demonstracao-remoto.sh). Ambos mergeados na develop. · trello:6ac2f66ee48b22adfdcba1fa 21:59 · João Paulo
- `7gpPBgTH` · S1 · Backend + iOS · Contas de demonstração para a revisão da Apple, sem caixa de e-mail · comentário: PR #144 mergeado na develop em 04/10: implementada a função privado.renovar_dados_demonstracao() e o script operacional scripts/renovar-demonstracao.sh, garantindo dados de demonstração com datas futuras parametrizadas e turno restaurado virgem para check-in do revisor. Execução remota nos ambientes frila-dev/frila-prod aguarda deliberação. · trello:6ac2f673bceabf0247a13589 21:59 · João Paulo
3 out 2026 39 fatos
commit 1 fato
- `d5cb0ed` — Registra no CBL as regras da Apple para o selo da App Store e as imagens de iPhone · 1 arquivo 13:26 · Cauê Carneiro
entrega 2 fatos
- cartao IrtkCWDz movido para Concluido no quadro: S2 · Backend · MeusDados devolve as sete coleções que faltavam na exportação (US25) · PR #99 — medido em 27/10 na API do Trello, acoes updateCard com listAfter 14:45 · João Paulo
- cartao 1VYlDEbf movido para Concluido no quadro: S3 · Backend · Espelho do contrato na develop está quatro versões atrás (0.2.28 contra 0.2.32) · PR #127 (closed) — medido em 27/10 na API do Trello, acoes updateCard com listAfter 14:45 · João Paulo
frila-backend 10 fatos
- `a3e1a5a` — docs(estado): o cenário 3 reprovou uma segunda vez, e o run do #127 fechou verde · 1 arquivo 02:53 · Matheus Silva
- `3955748` — chore(contrato): espelha contrato 0.2.33 do frila-docs (d398310) · 2 arquivos 09:07 · João Paulo
- `8c1609e` — fix(meus-dados): alinha coleções de privado.meus_dados ao contrato 0.2.33 · 3 arquivos 09:30 · João Paulo
- `e8994f1` — fix(test): isola fixture de notificacao no teste 440 para evitar poluicao de estado · 1 arquivo 09:46 · João Paulo
- `06e6e34` — feat(ci): portão aceita marca corpo-sem-mudanca-de-superficie para RPC já declarada · 2 arquivos 09:59 · João Paulo
- `8df215f` — feat: adiciona marca de isencao de corpo para contato_do_turno · 1 arquivo 11:34 · João Paulo
- `af7014b` — docs(estado): remede numeros em 03/10, alinha a develop 0.2.33 e documenta superacao dos bloqueios · 1 arquivo 11:51 · João Paulo
- `a3cff33` — fix(suspensao): permite reenvio de contestacao apos resolucao da anterior (pVvubZJy) · 2 arquivos 11:53 · João Paulo
- `0e98c21` — chore: reexecuta CI apos falha de rate limit da CLI do Supabase no runner · 0 arquivos 12:00 · João Paulo
- `a721a1f` — docs(estado): saneia ressalvas da Bigorna, remove textos defasados e alinha tabela de portões a 03/10 · 1 arquivo 12:04 · João Paulo
quadro 9 fatos
- `oCv0WPNY` movido de Revisão para Concluído 🎉 · S0 · Backend + QA · Nenhum portão confere o corpo das Edge Functions contra o contrato · trello:6ac0c12b19a5e2184ed8888d 05:47 · João Paulo
- `7IIPRTdg` movido de Revisão para Concluído 🎉 · S2 · Backend · Contrato 0.2.31: turno cancelado, avaliação dada e cancelamento no painel · trello:6ac114fa31452d4e5cd052a0 11:45 · João Paulo
- `Uc69VI57` movido de Revisão para Concluído 🎉 · S2 · Backend · Contrato 0.2.32: cancelamento no turno, turno_id na candidatura e o 422 do modo seleção · trello:6ac114fb11040cf073fb0f05 11:45 · João Paulo
- `FmgMnRx4` movido de Revisão para Concluído 🎉 · S2 · Backend · Contrato 0.2.30: o push leva o vínculo do aparelho · trello:6ac114fcf30a8c256b2ba008 11:45 · João Paulo
- `CPD2c74A` movido de Revisão para Concluído 🎉 · S3 · Backend · Impasse (40P01) entre o gatilho da vaga cancelada e a desistência que reabre (RNF14) · trello:6ac1150361cf4f6510c191d0 11:45 · João Paulo
- `pVvubZJy` movido de Sprint 2 · Despacho e turno (20/10 → 02/11) para Revisão · S2 · Backend · Contestação da suspensão e erros de cancelamento fora do contrato · trello:6ac1171b7c7c650031f1ceaa 11:54 · João Paulo
- `1DLcZWsf` movido de Revisão para Concluído 🎉 · S3 · Backend · mutacao.sh varre constraints UNIQUE · trello:6ac11c22e333d07415b9b022 12:15 · João Paulo
- `pk2RDTtN` movido de Backlog · v1.1 (dez/2026) para Em andamento · v1.1 · iOS + Backend · Suporte por e-mail a partir do turno · trello:6ac14a211e1bdc64f2bf4e8a 15:32 · Cauê Carneiro
- `pd7zOS5P` movido de Revisão para Em andamento · v1.1 · Backend + iOS · Relatório consolidado e exportação de turnos (CSV e PDF) · trello:6ac15241f9803bbfa25430c4 16:06 · Cauê Carneiro
quadro-comentario 17 fatos
- `7IIPRTdg` · S2 · Backend · Contrato 0.2.31: turno cancelado, avaliação dada e cancelamento no painel · comentário: Concluído via PR #131 (mergeado na develop). · trello:6ac114faefd1c5076873979e 11:45 · João Paulo
- `Uc69VI57` · S2 · Backend · Contrato 0.2.32: cancelamento no turno, turno_id na candidatura e o 422 do modo seleção · comentário: Concluído via PR #130 (mergeado na develop). · trello:6ac114fc1fd4ccce9284a21b 11:45 · João Paulo
- `FmgMnRx4` · S2 · Backend · Contrato 0.2.30: o push leva o vínculo do aparelho · comentário: Concluído via PR #129 (mergeado na develop). · trello:6ac114fd188024ecd5b487ad 11:45 · João Paulo
- `1VYlDEbf` · S3 · Backend · Espelho do contrato na develop está quatro versões atrás (0.2.28 contra 0.2.32) · comentário: Concluído via PR #125 e #130 (mergeados na develop). · trello:6ac1150092da01f6717db8fa 11:45 · João Paulo
- `IrtkCWDz` · S2 · Backend · MeusDados devolve as sete coleções que faltavam na exportação (US25) · comentário: Concluído via PR #99 (mergeado na develop). · trello:6ac115010bc1c8d6558c41e5 11:45 · João Paulo
- `CPD2c74A` · S3 · Backend · Impasse (40P01) entre o gatilho da vaga cancelada e a desistência que reabre (RNF14) · comentário: Concluído via PR #101 (mergeado na develop). · trello:6ac1150323f532e007fdfb59 11:45 · João Paulo
- `pVvubZJy` · S2 · Backend · Contestação da suspensão e erros de cancelamento fora do contrato · comentário: Implementada a correção do defeito de reenvio de contestação após resolução da anterior. PR #138 aberto contra develop (https://github.com/FrilaApp/frila-backend/pull/138). Revisor indicado: Bigorna. · trello:6ac1171161151a6f515970f0 11:54 · João Paulo
- `pVvubZJy` · S2 · Backend · Contestação da suspensão e erros de cancelamento fora do contrato · comentário: PR aberto: https://github.com/FrilaApp/frila-backend/pull/138 · trello:6ac1171a54b9873f9fe7cf6f 11:54 · João Paulo
- `1DLcZWsf` · S3 · Backend · mutacao.sh varre constraints UNIQUE · comentário: Concluído via PR #128 (mergeado na develop no commit c465291). · trello:6ac11ca9e8bf729f107e6c49 12:18 · João Paulo
- `kT7NhMGV` · S3 · Backend · Endurecimento para produção: limites, logs, backup e advisors · comentário: Itens restantes do B10 concluídos via PR #137 (mergeado na develop no commit f257699). · trello:6ac11caa8dc72afdf61b1d38 12:18 · João Paulo
- `d3A1WjG3` · v1.1 · Backend + iOS · Modo seleção: escolher candidato e fechamento automático · comentário: Seguimento do iOS no main (03/10): https://github.com/FrilaApp/frila-frontend/pull/88 (d48de25). Na aba Candidaturas do profissional, a candidatura aceita cujo turno foi cancelado deixa de dizer 'Confirmada' e mostra 'Turno cancelado'; tocar numa candidatura aceita abre o turno pelo Candidatura.turno_id do contrato 0.2.32 (servidor sem o campo: vai para Meus turnos, como antes). Feito pelo Thor, revisão do Nick Fury; CI verde. Fecha o achado 2 da revisão do PR #82. · trello:6ac134c9a9fd19f89ece422a 14:00 · Cauê Carneiro
- `RTmRTHbo` · S1 · Backend + iOS · Republicar vaga anterior (US05) · comentário: Correção no main (03/10): https://github.com/FrilaApp/frila-frontend/pull/90. Republicar uma vaga do modo seleção abria o formulário com o início em 3 h, abaixo das 24 h que o modo exige, e a confirmação falhava sem a pessoa mexer em nada; agora o início sugerido no modo seleção é 25 h (urgência continua 3 h). Achado no QA do Loki, corrigido pelo Bucky, revisão do Nick Fury, CI verde. · trello:6ac13e0fc43e85f4e773a7f9 14:40 · Cauê Carneiro
- `pk2RDTtN` · v1.1 · iOS + Backend · Suporte por e-mail a partir do turno · comentário: Puxado da v1.1 em 03/10 por decisão do Cauê. O Steve Rogers faz o lado do iOS: botão Suporte em Meu turno e no turno do contratante, compositor de e-mail já preenchido para suportefrila@gmail.com (assunto com [Turno <uuid>], partes e horário; sem conta de e-mail no aparelho, mailto ou copiar), aviso do prazo de 5 dias úteis e, em risco, 190 e 180. O registro da ocorrência ao receber o e-mail é do backend: cartão #256. Interface provisória até o design. · trello:6ac14a22bea1a235a4faf550 15:32 · Cauê Carneiro
- `pd7zOS5P` · v1.1 · Backend + iOS · Relatório consolidado e exportação de turnos (CSV e PDF) · comentário: iOS em andamento (03/10): tela Histórico com período e exportação CSV/PDF nos dois perfis, seguindo o contrato 0.2.33 (POST /exportar-turnos, 204 sem arquivo) com dublê; design provisório até a alta fidelidade da v1.1. A Edge Function é do time do backend. Branch feat/ios-historico-e-exportacao-23. · trello:6ac15242117653fdbaf365c2 16:06 · Cauê Carneiro
- `d3A1WjG3` · v1.1 · Backend + iOS · Modo seleção: escolher candidato e fechamento automático · comentário: iOS (03/10): o PR https://github.com/FrilaApp/frila-frontend/pull/98 entrou no main com testes de interface do lado do profissional contra um servidor de hoje (que ainda não devolve os campos novos do contrato): cenário profissional-servidor-antigo e 4 testes em ServidorDeHojeUITests, conferindo que o app abre lista, detalhe, candidatura e Meu turno sem quebrar. CI verde. · trello:6ac160a557c025a541f7af07 17:08 · Cauê Carneiro
- `pk2RDTtN` · v1.1 · iOS + Backend · Suporte por e-mail a partir do turno · comentário: Andamento (03/10, 17h30): parte do app pronta em arquivos novos (branch feat/ios-suporte-no-turno-21; SuporteTurnoTests com 8 cenários e SuporteTurnoUITests verdes). Falta ligar os botões nos rodapés de Meu turno e do turno do contratante, depois do PR da parte 2 do #39, que mexe nos mesmos rodapés. O registro do e-mail recebido é do backend (cartão #256). · trello:6ac164ca80ee1270d73d99c1 17:25 · Cauê Carneiro
- `pd7zOS5P` · v1.1 · Backend + iOS · Relatório consolidado e exportação de turnos (CSV e PDF) · comentário: PR https://github.com/FrilaApp/frila-frontend/pull/106 (03/10), em revisão: tela Histórico de turnos em Meu perfil e em Estabelecimento (este mês, mês passado e datas livres; CSV ou PDF; compartilhar como frila-turnos-AAAA-MM-DD_AAAA-MM-DD), chamada /exportar-turnos no app e no dublê. Período sem turnos (204) avisa e não abre o compartilhar (critério 'Período sem turnos devolve 204 e não gera arquivo', provado no app). Período em dias de São Paulo, de 00:00 a 23:59:59.999. Testes: 735 de unidad… · trello:6ac17adf03bbdab1d76567c2 18:59 · Cauê Carneiro
2 out 2026 50 fatos
frila-backend 19 fatos
- `29b3981` — fix(meus_dados): candidaturas, equipe_confianca e pedido_de_exclusao seguem o contrato 0.2.29 · 2 arquivos 00:25 · João Paulo
- `ca86a27` — test(contrato): cobre recusas de ciclo de turno e presenca prometidas (480) · 1 arquivo 00:35 · João Paulo
- `3035ac5` — feat(contrato): leitura do cadastro do estabelecimento para membro (meu_estabelecimento, 0.2.29) · 6 arquivos 05:05 · Cauê Carneiro
- `94d67b1` — test(mutacao): inclui constraints e indices UNIQUE e cobre 6 alvos faltantes (1DLcZWsf) · 2 arquivos 14:59 · João Paulo
- `f8c72f9` — docs(estado): remede os números em 02/10 e registra a divergência do espelho · 1 arquivo 15:03 · Matheus Silva
- `ee622ad` — docs(estado): marca como defasada a seção de contrato de 29/09 · 1 arquivo 15:04 · Matheus Silva
- `fcf97cd` — fix(meu_estabelecimento): espelho 0.2.29 do commit 63e2ffa e resposta sem documento (RN15) · 4 arquivos 15:06 · João Paulo
- `614d9e4` — chore(contrato): espelha contrato 0.2.32 do frila-docs · 2 arquivos 15:06 · Matheus Silva
- `0af6234` — feat(push): leva vinculo_id do aparelho no push e registro de dispositivo (0.2.30, FmgMnRx4) · 7 arquivos 15:16 · João Paulo
- `f6119ad` — feat(contrato): 0.2.32 cancelamento no turno e turno_id na candidatura (Uc69VI57) · 5 arquivos 15:21 · João Paulo
- `28c57a2` — docs(estado): registra o cenário 3 das corridas e o PR #127 do espelho · 1 arquivo 15:26 · Matheus Silva
- `e43822d` — feat(contrato): turno cancelado, avaliacao dada e cancelamento no painel (7IIPRTdg) · 7 arquivos 15:29 · João Paulo
- `1746fcd` — chore(contrato): espelha contrato 0.2.32 (baf3dbd) · 2 arquivos 15:29 · João Paulo
- `ff9956d` — feat(contrato): espelho 0.2.31 do commit a2dd849 do frila-docs · 2 arquivos 15:33 · João Paulo
- `de3b1eb` — feat(contrato): 0.2.32, cancelamento no turno e turno_id na candidatura (Uc69VI57) · 7 arquivos 19:50 · João Paulo
- `74a5796` — test(push): mata mutante M5 exigindo vinculo_id no select de dispositivo · 1 arquivo 20:59 · João Paulo
- `18197c3` — test(relogio): congela frila.agora antes da vaga 1 no 250 (vaga_encerrada depois de 02/10 18h) · 1 arquivo 21:04 · João Paulo
- `4fced35` — fix(relogio): usa privado.agora() em cancelamento_da_posicao (P1) · 2 arquivos 22:43 · João Paulo
- `18bc55e` — test(corrida): robustece temporizacao e transacoes do cenario 3 do teto · 1 arquivo 23:38 · João Paulo
quadro 7 fatos
- `kT7NhMGV` movido de Em andamento para Concluído 🎉 · S3 · Backend · Endurecimento para produção: limites, logs, backup e advisors · trello:6abf226fc19728ace1c4fc52 00:18 · João Paulo
- `1DLcZWsf` movido de Em andamento para Revisão · S3 · Backend · mutacao.sh varre constraints UNIQUE · trello:6abff1268abc120a1b102d8c 15:00 · João Paulo
- `1VYlDEbf` movido de Sprint 3 · Loja (03/11 → 13/11) para Em andamento · S3 · Backend · Espelho do contrato na develop está quatro versões atrás (0.2.28 contra 0.2.32) · trello:6abff357a0941a94f2a4b125 15:09 · Matheus Silva
- `1VYlDEbf` movido de Em andamento para Revisão · S3 · Backend · Espelho do contrato na develop está quatro versões atrás (0.2.28 contra 0.2.32) · trello:6abff50aab48b3e569ac3485 15:16 · Matheus Silva
- `FmgMnRx4` movido de Em andamento para Revisão · S2 · Backend · Contrato 0.2.30: o push leva o vínculo do aparelho · trello:6abff50ef2a01239a22d0268 15:16 · João Paulo
- `Uc69VI57` movido de Em andamento para Revisão · S2 · Backend · Contrato 0.2.32: cancelamento no turno, turno_id na candidatura e o 422 do modo seleção · trello:6abff64d23f8600b5da0460b 15:22 · João Paulo
- `7IIPRTdg` movido de Em andamento para Revisão · S2 · Backend · Contrato 0.2.31: turno cancelado, avaliação dada e cancelamento no painel · trello:6abff8321799d567ee84f728 15:30 · João Paulo
quadro-comentario 24 fatos
- `RTmRTHbo` · S1 · Backend + iOS · Republicar vaga anterior (US05) · comentário: Parte do iOS no main (02/10): https://github.com/FrilaApp/frila-frontend/pull/68 — republicar vaga anterior pela lista e pelo detalhe de Minhas vagas, com a chamada republicar_vaga do contrato, tentativa guardada na fila sem rede e reenvio pela mesma chave. Dois pareceres (Hulk bloqueou 2 pontos; corrigidos; Tony aprovou com ressalva). Em andamento, num PR de seguimento: testes de resposta perdida e da fila real, confirmação de sucesso pelo detalhe e o botão Fechar quando o resultado do envio é… · trello:6abfce3d482657d30a878539 12:31 · Cauê Carneiro
- `wpNabtCO` · S2 · Backend + iOS · Ciclo de vida do token de push: troca de conta, saída e reinstalação · comentário: Parte do iOS no main (02/10): https://github.com/FrilaApp/frila-frontend/pull/65 (registro e remoção do token do aparelho, com AparelhoDePushTests) e https://github.com/FrilaApp/frila-frontend/pull/70 (a saída desregistra o aparelho no sistema antes e depois da rede; a entrega só volta depois de registrar_dispositivo confirmar o token de quem entra; carência de 60 s na troca de conta). Falta: prova em iPhone (roteiro em iOS/Docs/Push.md, passos 8 a 10). A correção definitiva da troca de conta é… · trello:6abfce3efb5e847843addd73 12:31 · Cauê Carneiro
- `nUpPFCpM` · S2 · Backend + iOS · Exportar meus dados (US25) · comentário: Parte do iOS no main (02/10): https://github.com/FrilaApp/frila-frontend/pull/75 — item 'Exportar meus dados' em Meu perfil e em Estabelecimento, sem submenu, com a explicação do que vem no arquivo; chama exportar-meus-dados, recebe o JSON na resposta e abre a folha de compartilhar; o arquivo temporário é apagado quando a folha fecha. Texto da explicação aprovado pelo Cauê. Em andamento, num PR de seguimento: quatro ajustes da revisão. Comentário autorizado pelo Cauê. · trello:6abfce3f796a27bc33174a96 12:31 · Cauê Carneiro
- `d3A1WjG3` · v1.1 · Backend + iOS · Modo seleção: escolher candidato e fechamento automático · comentário: Parte do iOS em andamento desde 02/10 (Capitã Marvel, pelo Cauê): publicação em modo seleção com a regra das 24 horas, lista de candidatos com perfil e reputação e o botão Escolher, e, para o profissional, 'candidatura enviada' com Retirar candidatura. Três PRs em sequência no frila-frontend (dados, contratante, profissional), seguindo o contrato como está no frila-docs. Comentário autorizado pelo Cauê; não movi o cartão nem marquei critério. · trello:6abfce5bdf60da6e42081aad 12:31 · Cauê Carneiro
- `oTMpueLZ` · S1 · Backend · Contrato 0.2.29: meu_estabelecimento sem o documento · comentário: @matheussilva95408964 este cartão nasceu de uma mudança de contrato que o Cauê aprovou hoje e que já está no main do frila-docs. Está escrito para um agente executar sem outro contexto: o que o contrato pede, o que mudar no backend e o critério de aceite. Não pus ninguém como membro: quem pega é com vocês. Dúvida sobre o contrato ou sobre o lado do app, respondam aqui que o Cauê me repassa. · trello:6abfd301807c2b4230fc7648 12:51 · Cauê Carneiro
- `FmgMnRx4` · S2 · Backend · Contrato 0.2.30: o push leva o vínculo do aparelho · comentário: @joaopauloalbuquerque7 este cartão nasceu de uma mudança de contrato que o Cauê aprovou hoje e que já está no main do frila-docs. Está escrito para um agente executar sem outro contexto: o que o contrato pede, o que mudar no backend e o critério de aceite. Não pus ninguém como membro: quem pega é com vocês. Dúvida sobre o contrato ou sobre o lado do app, respondam aqui que o Cauê me repassa. · trello:6abfd3025a3dad8741e7a833 12:51 · Cauê Carneiro
- `7IIPRTdg` · S2 · Backend · Contrato 0.2.31: turno cancelado, avaliação dada e cancelamento no painel · comentário: @matheussilva95408964 @joaopauloalbuquerque7 este cartão nasceu de uma mudança de contrato que o Cauê aprovou hoje e que já está no main do frila-docs. Está escrito para um agente executar sem outro contexto: o que o contrato pede, o que mudar no backend e o critério de aceite. Não pus ninguém como membro: quem pega é com vocês. Dúvida sobre o contrato ou sobre o lado do app, respondam aqui que o Cauê me repassa. · trello:6abfd30462f4ec432ff4dd81 12:51 · Cauê Carneiro
- `d3A1WjG3` · v1.1 · Backend + iOS · Modo seleção: escolher candidato e fechamento automático · comentário: @matheussilva95408964 três pontos do backend do modo seleção, achados na revisão do PR do app (https://github.com/FrilaApp/frila-frontend/pull/77), lidos no código da branch develop, não executados: 1. **Candidato bloqueado continua listado e pode ser escolhido.** bloquear não mexe em candidatura, candidatos_da_vaga não filtra e escolher_candidato não confere bloqueio (modo_selecao.sql:586-724); só o contador do painel filtra. 2. **Inferência, sem teste que cubra:** o escolhido que cancela a me… · trello:6abfd5c12dc8fb06a46d73ee 13:03 · Cauê Carneiro
- `Uc69VI57` · S2 · Backend · Contrato 0.2.32: cancelamento no turno, turno_id na candidatura e o 422 do modo seleção · comentário: @matheussilva95408964 @joaopauloalbuquerque7 mais uma mudança de contrato aprovada hoje pelo Cauê, já no main do frila-docs (0.2.32): o turno cancelado passa a dizer a causa e se contou falta (sem o texto livre), a candidatura aceita ganha o turno_id, e o contrato passou a listar o 422 que o backend já devolve no modo seleção. O cartão diz o que mudar e o critério de aceite. Sem membro: quem pega é com vocês. · trello:6abfe29d8a956f25d7764477 13:58 · Cauê Carneiro
- `1DLcZWsf` · S3 · Backend · mutacao.sh varre constraints UNIQUE · comentário: PR aberto: https://github.com/FrilaApp/frila-backend/pull/126 · trello:6abff122a0677510ff7d1d1b 15:00 · João Paulo
- `oCv0WPNY` · S0 · Backend + QA · Nenhum portão confere o corpo das Edge Functions contra o contrato · comentário: Em acompanhamento em 02/10: o conflito com a develop está sendo resolvido hoje em três arquivos, por união e sem desfazer nenhum lado. O PR #100 segue aprovado pelo Jotapê, sem bloqueio de código. · trello:6abff1c3d0f71aaf16db7904 15:02 · Matheus Silva
- `CPD2c74A` · S3 · Backend · Impasse (40P01) entre o gatilho da vaga cancelada e a desistência que reabre (RNF14) · comentário: Revisão em 02/10: o PR #101 está aprovado pelo Jotapê e falta sincronizar com a develop. O único check vermelho é Contrato em dia, por motivo alheio ao PR. · trello:6abff1c4a2cb77a963d97f8f 15:02 · Matheus Silva
- `IrtkCWDz` · S2 · Backend · MeusDados devolve as sete coleções que faltavam na exportação (US25) · comentário: Decisão de 02/10: o PR #99 permanece em draft de propósito. Foi medido reuso do número 0.2.29 em documentos diferentes: o espelho do #99 trata de MeusDados com as sete coleções, sha256 b709b091…, enquanto a versão aprovada pelo Cauê às 15:40Z trata de /rpc/meu_estabelecimento, sha256 2515d5b8…. É coordenação de numeração, não erro de pessoa. O frila-docs#32 está OPEN e precisa ser renumerado para 0.2.33 e rebaseado sobre a 0.2.32 antes de refazer nosso espelho. · trello:6abff1c583b500b6d9f0126e 15:02 · Matheus Silva
- `1VYlDEbf` · S3 · Backend · Espelho do contrato na develop está quatro versões atrás (0.2.28 contra 0.2.32) · comentário: PR aberto: https://github.com/FrilaApp/frila-backend/pull/127 · trello:6abff509776e72140df6e165 15:16 · Matheus Silva
- `1VYlDEbf` · S3 · Backend · Espelho do contrato na develop está quatro versões atrás (0.2.28 contra 0.2.32) · comentário: Espelho do contrato subido de 0.2.28 para 0.2.32, sincronizado com FrilaApp/frila-docs na main. Diff restrito a contrato/openapi.yaml e contrato/openapi.yaml.sha256; nenhuma migração, nenhum script. Os quatro portões do contrato saíram exit 0 nesta branch: contrato-em-dia, teste-contrato-promete com os 9 casos, contrato-acompanha-o-codigo contra origin/develop, e contrato-responde com 41 de 42 operações validadas com corpo real. A única fora é meuEstabelecimento, que entra como "ainda sem imple… · trello:6abff50b8012ecf2c8540db6 15:16 · Matheus Silva
- `FmgMnRx4` · S2 · Backend · Contrato 0.2.30: o push leva o vínculo do aparelho · comentário: PR aberto: https://github.com/FrilaApp/frila-backend/pull/129 · trello:6abff50e2cb6f356b17e3a78 15:16 · João Paulo
- `Uc69VI57` · S2 · Backend · Contrato 0.2.32: cancelamento no turno, turno_id na candidatura e o 422 do modo seleção · comentário: PR aberto: https://github.com/FrilaApp/frila-backend/pull/130 · trello:6abff64cf81f08e8f5e160d6 15:22 · João Paulo
- `7IIPRTdg` · S2 · Backend · Contrato 0.2.31: turno cancelado, avaliação dada e cancelamento no painel · comentário: PR aberto: https://github.com/FrilaApp/frila-backend/pull/131 · trello:6abff831b926c88535e50f33 15:30 · João Paulo
- `d3A1WjG3` · v1.1 · Backend + iOS · Modo seleção: escolher candidato e fechamento automático · comentário: @matheussilva95408964 mais um ponto do backend do modo seleção, da revisão do PR do lado do profissional (https://github.com/FrilaApp/frila-frontend/pull/82): o estado **retirada** da candidatura está sendo usado para quem não retirou. A candidatura pendente de um estabelecimento suspenso ou excluído passa a retirada, e o app só consegue ler isso como 'você retirou a candidatura'. Vale um estado próprio, ou um campo que diga quem encerrou. Detalhe e linhas no relatório da revisão, com o Cauê. O… · trello:6abff87e96a460d78689c48c 15:31 · Cauê Carneiro
- `d3A1WjG3` · v1.1 · Backend + iOS · Modo seleção: escolher candidato e fechamento automático · comentário: Parte do iOS do modo seleção inteira no main do frila-frontend (02/10), em três PRs da Capitã Marvel: - https://github.com/FrilaApp/frila-frontend/pull/77 (3a09dcb): dados, portas, DTOs e o dublê das quatro RPCs. Revisão do Tony Stark. - https://github.com/FrilaApp/frila-frontend/pull/81 (8f0a6ee): contratante publica em seleção, vê os candidatos e escolhe. Revisão e QA no simulador do Loki. - https://github.com/FrilaApp/frila-frontend/pull/82 (3f02ca4): profissional vê a candidatura enviada, r… · trello:6ac01219ec94112a271caaaf 17:20 · Cauê Carneiro
- `RTmRTHbo` · S1 · Backend + iOS · Republicar vaga anterior (US05) · comentário: Seguimento da revisão no main (02/10): https://github.com/FrilaApp/frila-frontend/pull/76 (5c2c9a1). Corrige o reenvio e a confirmação da republicação. Feito pelo Homem-Aranha, revisão do Hulk (aprovado, com ressalvas menores registradas para depois). Os textos novos foram aprovados pelo Cauê como provisórios. · trello:6ac012192d312682d94051f0 17:20 · Cauê Carneiro
- `nUpPFCpM` · S2 · Backend + iOS · Exportar meus dados (US25) · comentário: Seguimento da revisão no main (02/10): https://github.com/FrilaApp/frila-frontend/pull/78 (bb2ae2f). A limpeza dos arquivos exportados saiu do init do view model e passou para o início da exportação. Feito pelo Thor, revisão do Nick Fury. · trello:6ac0121ad964190ecafacf4c 17:20 · Cauê Carneiro
- `oTMpueLZ` · S1 · Backend · Contrato 0.2.29: meu_estabelecimento sem o documento · comentário: @matheussilva95408964 o lado do iOS deste cartão está pronto e esperando: https://github.com/FrilaApp/frila-frontend/pull/73 (botão Publicar vaga em Minhas vagas, que lê o estabelecimento por meu_estabelecimento do contrato 0.2.29). Decisão do Cauê em 02/10: o PR só entra no main do app quando esta chamada responder no frila-dev, porque sem ela o botão falha para todo mundo. Quando a chamada estiver no ar no frila-dev, avise aqui neste cartão, que o merge do app sai no mesmo dia. · trello:6ac0199e82d0b3b1a9e18180 17:52 · Cauê Carneiro
- `Uc69VI57` · S2 · Backend · Contrato 0.2.32: cancelamento no turno, turno_id na candidatura e o 422 do modo seleção · comentário: O lado do app desta mudança de contrato entrou no main do frila-frontend em 02/10: https://github.com/FrilaApp/frila-frontend/pull/87 (28fc169), lendo Turno.estado, Turno.avaliacao e Turno.cancelamento, e espelhando Candidatura.turno_id. Ao testar o frila-backend#130 e o #131 no frila-dev, o app do main já mostra o turno cancelado e a avaliação dada. · trello:6ac03cb32d6368ca3394fd57 20:22 · Cauê Carneiro
1 out 2026 99 fatos
commit 3 fatos
- `78a8b70` — feat(site): wikilink com apelido em tabela e pasta fora da barra lateral · 4 arquivos 14:46 · Cauê Carneiro
- `3b0f503` — docs(produto): pesquisa de concorrentes de 01/10/2026 no vault (T-0006) · 54 arquivos 14:46 · Cauê Carneiro
- `b669e29` — fix(hooks): corrige registro de fatos em worktree · 3 arquivos 19:27 · Cauê Carneiro
entrega 4 fatos
- cartao 6mkytkpb movido para Concluido no quadro: S0 · Backend · Os 64 testes Deno das Edge Functions nunca rodaram na CI · PR #78 — medido em 27/10 na API do Trello, acoes updateCard com listAfter 11:47 · Matheus Silva
- cartao IYAb8v1i movido para Concluido no quadro: S3 · Backend + QA · Consultas quentes com o volume do DF simulado (RNF11) · PR #46 — medido em 27/10 na API do Trello, acoes updateCard com listAfter 11:47 · Matheus Silva
- cartao 8Xb2KQRv movido para Concluido no quadro: S3 · Backend · Gatilho de vaga cancelada no caminho de serviço de excluir_conta (CPD2c74A) · PR #66 — medido em 27/10 na API do Trello, acoes updateCard com listAfter 12:08 · Matheus Silva
- cartao nMtKCnAJ movido para Concluido no quadro: S0 · Backend · O CLAUDE.md da main não carrega a regra de abrir PR contra develop · PR #116 — medido em 27/10 na API do Trello, acoes updateCard com listAfter 21:02 · João Paulo
frila-backend 45 fatos
- `5bb4b31` — fix(suspensao): exceção por nome qualificado e autoria sem fallback (revisão do #95) · 2 arquivos 00:57 · João Paulo
- `498bf18` — test(criar_conta): recusas sem_email_confirmado e email_em_uso · 1 arquivo 08:50 · João Paulo
- `4f245b4` — test(selecao): recusas 401/403/422 do modo seleção sem teste · 1 arquivo 08:50 · João Paulo
- `a44378d` — test: cobre caminhos de erro contratuais em fazer_checkout, candidatos_da_vaga, minhas_candidaturas e reabrir_por_atraso · 1 arquivo 08:53 · João Paulo
- `6651da8` — privado.meus_dados devolve as sete coleções que faltavam · 2 arquivos 08:58 · Matheus Silva
- `2382e2e` — Bloqueios na exportação devolvem o par, nunca o id de conta (RN10) · 2 arquivos 09:18 · Matheus Silva
- `588c78e` — chore(contrato): espelha contrato 0.2.28, que é o que esta implementação cumpre · 2 arquivos 09:30 · Matheus Silva
- `b3fe4da` — feat(portao): o contrato passa a ser conferido no corpo das Edge Functions (oCv0WPNY) · 5 arquivos 09:32 · Matheus Silva
- `9d2db15` — fix(exclusao): a vaga antes do usuario em privado.excluir_conta (CPD2c74A) · 1 arquivo 10:07 · Matheus Silva
- `7b26775` — test(corrida): o cenário 9 provoca o impasse e grava o ciclo (CPD2c74A) · 1 arquivo 10:07 · Matheus Silva
- `8d0452e` — docs(estado): o ESTADO.md passa a descrever 01/10, com números de execução · 1 arquivo 10:10 · Matheus Silva
- `95c7edc` — chore(contrato): espelha contrato 0.2.28 do frila-docs · 2 arquivos 10:14 · Matheus Silva
- `ef6f3cd` — chore(contrato): o espelho e a migração acompanham o contrato 0.2.29 · 3 arquivos 10:15 · Matheus Silva
- `a6c7994` — feat(perfil): o bloqueio esconde o perfil público (1aGJPQK2, contrato 0.2.28) · 4 arquivos 10:16 · João Paulo
- `81d4613` — feat(portao): a direção contrato-à-frente passa a ser medida (EFveOeIb) · 5 arquivos 10:30 · Matheus Silva
2× chore: __pycache__ fora do git · 2 arquivos 10:35–10:35 · Matheus Silva
- `362e05f` — chore: __pycache__ fora do git · 2 arquivos 10:35
- `0f8fb05` — chore: __pycache__ fora do git · 2 arquivos 10:35
- `5a290f0` — test(contrato): valida 41/41 operacoes e recusas de suspensao no contrato-responde · 1 arquivo 10:39 · João Paulo
- `bb44cf2` — test(contrato): cobre 21 recusas prometidas por avisar_a_caminho, suspensao, telemetria e cancelamento · 1 arquivo 10:56 · João Paulo
- `e6dd9ed` — test(contrato): cobre recusas prometidas de candidatar, cancelar_vaga e cancelar_posicao · 1 arquivo 12:03 · João Paulo
- `bdd2c31` — docs(colheita): apontador para FORA_DO_ALCANCE, em vez de dois exemplos dela · 1 arquivo 13:12 · Matheus Silva
- `7e00584` — test(contrato): cobre recusas prometidas de painel_estabelecimento · 1 arquivo 14:37 · João Paulo
- `d744b84` — test(contrato): cobre recusas por conta suspensa em presenca e cancelar_vaga · 1 arquivo 14:43 · João Paulo
- `073b5dd` — test(contrato): cobre recusas de perfil, suspensao e candidatura inexistente no modo selecao · 1 arquivo 14:56 · João Paulo
- `03fe4ab` — test(suspensao): congela frila.agora para evitar quebra de janela de disponibilidade apos 18h UTC · 1 arquivo 15:23 · João Paulo
- `c665940` — test(contrato): cobre recusas de perfil incompativel e confirmacao de presenca · 1 arquivo 15:33 · João Paulo
- `1cbfc93` — test(relogio): congela frila.agora em contestar_despacho para evitar quebra em bordas de horario · 1 arquivo 16:27 · João Paulo
- `9db89a8` — test(unicidade): cobre as seis restrições que sobreviviam à mutação (1DLcZWsf) · 1 arquivo 16:31 · Matheus Silva
- `28024e0` — feat(mutacao): varre restrições de unicidade e índices únicos (1DLcZWsf) · 1 arquivo 16:31 · Matheus Silva
- `291d11b` — test(contrato): cobre recusas 401 sem token em republicar_vaga e contato_do_turno · 1 arquivo 16:32 · João Paulo
- `2f18cff` — test(unicidade): adiciona asserções 23505 dedicadas para 5 unicidades cobertas por coincidência (R8LNZvnI) · 5 arquivos 17:23 · João Paulo
- `45f6037` — docs(fluxo): padroniza regra de branch base develop no README, agentes e template de PR · 7 arquivos 17:24 · João Paulo
- `531b050` — feat(infra): automacao do ensaio de restauracao e workflow base de backup diario (mwdFSEHe) · 4 arquivos 17:33 · João Paulo
- `55d011f` — perf(db): adiciona indice despacho_notificacao cobrindo FK notificacao_id em despacho (kT7NhMGV) · 2 arquivos 17:34 · João Paulo
- `80e40a5` — fix(funcoes): higienizacao e hardening de producao nas edge functions (kT7NhMGV) · 7 arquivos 17:35 · João Paulo
- `f074be0` — fix(infra): ensaio compara a contagem com a origem, reprova pgTAP e deixa de fingir backup (mwdFSEHe) · 4 arquivos 17:50 · João Paulo
- `f1a1eef` — fix(mutacao): separa cobertura de comportamento de cobertura estrutural (1DLcZWsf) · 1 arquivo 18:18 · Matheus Silva
- `21a32f0` — feat(infra): workflow agendado do ensaio de restauração (mwdFSEHe) · 2 arquivos 19:21 · João Paulo
- `4398dd4` — fix(infra): pgTAP do banco restaurado reprova de verdade, autoteste com 7 casos e trava (revisão do #119) · 2 arquivos 19:24 · João Paulo
- `81dfc1a` — docs(infra): README conta os 7 casos do autoteste · 1 arquivo 19:25 · João Paulo
- `0aebf07` — feat(seguranca): revoga references, trigger e maintain de authenticated em public (kT7NhMGV) · 2 arquivos 19:51 · João Paulo
- `5e2b2bc` — feat(seguranca): public.contato_do_turno exige conta ativa (B10, kT7NhMGV) · 2 arquivos 21:18 · João Paulo
- `9bdc058` — test(funcoes): amplia cobertura e mata mutantes em despachar, saude, turnos, orfas e email (kT7NhMGV) · 5 arquivos 23:17 · João Paulo
- `7bc1b44` — test(selecao): cobre recusas 409 e 422 de escolher_candidato e retirar_candidatura (carga-agy) · 1 arquivo 23:29 · João Paulo
- `b4e3a1b` — test(turnos): afirma contagem exata de páginas no PDF para matar mutante de paginação (kT7NhMGV) · 1 arquivo 23:45 · João Paulo
quadro 6 fatos
- `5bPJvMIo` movido de Revisão para Concluído 🎉 · S2 · Infra + Backend · Monitoramento e alertas do backend desde o TestFlight · trello:6abdd7dbbf8f8a61bfc9473d 00:47 · João Paulo
- `JWJOPAOL` movido de Revisão para Concluído 🎉 · S2 · Backend · RPCs denunciar e bloquear; o bloqueio filtra tudo · trello:6abdd98796aac7a3ebba9e20 00:54 · Matheus Silva
- `BsXIZHOw` movido de Revisão para Concluído 🎉 · S2 · Backend · Suspensão, situacao_da_conta e contestar_suspensao · trello:6abe3e2ca36e118190e2bfa4 08:04 · João Paulo
- `JWJOPAOL` movido de Concluído 🎉 para Revisão · S2 · Backend · RPCs denunciar e bloquear; o bloqueio filtra tudo · trello:6abe489b1eb147c0cac096ee 08:48 · Matheus Silva
- `x0jkygj0` movido de Revisão para Concluído 🎉 · S2 · Backend · Região administrativa do local da vaga e interpolação nos pushes · trello:6abe491266cafd2ebcb69ebe 08:50 · Matheus Silva
- `IrtkCWDz` movido de Em andamento para Revisão · S2 · Backend · MeusDados devolve as sete coleções que faltavam na exportação (US25) · trello:6abe4b7b7ceb738850b07853 09:00 · Matheus Silva
quadro-comentario 41 fatos
- `JWJOPAOL` · S2 · Backend · RPCs denunciar e bloquear; o bloqueio filtra tudo · comentário: Revisão refeita contra a develop c45f40b. Os quatro critérios estão cumpridos. O que faltava na minha revisão de 29/09 entrou. Na primeira vez eu devolvi este cartão pelo critério 3: a denúncia enfileirava em pgmq.q_email e ninguém consumia a fila — a única leitura que existia era pgmq.read("despacho"), e não havia Edge Function enviar-email. O e-mail nunca chegava a caixa nenhuma. Isso mudou. O #70 entrou na develop e trouxe o consumidor. 1. Depois do bloqueio a vaga não aparece e não há despa… · trello:6abdd9845bba25fe77a316a8 00:54 · Matheus Silva
- `qcVimM84` · S2 · Backend + iOS · Aviso de hora excedida quando o fim passa sem check-out · comentário: PR #79 MERGEADO na develop em 01/10 às 01:11Z (commit ae80c9b), com os cinco jobs da CI verdes. A main segue intocada em c190836 e está inteiramente contida na develop. O conflito do array de jobs do 390 foi resolvido por união, nunca por escolha de lado: doze nomes, com processar_fila_email (#70) e alertar_fim_sem_checkout (este) juntos. Houve dois empurrões de terceiros no branch ao longo do caminho; o primeiro havia perdido um nome e foi corrigido, o segundo preservou os doze. Critérios 1 e … · trello:6abdf86531dbf4ef3f19dab5 03:06 · Matheus Silva
- `FrpxqCxp` · S2 · Produto + Backend · Moderação da diretriz 1.2: filtro de texto e conteúdo denunciado tratado em 24 h · comentário: PR #91 MERGEADO na develop em 01/10 às 01:25Z (commit bc681cf), com os cinco jobs da CI verdes. A main segue intocada em c190836. Medido: 36 asserções no pgTAP 510, e a mutação que marca sem apagar o texto mata cinco delas com o arquivo rodando inteiro. Critério 1 medido (as três recusas, com o campo no details). Critério 2 medido na parte local; a parte que o cartão pede no frila-dev continua dependendo de um SUPABASE_ACCESS_TOKEN que responda. Critérios 3 e 4 são Jurídico e Produto. Quem revi… · trello:6abdf866f071917c74f3d058 03:06 · Matheus Silva
- `7XS6MQGg` · S2 · Backend · Motor de despacho: elegibilidade, fila e agendador · comentário: Revisão medida contra a develop c45f40b. Confirmei os quatro itens já marcados — não aceitei, conferi — e os dois abertos exigem ambiente, não código. O teste nomeia os critérios pelo número, em supabase/tests/260_motor_despacho.sql, que sai ok aqui e no run verde 36805262661 da develop. CONFIRMADOS: 1. Despacho só para os elegíveis, comparando com a lista esperada — "Critério 1: Com o seed, privado.elegiveis devolve exatamente os 5 profissionais elegíveis". É comparação com lista, não contagem… · trello:6abe47dd00c42ca1623aa1ea 08:45 · Matheus Silva
- `36fU0CEO` · S2 · Backend · Envio de push pelo FCM, registro do aparelho e estado de entrega · comentário: Revisão medida contra a develop c45f40b. Confirmei os três itens marcados e o único aberto exige aparelho. CONFIRMADOS: - Token inválido removido depois da resposta do FCM — supabase/functions/enviar-push/index_test.ts, "Edge Function: 404/410 UNREGISTERED remove o token do aparelho". O par 404/410 é o certo: o FCM usa os dois para token morto, e tratar só um deixa metade dos aparelhos mortos na tabela. No banco, 270_registro_dispositivo_e_push.sql prende a entrada: token nulo, vazio e com meno… · trello:6abe47de06e6f45c231ad168 08:45 · Matheus Silva
- `wpNabtCO` · S2 · Backend + iOS · Ciclo de vida do token de push: troca de conta, saída e reinstalação · comentário: Revisão do lado BACKEND, medida contra a develop c45f40b. CONFIRMADO, o item já marcado: 3. pgTAP da troca de dono do token — supabase/tests/300_ciclo_token_push.sql, que sai ok aqui e no run verde 36805262661. E ele cobre mais do que o título promete: "Conta A registrou o aparelho", "Troca de dono: conta B passa a ter o aparelho", "Troca de dono: conta A não tem mais aparelho, então o push de A não sai para ele", "Troca de dono: o token continua numa linha só", "Pela leitura da conta A, o apar… · trello:6abe47ded1de787123fb7f5d 08:45 · Matheus Silva
- `IYAb8v1i` · S3 · Backend + QA · Consultas quentes com o volume do DF simulado (RNF11) · comentário: AUDITORIA DA REVISÃO — medido contra a develop em 1e72896 (01/10). Os três critérios estão cumpridos; evidência colada abaixo. Run da CI na develop: 36853028970, job "Plano do caminho quente com o volume do DF", verde. Carga sintética do DF gerada no próprio job: 30.000 contratantes, 30.000 estabelecimentos, 100.000 profissionais, ~200.000 vínculos de função, ~200.000 janelas de disponibilidade, 20.000 vagas e 20.000 posições abertas. CRITÉRIO 1 — vagas_abertas e privado.elegiveis sem varredura… · trello:6abe4835895e21606b4d9f52 08:47 · Matheus Silva
- `6mkytkpb` · S0 · Backend · Os 64 testes Deno das Edge Functions nunca rodaram na CI · comentário: AUDITORIA DA REVISÃO — medido contra a develop em 1e72896 (01/10). O critério que faltava foi cumprido; evidência colada. CRITÉRIO 2 — a CI tem job próprio que roda deno test nas Edge Functions, fora do job do banco, com a execução verde registrada: Run 36853028970, branch develop, 01/10 às 11:04Z Job "Testes das Edge Functions" — success ok | 136 passed | 0 failed (4s) O job entrou pelo PR #78, mergeado em 01/10 às 01:11Z, e é job próprio no `ci.yml` (`deno:`), com `denoland/setup-deno@v2`, fo… · trello:6abe4869fd53bbfc90603f5b 08:47 · Matheus Silva
- `JWJOPAOL` · S2 · Backend · RPCs denunciar e bloquear; o bloqueio filtra tudo · comentário: AUDITORIA DA REVISÃO — REABRI O CRITÉRIO 3 e devolvi o cartão para Revisão. O blendops-5 fechou 4/4 e eu discordo de um item só; os outros três estão cumpridos e ficam marcados. CRITÉRIO 3: "Denúncia gera e-mail na caixa da equipe com protocolo e motivo." O que o #70 entregou, e é verdade: a fila `email` tem consumidor. `privado.ler_fila_email` lê o pgmq, o job `processar_fila_email` roda a cada minuto, e o `modelos.ts` monta o e-mail da equipe com protocolo, categoria do motivo e prazo. Eu esc… · trello:6abe48b8b629ff62f9d1072d 08:49 · Matheus Silva
- `1MK1CGyF` · S3 · Produto + Backend · Painel de métricas do piloto (T-0017, T-0020) · comentário: AUDITORIA DA REVISÃO — medido contra a develop em 1e72896 (01/10). Marquei 2 de 4; o cartão FICA ABERTO, porque os outros dois não são de backend. CRITÉRIO 1 — funil completo consultável com um link ou um comando: CUMPRIDO. O comando é `./scripts/funil.sh`, e a migração `20260930150000_views_funil_piloto.sql` cria cinco visões no schema `metrica`: metrica.funil_por_vaga metrica.funil_confirmacoes metrica.funil_por_dia metrica.funil_por_estabelecimento metrica.funil_geral Coberto pelo pgTAP `490… · trello:6abe48daa03152fa0932c677 08:49 · Matheus Silva
- `RNOfNVVU` · S0 · Backend · Portão de colisão de versão de migração, e o contrato-em-dia lendo o .env · comentário: AUDITORIA DA REVISÃO — medido contra a develop em 1e72896 (01/10). Sete de oito seguem cumpridos; o oitavo NÃO é de backend e o cartão FICA ABERTO. Os sete marcados continuam valendo, e o portão segue no ar. Na develop de hoje são 77 migrações, e o `./scripts/migracoes-sem-colisao.sh` sai com "As 77 migrações têm versões distintas". O job próprio "Migrações sem colisão de versão" está verde no run 36853028970, fora do caminho do `supabase start` — que é exatamente o desenho que o critério 4 ped… · trello:6abe48f9051311260b4a656a 08:50 · Matheus Silva
- `Oxh0AWE7` · S3 · Produto + Backend · Operação da Equipe Frila: procedimentos e ferramentas · comentário: AUDITORIA DA REVISÃO — medido contra a develop em 1e72896 (01/10). NENHUM dos quatro critérios é marcável hoje, e três deles não são de backend. O cartão FICA ABERTO. Antes dos critérios, o registro do que o código ENTREGOU, porque é bastante e está no ar: `privado.operacao_suspender_conta`, `privado.operacao_reativar_conta` e `privado.operacao_moderar_conteudo`, todas restritas a `service_role`, com `privado.vaga_ocultada` e `privado.vaga_oculta` filtrando vitrine, detalhe, candidatura, republ… · trello:6abe48f9d87587dfbbc837a5 08:50 · Matheus Silva
- `x0jkygj0` · S2 · Backend · Região administrativa do local da vaga e interpolação nos pushes · comentário: O critério 6 FECHOU. A dependência entrou: a CI passou a rodar os testes Deno. O que faltava era a metade Deno de "Testes pgTAP e testes Deno de enviar-push passando na CI". Em 29/09 eu medi `grep -rin deno .github/` devolvendo zero linhas; remedi hoje e existe o job: deno: name: Testes das Edge Functions - name: deno test working-directory: supabase/functions run: deno test --allow-all --no-check O `working-directory` em `supabase/functions` cobre todas as funções, o enviar-push incluído — não… · trello:6abe490d48ddd1d1d2e02604 08:50 · Matheus Silva
- `CPD2c74A` · S3 · Backend · Impasse (40P01) entre o gatilho da vaga cancelada e a desistência que reabre (RNF14) · comentário: AUDITORIA DA REVISÃO — medido contra a develop em 1e72896 (01/10). Marquei 2 de 4. O cartão FICA ABERTO, e o que falta é BACKEND de verdade, não bloqueio de outra frente. CRITÉRIO 1 — a corrida a três em scripts/corrida-ciclo.sh, com a taxa medida em 500 rodadas: CUMPRIDO. O cenário `impasse` está no script (documentado nas linhas 30 a 37: "cancelar_vaga × candidatar × cancelar_posicao (impasse) — a corrida a três"), e entra na lista padrão de `CENARIOS`. As 500 rodadas foram medidas pelo blend… · trello:6abe4aeb980c5b704b238f37 08:58 · Matheus Silva
- `ggEzge6h` · S0 · Backend · Filtro de texto ofensivo nos campos livres (diretriz 1.2) · comentário: Revisão medida contra a develop 1e72896, com o run verde 36853028970 (Result PASS, 70 arquivos, 2082 testes). Confirmei os três itens marcados; o quarto exige a Júlia. CONFIRMADOS, em supabase/tests/100_filtro_de_texto.sql, que sai ok no run acima: 1. `criar_conta` com termo da lista devolve 422 campo_invalido com details = nome, e `privado.texto_aceitavel` recusa o termo — a asserção "diretriz 1.2: nome com termo da lista sai como campo_invalido, com o campo no details" confere o payload intei… · trello:6abe4b6e741028333e1f01fe 09:00 · Matheus Silva
- `OrS9gEfU` · S2 · Backend · Edge Function excluir-conta: saída na hora, turnos futuros cancelados e anonimização · comentário: Revisão medida contra a develop 1e72896, com o run verde 36853028970 (Result PASS, 70 arquivos, 2082 testes). Confirmei os quatro itens marcados; o quinto exige ambiente. CONFIRMADOS, em supabase/tests/290_excluir_conta.sql, ok no run acima: 1. Depois de excluir, a conta não entra, não recebe despacho e não aparece em busca — "Conta excluída não recebe despacho (privado.elegiveis não a inclui)", "Estado da conta excluída é anonimizada", e a recusa de escrita em quatro RPCs distintas: "Token emi… · trello:6abe4b6e09db2e4a0e1e525a 09:00 · Matheus Silva
- `IrtkCWDz` · S2 · Backend · MeusDados devolve as sete coleções que faltavam na exportação (US25) · comentário: PR aberto: **https://github.com/FrilaApp/frila-backend/pull/99** — base `develop`, branch `ao/blendops-3-meus-dados-sete`. ## Critérios 1 a 7: as sete coleções, MEDIDAS `privado.meus_dados` devolve as dezesseis chaves agora, conferido por `jsonb_object_keys` sobre uma conta dos cenários. Três levam menos que a tabela inteira, e a razão está escrita no corpo da migração: | critério | o que leva, e o que deliberadamente não leva | |---|---| | 1 · `candidaturas` | com `posicao_id`, `vaga_id`, `est… · trello:6abe4b7963b1372ce4448b1f 09:00 · Matheus Silva
- `IrtkCWDz` · S2 · Backend · MeusDados devolve as sete coleções que faltavam na exportação (US25) · comentário: PR aberto: https://github.com/FrilaApp/frila-backend/pull/99 · trello:6abe4b7a9245df1904a62d6a 09:00 · Matheus Silva
- `CPD2c74A` · S3 · Backend · Impasse (40P01) entre o gatilho da vaga cancelada e a desistência que reabre (RNF14) · comentário: CORREÇÃO DO COMENTÁRIO ANTERIOR: a hipótese que eu levantei sobre o PR #80 está ERRADA, e quem a derrubou foi o blendops-5, que escreveu o #80. Eu havia sugerido que o conserto do critério 2 poderia já estar no #80 (rastro do pedido de exclusão), se o conserto fosse "o pedido virar registro antes de tentar". Marquei como dedução, e a dedução não se sustenta. O que o #80 faz: o pedido vira registro ANTES da exclusão, para o rastro sobreviver ao rollback. O que ele explicitamente NÃO faz, e está … · trello:6abe4b7f65f3d04f3e855119 09:01 · Matheus Silva
- `8Xb2KQRv` · S3 · Backend · Gatilho de vaga cancelada no caminho de serviço de excluir_conta (CPD2c74A) · comentário: Revisão medida contra a develop 5bb4b31, com o banco resetado dela. Suíte: Result PASS, 70 arquivos, 2082 testes. Os cinco critérios estão cumpridos. 1. Posição confirmada no meio da exclusão em caminho de serviço é recolhida e cancelada pelo gatilho — supabase/tests/420_excluir_conta_recolhe_confirmadas.sql: "a posição confirmada no meio do caminho de serviço é recolhida e cancelada" e "nenhuma posição viva sobra na vaga cancelada". 2. Ocorrência registra autor_id com a conta excluída — "ocorr… · trello:6abe4d45e84127543040b864 09:08 · Matheus Silva
- `CPD2c74A` · S3 · Backend · Impasse (40P01) entre o gatilho da vaga cancelada e a desistência que reabre (RNF14) · comentário: MEDIÇÃO DO CENÁRIO 9, três reproduções minhas — e uma conclusão que NÃO é a que o número sugeria. Contexto: o blendops-5 mediu 28 rollbacks por 40P01 em 50 rodadas hoje, contra 7 em 50 na medição dele de 29/09, e levantou a possibilidade de que algo entre as duas datas tivesse alargado a janela do impasse. Rodei três vezes, na develop 1e72896, com a árvore e o banco batendo (81 migrações dos dois lados). rodada 1 17 rollbacks por 40P01 14 confirmações recolhidas rodada 2 19 rollbacks por 40P01 … · trello:6abe4e015cd0e7953709c92f 09:11 · Matheus Silva
- `CPD2c74A` · S3 · Backend · Impasse (40P01) entre o gatilho da vaga cancelada e a desistência que reabre (RNF14) · comentário: ADENDO, porque o confundidor foi eliminado e vale deixar isso fixado: as cinco medições são comparáveis, e por um motivo mais forte do que parecia. As bases eram commits diferentes — o blendops-5 mediu em 5bb4b31 e eu em 1e72896 —, mas as duas têm a MESMA ÁRVORE: 5bb4b31^{tree} = 0fba22c37f27531af640ad5158e2504af4d64627 1e72896^{tree} = 0fba22c37f27531af640ad5158e2504af4d64627 git log 5bb4b31..1e72896 -> vazio git diff --name-only -> 0 arquivos Commits distintos, conteúdo idêntico. Não há nem u… · trello:6abe4ef59afe9bced6ce0d03 09:15 · Matheus Silva
- `oCv0WPNY` · S0 · Backend + QA · Nenhum portão confere o corpo das Edge Functions contra o contrato · comentário: PR aberto: https://github.com/FrilaApp/frila-backend/pull/100 (base develop) CORREÇÃO DO CRITÉRIO 3, feita medindo o contrato: eu escrevi "cobre exportarMeusDados, excluirConta e exportarTurnos" quando criei o cartão, e o exportarTurnos NÃO pode entrar. Ele devolve `text/csv` e `application/pdf`, não JSON — não há schema para conferir. Corrigi o texto do critério e o pus na lista de "fora do alcance", com o motivo escrito na saída do portão. QUATRO MEDIÇÕES: 1. O critério 1 está medido CONTRA O… · trello:6abe533ca84c180bffb84be2 09:34 · Matheus Silva
- `CPD2c74A` · S3 · Backend · Impasse (40P01) entre o gatilho da vaga cancelada e a desistência que reabre (RNF14) · comentário: A CAUSA DO IMPASSE FOI ACHADA, e o crédito é do blendops-5. Registro aqui porque eu auditei este cartão e deixei os critérios 2 e 3 abertos com um 'para quem pegar' — agora há por onde começar. É inversão de ordem de travas, e a segunda aresta NÃO é uma trava escrita no código: é chave estrangeira. excluir_conta pega FOR UPDATE na linha de public.usuario candidatar insere em public.notificacao, e o FK notificacao.usuario_id -> public.usuario pega FOR KEY SHARE na MESMA linha É por isso que ning… · trello:6abe55b0b13cf9401a1402bd 09:44 · Matheus Silva
- `CPD2c74A` · S3 · Backend · Impasse (40P01) entre o gatilho da vaga cancelada e a desistência que reabre (RNF14) · comentário: CAUSA DO 40P01, medida. E ela não se acha lendo código. Durante três revisões deste cartão ninguém encontrou o ciclo, e há uma razão estrutural para isso: **A SEGUNDA ARESTA DO CICLO NÃO É `for update`. É CHECAGEM DE CHAVE ESTRANGEIRA. Quem procurar `for update` nos dois lados nunca acha.** O ciclo completo, lido do PG_EXCEPTION_CONTEXT: LADO excluir_conta (7 de 9 impasses da rodada medida): while locking tuple in relation "vaga" select 1 from public.vaga g where g.estabelecimento_id in (...) o… · trello:6abe59025895c19c83d56ba1 09:58 · Matheus Silva
- `oCv0WPNY` · S0 · Backend + QA · Nenhum portão confere o corpo das Edge Functions contra o contrato · comentário: CI VERDE nos seis jobs do PR #100, run 36862558241, na primeira tentativa. O passo novo 'O portão do corpo fecha nos casos conhecidos' passou os nove casos, e o 'A resposta de cada RPC e de cada Edge Function casa com o contrato' passou com as 47 operações na base limpa da develop — ou seja, o portão fica VERDE quando o contrato e o corpo concordam, que é o outro lado da prova. Vermelho contra o caso do #99, verde contra a develop. Os seis critérios estão marcados. · trello:6abe596f8cd5fedc6ae19fe1 10:00 · Matheus Silva
- `oCv0WPNY` · S0 · Backend + QA · Nenhum portão confere o corpo das Edge Functions contra o contrato · comentário: PR aberto: https://github.com/FrilaApp/frila-backend/pull/100 · trello:6abe596f9e5bdb60312f0042 10:00 · Matheus Silva
- `CPD2c74A` · S3 · Backend · Impasse (40P01) entre o gatilho da vaga cancelada e a desistência que reabre (RNF14) · comentário: PR aberto com o conserto: https://github.com/FrilaApp/frila-backend/pull/101 — base develop, nao mergeado. Dois commits: o primeiro instrumenta e provoca (vermelho, 19 de 20), o segundo conserta a ordem (0 de 50). A instrumentacao do PG_EXCEPTION_CONTEXT fica no repositorio. · trello:6abe5b36f5bd0a5b9b7b0344 10:08 · Matheus Silva
- `1aGJPQK2` · S2 · Contrato + Backend + iOS · O bloqueio também esconde o perfil público (decisão de 30/09) · comentário: Aviso para ninguém abrir um segundo PR de espelho: a metade do espelho do critério 2 já está coberta. PR aberto no frila-backend: https://github.com/FrilaApp/frila-backend/pull/103 (base develop, branch contrato/espelho-0.2.28). Ele traz contrato/openapi.yaml e a soma para a 0.2.28, e nada mais, no padrão dos PRs #88 e #92. A entrada da 0.2.28 na seção Estado do contrato diz que o espelho segue em PR próprio, e é este. Por que ele foi aberto agora, e não junto da implementação: o contrato-em-di… · trello:6abe5d3609efccae566c87ba 10:16 · Matheus Silva
- `1aGJPQK2` · S2 · Contrato + Backend + iOS · O bloqueio também esconde o perfil público (decisão de 30/09) · comentário: PR aberto: https://github.com/FrilaApp/frila-backend/pull/104 · trello:6abe5d483d71a7c4d8b2623c 10:16 · João Paulo
- `1aGJPQK2` · S2 · Contrato + Backend + iOS · O bloqueio também esconde o perfil público (decisão de 30/09) · comentário: Complemento ao comentário anterior, com medição, porque isto afeta a prioridade deste cartão. A 0.2.28 já está no ar no frila-docs main (merge 20006e8, 01/10 às 12:37Z) prometendo 404 nao_encontrado em /rpc/perfil_publico entre partes bloqueadas. A função não filtra bloqueio: o corpo de public.perfil_publico, na migração 20260925030000_avaliar_e_perfil_publico.sql, não menciona bloqueio em lugar nenhum. Então o contrato promete hoje um comportamento que o backend não entrega, e o contrato é a f… · trello:6abe5f4f812f7ea6e0d9967e 10:25 · Matheus Silva
- `EFveOeIb` · S3 · Backend + QA · Nenhum portão vigia o contrato à frente do código · comentário: PR aberto: https://github.com/FrilaApp/frila-backend/pull/105 (base develop) ⚠️ O PR NASCE COM A CI VERMELHA, E ISSO É O RESULTADO. O portão reprova a develop porque o defeito é verdadeiro. Não mergear antes do cartão 1aGJPQK2, que implementa o filtro de bloqueio em perfil_publico — se entrar primeiro, a develop fica vermelha com razão. Dei o mesmo conselho de sequência no #99 e não peço exceção aqui. CRITÉRIO 2, medido contra o estado real e não por leitura: ✗ 1 promessa(s) do contrato que o c… · trello:6abe60bec7ebf0ab3bfa0079 10:31 · Matheus Silva
- `EFveOeIb` · S3 · Backend + QA · Nenhum portão vigia o contrato à frente do código · comentário: PR aberto: https://github.com/FrilaApp/frila-backend/pull/105 · trello:6abe60be12bb8eced059c99e 10:31 · Matheus Silva
- `EFveOeIb` · S3 · Backend + QA · Nenhum portão vigia o contrato à frente do código · comentário: O TESTE FALSIFICÁVEL PASSOU, e o #105 saiu do rascunho. Os PRs #103 e #104 entraram às 13:48Z e a develop passou a filtrar bloqueio em perfil_publico, com teste próprio (550_perfil_publico_bloqueio.sql). O defeito que o portão reprovava deixou de existir. Fundi a develop e rodei, SEM EDITAR UMA LINHA DO PORTÃO. ANTES (develop às 12h, defeito presente): ✗ perfilPublico: o contrato promete 404 e o código devolveu 200, 200 DEPOIS (run 36871953396, com #103 e #104 dentro): Os 9 casos passaram. decl… · trello:6abe738b927c275a8b69e4ea 11:51 · Matheus Silva
- `R8LNZvnI` · S3 · Backend · Cinco coberturas de unicidade são coincidência de implementação · comentário: PR aberto: https://github.com/FrilaApp/frila-backend/pull/115 · trello:6abec14dd670e57b21a1e31e 17:23 · João Paulo
- `nMtKCnAJ` · S0 · Backend · O CLAUDE.md da main não carrega a regra de abrir PR contra develop · comentário: PR aberto: https://github.com/FrilaApp/frila-backend/pull/116 · trello:6abec1c8d8d90101c3ae0acb 17:25 · João Paulo
- `kT7NhMGV` · S3 · Backend · Endurecimento para produção: limites, logs, backup e advisors · comentário: PR aberto: https://github.com/FrilaApp/frila-backend/pull/118 · trello:6abec43772fce4c5ef68c1a8 17:36 · João Paulo
- `kT7NhMGV` · S3 · Backend · Endurecimento para produção: limites, logs, backup e advisors · comentário: PRs #117 e #118 mergeados (índice de FK e higienização das Edge Functions); #119/#120 (ensaio de restauração) em revisão; faltam itens que dependem do João Paulo · trello:6abee2651c297282da60cc5b 19:44 · João Paulo
- `kT7NhMGV` · S3 · Backend · Endurecimento para produção: limites, logs, backup e advisors · comentário: PR aberto: https://github.com/FrilaApp/frila-backend/pull/121 · trello:6abee419f6dcd02dfbfa494e 19:52 · João Paulo
- `kT7NhMGV` · S3 · Backend · Endurecimento para produção: limites, logs, backup e advisors · comentário: B10 pronto e validado localmente (teste 150); aguarda o contrato 0.2.29 (frila-docs#32) porque o portão contrato-acompanha-o-codigo exige bump para qualquer mudança em public.*; B6 no PR #121 · trello:6abef88aa00a41150b1a9ef9 21:19 · João Paulo
- `kT7NhMGV` · S3 · Backend · Endurecimento para produção: limites, logs, backup e advisors · comentário: PR #122 aberto contra develop: ampliação de testes das Edge Functions e eliminação de mutantes sobreviventes (169 testes Deno passando, +17 testes). Detalhes: https://github.com/FrilaApp/frila-backend/pull/122 · trello:6abf14542b4b05a841230974 23:17 · João Paulo
30 set 2026 53 fatos
entrega 1 fato
- cartao zptkprHt movido para Concluido no quadro: S3 · Backend · Índice do caminho quente de elegiveis, e portão de plano com carga · PR #67 — medido em 27/10 na API do Trello, acoes updateCard com listAfter 19:17 · Matheus Silva
frila-backend 23 fatos
- `10fb31d` — test(turno): prova o aviso "estou a caminho" na janela, idempotente e no painel (h53CJVP7) · 4 arquivos 06:58 · João Paulo
- `8fb45b4` — feat(turno): avisar_a_caminho e a_caminho_em no painel e no Turno (h53CJVP7) · 3 arquivos 07:03 · João Paulo
- `98983a5` — wip(contrato): teste 480_contrato_codigos_prometidos da auditoria (frila-ao-109) · 1 arquivo 08:52 · João Paulo
- `143f847` — wip(seguranca): migrações e teste 480 da auditoria de segurança (frila-ao-108) · 3 arquivos 08:52 · João Paulo
- `4492dc5` — chore(contrato): espelha contrato 0.2.25 do frila-docs (h53CJVP7) · 2 arquivos 08:55 · João Paulo
- `1d69e09` — fix(contrato): declarar resposta 422 em registrar_dispositivo · 2 arquivos 09:49 · João Paulo
- `79bab39` — fix(seguranca): fecha privado e impede confirmacao em posicao cancelada · 4 arquivos 09:59 · João Paulo
- `f4bd77a` — test(contrato): adiciona testes de conformidade de códigos prometidos pelo contrato · 1 arquivo 10:42 · João Paulo
- `5de7711` — test(exclusao): asserções de CHECK constraints de pedido_de_exclusao para o portão de mutação (SHUDSozj) · 1 arquivo 10:51 · João Paulo
- `36876ae` — chore(contrato): espelha contrato 0.2.26 do frila-docs · 2 arquivos 11:04 · João Paulo
- `c8d16c6` — chore(contrato): espelha contrato 0.2.26 do frila-docs (registrar_dispositivo 422) · 2 arquivos 11:07 · João Paulo
- `65efbe2` — Entrega contínua: develop no frila-dev, tag no frila-prod (#207) · 9 arquivos 15:12 · Cauê Carneiro
- `fec7304` — test(exportar): classifica pedido_de_exclusao no catálogo do MeusDados (SHUDSozj) · 1 arquivo 15:54 · Matheus Silva
2× A CI passa a rodar os testes das Edge Functions · 1 arquivo 16:17–22:01 · Matheus Silva
- `7ede8f4` — A CI passa a rodar os testes das Edge Functions · 1 arquivo 16:17
- `06e288c` — A CI passa a rodar os testes das Edge Functions · 1 arquivo 22:01
- `5ce0160` — wip(moderacao): texto da vaga, script e teste 510 (FrpxqCxp) · 3 arquivos 16:21 · Matheus Silva
- `9e14676` — feat(moderacao): texto denunciado sai da vaga sem tirar a vaga do ar (FrpxqCxp) · 1 arquivo 16:24 · Matheus Silva
- `239f504` — chore(contrato): espelha contrato 0.2.27 do frila-docs · 2 arquivos 17:31 · Cauê Carneiro
- `7ef2dc2` — feat(telemetria): tabela evento_app, RPC registrar_evento e retencao de 90 dias (3zsjXW60) · 3 arquivos 22:44 · João Paulo
- `a3ac641` — test: ajusta catalogo de RLS e LGPD para evento_app e limpa 520 · 3 arquivos 22:50 · João Paulo
- `9656988` — feat(infra): monitoramento, falhas de execução e alertas (5bPJvMIo) · 6 arquivos 22:54 · João Paulo
- `61af17e` — feat(backend): suspensao, situacao_da_conta e contestar_suspensao (BsXIZHOw) · 6 arquivos 23:08 · João Paulo
- `4fda3f2` — test(mutacao): asserções de inserção direta para CHECK constraints em falha_execucao e alerta_emitido · 1 arquivo 23:28 · João Paulo
quadro 9 fatos
- `h53CJVP7` movido de Em andamento para Revisão · v1.1 · Backend + iOS · 'Estou a caminho' no lembrete de 3 h e no acompanhamento do contratante · trello:6abcf8edb60b5442483c7a61 08:56 · João Paulo
- `7yq1flLG` movido de Revisão para Concluído 🎉 · S2 · Backend · E-mails transacionais e caixa da Equipe Frila · trello:6abd20e8ac2846d230a63ba2 11:47 · João Paulo
- `FrpxqCxp` movido de Em andamento para Revisão · S2 · Produto + Backend · Moderação da diretriz 1.2: filtro de texto e conteúdo denunciado tratado em 24 h · trello:6abd62455f0ab8e5eba7d957 16:25 · Matheus Silva
- `cVPDVZ7v` movido de Sprint 0 · Fundação (22/09 → 05/10) para Em andamento · S0 · Backend · Autoteste do portão de colisão de versão de migração · trello:6abdb9dab9cf9bb46dce7a44 22:39 · João Paulo
- `cVPDVZ7v` movido de Em andamento para Revisão · S0 · Backend · Autoteste do portão de colisão de versão de migração · trello:6abdba896eb4f56b2374186d 22:42 · João Paulo
- `3zsjXW60` movido de Em andamento para Revisão · S2 · iOS + Backend · Telemetria do piloto: eventos do funil e erros da API · trello:6abdbc94790a734ce3b86624 22:51 · João Paulo
- `5bPJvMIo` movido de Em andamento para Revisão · S2 · Infra + Backend · Monitoramento e alertas do backend desde o TestFlight · trello:6abdbd8c0a397d3296ae81bc 22:55 · João Paulo
- `BsXIZHOw` movido de Em andamento para Revisão · S2 · Backend · Suspensão, situacao_da_conta e contestar_suspensao · trello:6abdc187d8e268586d892962 23:12 · João Paulo
- `IrtkCWDz` movido de Sprint 2 · Despacho e turno (20/10 → 02/11) para Em andamento · S2 · Backend · MeusDados devolve as sete coleções que faltavam na exportação (US25) · trello:6abdc7d77898be00c1b87d07 23:39 · Matheus Silva
quadro-comentario 20 fatos
- `d3A1WjG3` · v1.1 · Backend + iOS · Modo seleção: escolher candidato e fechamento automático · comentário: PR #82 mesclado na develop (commit ec3939d). Backend 100% implementado e testado (56 arquivos pgTAP, 1623 testes, 10 corridas). Pendente: integração iOS (view model) e textos de push pelo design. · trello:6abcf82a1918bfc8eb0af876 08:53 · João Paulo
- `h53CJVP7` · v1.1 · Backend + iOS · 'Estou a caminho' no lembrete de 3 h e no acompanhamento do contratante · comentário: PR aberto: https://github.com/FrilaApp/frila-backend/pull/85 · trello:6abcf8ed0b8b7c52a7db2d9a 08:56 · João Paulo
- `7XS6MQGg` · S2 · Backend · Motor de despacho: elegibilidade, fila e agendador · comentário: Revisão de código (30/09 — Jotapê/Claude): VEREDITO: ✅ aprovado CHECKLIST: 4/6 com teste que prova. Os 2 pendentes (job 24h no frila-dev + p95 < 30s) são de ambiente — não são bloqueio de código. OBSERVAÇÃO (1): • despachar/index.ts:51 — pool de conexões Postgres instanciada e destruída a cada requisição. Mover para o escopo global da Edge Function permitiria reaproveitamento em warm starts e reduziria latência em picos. Não bloqueia o merge. Código revisado contra: checklist do cartão, contrat… · trello:6abd060636e3fa08d8646ca9 09:52 · João Paulo
- `36fU0CEO` · S2 · Backend · Envio de push pelo FCM, registro do aparelho e estado de entrega · comentário: Revisão de código (30/09 — Jotapê/Claude): VEREDITO: ✅ aprovado (após correção) BLOQUEIO RESOLVIDO: • contrato/openapi.yaml — /rpc/registrar_dispositivo devolvia 422 (campo_obrigatorio, campo_invalido) no código, mas o contrato não declarava a resposta 422. Corrigido no commit 1d69e09 (adicionado 422: RegraRecusou). Soma do espelho atualizada. Precisa sincronizar com FrilaApp/frila-docs. CHECKLIST: 3/4 com teste que prova. O item pendente (push chega no TestFlight com APNs de produção) é de amb… · trello:6abd0607c344d40f874f9e4e 09:52 · João Paulo
- `qcVimM84` · S2 · Backend + iOS · Aviso de hora excedida quando o fim passa sem check-out · comentário: Estado do PR #79 depois do merge do #70 na develop. O ARRAY DE JOBS DO 390 CONFLITOU, como eu tinha avisado — e o conflito foi pior do que o previsto. Além da minha linha, o commit fe12837 (João Paulo, 30/09) havia fundido a develop neste branch num ponto ANTERIOR ao #70, e a resolução dele ficou com onze nomes: faltava `processar_fila_email`, que o #70 acabara de pôr na develop. Fundi o trabalho dele no meu e resolvi com os doze: os nove antigos, `fechar_selecoes`, `processar_fila_email` e `al… · trello:6abd5b8e1bbe183c7438e854 15:57 · Matheus Silva
- `zptkprHt` · S3 · Backend · Índice do caminho quente de elegiveis, e portão de plano com carga · comentário: **Critério 8 medido, e o cartão está cumprido.** O PR #67 foi mergeado na `develop` em 30/09 às 13:56:34Z, merge commit `6cb3bfca`. Run `36622891762`, os cinco jobs: ``` Migrações e pgTAP success Plano do caminho quente com o volume do DF success <- o portão deste cartão Migrações sem colisão de versão success O contrato acompanhou o código success Contrato em dia com o Frila success ``` O job `Plano do caminho quente com o volume do DF` é o critério 8 inteiro: job próprio, em `push` e em `pull… · trello:6abd604e3057bc081161d4c7 16:17 · Matheus Silva
- `d3A1WjG3` · v1.1 · Backend + iOS · Modo seleção: escolher candidato e fechamento automático · comentário: Revisão do lado BACKEND, medida contra a develop 6013b84. Os quatro critérios de backend estão cumpridos; o quinto é metade meu. Arquivos: supabase/tests/480_modo_selecao.sql, migrações 20260929234100_modo_selecao.sql e 20260929234000_avisos_do_modo_selecao.sql. Suíte aqui: Result PASS, 63 arquivos, 1844 testes, com 480_modo_selecao.sql ok. 1. Quatro candidatos, escolher um confirma só ele e libera os outros com aviso — "quatro candidatos pendentes na vaga de uma posição", "a posição continua a… · trello:6abd6085d1c83c38e18e822b 16:18 · Matheus Silva
- `jl6nbekI` · v1.1 · Backend + iOS · Equipe de confiança sempre notificada · comentário: Revisão do lado BACKEND, medida contra a develop 6013b84. Os três critérios de backend estão cumpridos; o quarto é metade meu. Arquivo: supabase/tests/440_equipe_de_confianca.sql, migração 20260929210000_equipe_de_confianca.sql. Suíte aqui: Result PASS, 63 arquivos, 1844 testes, com 440_equipe_de_confianca.sql ok. 1. Profissional da equipe a 30 km recebe a vaga; fora da equipe, não — "Ana (na equipe de confiança) é elegível mesmo a 30 km (RF18)". O contraste com o raio normal está no 370_rodada… · trello:6abd6086c04964ff64a55347 16:18 · Matheus Silva
- `eaWhDeym` · v1.1 · Backend + iOS · Contestar o despacho ('Por que recebo vagas') · comentário: Revisão do lado BACKEND, medida contra a develop 6013b84. Arquivo: supabase/tests/450_contestar_despacho.sql, migração 20260929190000_contestar_despacho.sql. Suíte aqui: Result PASS, 63 arquivos, 1844 testes, com 450_contestar_despacho.sql ok. 2. Contestar gera protocolo e e-mail à Equipe Frila — cumprido: "protocolo retornado tem tipo revisao_despacho", "protocolo contém ocorrencia_id", "prazo_resposta_ate é calculado com 5 dias úteis", "mensagem enfileirada na fila email com tipo e ocorrencia… · trello:6abd6086f95cf423f7812dc6 16:18 · Matheus Silva
- `FrpxqCxp` · S2 · Produto + Backend · Moderação da diretriz 1.2: filtro de texto e conteúdo denunciado tratado em 24 h · comentário: O que divergiu do cartão, e por quê — PR https://github.com/FrilaApp/frila-backend/pull/91 Só a metade Backend. Os critérios 3 (tolerância zero nos termos) e 4 (notas para a revisão) são Jurídico e Produto. 1. METADE DESTE CARTÃO JÁ ESTAVA FEITA, E NÃO ERA DESTE CARTÃO. Antes de escrever uma linha eu medi o que existia: o cartão Oxh0AWE7 (Operação da Equipe Frila), que este lista como "em paralelo com", já entregou `privado.vaga_ocultada`, `privado.vaga_oculta` e `privado.operacao_moderar_conte… · trello:6abd6244d1ed15ce61611a36 16:25 · Matheus Silva
- `FrpxqCxp` · S2 · Produto + Backend · Moderação da diretriz 1.2: filtro de texto e conteúdo denunciado tratado em 24 h · comentário: PR aberto: https://github.com/FrilaApp/frila-backend/pull/91 · trello:6abd62440c090c7b42ea0313 16:25 · Matheus Silva
- `nUpPFCpM` · S2 · Backend + iOS · Exportar meus dados (US25) · comentário: Critério 1: o contrato 0.2.27 (FrilaApp/frila-docs#32, 30/09/2026) abriu no schema MeusDados as sete coleções que faltavam — candidaturas, ocorrencias, bloqueios, notificacoes, despachos, equipe_confianca e pedido_de_exclusao. Os campos entraram como opcionais porque privado.meus_dados ainda não devolve nenhum deles. A metade que falta está no cartão IrtkCWDz (https://trello.com/c/IrtkCWDz), em Sprint 2, sem membro. · trello:6abd64d4abfd4a6496b0157f 16:36 · Matheus Silva
- `cVPDVZ7v` · S0 · Backend · Autoteste do portão de colisão de versão de migração · comentário: PR aberto: https://github.com/FrilaApp/frila-backend/pull/56 · trello:6abdba89034ef7c9dd462021 22:42 · João Paulo
- `cVPDVZ7v` · S0 · Backend · Autoteste do portão de colisão de versão de migração · comentário: O escopo deste cartão já havia sido implementado e mesclado na branch develop através do PR #56 (commit d529182), com refinamento do 13º caso no commit d2dcb98. Todos os 13 casos de teste passam localmente e na CI. Cartão vinculado ao PR #56 e encaminhado para validação/conclusão. · trello:6abdba9044bf6a26bcb761ea 22:42 · João Paulo
- `5bPJvMIo` · S2 · Infra + Backend · Monitoramento e alertas do backend desde o TestFlight · comentário: Assumindo o cartão via Rainha/Brasa (Antigravity) para execução do backend. · trello:6abdbab9a3791ad159c54534 22:43 · João Paulo
- `3zsjXW60` · S2 · iOS + Backend · Telemetria do piloto: eventos do funil e erros da API · comentário: PR aberto: https://github.com/FrilaApp/frila-backend/pull/93 · trello:6abdbc9303babcf7db7b4346 22:51 · João Paulo
- `5bPJvMIo` · S2 · Infra + Backend · Monitoramento e alertas do backend desde o TestFlight · comentário: PR aberto: https://github.com/FrilaApp/frila-backend/pull/94 · trello:6abdbd8cd3187b72ec25943c 22:55 · João Paulo
- `BsXIZHOw` · S2 · Backend · Suspensão, situacao_da_conta e contestar_suspensao · comentário: PR aberto: https://github.com/FrilaApp/frila-backend/pull/95 · trello:6abdc186603dcd79d67f4df0 23:12 · João Paulo
- `x0jkygj0` · S2 · Backend · Região administrativa do local da vaga e interpolação nos pushes · comentário: Reconferido contra a develop c45f40b. O critério 6 continua NÃO cumprido, e o número cresceu de novo. A CI segue sem rodar teste Deno nenhum: `grep -rin deno .github/` devolve zero linhas em `ci.yml` e no template de PR. E agora são **105**, não 64 nem 42: enviar-email 27 enviar-push 42 excluir-conta 14 exportar-meus-dados 11 limpar-contas-orfas 11 total 105 Duas Edge Functions novas entraram desde a minha primeira medição, cada uma com os seus testes escritos e nenhum executado pela CI. O furo… · trello:6abdc7ba3036a81a3445453f 23:38 · Matheus Silva
- `6mkytkpb` · S0 · Backend · Os 64 testes Deno das Edge Functions nunca rodaram na CI · comentário: Remedido contra a develop c45f40b, porque o número do título envelheceu. Não são 64 testes Deno, são **105**: enviar-email 27 enviar-push 42 excluir-conta 14 exportar-meus-dados 11 limpar-contas-orfas 11 E nenhum roda na CI: `grep -rin deno .github/` devolve zero linhas, em `ci.yml` e no `pull_request_template.md`. Nenhum passo executa `deno test`. Duas funções entraram desde a primeira contagem, `enviar-email` e `exportar-meus-dados`, com 38 testes entre elas. O furo cresceu 64 por cento enqua… · trello:6abdc7bbf4d4bb48cd5b3ed6 23:38 · Matheus Silva
29 set 2026 147 fatos
entrega 2 fatos
- cartao V0QOGSAC movido para Concluido no quadro: S2 · Backend · A suíte quebra na segunda passada da CI, e o mutacao.sh não diz qual teste · PR #72 — medido em 27/10 na API do Trello, acoes updateCard com listAfter 18:58 · Matheus Silva
- cartao ee3MT3fH movido para Concluido no quadro: S2 · Backend · Teto e agrupamento de notificações (RN23) · PR #49, #52, #58 — medido em 27/10 na API do Trello, acoes updateCard com listAfter 20:23 · Matheus Silva
frila-backend 65 fatos
- `353535c` — fix(enviar-push): resolver caminho do módulo no teste de falha fechada sem AGENDADOR_SECRET · 1 arquivo 00:57 · João Paulo
- `c5c7841` — feat(confianca): implementa denunciar e bloquear e fecha o bloqueio no teto e no push (JWJOPAOL) · 2 arquivos 01:27 · João Paulo
- `386114e` — test(confianca): colhe bloquear e denunciar no teste de contrato e ajusta o pgTAP ao cenário (JWJOPAOL) · 2 arquivos 01:30 · João Paulo
- `c9967cc` — Corrige o caminho de divergência do portão do contrato · 1 arquivo 01:39 · Matheus Silva
- `36f0d25` — feat(despacho): rodada de despacho para posição reaberta por atraso (9DbPXis7) · 5 arquivos 01:41 · João Paulo
- `cc0ae17` — test(corrida): corridas do ciclo além da RN19 e cancelar_vaga sem corrida (nspP9YDU) · 4 arquivos 02:48 · João Paulo
- `38e8614` — docs(estado): retrato de 29/09 na develop · 1 arquivo 02:56 · João Paulo
- `e1dfec9` — feat(agendador): agenda no pg_cron o fechamento de turnos e a reconciliação, e roda a CI na develop · 3 arquivos 03:06 · João Paulo
- `d81254c` — fix(vagas): recolhe por gatilho a confirmada da corrida, sem recriar cancelar_vaga (nspP9YDU) · 2 arquivos 03:15 · João Paulo
- `3b83da8` — fix(cenarios): alinha o check-in manual pendente à regra de fechamento agendada · 2 arquivos 03:24 · João Paulo
- `5873dad` — fix(posicoes): trava e reconfere a posição antes de cancelar, sem recriar RPC (xJ53t3tX) · 1 arquivo 04:17 · João Paulo
- `84b8355` — test(corrida): cancelar_vaga × cancelar_posicao e o aviso ao recolhido (xJ53t3tX) · 3 arquivos 04:17 · João Paulo
- `bf705b4` — test(corrida): renomeia o pgTAP da corrida de cancelar_posicao para 400 (xJ53t3tX) · 1 arquivo 04:24 · João Paulo
- `97bc2fd` — fix(vagas): gatilho da vaga cancelada sem esperar posição travada, sem recriar RPC (CPD2c74A) · 1 arquivo 05:31 · João Paulo
- `04e0004` — test(impasse): pgTAP da desistência depois da vaga cancelada e da aberta recolhida (CPD2c74A) · 1 arquivo 05:31 · João Paulo
- `2af96d8` — test(corrida): impasse a três entre cancelar_vaga, candidatar e cancelar_posicao (CPD2c74A) · 1 arquivo 05:31 · João Paulo
- `ce0c58a` — fix(vagas): ordem vaga → posição em turno futuro, sem skip locked (CPD2c74A) · 1 arquivo 06:26 · João Paulo
- `19f4a2f` — test(impasse): pgTAP confere a trava da vaga por pgrowlocks, não por regex (CPD2c74A) · 1 arquivo 06:26 · João Paulo
- `6b6b225` — test(corrida): cenário 7, quem segura a posição desfaz no meio do cancelamento (CPD2c74A) · 1 arquivo 06:26 · João Paulo
- `cbc522e` — fix(candidatura): travar_candidatura trava a vaga em for update desde o começo (CPD2c74A) · 1 arquivo 07:12 · João Paulo
- `8c5bd75` — test(corrida): cenário 8, candidatar × reabrir_por_atraso em turno começado (CPD2c74A) · 1 arquivo 07:12 · João Paulo
- `054ea9d` — test(cenarios): âncora única do instante do reset e script que desloca o relógio da suíte · 2 arquivos 08:45 · João Paulo
- `6323ebd` — test(relogio): testes independentes do instante do reset e da data do calendário · 4 arquivos 08:56 · João Paulo
- `8144c57` — Espelha o contrato 0.2.21: 422 em /rpc/denunciar e /rpc/bloquear · 3 arquivos 09:20 · João Paulo
- `cf7b20a` — fix(excluir-conta): autor da exclusão para recolher confirmadas no caminho de serviço (CPD2c74A) · 3 arquivos 09:40 · João Paulo
- `095a013` — fix(corrida): limpa contas anonimizadas e adiciona trap com sinais · 1 arquivo 10:40 · João Paulo
- `03e2d31` — Fixa a ordem dos filtros em privado.elegiveis, e mede plano com carga · 6 arquivos 12:07 · Matheus Silva
- `c1c5a63` — Adiciona RPCs da equipe de confiança e elegibilidade ampliada · 3 arquivos 12:36 · João Paulo
- `d2dcb98` — Conserta o portão de colisão que saía 0 em versão com zero à esquerda · 2 arquivos 12:39 · Matheus Silva
- `636768d` — feat(email): fila email consumida pela Edge Function enviar-email (7yq1flLG) · 10 arquivos 12:46 · Matheus Silva
- `85e66cb` — test(cron): o job processar_fila_email entra na lista dos agendados conhecidos · 1 arquivo 12:49 · Matheus Silva
- `72f8e26` — fix(email): enfileirar e-mail não pode derrubar a denúncia que o pediu · 2 arquivos 12:57 · Matheus Silva
- `f952e40` — A linha de base da mutação passa a nomear o teste vermelho · 3 arquivos 12:59 · Matheus Silva
- `469f265` — Conserta a suíte na segunda passada da CI · 2 arquivos 13:20 · Matheus Silva
- `032ea4d` — Adiciona RPCs para contestar despacho e procedimento de revisão · 4 arquivos 14:39 · João Paulo
- `87242ad` — fix(equipe): restringe inclusão e remoção da equipe a administradores · 2 arquivos 14:59 · João Paulo
- `1760e86` — fix(revisao-despacho): filtra funcoes ativas, remove ddl em runtime e valida payload · 2 arquivos 15:26 · João Paulo
- `0c94419` — Adiciona procedimentos e ferramentas operacionais da Equipe Frila · 7 arquivos 15:36 · João Paulo
- `6142027` — Atualiza espelho do contrato para a versão 0.2.22 · 2 arquivos 15:39 · João Paulo
- `172ddab` — chore(contrato): espelha o contrato 0.2.22 do frila-docs · 2 arquivos 16:02 · João Paulo
- `31c3c8f` — chore(migracao): equipe de confiança vai para 20260929210000 · 1 arquivo 16:03 · João Paulo
- `2120896` — Limite de requisições de escrita por conta, com 429 limite_excedido · 4 arquivos 16:44 · Matheus Silva
- `73bafcb` — feat(limite): limite de escrita por conta com 429 limite_excedido (kT7NhMGV) · 4 arquivos 16:48 · João Paulo
- `e27139d` — test(operacao): prova que a suspensão de casa recolhe as confirmadas e que o operador assina as ocorrências (Oxh0AWE7) · 5 arquivos 16:49 · João Paulo
- `dd4ec3e` — fix(operacao): operador assina as ocorrências e a suspensão de casa recolhe as confirmadas (Oxh0AWE7) · 2 arquivos 17:01 · João Paulo
- `ae7ce42` — test(operacao): prova que a suspensão não gera falta e que ocultar não cancela a vaga (Oxh0AWE7) · 1 arquivo 17:05 · João Paulo
- `1cba937` — fix(operacao): suspensão sem falta e ocultar sem cancelar a vaga (Oxh0AWE7) · 2 arquivos 17:08 · João Paulo
- `065dac8` — feat(lgpd): exportar meus dados devolve o JSON no corpo (nUpPFCpM) · 5 arquivos 17:08 · Matheus Silva
- `32f4d95` — test(operacao): prova o detalhe do candidato pendente, o painel e a republicação da vaga oculta (Oxh0AWE7) · 1 arquivo 17:33 · João Paulo
- `8f530b4` — fix(operacao): vaga oculta no detalhe do candidato, no painel e na republicação (Oxh0AWE7) · 6 arquivos 17:44 · João Paulo
- `1a0970b` — feat(exclusao): a Edge Function registra o pedido antes de excluir (SHUDSozj) · 2 arquivos 17:47 · Matheus Silva
- `d5ea4ea` — test(exclusao): Deno exige o registro antes da exclusão (SHUDSozj) · 1 arquivo 17:47 · Matheus Silva
- `8fedf3a` — feat(exclusao): pedido de exclusão deixa rastro fora da transação (SHUDSozj) · 2 arquivos 17:47 · Matheus Silva
- `91713e3` — test(exclusao): pgTAP do rastro do pedido que sobrevive ao rollback (SHUDSozj) · 1 arquivo 17:47 · Matheus Silva
- `c30536b` — feat(turno): aviso aos dois lados quando o fim passa sem check-out (qcVimM84) · 4 arquivos 17:56 · Matheus Silva
- `a00d62d` — Registra o SMTP proprio do frila-dev, e o codigo no lugar do link · 1 arquivo 18:07 · Cauê Carneiro
- `a293f80` — feat(selecao): modo seleção com escolha de candidato e fechamento 24 h antes (d3A1WjG3) · 7 arquivos 18:55 · João Paulo
- `e9f92e2` — chore(contrato): espelha o contrato 0.2.24 e colhe as RPCs do modo seleção (d3A1WjG3) · 4 arquivos 19:13 · João Paulo
- `bf35a47` — feat(selecao): 422 vaga_oculta em escolher_candidato e candidatar sobre a versão do #74 (d3A1WjG3) · 2 arquivos 19:25 · João Paulo
- `d4987ee` — fix(ciclo): rajada do limite de escrita resiste à virada do minuto · 1 arquivo 19:39 · João Paulo
- `c410676` — Adiciona exportação de turnos em CSV e PDF via Edge Function (pd7zOS5P) · 5 arquivos 19:47 · João Paulo
- `ec3939d` — fix(ciclo): vaga de seleção do ciclo é cancelada para não gastar o teto do seed · 1 arquivo 19:57 · João Paulo
- `f57c2a6` — Adiciona views do funil do piloto e script funil.sh (1MK1CGyF) · 3 arquivos 20:07 · João Paulo
- `a1aa936` — feat(metrica): tabela privado.conta_equipe e exclusão da equipe no funil (1MK1CGyF) · 3 arquivos 20:18 · João Paulo
- `04f42c3` — chore(contrato): espelha contrato 0.2.24 do frila-docs · 2 arquivos 20:43 · João Paulo
quadro 15 fatos
- `BsXIZHOw` movido de Sprint 2 · Despacho e turno (20/10 → 02/11) para Em andamento · S2 · Backend · Suspensão, situacao_da_conta e contestar_suspensao · trello:6abb44382aa6ca4898c5e4e1 01:53 · João Paulo
- `8Xb2KQRv` movido de Sprint 3 · Loja (03/11 → 13/11) para Em andamento · S3 · Backend · Gatilho de vaga cancelada no caminho de serviço de excluir_conta (CPD2c74A) · trello:6abba942b71fd5c46f7f06de 09:04 · João Paulo
- `8Xb2KQRv` movido de Em andamento para Revisão · S3 · Backend · Gatilho de vaga cancelada no caminho de serviço de excluir_conta (CPD2c74A) · trello:6abbb74d60c508a6ac21f61c 10:04 · João Paulo
- `zptkprHt` movido de Em andamento para Revisão · S3 · Backend · Índice do caminho quente de elegiveis, e portão de plano com carga · trello:6abbd46c929c51caf3cac670 12:08 · Matheus Silva
- `jl6nbekI` movido de Backlog · v1.1 (dez/2026) para Em andamento · v1.1 · Backend + iOS · Equipe de confiança sempre notificada · trello:6abbd70c6babee1ba58cc2c8 12:19 · João Paulo
- `jl6nbekI` movido de Em andamento para Revisão · v1.1 · Backend + iOS · Equipe de confiança sempre notificada · trello:6abbdb55e929f38f82f373fc 12:37 · João Paulo
- `eaWhDeym` movido de Backlog · v1.1 (dez/2026) para Em andamento · v1.1 · Backend + iOS · Contestar o despacho ('Por que recebo vagas') · trello:6abbede9049ed8cd79f8d12b 13:57 · João Paulo
- `eaWhDeym` movido de Em andamento para Revisão · v1.1 · Backend + iOS · Contestar o despacho ('Por que recebo vagas') · trello:6abbf800e72bf5b913b92124 14:40 · João Paulo
- `kT7NhMGV` movido de Revisão para Sprint 3 · Loja (03/11 → 13/11) · S3 · Backend · Endurecimento para produção: limites, logs, backup e advisors · trello:6abc18eadc9c2c90d34941e8 17:00 · Matheus Silva
- `e8XpOZJN` movido de Revisão para Concluído 🎉 · S2 · Backend · Alerta de atraso aos 15 minutos e reabrir_por_atraso · trello:6abc1eb4b5fc78b84a56e473 17:25 · Matheus Silva
- `vUR0Ltkb` movido de Revisão para Concluído 🎉 · S2 · Backend · Alerta de vaga vazia na janela crítica · trello:6abc1ebae9c680134fa5a16e 17:25 · Matheus Silva
- `k5R4tzjC` movido de Revisão para Concluído 🎉 · S2 · Backend · Lembretes 24 h e 3 h antes do turno · trello:6abc1ebfb4809428dc8a294d 17:25 · Matheus Silva
- `6mkytkpb` movido de Sprint 0 · Fundação (22/09 → 05/10) para Em andamento · S0 · Backend · Os 64 testes Deno das Edge Functions nunca rodaram na CI · trello:6abc2120127d3d50b7ec6265 17:35 · Matheus Silva
- `6mkytkpb` movido de Em andamento para Revisão · S0 · Backend · Os 64 testes Deno das Edge Functions nunca rodaram na CI · trello:6abc21a6cfa1ceca57c1c85c 17:37 · Matheus Silva
- `h53CJVP7` movido de Backlog · v1.1 (dez/2026) para Em andamento · v1.1 · Backend + iOS · 'Estou a caminho' no lembrete de 3 h e no acompanhamento do contratante · trello:6abc4805009be843a397a2d9 20:21 · João Paulo
quadro-comentario 65 fatos
- `9DbPXis7` · S2 · Backend · Rodada de despacho para posição reaberta por atraso · comentário: Assumindo o cartão (Jotapê) para implementar a rodada de despacho da posição reaberta. · trello:6abb34deacfd3f63043c3aa6 00:47 · João Paulo
- `JWJOPAOL` · S2 · Backend · RPCs denunciar e bloquear; o bloqueio filtra tudo · comentário: Jotapê pegando este cartão (sugestão era Cauê): RPCs denunciar e bloquear, com o filtro de bloqueio em todas as leituras. · trello:6abb35c8426a70ad27daa120 00:51 · João Paulo
- `zptkprHt` · S3 · Backend · Índice do caminho quente de elegiveis, e portão de plano com carga · comentário: Implementação feita e medida. Commit local `a656c49`, sobre o `main` em `c190836` (#48 já fundido). Ambiente: `supabase db reset` antes, 48 migrações, `frila.agendador_secret` gravado. ## A escolha do critério 1: a reescrita, e sem índice novo As duas saídas foram medidas antes de escolher, como o cartão pedia. 36 chamadas de `privado.elegiveis` sobre 12 vagas do DF, com a carga de `gerar_df.sql` aplicada de verdade (130.020 usuários, 100.014 profissionais, 20.010 vagas, 200.019 janelas): | var… · trello:6abb4002c070f33c779e2937 01:35 · Matheus Silva
- `JWJOPAOL` · S2 · Backend · RPCs denunciar e bloquear; o bloqueio filtra tudo · comentário: PR aberto: https://github.com/FrilaApp/frila-backend/pull/57 · trello:6abb402bf597e0b6f2cd9f7f 01:35 · João Paulo
- `JWJOPAOL` · S2 · Backend · RPCs denunciar e bloquear; o bloqueio filtra tudo · comentário: Critério do e-mail PENDENTE: depende do 7yq1flLG. A denúncia já enfileira {tipo, ocorrencia_id} na fila pgmq 'email'. O 422 do denunciar depende do contrato 0.2.21 (frila-docs). · trello:6abb402cc31fc2684c0cdf02 01:35 · João Paulo
- `9DbPXis7` · S2 · Backend · Rodada de despacho para posição reaberta por atraso · comentário: PR aberto: https://github.com/FrilaApp/frila-backend/pull/58 · trello:6abb41abda896f91740161fc 01:42 · João Paulo
- `BsXIZHOw` · S2 · Backend · Suspensão, situacao_da_conta e contestar_suspensao · comentário: Assumindo o cartão para implementação no worker frila-ao-72. · trello:6abb44373bc3ae5fac5ea7fa 01:53 · João Paulo
- `nspP9YDU` · S3 · QA + Backend · Testes de concorrência do ciclo além da RN19 (RNF14) · comentário: Assumindo o cartão (Jotapê). · trello:6abb453b82bb089e54f9f6b9 01:57 · João Paulo
- `9DbPXis7` · S2 · Backend · Rodada de despacho para posição reaberta por atraso · comentário: Revisão do PR #58: VEREDITO: pediria mudanças. CI reprovou no portão 'O contrato acompanhou o código' devido à re-declaração de public.reabrir_por_atraso sem alteração de contrato. Detalhes no PR: https://github.com/FrilaApp/frila-backend/pull/58#issuecomment-5883934829 · trello:6abb45744bf00b80a6a8c1ac 01:58 · João Paulo
- `nspP9YDU` · S3 · QA + Backend · Testes de concorrência do ciclo além da RN19 (RNF14) · comentário: PR aberto: https://github.com/FrilaApp/frila-backend/pull/60 · trello:6abb53707bd9183ece2c1505 02:58 · João Paulo
- `nspP9YDU` · S3 · QA + Backend · Testes de concorrência do ciclo além da RN19 (RNF14) · comentário: PR #60: 3 cenários × 50 rodadas verdes. cancelar_vaga × candidatar reprovava 19/50 na develop (vaga cancelada com posição confirmada) — corrigido no mesmo PR com pgTAP. PENDENTE: portão 'O contrato acompanhou o código' vermelho porque cancelar_vaga foi recriada (só corpo); precisa do frila-docs 0.2.21, texto proposto no PR. · trello:6abb5371b40d34bcd311cb00 02:58 · João Paulo
- `nspP9YDU` · S3 · QA + Backend · Testes de concorrência do ciclo além da RN19 (RNF14) · comentário: PR #60 atualizado: a correção agora é um gatilho em privado (vaga_cancelada_recolhe_confirmadas), sem recriar public.cancelar_vaga. O portão do contrato passa, e não precisa de 0.2.21. pgTAP 380 vermelho→verde, corridas 3×50 verdes. · trello:6abb57d91f23443701c47786 03:16 · João Paulo
- `xJ53t3tX` · S3 · Backend · cancelar_posicao × cancelar_vaga sem reabrir posição em vaga cancelada (RNF14) · comentário: PR aberto: https://github.com/FrilaApp/frila-backend/pull/62 · trello:6abb6647fcd42b33a3d22d95 04:18 · João Paulo
- `CPD2c74A` · S3 · Backend · Impasse (40P01) entre o gatilho da vaga cancelada e a desistência que reabre (RNF14) · comentário: PR aberto: https://github.com/FrilaApp/frila-backend/pull/63 · trello:6abb777ead4c5436149f760b 05:31 · João Paulo
- `CPD2c74A` · S3 · Backend · Impasse (40P01) entre o gatilho da vaga cancelada e a desistência que reabre (RNF14) · comentário: Limite conhecido (decisão do orquestrador, 29/09): 40P01 residual em cancelar_vaga sem confirmada futura (e em excluir_conta da casa). Ali a primeira trava é o update das abertas (posição antes da vaga, dentro de public). Numa janela de microssegundos, um lado é abortado com 40P01; o desfecho é rollback, com estado consistente e reenviável. Sem varredura de reconciliação. Zerar exige recriar public.cancelar_vaga para travar a vaga no começo (mudança de contrato), em cartão futuro. PR: https://g… · trello:6abb84a4a29497a5bd97da8f 06:28 · João Paulo
- `8Xb2KQRv` · S3 · Backend · Gatilho de vaga cancelada no caminho de serviço de excluir_conta (CPD2c74A) · comentário: PR aberto: https://github.com/FrilaApp/frila-backend/pull/66 · trello:6abbb74c95db01d01f386cb8 10:04 · João Paulo
- `zptkprHt` · S3 · Backend · Índice do caminho quente de elegiveis, e portão de plano com carga · comentário: PR aberto: https://github.com/FrilaApp/frila-backend/pull/67 · trello:6abbd46b6e99710dbf623eb1 12:08 · Matheus Silva
- `zptkprHt` · S3 · Backend · Índice do caminho quente de elegiveis, e portão de plano com carga · comentário: PR aberto: **https://github.com/FrilaApp/frila-backend/pull/67** — base `develop`, branch `ao/blendops-3-plano-com-carga`, commit `d7fdba7`. O trabalho foi refeito inteiro sobre a `develop`, que estava **78 commits à frente** do ponto onde eu tinha começado. Três coisas quebraram em silêncio no caminho, e vale registrar porque nenhuma delas dá erro: 1. **A migração viraria letra morta.** Ela era `20260929041231`, e a `20260929110000_rodada_de_despacho.sql` redefine `privado.elegiveis`. Como mig… · trello:6abbd46c1cd108515fe57b14 12:08 · Matheus Silva
- `jl6nbekI` · v1.1 · Backend + iOS · Equipe de confiança sempre notificada · comentário: PR aberto: https://github.com/FrilaApp/frila-backend/pull/68 · trello:6abbdb54ef94e08f16f3ec97 12:37 · João Paulo
- `7yq1flLG` · S2 · Backend · E-mails transacionais e caixa da Equipe Frila · comentário: O que divergiu do cartão, e por quê — PR https://github.com/FrilaApp/frila-backend/pull/70 1. O cartão pede "a fila `email` do pgmq e a Edge Function `enviar-email`". A fila já existia: nasceu na migração da denúncia (20260929100000), que a criou condicionalmente justamente por causa deste cartão. O que faltava era o consumidor, e é ele que entra. 2. "As RPCs só enfileiram" continua valendo, e ao pé da letra: NENHUMA função de `public` foi tocada. A denúncia gera dois e-mails (a caixa da equipe… · trello:6abbde4f9596397fb483444e 12:50 · Matheus Silva
- `7yq1flLG` · S2 · Backend · E-mails transacionais e caixa da Equipe Frila · comentário: PR aberto: https://github.com/FrilaApp/frila-backend/pull/70 · trello:6abbde50bb72cfb1aea8b59a 12:50 · Matheus Silva
- `V0QOGSAC` · S2 · Backend · A suíte quebra na segunda passada da CI, e o mutacao.sh não diz qual teste · comentário: Causa encontrada e medida. Duas correções, e uma que **eu atribuí errado** e estou desfazendo. ## O que realmente quebra, e por quê **`260_motor_despacho`, testes 21, 22 e 25.** É o teto da RN23. `privado.parametro_notificacao` traz `teto_janela = 30 minutes`, e `privado.ultima_no_teto(usuario)` mede a última notificação de tipo que conta no teto por `max(enviada_em)`. Na segunda passada da CI os scripts HTTP já notificaram os profissionais dos cenários dentro dessa janela, então as cinco notif… · trello:6abbe22ceaa5c297fb59e71e 13:07 · Matheus Silva
- `7yq1flLG` · S2 · Backend · E-mails transacionais e caixa da Equipe Frila · comentário: Estado da CI do PR #70, e uma correção que a CI pegou e a máquina não pegava. O QUE A CI ENCONTROU (run 36593222476, primeira tentativa): o pgTAP reprovou já na primeira passada, em banco limpo. Causa medida: `supabase db reset` APAGA o `alter database postgres set frila.agendador_secret` que o passo anterior do job tinha acabado de gravar, e o pgTAP roda sem o segredo. O gatilho novo na fila `email` exigia o segredo e abortava o `pgmq.send` — e com ele a denúncia inteira. O 360 e o 430 morrera… · trello:6abbe27510479f290a9a4d29 13:08 · Matheus Silva
- `V0QOGSAC` · S2 · Backend · A suíte quebra na segunda passada da CI, e o mutacao.sh não diz qual teste · comentário: PR aberto: https://github.com/FrilaApp/frila-backend/pull/72 · trello:6abbe573bd1630b9ce436937 13:21 · Matheus Silva
- `V0QOGSAC` · S2 · Backend · A suíte quebra na segunda passada da CI, e o mutacao.sh não diz qual teste · comentário: **CI verde.** Run `36597053183`, PR #72, os quatro jobs: | job | resultado | |---|---| | Migrações e pgTAP | **success** | | Migrações sem colisão de versão | success | | Contrato em dia com o Frila | success | | O contrato acompanhou o código | success | O passo *Os testes cobrem as regras* — que era o que reprovava na `develop` e em todo PR aberto em cima dela — **passa**. É a prova de que o `mutacao.sh` voltou a encontrar linha de base verde na segunda execução da suíte, que é onde a quebra … · trello:6abbf24b69bc2a42fcc0c5b1 14:15 · Matheus Silva
- `eaWhDeym` · v1.1 · Backend + iOS · Contestar o despacho ('Por que recebo vagas') · comentário: PR aberto: https://github.com/FrilaApp/frila-backend/pull/73 · trello:6abbf7ffb7306ad36abe1b09 14:40 · João Paulo
- `7yq1flLG` · S2 · Backend · E-mails transacionais e caixa da Equipe Frila · comentário: CI VERDE nos quatro jobs (run 36604717591), depois de trazer a develop com o PR #72 do blendops-3 — que consertou o 260 e o 270 na segunda passada. O portão de mutação voltou a rodar até o fim: 'Linha de base... verde ✓' e 'cobertas: 107 · sem cobertura: 0 · não medidas: 0' — as duas regras novas deste cartão (o CHECK erro_de_email_e_codigo e o gatilho ocorrencia_imutavel recriado) entram nas 107, e nenhuma regra do banco ficou sem teste. O PR #70 está pronto para revisão; o merge é decisão de … · trello:6abbfc0911641fd225ea92ad 14:57 · Matheus Silva
- `eaWhDeym` · v1.1 · Backend + iOS · Contestar o despacho ('Por que recebo vagas') · comentário: Rodada 2 (PR #73): Critério "Contestar gera protocolo e e-mail à Equipe Frila" marcado como PENDENTE do PR #70 (aberto por Matheus Silva). O enfileiramento na fila `email` está implementado e verificado no pgTAP (450), garantindo RN15 com payload: {"tipo": "revisao_despacho", "ocorrencia_id": "<uuid>"} O disparo efetivo do e-mail depende da inclusão do modelo `revisao_despacho` na Edge Function `enviar-email` do PR #70. Modelos propostos: 1. Para a Equipe Frila (equipe@frila.app): Assunto: [Fri… · trello:6abc030006e56ba04fd3eca9 15:27 · João Paulo
- `Oxh0AWE7` · S3 · Produto + Backend · Operação da Equipe Frila: procedimentos e ferramentas · comentário: PR aberto: https://github.com/FrilaApp/frila-backend/pull/74 · trello:6abc0548686a6ab0787cce52 15:36 · João Paulo
- `V0QOGSAC` · S2 · Backend · A suíte quebra na segunda passada da CI, e o mutacao.sh não diz qual teste · comentário: **Critério 7 medido, e cumprido.** O PR #67 deixou de herdar o vermelho do pgTAP, sem nenhuma mudança no código dele — só o rebase sobre a `develop` com o #72 dentro. Run `36613338790`, PR #67, branch `ao/blendops-3-plano-com-carga` rebaseado sobre `18e3792`: | job | antes do #72 (run `36587790916`) | depois (run `36613338790`) | |---|---|---| | **Migrações e pgTAP** | **failure** | **success** | | Migrações sem colisão de versão | success | success | | O contrato acompanhou o código | success … · trello:6abc0a218e0c386df8e8d049 15:57 · Matheus Silva
- `kT7NhMGV` · S3 · Backend · Endurecimento para produção: limites, logs, backup e advisors · comentário: Pegando este cartão. O **Responsável sugerido é o Cauê** — não é reserva, mas aviso aqui para ninguém escrever a mesma coisa duas vezes. Se você já tinha começado, Cauê, me diga que devolvo. Antes de começar, o mapa do que é alcançável, medido agora e não suposto. Dos quatro critérios, **um é trabalho de Backend que dá para fazer e provar aqui**; dois dependem de credencial que não responde; um é de outra frente. **Critério 2 — rajada acima do limite recebe 429 com o código do contrato: é o tra… · trello:6abc0ab5309831dc8941f8be 16:00 · Matheus Silva
- `kT7NhMGV` · S3 · Backend · Endurecimento para produção: limites, logs, backup e advisors · comentário: Pegando a parte de banco deste cartão (limite por conta com 429 limite_excedido via db_pre_request, advisors locais e janela de migração no README). Advisors do frila-prod, busca nos logs das Edge Functions e varredura do binário ficam pendentes, com o roteiro no PR. @cauecarneiroc, você é o responsável sugerido: aviso para não duplicarmos. · trello:6abc0f2894888d4dd33dd78e 16:19 · João Paulo
- `kT7NhMGV` · S3 · Backend · Endurecimento para produção: limites, logs, backup e advisors · comentário: PR aberto: https://github.com/FrilaApp/frila-backend/pull/75 · trello:6abc1647f762b1fc9024685f 16:49 · João Paulo
- `kT7NhMGV` · S3 · Backend · Endurecimento para produção: limites, logs, backup e advisors · comentário: PR aberto: https://github.com/FrilaApp/frila-backend/pull/76 · trello:6abc17c4d55c9ffa59e048a0 16:55 · Matheus Silva
- `kT7NhMGV` · S3 · Backend · Endurecimento para produção: limites, logs, backup e advisors · comentário: **Trabalho duplicado, e eu fechei o meu.** Este cartão estava sem membro e foi pego duas vezes: eu abri o **#76** e o João Paulo abriu o **#75**, os dois para o critério 2. Comparei os dois diffs antes de decidir. Chegamos à mesma escolha de desenho — `pgrst.db_pre_request` em vez de repetir a checagem nas 24 RPCs, contador por conta em janela de um minuto, recusa com o `429 limite_excedido` que o contrato já declarava — e em dois pontos o dele é melhor: - o contador é **uma linha por conta**, … · trello:6abc18e938bb88a6fd987d78 17:00 · Matheus Silva
- `9DbPXis7` · S2 · Backend · Rodada de despacho para posição reaberta por atraso · comentário: Revisão medida contra a develop 6bdfd65 (f885ac00, run 36615520624, job Migrações e pgTAP verde em 22m2s — Result: PASS, Files=52, Tests=1432, com 370_rodada_despacho_posicao_reaberta.sql ok). Critério a critério, com a asserção que prova cada um em supabase/tests/370_rodada_despacho_posicao_reaberta.sql: 1. Nova rodada no raio de 15 km — "reabrir_por_atraso abre a rodada 2 da vaga" e "RN05: a rodada 2 respeita o raio de 15 km como a primeira". O raio está em supabase/migrations/20260929110000_… · trello:6abc19b14c72bc67cfc99b35 17:04 · Matheus Silva
- `x0jkygj0` · S2 · Backend · Região administrativa do local da vaga e interpolação nos pushes · comentário: Revisão medida contra a develop 6bdfd65 (f885ac00, run 36615520624). Cinco dos seis critérios estão cumpridos; o sexto não, e por isso o cartão fica em Revisão. Cumpridos: 1. Coluna regiao_administrativa em estabelecimento e vaga — supabase/migrations/20260928230000_regiao_administrativa.sql, linhas 17 e 30, com check de não-vazio na 23. O cabeçalho da migração registra a validação em cadastrar_estabelecimento, a aceitação em publicar_vaga com herança da casa, e a propagação em republicar_vaga.… · trello:6abc19b224c5f4a230adb52f 17:04 · Matheus Silva
- `CPD2c74A` · S3 · Backend · Impasse (40P01) entre o gatilho da vaga cancelada e a desistência que reabre (RNF14) · comentário: Revisão medida contra a develop 6bdfd65. Os quatro critérios estão cumpridos. 1. Corrida a três em scripts/corrida-ciclo.sh, taxa medida em 500 rodadas — cenário 5 do script, linha 665, com os três lados como conexões de verdade: cancelar_vaga pela casa, candidatar e cancelar_posicao pelo profissional, com tempos sorteados. Rodado aqui agora, nesta máquina, contra a develop 6bdfd65: CENARIOS=impasse RODADAS=500 ./scripts/corrida-ciclo.sh ▸ Cenário 5: cancelar_vaga × candidatar × cancelar_posica… · trello:6abc1a02d35cd7e501a7ff47 17:05 · Matheus Silva
- `CPD2c74A` · S3 · Backend · Impasse (40P01) entre o gatilho da vaga cancelada e a desistência que reabre (RNF14) · comentário: CORREÇÃO do meu comentário anterior: eu fechei este cartão cedo demais, e estou desfazendo. O critério 2 não está cumprido como escrito. O que me fez rever: ao rodar os outros cenários do corrida-ciclo.sh para os cartões 8Xb2KQRv, xJ53t3tX e nspP9YDU, o cenário 9 saiu assim: ▸ Cenário 9: excluir_conta (serviço) × candidatar (50 rodadas) ✓ 50 rodadas: toda vaga cancelada por excluir_conta terminou sem posição viva e sem falta (21 confirmações no meio recolhidas, 6 rollbacks por 40P01 residual CP… · trello:6abc1b6398ec4910b9e70e88 17:11 · Matheus Silva
- `xJ53t3tX` · S3 · Backend · cancelar_posicao × cancelar_vaga sem reabrir posição em vaga cancelada (RNF14) · comentário: Revisão medida contra a develop 6bdfd65. Os quatro critérios estão cumpridos. 1. cancelar_vaga × cancelar_posicao, 50 vezes seguidas, sem posição aberta ou confirmada em vaga cancelada — rodado aqui agora, cenário 4 do scripts/corrida-ciclo.sh (linha 553), cada lado numa conexão de verdade: CENARIOS="checkin cancelar teto posicao excluir" RODADAS=50 ./scripts/corrida-ciclo.sh ▸ Cenário 4: cancelar_vaga × cancelar_posicao (50 rodadas) ✓ 50 rodadas: 31 com a desistência antes (falta dele), 19 com… · trello:6abc1b96702cad03e8e69e85 17:12 · Matheus Silva
- `Oxh0AWE7` · S3 · Produto + Backend · Operação da Equipe Frila: procedimentos e ferramentas · comentário: Decisões do João Paulo em 29/09, implementadas no PR #74 (rodada 2): (1) Suspender profissional NÃO gera falta (RN12): os turnos futuros confirmados são reabertos sem falta, como na exclusão de conta, e a taxa de comparecimento não muda. (3) Moderação, opção A: ocultar tira a vaga da vitrine, do detalhe, da candidatura e do despacho SEM cancelar (confirmados seguem confirmados); reexibir só vale para vaga ocultada pela Equipe e nunca republica vaga que a casa cancelou. Contrato 0.2.23 em https:… · trello:6abc1db81ab6c0a5fb9170b2 17:21 · João Paulo
- `CPD2c74A` · S3 · Backend · Impasse (40P01) entre o gatilho da vaga cancelada e a desistência que reabre (RNF14) · comentário: Complemento ao achado do rollback, por leitura de código (não medido em execução, e digo isso de propósito): Depois do 40P01 não sobra rastro nenhum do pedido de exclusão. supabase/migrations/20260929160000_excluir_conta_autor.sql não tem nenhum commit nem rollback explícito (grep -c devolve 0), então privado.excluir_conta roda inteira numa transação só; e quem chama pelo caminho de serviço é supabase/functions/excluir-conta/index.ts:79, num único "select privado.excluir_conta(...)". Com o roll… · trello:6abc1dfcfcb4f01e0ca7132e 17:22 · Matheus Silva
- `nUpPFCpM` · S2 · Backend + iOS · Exportar meus dados (US25) · comentário: O que divergiu do cartão, e por quê — PR https://github.com/FrilaApp/frila-backend/pull/77 Só a metade Backend. O critério 3 (o item em Meu perfil e em Estabelecimento, com a explicação do que vem no arquivo) é tela e é de outra pessoa. 1. CRITÉRIO 2 VIROU RÓTULO, E NÃO PROMESSA. "Nada fica guardado no servidor depois da resposta" está escrito como `stable` na `privado.meus_dados`: função `stable` não CONSEGUE escrever — o Postgres recusa um INSERT dentro dela com `0A000`. O teste 440 mede o ró… · trello:6abc1e52cb4ce6bb73986122 17:23 · Matheus Silva
- `ee3MT3fH` · S2 · Backend · Teto e agrupamento de notificações (RN23) · comentário: Revisão medida contra a develop 6bdfd65. Os cinco critérios estão cumpridos, e o teste nomeia os critérios pelo número, o que torna a conferência direta. Arquivo: supabase/tests/330_teto_e_agrupamento.sql, que sai ok no run 36615520624 (Result: PASS, Files=52, Tests=1432). 1. Quatro vagas em 5 min geram duas notificações — "critério 1: a primeira vaga sai na hora, sozinha, sem ter esperado", "critério 1: as outras três esperam o teto, com despacho e sem notificação", "critério 1: duas notificaç… · trello:6abc1e5229d4fff4f9a6179e 17:23 · Matheus Silva
- `nUpPFCpM` · S2 · Backend + iOS · Exportar meus dados (US25) · comentário: PR aberto: https://github.com/FrilaApp/frila-backend/pull/77 · trello:6abc1e53efdf453fa40ade1f 17:23 · Matheus Silva
- `JWJOPAOL` · S2 · Backend · RPCs denunciar e bloquear; o bloqueio filtra tudo · comentário: Revisão medida contra a develop 6bdfd65. Três dos quatro critérios estão cumpridos; o terceiro não, e o motivo é uma dependência que ainda não entrou. Cumpridos, com as asserções de supabase/tests/360_denunciar_e_bloquear.sql, que sai ok no run 36615520624 (Result: PASS, Files=52, Tests=1432): 1. Depois do bloqueio a vaga não aparece e não há despacho — o teste mede antes e depois. Antes: "antes: a vaga do bar aparece em vagas_abertas para a Ana", "antes: a Ana é elegível para a vaga do bar (de… · trello:6abc1e5bfc1123f997c48366 17:23 · Matheus Silva
- `e8XpOZJN` · S2 · Backend · Alerta de atraso aos 15 minutos e reabrir_por_atraso · comentário: Revisão medida contra a develop 6bdfd65. Os cinco critérios estão cumpridos. Arquivo: supabase/tests/330_alerta_de_atraso_e_reabrir.sql, ok no run 36615520624 (Result: PASS, Files=52, Tests=1432). 1. Alerta aos 15 min, e 422 antes disso — "aos 15 minutos sem check-in, cada membro da casa recebe atraso_15min — uma vez só", com o limiar preso pelos dois lados: "D06: reabrir antes dos 15 minutos é 422 reabertura_antes_da_tolerancia" e "D06: um segundo antes dos 15 minutos continua 422", este últim… · trello:6abc1eaf9e61826121490951 17:25 · Matheus Silva
- `vUR0Ltkb` · S2 · Backend · Alerta de vaga vazia na janela crítica · comentário: Revisão medida contra a develop 6bdfd65. Os quatro critérios estão cumpridos. Arquivo: supabase/tests/340_alerta_vaga_vazia.sql, ok no run 36615520624 (Result: PASS, Files=52, Tests=1432). 1. Aberta a 3 h gera um alerta, preenchida a 4 h não gera — os dois lados medidos: "a 4 h do início nenhuma vaga está na janela crítica", "um minuto antes das 3 h a posição aberta ainda não gera alerta", "às 3 h entram na janela quatro posições abertas", "posição aberta a 3 h do início gera o alerta, um para … · trello:6abc1eb55f84d356623fb160 17:25 · Matheus Silva
- `k5R4tzjC` · S2 · Backend · Lembretes 24 h e 3 h antes do turno · comentário: Revisão medida contra a develop 6bdfd65. Os quatro critérios estão cumpridos, e o teste nomeia os critérios pelo número. Arquivo: supabase/tests/330_lembretes_turno.sql, ok no run 36615520624 (Result: PASS, Files=52, Tests=1432). 1. Turno para daqui a 25 h recebe o lembrete de 24 h no minuto certo — "Critério 1: a 24 h e 1 min do início, nenhum lembrete de 24 h foi enviado" e "Critério 1: exatamente às 24 h antes, o profissional recebe o lembrete de 24 h", com o relógio fixado em instantes expl… · trello:6abc1ebb253b900313f51669 17:25 · Matheus Silva
- `nspP9YDU` · S3 · QA + Backend · Testes de concorrência do ciclo além da RN19 (RNF14) · comentário: Revisão medida contra a develop 6bdfd65. Os três critérios estão cumpridos, com os nove cenários do scripts/corrida-ciclo.sh rodados aqui, cada lado numa conexão de verdade. 1. Cada cenário roda 50 vezes seguidas sem violar a regra — rodei os nove, em três baterias: ▸ Cenário 1: reabrir_por_atraso × fazer_checkin (50 rodadas) ✓ 50 rodadas: 16 com check-in e posição mantida, 34 reabertas sem check-in; nenhuma com os dois ▸ Cenário 2: cancelar_vaga × candidatar, dois candidatos por rodada (50 rod… · trello:6abc1f71a1cd0bf7c715be29 17:28 · Matheus Silva
- `d3A1WjG3` · v1.1 · Backend + iOS · Modo seleção: escolher candidato e fechamento automático · comentário: Retomado pela sessão frila-ao-101, depois que o worker anterior caiu por cota. O contrato precisa da 0.2.24 (https://github.com/FrilaApp/frila-docs/pull/29): a 0.2.22 ainda recusava modo seleção em publicar_vaga. Implementação do backend em andamento. · trello:6abc201110ac4f3703f3b9fd 17:31 · João Paulo
- `6mkytkpb` · S0 · Backend · Os 64 testes Deno das Edge Functions nunca rodaram na CI · comentário: PR aberto: **https://github.com/FrilaApp/frila-backend/pull/78** — base `develop`, branch `ao/blendops-3-ci-deno`. **Critério 1 — os 64 rodam e passam: MEDIDO.** Primeira execução na história deles: ``` $ deno test --allow-all --no-check ok | 64 passed | 0 failed (4s) ``` Linha de base confirmada antes: `grep -rin deno .github/` devolvia zero linhas, e a contagem por arquivo é `enviar-push` 42, `excluir-conta` 11, `limpar-contas-orfas` 11. Uma correção ao achado original, que falava em 42: **sã… · trello:6abc21a4a743e568ef4a0dee 17:37 · Matheus Silva
- `6mkytkpb` · S0 · Backend · Os 64 testes Deno das Edge Functions nunca rodaram na CI · comentário: PR aberto: https://github.com/FrilaApp/frila-backend/pull/78 · trello:6abc21a530bc58fbd8862489 17:37 · Matheus Silva
- `x0jkygj0` · S2 · Backend · Região administrativa do local da vaga e interpolação nos pushes · comentário: Correção de número no meu comentário anterior, apontada pela sessão que cuida disso e conferida aqui: não são 42 testes Deno fora da CI, são 64. Medido na develop, por função: enviar-push 42 excluir-conta 11 limpar-contas-orfas 11 total 64 O 42 era só o enviar-push, que é o que este cartão toca. O achado não muda de natureza, e fica maior: grep -ric deno .github/ continua devolvendo 0 em ci.yml e em pull_request_template.md, então nenhum dos 64 roda na CI. Os três arquivos estão pendurados no P… · trello:6abc21e5964defa978384637 17:39 · Matheus Silva
- `nUpPFCpM` · S2 · Backend + iOS · Exportar meus dados (US25) · comentário: CI VERDE nos quatro jobs do PR #77, na primeira tentativa — Migrações e pgTAP, contrato acompanhou o código, migrações sem colisão e contrato em dia com o Frila. Nada a consertar; o PR está pronto para revisão. · trello:6abc23760fd831df75030460 17:45 · Matheus Silva
- `SHUDSozj` · S3 · Backend · Pedido de exclusão de conta deixa rastro mesmo quando a transação volta atrás (RF25, LGPD) · comentário: Implementado na develop 73bafcb, branch ao/blendops-5-rastro-do-pedido-de-exclusao, em quatro commits na ordem TDD (teste vermelho, depois conserto, duas vezes). O desenho, e o porquê de não ser mais simples: nenhum arranjo dentro de uma transação resolve. Registrar no corpo de `privado.excluir_conta` e reerguer o erro descarta o registro junto, porque o `raise` desfaz o bloco inteiro, inclusive o que o handler escreveu; engolir o erro deixaria o registro, mas devolveria sucesso sobre uma exclu… · trello:6abc240a7af594a5765868ba 17:48 · Matheus Silva
- `qcVimM84` · S2 · Backend + iOS · Aviso de hora excedida quando o fim passa sem check-out · comentário: O que divergiu do cartão, e por quê — PR https://github.com/FrilaApp/frila-backend/pull/79 Só a metade Backend. O aviso abrir o turno com o botão de check-out em destaque é tela, e é de outra pessoa. 1. O ACHADO QUE MUDA A LEITURA DO CARTÃO: o tipo `fim_sem_checkout` já existia em quatro lugares — no enum `tipo_notificacao`, na chave de unicidade que garante um aviso por conta, na lista de tipos que o `enviar-push` reconhece, e com título e corpo já escritos lá. O que NUNCA existiu foi quem cri… · trello:6abc26e383b1818eb607e012 18:00 · Matheus Silva
- `qcVimM84` · S2 · Backend + iOS · Aviso de hora excedida quando o fim passa sem check-out · comentário: PR aberto: https://github.com/FrilaApp/frila-backend/pull/79 · trello:6abc26e4e6ea52397c023507 18:00 · Matheus Silva
- `SHUDSozj` · S3 · Backend · Pedido de exclusão de conta deixa rastro mesmo quando a transação volta atrás (RF25, LGPD) · comentário: PR aberto: https://github.com/FrilaApp/frila-backend/pull/80 · trello:6abc2ae70c7d7ff53482a8bb 18:17 · Matheus Silva
- `d3A1WjG3` · v1.1 · Backend + iOS · Modo seleção: escolher candidato e fechamento automático · comentário: PR em rascunho: https://github.com/FrilaApp/frila-backend/pull/82 (contrato 0.2.24 espelhado). Falta o merge de origin/develop depois do #74 (coluna oculta, 0.2.23) e o 422 vaga_oculta em escolher_candidato; aí sai do rascunho e o cartão vai para Revisão. · trello:6abc384d777d198d4917f2c2 19:14 · João Paulo
- `pd7zOS5P` · v1.1 · Backend + iOS · Relatório consolidado e exportação de turnos (CSV e PDF) · comentário: PR aberto: https://github.com/FrilaApp/frila-backend/pull/83 · trello:6abc40283db195536d033817 19:48 · João Paulo
- `h53CJVP7` · v1.1 · Backend + iOS · 'Estou a caminho' no lembrete de 3 h e no acompanhamento do contratante · comentário: PR do contrato aberto (0.2.25): https://github.com/FrilaApp/frila-docs/pull/30 · trello:6abc42d63c528568abc7ee57 19:59 · João Paulo
- `1MK1CGyF` · S3 · Produto + Backend · Painel de métricas do piloto (T-0017, T-0020) · comentário: PR aberto: https://github.com/FrilaApp/frila-backend/pull/84 · trello:6abc44d667315c32fa8fbfc8 20:08 · João Paulo
- `qcVimM84` · S2 · Backend + iOS · Aviso de hora excedida quando o fim passa sem check-out · comentário: CI VERDE nos quatro jobs do PR #79, na primeira tentativa — Migrações e pgTAP (que inclui o passo 'Os testes cobrem as regras', o mutacao.sh que eu não rodei local), contrato acompanhou o código, migrações sem colisão e contrato em dia com o Frila. Nada a consertar; o PR está pronto para revisão. · trello:6abc470ceeec0e85196624cd 20:17 · Matheus Silva
- `d3A1WjG3` · v1.1 · Backend + iOS · Modo seleção: escolher candidato e fechamento automático · comentário: PR aberto: https://github.com/FrilaApp/frila-backend/pull/82 · trello:6abc482e5db4ed0f99c537b4 20:22 · João Paulo
28 set 2026 68 fatos
bug 1 fato
- Armadilha nova no frila-backend: frila.agendador_secret. Desde o motor de despacho, de 26/09, o gatilho de pgmq.q_despacho exige a configuracao no banco antes de qualquer RPC que enfileire uma vaga, e publicar_vaga responde P0001 'Configuracao frila.agendador_secret ausente no banco de dados'. O ci.yml ganhou um passo que gera o valor com openssl rand -hex 32 e o grava com alter database e alter role authenticator, logo depois do supabase start e antes do db reset. Quem reproduz a CI a mao sem esse passo ve ciclo-completo.sh e contrato-responde.sh vermelhos — e o vermelho e do script de reproducao, nao do codigo. Medido em 28/09: custou uma bateria inteira ate eu olhar o ci.yml em vez de acreditar no meu proprio placar 16:05 · Matheus Silva
commit 1 fato
- `2fbe344` — Escreve a narrativa do dia 28/09 a partir dos fatos do log · 1 arquivo 16:05 · Matheus Silva
frila-backend 21 fatos
- `9a6dc3d` — Atualiza o ESTADO para 28/09: a CI voltou e o main andou oito PRs · 1 arquivo 16:01 · Matheus Silva
- `1268169` — Registra o estado de 28/09 no main, para a proxima sessao nao ler retrato velho · 1 arquivo 16:02 · Matheus Silva
- `c5fe724` — feat(turnos): implementa falta por no-show pós-fim de turno (8zLfn0mt) · 3 arquivos 16:41 · João Paulo
- `c190836` — feat(turnos): implementa falta por no-show pós-fim de turno (8zLfn0mt) (#48) · 3 arquivos 17:14 · João Paulo Albuquerque de Almeida Marques
- `6e5a88f` — Acrescenta autoteste ao portão de colisão de versão de migração · 3 arquivos 17:27 · Matheus Silva
- `4de9918` — chore(configuracao-do-app): renomeia a migração para depois da última do main · 2 arquivos 17:41 · João Paulo
- `ef8899d` — feat(turnos): adiciona alerta de atraso aos 15 min e reabrir_por_atraso (e8XpOZJN) · 7 arquivos 17:50 · João Paulo
- `b2b96c1` — feat(turnos): lembretes 24 h e 3 h antes do turno (k5R4tzjC) · 4 arquivos 17:55 · João Paulo
- `36fa7bb` — feat(notificacoes): alerta de vaga vazia na janela crítica (vUR0Ltkb) · 2 arquivos 17:57 · João Paulo
- `91d0b9a` — test(notificacoes): alerta de vaga vazia na janela crítica (vUR0Ltkb) · 2 arquivos 17:57 · João Paulo
- `1cc73d1` — test(notificacoes): isola o 340 da vaga de demonstração da semente · 1 arquivo 18:27 · João Paulo
- `e5e1beb` — fix(configuracao-do-app): grant explícito a service_role em privado.versao_em_partes · 2 arquivos 18:31 · João Paulo
- `783ece7` — feat(vagas): candidatura na posição reaberta por atraso até fim − 1 h, conforme o contrato 0.2.19 (e8XpOZJN) · 4 arquivos 18:38 · João Paulo
- `df67ccf` — test(turnos): corrige o auxiliar de avisos do pgTAP de atraso (e8XpOZJN) · 1 arquivo 18:48 · João Paulo
- `2fd33d9` — fix(turnos): agendamento pg_cron e textos de reserva homologados (k5R4tzjC) · 4 arquivos 18:57 · João Paulo
- `156b860` — feat(despacho): teto e agrupamento de notificações de vaga (RN23) · 8 arquivos 18:59 · João Paulo
- `898fa8a` — docs(pipeline): estabelece develop como branch oficial de desenvolvimento e proíbe merges na main · 1 arquivo 19:13 · João Paulo
- `7880096` — Conecta enviar-push ao Postgres direto para invocar privado.* · 2 arquivos 20:07 · João Paulo
- `5123330` — fix(turnos): preserva regra de expiracao de vaga_vazia em privado.notificacao_expirada · 1 arquivo 20:35 · João Paulo
- `2682877` — feat(vagas): regiao administrativa do local da vaga e interpolacao nos pushes (x0jkygj0) · 12 arquivos 23:00 · João Paulo
- `b770a56` — fix(pushes): interpolar regiao administrativa nos lembretes 09 e 11 no banco e edge function · 4 arquivos 23:30 · João Paulo
medida 2 fatos
- A CI do frila-backend voltou. Medido em 28/09: as execucoes de 27/09 saem success — main as 03:38 e 04:19, s3/retencao-15-dias e s0/configuracao-do-app. O bloqueio de Billing durou de 25/09 as 14h a algum momento de 26 ou 27/09, e nao medi o que foi feito. Duas consequencias: a decisao de 25/09 de mergear com prova local no lugar do portao remoto deixa de valer, e um PR cuja ultima execucao e de 25/09 esta vermelho por um motivo que nao existe mais. Foi o caso do PR #37, que mostrava quatro jobs vermelhos de um run de 25/09 as 20:59Z. Antes de acreditar num job vermelho, conferir a data do run 16:05 · Matheus Silva
- O main do frila-backend andou oito PRs em 26 e 27/09, do Joao Paulo e do Caue: notificacoes (#32), os resgates dos PRs do repositorio temporario incluindo excluir-conta e o ciclo do token de push (#41 a #43), o portao do contrato isentando RPC ja declarada (#44), a segunda rodada do excluir-conta com o contrato 0.2.18 (#45), os indices das consultas quentes e a carga do DF (#46) e a retencao de 15 dias (#47). Recontado contra o banco em 28/09: 46 migracoes, 20 tabelas, 24 RPCs expostas a authenticated, 33 CHECK, 71 auxiliares em privado, 1010 assercoes em 38 arquivos, 90 regras cobertas pela mutacao. O despacho saiu do papel: pg_cron e pg_net entraram, com tres jobs ativos — reprocessar_despacho a cada minuto, limpar_dispositivos_inativos e retencao_e_limpeza_diaria. Nao ha cartao de Backend livre: o NDx7TJ4d esta com o Joao Paulo 16:05 · Matheus Silva
quadro 10 fatos
- `NDx7TJ4d` movido de Em andamento para Concluído 🎉 · S2 · Backend · Turnos não verificados, faltas e reconciliação da taxa de comparecimento · trello:6abaceb88810c7c2fc92e5d8 17:31 · João Paulo
- `yClUqOpU` movido de Revisão para Concluído 🎉 · S3 · Backend · Retenção e limpeza dos dados pessoais em 15 dias e contas sem cadastro · trello:6abacee298f0a3a4a62e624c 17:32 · Matheus Silva
- `zptkprHt` movido de Sprint 3 · Loja (03/11 → 13/11) para Em andamento · S3 · Backend · Índice do caminho quente de elegiveis, e portão de plano com carga · trello:6abad0d18a81471fd17beba3 17:40 · Matheus Silva
- `ee3MT3fH` movido de Sprint 2 · Despacho e turno (20/10 → 02/11) para Em andamento · S2 · Backend · Teto e agrupamento de notificações (RN23) · trello:6abad12d1e6377f641b3d4c8 17:42 · João Paulo
- `k5R4tzjC` movido de Em andamento para Revisão · S2 · Backend · Lembretes 24 h e 3 h antes do turno · trello:6abad47125483779846f0f4c 17:56 · João Paulo
- `vUR0Ltkb` movido de Em andamento para Revisão · S2 · Backend · Alerta de vaga vazia na janela crítica · trello:6abadea837769307bbe5f906 18:39 · João Paulo
- `e8XpOZJN` movido de Em andamento para Revisão · S2 · Backend · Alerta de atraso aos 15 minutos e reabrir_por_atraso · trello:6abae102ff911ba93f58f223 18:49 · João Paulo
- `CvopSHh6` movido de Revisão para Concluído 🎉 · S0 · iOS + Backend · Versão mínima do app e aviso de atualização obrigatória · trello:6abae6dbfd114954efe6de8b 19:14 · João Paulo
- `ee3MT3fH` movido de Em andamento para Revisão · S2 · Backend · Teto e agrupamento de notificações (RN23) · trello:6abae7ed0c12f0062b670416 19:19 · João Paulo
- `x0jkygj0` movido de Em andamento para Revisão · S2 · Backend · Região administrativa do local da vaga e interpolação nos pushes · trello:6abb1d1823746e753c622c9e 23:06 · João Paulo
quadro-comentario 33 fatos
- `RNOfNVVU` · S0 · Backend · Portão de colisão de versão de migração, e o contrato-em-dia lendo o .env · comentário: **Mergeado em 28/09** — PR #37, merge commit `985e5102`. **Sete dos oito critérios marcados.** O que destravou não foi código deste cartão: em 25/09 a CI não iniciava por Billing da organização, e o `contrato-em-dia` reprovava porque o espelho do contrato estava na 0.2.15 contra uma 0.2.17 já publicada. Medido em 28/09, os dois acabaram — a CI de 27/09 sai `success` e os dois lados do contrato estão na 0.2.18. O `main` foi fundido no branch sem conflito. **A CI real deste PR, os quatro jobs ver… · trello:6ababcfe209e31aefb2f0954 16:16 · Matheus Silva
- `7gpPBgTH` · S1 · Backend + iOS · Contas de demonstração para a revisão da Apple, sem caixa de e-mail · comentário: Marcando o que já estava medido e comentado em 25/09 e tinha ficado sem marca na checklist: os critérios 2, 3 e 4. A evidência de cada um está no comentário daquele dia — `demonstracao.sh` para a recusa do código fora da lista, `supabase/tests/120_vagas_abertas.sql` para o isolamento, e as notas anexadas ao cartão. **O critério 1 continua desmarcado, e é o único.** Ele diz "no `frila-dev`", e lá a porta ainda não existe: falta `supabase secrets set` e `functions deploy`. Não depende de `supabas… · trello:6ababd3f15caf4b788c940e9 16:17 · Matheus Silva
- `NDx7TJ4d` · S2 · Backend · Turnos não verificados, faltas e reconciliação da taxa de comparecimento · comentário: PR #48 (c190836) mergeado em main pelo frila-ao-41. Critério 2 implementado e marcado na checklist (decisão 8zLfn0mt Opção 2: cancelamento por no-show com falta). Para fechar o cartão resta: 1. Fechar formalmente o PR #38 no GitHub (está aberto mas obsoleto, migrado anteriormente para o PR #1 / commit a7c3704). 2. O revisor conferir e marcar os demais critérios na checklist (1, 3, 4 e 5 já estão implementados no código e cobertos por testes no main). 3. Mover o cartão para Concluído. · trello:6abacc1aa22fcc4e7e8a68a3 17:20 · João Paulo
- `36fU0CEO` · S2 · Backend · Envio de push pelo FCM, registro do aparelho e estado de entrega · comentário: Auditoria da lista Revisão, 28/09. Ambiente: `main` em `985e510`, 46 migrações, `supabase db reset` antes, segredo do agendador gravado. Suíte pgTAP verde na íntegra: **1010 asserções em 38 arquivos**. O backend deste cartão já está no `main` (migração `20260926020000_registro_dispositivo_e_push.sql` e a Edge Function `enviar-push`, trazidas pelos PRs de resgate #41 e #43). O PR #40 continua aberto e não é o que sustenta a evidência abaixo. **Critério 2 — token inválido é removido depois da res… · trello:6abacdbee319a7b31b94e785 17:27 · Matheus Silva
- `7XS6MQGg` · S2 · Backend · Motor de despacho: elegibilidade, fila e agendador · comentário: Auditoria da lista Revisão, 28/09. Ambiente: `main` em `985e510`, 46 migrações, `supabase db reset` antes, segredo do agendador gravado. Suíte pgTAP verde: **1010 asserções em 38 arquivos**. O motor já está no `main` (migração `20260926010000_motor_despacho.sql`, funções `privado.elegiveis`, `privado.despachar_vaga`, `privado.processar_fila_despacho`, `privado.disparar_despacho`, e o job `reprocessar_despacho` a cada minuto no `pg_cron`, todos conferidos no banco). O PR #39 continua aberto e nã… · trello:6abacde5a7a1be54daf22dd4 17:28 · Matheus Silva
- `wpNabtCO` · S2 · Backend + iOS · Ciclo de vida do token de push: troca de conta, saída e reinstalação · comentário: Auditoria da lista Revisão, 28/09. Ambiente: `main` em `985e510`, 46 migrações, `supabase db reset` antes. Suíte pgTAP verde: **1010 asserções em 38 arquivos**. O ciclo do token já está no `main` (migração `20260926070000_ciclo_token_push.sql`, `public.remover_dispositivo` e `privado.limpar_dispositivos_inativos`, com o job `limpar_dispositivos_inativos` às 06:17 UTC no `pg_cron`). **Critério 3 — teste pgTAP da troca de dono do token: MEDIDO.** `supabase/tests/300_ciclo_token_push.sql` - `Conta… · trello:6abacdfc68fa192f54b9d0fa 17:28 · Matheus Silva
- `yClUqOpU` · S3 · Backend · Retenção e limpeza dos dados pessoais em 15 dias e contas sem cadastro · comentário: Auditoria da lista Revisão, 28/09. Ambiente: `main` em `985e510`, 46 migrações, `supabase db reset` antes, segredo do agendador gravado, Edge Functions servidas com `--env-file`. Suíte pgTAP verde: **1010 asserções em 38 arquivos**. **Critério 1 — conta de autenticação sem cadastro há mais de 24 h some na execução seguinte: MEDIDO POR HTTP.** Criei duas contas em `auth.users` sem linha em `public.usuario` e envelheci uma delas: - `orfa-30h@auditoria.test`, `created_at = now() - interval '30 hou… · trello:6abace1aab9f25770be76156 17:29 · Matheus Silva
- `yClUqOpU` · S3 · Backend · Retenção e limpeza dos dados pessoais em 15 dias e contas sem cadastro · comentário: Correção do comentário anterior: a consulta de verificação que colei não executa. `nascimento` fica em `public.usuario`, não em `public.profissional`, e a coluna de data é `usuario.anonimizado_em`, não `anonimizada_em`. A versão abaixo foi executada no `main` em `985e510` e devolve **0 linhas**. Os predicados são os mesmos que `privado.limpar_contas_anonimizadas` usa para escolher o que apagar, incluindo o relato de ocorrência, que o comentário anterior deixava de fora. ```sql -- Conta anonimiz… · trello:6abace535ca1b8a38818bd5e 17:30 · Matheus Silva
- `OrS9gEfU` · S2 · Backend · Edge Function excluir-conta: saída na hora, turnos futuros cancelados e anonimização · comentário: Auditoria da lista Revisão, 28/09. Ambiente: `main` em `985e510`, 46 migrações, `supabase db reset` antes, segredo do agendador gravado, Edge Functions servidas com `--env-file`. Suíte pgTAP verde: **1010 asserções em 38 arquivos**. **Critério 1 — depois de excluir, a conta não entra, não recebe despacho e não aparece em busca: MEDIDO.** Por HTTP, contra a conta `revisao-profissional@frila.app` (`de000000-…-000000000002`), depois de `POST /functions/v1/excluir-conta`: - a porta que abria a sess… · trello:6abace6ea0fd1288c6994fdf 17:30 · Matheus Silva
- `IYAb8v1i` · S3 · Backend + QA · Consultas quentes com o volume do DF simulado (RNF11) · comentário: Auditoria da lista Revisão, 28/09. Ambiente: `main` em `985e510`, 46 migrações, `supabase db reset` antes. Carga sintética do DF **efetivamente gerada** com `psql -v carga=1 -f supabase/tests/carga/gerar_df.sql`: 130.020 usuários, 100.014 profissionais, 20.010 vagas, 200.019 janelas de disponibilidade. Depois da medição, o banco foi resetado. Antes do resultado, um ponto sobre o que a CI mede aqui: em `supabase test db`, o `gerar_df.sql` cai no ramo `\else` e executa `select pass('… script de c… · trello:6abace8c2ec25fed58ef2b3b 17:31 · Matheus Silva
- `RNOfNVVU` · S0 · Backend · Portão de colisão de versão de migração, e o contrato-em-dia lendo o .env · comentário: Auditoria da lista Revisão, 28/09. Remedição dos dois critérios que estavam abertos. **Critério 4 — o portão roda na CI em push e em pull_request, em job próprio, fora do caminho do `supabase start`: MEDIDO, CUMPRIDO.** No `ci.yml` do `main` em `985e510`: `on: push: branches: [main]` e `pull_request`; o job `migracoes` ("Migrações sem colisão de versão") tem só dois passos, o checkout e `./scripts/migracoes-sem-colisao.sh`, sem `supabase start`. Execuções conferidas hoje, as duas com o job `suc… · trello:6abacea3395c62b0dee1cd42 17:31 · Matheus Silva
- `7gpPBgTH` · S1 · Backend + iOS · Contas de demonstração para a revisão da Apple, sem caixa de e-mail · comentário: Auditoria da lista Revisão, 28/09. Remedição do critério 1, o único aberto. **Continua bloqueado, e o bloqueio é o mesmo.** Medido hoje às 20:07Z: `GET https://api.supabase.com/v1/projects` com o `SUPABASE_ACCESS_TOKEN` do `.env` responde **HTTP 401 `Unauthorized`**. Sem token que responda, não há `supabase secrets set` nem `functions deploy` no `frila-dev`, e o critério pede a medição **lá**. O que foi remedido hoje, e passa, é o mesmo caminho **na máquina**: `main` em `985e510`, `supabase db … · trello:6abacea4480e97c2e8abe0be 17:31 · Matheus Silva
- `NDx7TJ4d` · S2 · Backend · Turnos não verificados, faltas e reconciliação da taxa de comparecimento · comentário: Auditoria e conferência de critérios no origin/main (c190836): 1. Turno manual não confirmado até o fim fica nao_verificado e a taxa não muda: - Provado em `supabase/tests/250_turnos_nao_verificados_e_reconciliacao.sql`: * 'Critério 1: check-in manual não confirmado até o fim vira nao_verificado' (L251) * 'Critério 1: a taxa de comparecimento NÃO muda com turno nao_verificado' (L257) * 'Critério 1: turnos_realizados continua 1 (nao_verificado fica fora)' (L263) 2. Turno confirmado sem check-in … · trello:6abaceaf8bb98748637564b8 17:31 · João Paulo
- `CvopSHh6` · S0 · iOS + Backend · Versão mínima do app e aviso de atualização obrigatória · comentário: Auditoria da lista Revisão, 28/09. Só a metade Backend; a tela de atualização e o teste de view model são de iOS. **A metade Backend não está no `main`, e por isso nenhum critério pôde ser medido.** Medido no banco com as 46 migrações do `main` em `985e510`, `supabase db reset` antes: - nenhuma função chamada `configuracao_do_app` em `pg_proc` - nenhuma tabela cujo nome contenha `configurac` em `pg_tables` (portanto não existe `privado.configuracao_app`) O PR **#31** (`s0/configuracao-do-app`) … · trello:6abacecc3903bb730f8fe66b 17:32 · Matheus Silva
- `RTmRTHbo` · S1 · Backend + iOS · Republicar vaga anterior (US05) · comentário: Auditoria da lista Revisão, 28/09. Remedição dos três critérios de Backend, para confirmar que continuam de pé no `main` em `985e510` (`supabase db reset` antes, suíte verde: 1010 asserções em 38 arquivos). `supabase/tests/200_republicar_vaga.sql`, asserções nomeadas: - critério 1 — `RF05: todo o resto da vaga é cópia fiel — inclusive traje, rateio, observações e o alerta`, `e só a data e o horário mudaram, para os que foram pedidos`, `e é uma vaga nova, não a de origem alterada`, `RF04: public… · trello:6abacecd7d48a1d2476219d4 17:32 · Matheus Silva
- `ggEzge6h` · S0 · Backend · Filtro de texto ofensivo nos campos livres (diretriz 1.2) · comentário: Auditoria da lista Revisão, 28/09. Remedição dos três critérios de Backend no `main` em `985e510` (`supabase db reset` antes, suíte verde: 1010 asserções em 38 arquivos). `supabase/tests/100_filtro_de_texto.sql`, asserções nomeadas: - critério 1 — `diretriz 1.2: nome com termo da lista sai como campo_invalido, com o campo no details`, `recusa o termo sozinho`, `recusa o termo no meio de um texto`, `recusa em maiúsculas`, `recusa com acento e pontuação em volta`, `recusa termo composto de mais d… · trello:6abacece5d90fa204094e828 17:32 · Matheus Silva
- `IYAb8v1i` · S3 · Backend + QA · Consultas quentes com o volume do DF simulado (RNF11) · comentário: A regressão de plano medida na auditoria de hoje virou cartão próprio: **S3 · Backend · Índice do caminho quente de elegiveis, e portão de plano com carga** — https://trello.com/c/zptkprHt Por que cartão novo e não um item aqui: o critério 1 **deste** cartão já exige o resultado ("sem varredura sequencial nas tabelas grandes"), mas o conserto do índice e o portão que impede a próxima remoção não estão no "O que fazer" daqui, e este cartão está em Revisão com o resto medido. O cartão novo é o qu… · trello:6abad07767241625feb7d229 17:39 · Matheus Silva
- `zptkprHt` · S3 · Backend · Índice do caminho quente de elegiveis, e portão de plano com carga · comentário: Origem, para quem pegar o cartão não precisar remedir do zero. Medido em 28/09 no `main` `985e510`, `supabase db reset` antes, segredo do agendador gravado, carga do DF gerada com `psql -v carga=1 -f supabase/tests/carga/gerar_df.sql` (130.020 usuários, 100.014 profissionais, 20.010 vagas, 200.019 janelas de disponibilidade; leva cerca de 14 s). O banco foi resetado depois. **O que está ruim** — `privado.elegiveis`, planejador livre, vaga sintética do DF: ``` Nested Loop Anti Join (actual time=… · trello:6abad07875ac03b67797cba1 17:39 · Matheus Silva
- `vUR0Ltkb` · S2 · Backend · Alerta de vaga vazia na janela crítica · comentário: Pegando este cartão (João Paulo + Claude, sessão AO frila-ao-42). Textos do push vaga_vazia: Op. A aprovada em 28/09 (proposta-textos, push 06), interpolação feita no envio pela enviar-push. · trello:6abad0b640c9848ebeab131d 17:40 · João Paulo
- `ee3MT3fH` · S2 · Backend · Teto e agrupamento de notificações (RN23) · comentário: Pegando este cartão (João Paulo, via worker AO frila-ao-43). O responsável sugerido era o Cauê; aviso aqui para não haver trabalho em dobro. · trello:6abad146ff6e5397b8a37eed 17:42 · João Paulo
- `k5R4tzjC` · S2 · Backend · Lembretes 24 h e 3 h antes do turno · comentário: PR aberto: https://github.com/FrilaApp/frila-backend/pull/50 · trello:6abad47012e48a204a5ed221 17:56 · João Paulo
- `vUR0Ltkb` · S2 · Backend · Alerta de vaga vazia na janela crítica · comentário: PR aberto: https://github.com/FrilaApp/frila-backend/pull/51 · trello:6abadea8956289d51b4a628c 18:39 · João Paulo
- `e8XpOZJN` · S2 · Backend · Alerta de atraso aos 15 minutos e reabrir_por_atraso · comentário: Decisão registrada (confirmada por João Paulo em 28/09): o substituto que confirma uma posição reaberta por atraso com o turno já em andamento ganha a mesma tolerância de 15 min, contada de greatest(inicio_em, confirmado_em) — vale para o alerta atraso_15min à casa e para a recusa 422 reabertura_antes_da_tolerancia. O substituto não recebe inicio_sem_checkin. Candidatura na reaberta até fim_em − 1 h conforme contrato 0.2.19 (8zLfn0mt item 5). A rodada de despacho (8zLfn0mt item 2) ficou fora e … · trello:6abae102dc024bd43105079f 18:49 · João Paulo
- `e8XpOZJN` · S2 · Backend · Alerta de atraso aos 15 minutos e reabrir_por_atraso · comentário: PR aberto: https://github.com/FrilaApp/frila-backend/pull/49 · trello:6abae1027acb46ec350c5c32 18:49 · João Paulo
- `k5R4tzjC` · S2 · Backend · Lembretes 24 h e 3 h antes do turno · comentário: Alinhamento com orquestrador: como o banco de dados não possui atualmente campo estruturado para região/bairro (vaga.local e estabelecimento.endereco são texto livre com número), o local dos pushes de lembrete utiliza estritamente {estabelecimento} para não violar a RN10 (privacidade). A introdução de regiões/bairros estruturados no banco será tratada em cartão próprio. · trello:6abae2c447c6c6910b523ee2 18:57 · João Paulo
- `vUR0Ltkb` · S2 · Backend · Alerta de vaga vazia na janela crítica · comentário: PR #51 mergeado na develop. Critério de frila-dev pendente: select jobname, schedule from cron.job; e push real a 3 h. · trello:6abae6beefbf13b271e97279 19:14 · João Paulo
- `ee3MT3fH` · S2 · Backend · Teto e agrupamento de notificações (RN23) · comentário: PR aberto: https://github.com/FrilaApp/frila-backend/pull/52 · trello:6abae7ed5155f6d2ff71e964 19:19 · João Paulo
- `ee3MT3fH` · S2 · Backend · Teto e agrupamento de notificações (RN23) · comentário: PR aberto: https://github.com/FrilaApp/frila-backend/pull/52 · trello:6abae82216b5b032e917767e 19:20 · João Paulo
- `e8XpOZJN` · S2 · Backend · Alerta de atraso aos 15 minutos e reabrir_por_atraso · comentário: PR #49 mergeado na develop. Critérios 1 a 5 comprovados no pgTAP (330_alerta_de_atraso_e_reabrir.sql). Pendente fora do local: conferir no frila-dev, depois do deploy, que o job alertar_atrasos existe no pg_cron e roda sem erro. · trello:6abb0844453efc9e5694955b 21:37 · João Paulo
- `x0jkygj0` · S2 · Backend · Região administrativa do local da vaga e interpolação nos pushes · comentário: PR do contrato 0.2.20 aberto no FrilaApp/frila-docs: https://github.com/FrilaApp/frila-docs/pull/24 · trello:6abb11555f1c42c8e4128757 22:16 · João Paulo
- `x0jkygj0` · S2 · Backend · Região administrativa do local da vaga e interpolação nos pushes · comentário: PR aberto: https://github.com/FrilaApp/frila-backend/pull/54 · trello:6abb1d18f6752724304e6d9d 23:06 · João Paulo
- `x0jkygj0` · S2 · Backend · Região administrativa do local da vaga e interpolação nos pushes · comentário: Revisão PR #54: VEREDITO: pediria mudanças. Bloqueio: em enviar-push/index.ts:694-710, a chamada sqlClient.obterConteudoPushLembrete sobrescreve em runtime as variáveis interpoladas dos pushes 09 e 11 com o retorno da RPC privado.obter_conteudo_push_lembrete (que não foi atualizada com regiao_administrativa). Necessário remover a sobrescrita ou atualizar a RPC no Postgres. · trello:6abb208dcf4b9dac9cf17bed 23:21 · João Paulo
- `x0jkygj0` · S2 · Backend · Região administrativa do local da vaga e interpolação nos pushes · comentário: Re-revisão PR #54: VEREDITO: aprovaria. Correção no commit b770a56 sanou o bloqueio (RPC privado.obter_conteudo_push_lembrete e Edge Function com interpolação de {estabelecimento} ({regiao}) e testes verdes na CI). Checklist 6/6. · trello:6abb269382bb089e54c28371 23:46 · João Paulo
27 set 2026 4 fatos
frila-backend 4 fatos
- `0ccc508` — Ajusta teste 310 com volume controlado, foca em vaga_data_publicada e adiciona travas em gerar_df · 3 arquivos 00:24 · João Paulo
- `2a6eb35` — Implementa retenção de 15 dias, higiene de tabelas e limpeza de contas sem cadastro · 5 arquivos 00:39 · João Paulo
- `cea705c` — Corrige segredo e dependências na Edge Function, renomeia migração e preserva auditoria_ciclo · 4 arquivos 01:07 · João Paulo
- `2698e6e` — Renomeia a migração e o teste da configuracao_do_app para depois do main · 2 arquivos 05:48 · Cauê Carneiro
26 set 2026 32 fatos
entrega 1 fato
- cartao flJiFkHT movido para Concluido no quadro: S2 · Backend · Fechamento do turno e da vaga: cumprida, encerrada e pedido de avaliação · sem PR citando o cartao em frila-backend, procurado em 327 PRs — medido em 27/10 na API do Trello, acoes updateCard com listAfter 08:23 · João Paulo
frila-backend 31 fatos
- `cc7bb97` — Renomeia teste de reconciliação para 250 para evitar colisão com PR #32 · 1 arquivo 00:27 · João Paulo
- `ae23bb4` — Garante que vagas passadas dos cenários terminem no passado aos sábados · 1 arquivo 00:30 · João Paulo
- `c7f879d` — Adiciona motor de despacho: elegibilidade, fila e agendador · 7 arquivos 01:23 · João Paulo
- `4be1cce` — Adiciona testes de mutação para triggers de comparecimento · 1 arquivo 01:34 · João Paulo
- `8dd1df1` — Atende revisão: segredo obrigatório, atomicidade no despacho e medição FCM · 6 arquivos 01:56 · João Paulo
- `12d3f3f` — Implementa registro de dispositivo e envio de push FCM com estado de entrega · 12 arquivos 02:04 · João Paulo
- `f77e8e3` — Snapshot inicial do frila-backend · 114 arquivos 02:06 · FrilaApp
- `43a9650` — Cria extensões pg_net, pgmq e pg_cron na migração do motor de despacho · 1 arquivo 02:08 · João Paulo
- `0468232` — Reverte alteração em openapi.yaml e cenarios.sql · 4 arquivos 02:09 · João Paulo
- `b4e739f` — Mantém ajuste de cenarios.sql para suporte a batches da CLI e execuções aos sábados · 1 arquivo 02:11 · João Paulo
- `20a8980` — Adiciona ACLs explícitas, previne O(n2) em lote e ajusta EXPLAIN · 2 arquivos 02:56 · João Paulo
- `c773dee` — Usa has_function_privilege em vez de throws_ok para anon em fechar_turnos_passados e reconciliar_comparecimento · 1 arquivo 03:02 · João Paulo
- `a7c3704` — S2: turnos não verificados, faltas e reconciliação da taxa de comparecimento · 3 arquivos 03:13 · João Paulo
- `892d513` — Implementa registro de dispositivo e envio de push FCM com estado de entrega · 10 arquivos 03:14 · João Paulo
- `29dc58a` — fix: tornar falha do despacho observável · 24 arquivos 03:14 · João Paulo
- `c7a779b` — S2: motor de despacho (elegibilidade, fila pgmq e agendador) · 8 arquivos 03:14 · João Paulo
- `e11acc7` — Adiciona fechamento de turnos e vagas · 2 arquivos 05:03 · João Paulo
- `c86d79d` — chore: robustecer busca de listas do Trello · 0 arquivos 05:25 · João Paulo
- `82465f9` — test: cobrir payload nulo e numérico de notificação · 1 arquivo 05:28 · João Paulo
- `c22ea87` — feat: adiciona remover_dispositivo e limpeza de token de push inativo · 4 arquivos 08:09 · João Paulo
- `08a8c05` — Implementa Edge Function excluir-conta com cancelamento e anonimização · 5 arquivos 08:36 · João Paulo
- `d06b2bf` — ci: portão do contrato isenta RPC já declarada e detecta função com quebra de linha · 3 arquivos 13:29 · João Paulo
- `70a5a82` — fix(ci): isenção do portão não pode depender de printf | grep -q · 2 arquivos 13:44 · João Paulo
- `729e762` — fix(ci): portão enxerga função com comentário entre function e o nome · 2 arquivos 13:58 · João Paulo
- `617e36f` — fix: correções da 2ª rodada do excluir-conta (cartão OrS9gEfU) · 5 arquivos 13:59 · João Paulo
- `0250c80` — fix(ci): portão do contrato isenta reimplementação de RPC existente com mesma assinatura · 2 arquivos 14:20 · João Paulo
- `742300b` — fix(excluir-conta): isenção de falta por config interna e 401 para conta encerrada · 3 arquivos 14:31 · João Paulo
- `99a058e` — Revert "fix(ci): portão do contrato isenta reimplementação de RPC existente com mesma assinatura" · 2 arquivos 20:56 · João Paulo
- `7fcf8b8` — test(despacho): fixa horário da vaga de demonstração entre 12h e 18h no fuso de SP · 1 arquivo 21:03 · João Paulo
- `c6a66f3` — Espelha o contrato 0.2.18: 401 para conta encerrada em RPCs de escrita · 2 arquivos 23:11 · João Paulo
- `ec82b8c` — Adiciona índices para consultas quentes e script de carga do DF · 3 arquivos 23:59 · João Paulo
25 set 2026 35 fatos
bug 7 fatos
- meus_estabelecimentos estava no contrato desde a 0.2.1 e nunca tinha sido implementada: o cartao 4qwQF0w6 a citava em O que fazer mas nenhum item da checklist dele a mencionava, entao fechou com os seis marcados e a funcao faltando. Bloqueio de tela na v1.0, porque publicar_vaga, painel_estabelecimento e republicar_vaga recebem estabelecimento_id e o app nao tinha por onde descobri-lo. Cartao AvockvHx aberto e PR #28 12:10 · Matheus Silva
- A CI do frila-backend parou as 15:52 de 25/09: jobs falham em tres segundos com zero passos executados. A org FrilaApp esta no plano free com os quatro repositorios privados, entao o Actions consome cota mensal e cota esgotada falha exatamente assim. Nao e o ci.yml: as 15:32 o passo novo rodou verde. O re-run falhou igual. Enquanto durar, ninguem mergeia — o PR #30 e o #27 do Caue estao parados 14:29 · Matheus Silva
- bancada-sync selecionava pela data do committer e deduplicava só pelo sha: 891eaaa (autor 24/09 23:31, commit 25/09 14:46 depois de rebase) cairia em 25/09 às 23:31, e uma cópia rebaseada entraria de novo no log. Cartão nNUtbriv, PR #34 (469d4a8 + 57fc39b) aberto às 15:37: filtra pela data do autor e reconhece hora, autor e assunto iguais como o mesmo trabalho. frila-reviewer mediu os 6 critérios; o PR só não entra pela CI sem cota 16:08 · João Paulo
- A CI do frila-backend nao inicia por Billing da organizacao, e o diagnostico de 25/09 as 14h estava incompleto. Medido as 18:40: a anotacao do GitHub nos tres jobs de todos os PRs e literal, 'The job was not started because recent account payments have failed or your spending limit needs to be increased'. gh api /orgs/FrilaApp devolve plan.name free e os quatro repositorios sao privados, entao cada minuto de Actions sai de cota mensal e o limite de gasto padrao de zero dolar impede o job de comecar. Nao medido: a pagina de Billing exige escopo admin:org, que o token desta maquina nao tem, e a data da virada do ciclo continua desconhecida 16:53 · Matheus Silva
- O revisor da Apple nao conseguia bater o ponto, e nenhum portao pegava. O seed.sql semeia o turno da revisao em privado.agora() + 2 days e privado.exigir_janela aceita registro de 60 min antes do inicio ate o fim: sete horas de janela que abrem 47 horas depois do seed e depois fecham para sempre. Em producao o seed entra uma vez e a revisao nao tem data marcada. Medido em 25/09 com a sessao de revisao-profissional@frila.app: POST fazer_checkin devolveu 422 fora_da_janela. Check-in, confirmacao manual e check-out ficariam inalcancaveis, contra a diretriz 2.1. Consertado no PR #36: exigir_janela devolve cedo quando privado.conta_de_demonstracao(), e so a janela e afrouxada — registro no futuro continua recusado e o check-in sem distancia continua nascendo manual e pendente 16:54 · Matheus Silva
- Duas migracoes com a mesma versao matam o db reset, e nada avisava. Medido em 25/09 com o branch do PR #31 fundido ao main: 20260925230000_configuracao_do_app e 20260925230000_janela_da_demonstracao aplicam as duas e registram uma, e o reset morre com duplicate key value violates unique constraint schema_migrations_pkey, com o banco meio migrado. version e chave primaria e a versao e o prefixo antes do primeiro sublinhado. supabase migration new usa o segundo corrente e nunca colide; aqui o nome e escolhido a mao para contar o que a migracao faz, e ai a escolha cai em hora redonda, que e o que duas pessoas escolhem igual. Portao novo no PR #37: scripts/migracoes-sem-colisao.sh, job proprio na CI porque rodar depois do supabase start seria avisar do incendio com a casa queimada. Joao Paulo avisado no #31 com o git mv exato 18:00 · Matheus Silva
- O portao contrato-em-dia.sh nao lia o .env, e por isso saiu zero em quatro baterias de 25/09 avisando que nao conferiu o original — com o token no .env o tempo todo. Os outros scripts do repositorio leem o .env; este nao lia. Enquanto isso o espelho do contrato envelhecia: esta na 0.2.15 e o FrilaApp/frila-docs ja esta na 0.2.17. O unico portao que pega contrato que mudou la e ninguem trouxe era justamente o que estava passando. O ponto registrado no ESTADO como 'quando o PAT vencer em 2027 o portao fica verde sem medir nada e ninguem vai saber' ja tinha acontecido, por outro caminho. Consertado no PR #37: le o .env e sai 2, e nao 0, quando nao ha token. As versoes 0.2.16 e 0.2.17 sao do Joao Paulo e sobem com os PRs #31 e #32 dele 18:00 · Matheus Silva
commit 5 fatos
- `b5e6832` — Funde o trabalho da Bancada que veio do remoto · 1 arquivo 14:29 · Matheus Silva
- `f1d8afb` — Modelagem: registra configuracao_do_app como a única exceção do anon · 1 arquivo 14:34 · João Paulo
- `a8234e5` — Modelagem: notificacao para qualquer conta, marca de envio e teto só de vaga · 1 arquivo 15:02 · João Paulo
- `ae1d2ea` — Nota diária de 25/09: a narrativa a partir dos fatos do dia · 1 arquivo 16:08 · João Paulo
- `f5cff40` — Escreve a narrativa do dia 25/09 a partir dos fatos do log · 1 arquivo 16:59 · Matheus Silva
entrega 3 fatos
- Cartoes 0uROtsRX (testes de contrato, PR #29 mergeado) e 6mdX80SC (trilha de auditoria, PR #30) fechados em 25/09. O portao novo contrato-responde.sh valida 22 corpos e 7 envelopes contra o openapi.yaml e reprova nomeando o campo quando alguem renomeia uma chave. A trilha guarda transicao e nunca conteudo, e despacho e ocorrencia passaram a recusar UPDATE e DELETE. Mutacao subiu de 75 para 84 cobertas, pgTAP de 639 para 662 12:53 · Matheus Silva
- Cartões CvopSHh6 (metade backend de configuracao_do_app) e wM63y4qx (notificações) em Revisão: PR #31 aberto às 14:45 e PR #32 às 15:02. Contratos 0.2.16 (frila-docs #16, 14:19) e 0.2.17 (#17, 14:49) mergeados e espelhados. frila-reviewer: #32 aprovado com os 5 itens da checklist provados por mutação; #31 devolvido só pela Modelagem sem a exceção do anon, corrigida em f1d8afb. Medido na máquina: pgTAP 668 (#31) e 681 (#32), mutação 80/0 e 77/0. Ordem de merge: #31, depois #32 com rebase 16:08 · João Paulo
- Lista Revisao do quadro varrida em 25/09: de onze cartoes para nove. Nao era codigo, era checklist nao marcada. Fecharam 6mdX80SC (trilha de auditoria, PR #30, merge 2947a5c8), AvockvHx (meus_estabelecimentos, PR #28) e 0uROtsRX (testes de contrato, PR #29), cada um com a evidencia item a item no cartao. O 7gpPBgTH ficou em Revisao esperando supabase login para o segredo entrar no frila-dev, o RTmRTHbo esperando a tela do iOS com tres de quatro criterios marcados, e o ggEzge6h esperando a revisao da lista de termos pela Julia — esse ganhou um item novo na checklist, porque a revisao estava em O que fazer e nenhum criterio a cobrava 16:54 · Matheus Silva
frila-backend 18 fatos
- `73b459e` — Adiciona a RPC configuracao_do_app com a versão mínima por plataforma, liberada para anon · 3 arquivos 11:08 · João Paulo
- `d8760de` — trello.sh: a coluna do id mostrava sempre a letra c · 1 arquivo 12:01 · Matheus Silva
- `4e48a5e` — meus_estabelecimentos: por qual casa o contratante esta falando · 4 arquivos 12:07 · Matheus Silva
- `f0f7720` — Espelha o contrato 0.2.15 e atualiza o estado · 3 arquivos 12:09 · Matheus Silva
- `b65cb65` — Testes de contrato: a resposta de cada RPC contra o openapi.yaml · 6 arquivos 12:32 · Matheus Silva
- `a91573e` — Trilha de auditoria do ciclo, e a imutabilidade do que e registro · 3 arquivos 12:52 · Matheus Silva
- `f7685df` — Renomeia a configuracao_do_app para depois da main e espelha o contrato 0.2.16 · 4 arquivos 14:20 · João Paulo
- `867872c` — Colhe a resposta da configuracao_do_app no teste de contrato, como anon · 1 arquivo 14:21 · João Paulo
- `f4bfa44` — Registra no estado a configuracao_do_app e a exceção do anon · 1 arquivo 14:25 · João Paulo
- `0602be9` — Registra onde o dia 25/09 parou, e a CI bloqueada por cota · 1 arquivo 14:28 · Matheus Silva
- `31ecbe2` — Teste da configuracao_do_app: o 404 já é contrato, e a exceção do anon sem atalho · 1 arquivo 14:37 · João Paulo
- `9f57d95` — Renomeia as notificações para depois da main, e prova o teto e o privilégio · 2 arquivos 14:48 · João Paulo
- `cc4edf6` — Espelha o contrato 0.2.17: as notificações passam a existir no backend · 2 arquivos 14:49 · João Paulo
- `469d4a8` — Corrige o sync pela data do autor · 1 arquivo 15:37 · João Paulo
- `57fc39b` — bancada-sync reconhece o trabalho rebaseado e não o registra de novo · 1 arquivo 15:58 · João Paulo
- `c66077f` — A janela do registro de presenca nao se aplica a conta de revisao · 6 arquivos 16:36 · Matheus Silva
- `cbcfa8d` — Registra o dia 25/09: a Revisao varrida e a CI parada por Billing · 1 arquivo 16:52 · Matheus Silva
- `787e9fd` — Portao de colisao de versao, e o contrato-em-dia lendo o .env · 7 arquivos 17:58 · Matheus Silva
medida 2 fatos
- Tres medidas de 25/09 que valem para quem mexer no backend depois. Primeira: vagas_abertas filtra por estado = publicada e nao por data futura, entao vaga vencida continua na lista de todo mundo — bom para a revisao da Apple, porque a vaga semeada nao desaparece e a tela nao nasce vazia, mas quem encerra vaga vencida e o motor do Sprint 2 e hoje ninguem encerra. Segunda: contrato-em-dia.sh sai zero na maquina sem conferir o original, porque FRILA_DOCS_TOKEN so existe como secret do repositorio — o placar fica verde tendo medido metade. Terceira: as RPCs expostas a authenticated sao 22, contadas com has_function_privilege, e o ESTADO.md dizia vinte desde que republicar_vaga e meus_estabelecimentos entraram 16:54 · Matheus Silva
- O supabase login interativo nao e necessario, ao contrario do que o ESTADO dizia: a CLI aceita SUPABASE_ACCESS_TOKEN do ambiente e o .env ja tem a variavel. O que falta e o valor — o token atual responde 401 na Management API, remedido em 25/09 as 17h30, e nao ha MCP do Supabase na sessao, nem outro token em .env nenhum, nem nada no keychain. Com um token novo de supabase.com/dashboard/account/tokens colado no .env, o scripts/demonstracao-remoto.sh do PR #37 faz os tres passos do frila-dev num comando e mede o resultado por HTTP. Medido: a CLI responde 401 e nao 'faca login' com token do .env, com token falso e sem token nenhum, o que e consistente com ela usar a variavel; o caminho verde nao foi medido, por falta de token valido 18:00 · Matheus Silva
24 set 2026 48 fatos
bug 2 fatos
- O main ficou vermelho ao juntar dois PRs que passavam separados: cenarios.sql e o teste de cadastrar_estabelecimento escolheram o mesmo CPF válido (52998224725), e o cadastro passou a receber 409 documento_ja_cadastrado. Consertado no PR #14 10:54 · Matheus Silva
- A CI roda a suíte, depois os scripts HTTP que gravam sem rollback, e só então mutacao.sh, que exige linha de base verde. As contagens absolutas do teste de cenários falhavam na segunda execução. Passaram a contar por id do cenário 10:54 · Matheus Silva
commit 7 fatos
- `26f0c41` — Abre a nota de 2026-09-24 com o fato que virou a meia-noite · 2 arquivos 10:09 · Matheus Silva
- `00b9d90` — Registra o dia 24/09: nove PRs mergeados e o publicar_vaga no ar · 5 arquivos 10:56 · Matheus Silva
- `ff4c4c5` — Atualiza o dia 24/09: o ciclo principal do Sprint 1 fechou · 2 arquivos 12:04 · Matheus Silva
- `2de3cae` — Acerta os numeros e os proximos passos da nota de 24/09 · 1 arquivo 12:04 · Matheus Silva
- `c850f98` — Merge branch 'main' of https://github.com/FrilaApp/Bancada · 1 arquivo 14:44 · Matheus Silva
- `9633924` — Funde o trabalho da Bancada que veio do remoto · 0 arquivos 17:23 · Matheus Silva
- `936ec07` — feat(calendario): mostrar prazos de cartões do Trello no calendário · 10 arquivos 23:03 · Jota Pe
entrega 4 fatos
- O ciclo principal do Sprint 1 fechou de ponta a ponta no main: publicar, listar, ver detalhe, candidatar, acompanhar turnos, pedir contato, check-in, check-out e cancelar. Dezoito RPCs no ar, contrato em 0.2.11, 540 assercoes pgTAP em 22 arquivos, 74 regras cobertas pela mutacao 12:04 · Matheus Silva
- Cartao 7gpPBgTH: a Edge Function entrar-demonstracao entrou no PR #23, com o seed das duas contas de revisao da App Store, a tabela entrada_demonstracao com teto de 10 tentativas em 10 minutos, e o portao scripts/demonstracao.sh na CI 15:01 · Matheus Silva
- Cartao zdCpLEVs retomado do Joao Paulo e fechado para revisao no PR #24: contrato 0.2.12 mergeado em frila-docs#12 decidindo um voto por lado do turno, mais tres consertos da revisao (RN13 em avaliar, turno_id nulo como 422, e a insercao que sempre devolve a linha). pgTAP 585 em 23 arquivos, mutacao 75 cobertas e 0 sem cobertura 15:59 · Matheus Silva
- Cartao RTmRTHbo (republicar_vaga) fechado para revisao no PR #26, com o contrato 0.2.13 mergeado em frila-docs#13. A RPC delega a publicar_vaga em vez de repetir as validacoes, entao mesmas recusas virou literal. pgTAP 628 assercoes em 25 arquivos, mutacao 75 cobertas e 0 sem cobertura 19:45 · Matheus Silva
frila-backend 30 fatos
- `9e3ad0f` — Documenta o ambiente local no Colima e os limites do plano gratuito · 1 arquivo 09:23 · Jota Pe
- `c987c9c` — Devolve o estabelecimento ao mesmo dono quando dois cadastros correm juntos · 3 arquivos 09:41 · Jota Pe
- `bc5ed87` — Tira do teste do estabelecimento o CPF que os cenarios ja usam · 1 arquivo 10:23 · Matheus Silva
- `7a43716` — Conta os cenarios por id, para a segunda execucao da suite nao ficar vermelha · 1 arquivo 10:28 · Matheus Silva
- `f5fdec3` — publicar_vaga: grava a vaga, cria as posicoes e enfileira o despacho · 10 arquivos 10:45 · Matheus Silva
- `d9504a6` — Atualiza o estado depois dos nove merges e do publicar_vaga · 1 arquivo 10:53 · Matheus Silva
- `4b5a658` — vagas_abertas e detalhe_vaga: a tela de quem procura turno · 7 arquivos 11:13 · Matheus Silva
- `08a1da3` — candidatar: a confirmacao sem duplicidade no modo urgencia · 7 arquivos 11:23 · Matheus Silva
- `1ce7f96` — meus_turnos: o acompanhamento depois da confirmacao, dos dois lados · 2 arquivos 11:27 · Matheus Silva
- `2c6e0d2` — Trava a vaga antes de contar as posicoes que sobraram · 1 arquivo 11:28 · Matheus Silva
- `208d575` — meus_turnos entra no ciclo por HTTP, e o contrato sobe para 0.2.8 · 3 arquivos 11:30 · Matheus Silva
- `c0af562` — contato_do_turno: o telefone, com prazo · 5 arquivos 11:36 · Matheus Silva
- `016beb3` — Registro de presenca: fazer_checkin, fazer_checkout e confirmar_checkin_manual · 6 arquivos 11:51 · Matheus Silva
- `02f2c44` — cancelar_posicao e cancelar_vaga: desistir sem virar castigo · 4 arquivos 12:00 · Matheus Silva
- `09615e1` — Atualiza o estado depois do ciclo principal fechar · 1 arquivo 12:04 · Matheus Silva
- `bc04a60` — Atualiza o estado: PR #22 mergeado e o pendente do token do contrato · 1 arquivo 14:29 · Matheus Silva
- `fc0e895` — Corrige a contagem de migracoes no estado: 29, nao 21 · 1 arquivo 14:30 · Matheus Silva
- `fab9add` — Adiciona a avaliação binária e o perfil público com reputação de um voto por lado · 5 arquivos 14:35 · Jota Pe
- `f7b737b` — A marca de demonstracao passa a valer na politica de leitura de vaga · 2 arquivos 14:42 · Matheus Silva
- `5498c55` — Registra o secret FRILA_DOCS_TOKEN gravado e o que sobra do portao · 1 arquivo 14:44 · Matheus Silva
- `51fc78e` — Contas de demonstracao: a porta entrar-demonstracao e o seed da revisao · 10 arquivos 15:00 · Matheus Silva
- `ed96722` — Registra o frila-dev em dia com o main: 29 migracoes conferidas · 1 arquivo 15:23 · Cauê Carneiro
- `d29dcf6` — avaliar: conta suspensa, turno_id ausente, e a insercao que sempre devolve a linha · 2 arquivos 15:54 · Matheus Silva
- `ebf9eb4` — Contrato 0.2.12 espelhado, e a chave da avaliacao registrada · 4 arquivos 15:55 · Matheus Silva
- `9c7a589` — Registra o frila-prod criado, ainda vazio · 1 arquivo 17:21 · Cauê Carneiro
- `b5bb4e6` — demonstracao.sh zera o registro de tentativas antes de medir · 2 arquivos 17:21 · Matheus Silva
- `0eac0b5` — Testes do ciclo: o caminho completo no banco e o portao do relogio · 4 arquivos 17:39 · Matheus Silva
- `4ab9e7a` — republicar_vaga: a vaga de sexta que nao precisa ser redigitada · 2 arquivos 19:42 · Matheus Silva
- `5496ffb` — Espelha o contrato 0.2.13 e atualiza o estado · 3 arquivos 19:44 · Matheus Silva
- `891eaaa` — Notificação para qualquer conta, marcas de envio e payload só com ids · 3 arquivos 23:31 · João Paulo
merge 2 fatos
- Os nove PRs que estavam parados foram mergeados: frila-docs #2, #3 e #4 (contrato 0.2.2 a 0.2.4) e frila-backend #4, #5, #7, #9, #11, #12 e #13. Restaram zero PRs abertos nos dois repositórios ao fim da sessão 10:54 · Matheus Silva
- PR #22 (cancelar_vaga e cancelar_posicao) mergeado em 24/09 12:13, fechando o cartao wSoltQDy. O frila-backend voltou a zero PRs abertos 14:28 · Matheus Silva
portao 2 fatos
- Portões medidos na máquina no branch do publicar_vaga, com db reset antes: supabase test db = 391 asserções em 16 arquivos, PASS; mutacao.sh = 74 regras cobertas e nenhuma sem cobertura; lint-conhecido.sh sem achado novo; ciclo-completo.sh verde até a publicação da vaga 10:54 · Matheus Silva
- RN19 provada sob concorrencia: scripts/corrida-candidatar.sh roda 20 conexoes de verdade contra uma vaga de 2 posicoes e exige 2 confirmacoes, 18 recusas posicao_ja_preenchida, profissionais distintos e a vaga preenchida. Entrou na CI 12:04 · Matheus Silva
sessao 1 fato
- Sessão de 23/09 encerrada. Quatro cartões de Backend fechados e em Revisão (Cc2XYCi0, oUwDEP8Q, ggEzge6h, jSOAe6OL); nove PRs abertos e nenhum mergeado. Handoff completo em frila-backend/docs/ESTADO.md. Preso em Touch ID: o push deste vault, com as notas de 22 e 23/09, a T-0025 e o conserto dos hooks 10:08 · Matheus Silva
23 set 2026 35 fatos
achado 3 fatos
- Hooks do vault desligados no monorepo: bootstrap.sh fixava core.hooksPath em scripts/git-hooks, caminho que não existe na raiz do monorepo. Nenhum fato registrado entre 2026-09-10 e 2026-09-23. Corrigido: os hooks passam a resolver o vault como subdiretório 15:08 · Matheus Silva
- Verificador de mutação só varria o schema public. A primeira tabela de privado com restrição entrou sem o total de alvos subir. Com privado incluído, 74 alvos — e o alargamento achou o check (id) de privado.ambiente sem nenhuma cobertura 15:33 · Matheus Silva
- A organização BlendOps deixou de existir: virou FrilaApp. Frila virou frila-docs, frila-backend e Bancada mantiveram o nome, e o repositório avulso doc-harness sumiu. Medido: gh api orgs/BlendOps responde 404. Trinta referências em oito arquivos do backend estavam vivas só por redirect 16:35 · Matheus Silva
auditoria 1 fato
- Contrato 0.2.1 x cartões do Sprint 1 e 2 (83 cartões, 43 operações): 4 operações faltam no contrato, 6 divergem de nome, 11 existem sem cartão que as cite, 26 conferem 15:08 · Matheus Silva
bloqueio 2 fatos
- SUPABASE_ACCESS_TOKEN do frila-backend responde 401 na Management API: o advisor de segurança do frila-dev não é verificado desde então. O portão lia o 401 como "nenhum achado" e foi corrigido para reprovar 15:08 · Matheus Silva
- CI do frila-backend caiu quatro vezes em toomanyrequests do ghcr.io antes de qualquer teste rodar. Corrigido com docker/login-action e o GITHUB_TOKEN do próprio job 15:33 · Matheus Silva
commit 3 fatos
- `b3475d9` — Registra o dia 23/09: cenários, contrato 0.2.2 e a ponte com o backend (T-0025) · 8 arquivos 15:19 · Matheus Silva
- `eb8cb2b` — Acrescenta o filtro da diretriz 1.2 e o contrato 0.2.3 ao dia 23/09 (T-0025) · 1 arquivo 15:34 · Matheus Silva
- `59bfdda` — Acrescenta o perfil profissional e a renomeação da org ao dia 23/09 (T-0025) · 1 arquivo 16:35 · Matheus Silva
contrato 3 fatos
- Contrato 0.2.2 publicado (BlendOps/Frila#2): entram meus_estabelecimentos, remover_dispositivo, configuracao_do_app, registrar_evento e a Edge Function entrar-demonstracao; bloquear e denunciar trocam alvo_usuario_id por alvo_tipo + alvo_id. redocly lint valida com um aviso, o mesmo info-license da 0.2.1 15:18 · Matheus Silva
- Contrato 0.2.3 (BlendOps/Frila#3): criar_conta passa a recusar nome com termo bloqueado, 422 campo_invalido com details = nome 15:33 · Matheus Silva
- Contrato 0.2.4 (FrilaApp/frila-docs#4): perfil_ja_existe em criar_perfil_profissional e o 404 que faltava em atualizar_perfil_profissional 16:35 · Matheus Silva
frila-backend 14 fatos
- `9167fca` — Faz o portão do advisor reprovar quando não conseguiu medir · 1 arquivo 00:01 · Matheus Silva
- `6858610` — Adiciona os cenários de desenvolvimento e o teste que os mede · 6 arquivos 00:01 · Matheus Silva
- `fef5fe7` — Constrói a ponte entre o backend e o vault da Bancada · 2 arquivos 15:00 · Matheus Silva
- `b483a7b` — Aponta a ponte para o vault vivo e tira o stash do log · 1 arquivo 15:08 · Matheus Silva
2× prova: RPC nova sem mexer no contrato, para medir o portão da CI · 1 arquivo 15:15–15:15 · Matheus Silva
- `1aec7c2` — prova: RPC nova sem mexer no contrato, para medir o portão da CI · 1 arquivo 15:15
- `d046b4a` — prova: RPC nova sem mexer no contrato, para medir o portão da CI · 1 arquivo 15:15
- `6422e98` — Traz o contrato 0.2.2 e o portão que exige o contrato junto do código · 5 arquivos 15:15 · Matheus Silva
- `9c4bd9e` — Tira o portão do contrato de trás do supabase start · 1 arquivo 15:19 · Matheus Silva
- `dfaaf6a` — Autentica o pull do ghcr.io na CI · 1 arquivo 15:22 · Matheus Silva
- `e38593a` — Filtra texto ofensivo nos campos livres (diretriz 1.2) · 8 arquivos 15:32 · Matheus Silva
- `6cdb2ef` — Atualiza o estado do backend depois do quinto e do sexto cartões · 1 arquivo 15:36 · Matheus Silva
- `385739a` — Acrescenta as três RPCs do perfil profissional (US02) · 5 arquivos 16:32 · Matheus Silva
- `4ecbac6` — Atualiza as referências depois da renomeação da organização · 7 arquivos 16:33 · Matheus Silva
- `76d1bcf` — Aponta a ponte para os nomes novos da organização · 1 arquivo 16:34 · Matheus Silva
medicao 4 fatos
- Suíte do backend: 232 asserções pgTAP (eram 196), 71 de 71 regras cobertas por mutação, ciclo HTTP verde até criar_conta 15:08 · Matheus Silva
- Elegibilidade RN05 no cenário, medida com PostGIS: Lago Sul 8,6 km; Águas Claras 16,9 e 17,4 km até a vaga de referência na Asa Norte 15:08 · Matheus Silva
- Filtro da diretriz 1.2: 223 asserções pgTAP, 74 de 74 regras cobertas por mutação (eram 71 alvos: o verificador só varria o schema public), 422 campo_invalido conferido por HTTP 15:33 · Matheus Silva
- Três RPCs do perfil profissional: 256 asserções pgTAP, 74 de 74 na mutação, sete passos novos no ciclo HTTP incluindo o 409 e a volta da janela 18:00-02:00 idêntica 16:35 · Matheus Silva
pull-request 5 fatos
- frila-backend#4 aberto — cenários de desenvolvimento (Trello Cc2XYCi0), cartão em Revisão 15:08 · Matheus Silva
- frila-backend#5 aberto — ponte entre o backend e o vault da Bancada 15:08 · Matheus Silva
- frila-backend#7 aberto (espelho do contrato 0.2.2 e o portão contrato-acompanha-o-codigo.sh) e BlendOps/Frila#2 (o contrato). frila-backend#6 é o PR de prova que a CI tem de barrar 15:18 · Matheus Silva
- frila-backend#8 aberto (filtro de texto ofensivo, cartão ggEzge6h) e BlendOps/Frila#3 (contrato 0.2.3). Cartão em Revisão, mas a lista de termos ainda depende da revisão da Júlia 15:33 · Matheus Silva
- frila-backend#9 (perfil profissional, cartão jSOAe6OL) e #10 (referências da org renomeada). Oito PRs abertos ao todo, nenhum mergeado 16:35 · Matheus Silva
22 set 2026 38 fatos
backend 11 fatos
- `c267bf7` — Estrutura o repositório do backend: Supabase, contrato, agentes e CI · [BlendOps/frila-backend](https://github.com/BlendOps/frila-backend) · 22 arquivos 15:28 · Matheus Silva
- `30db283` — Adiciona as migrações iniciais do esquema, o catálogo de funções e os testes pgTAP · [BlendOps/frila-backend](https://github.com/BlendOps/frila-backend) · 15 arquivos 15:28 · Matheus Silva
- PR [#1](https://github.com/BlendOps/frila-backend/pull/1) aberto e o cartão [S0 · Backend · Migrações iniciais](https://trello.com/c/JuD3ytg1) movido para Revisão no quadro do Frila 15:28 · Matheus Silva
- Projeto Supabase frila-dev de pé (`jcobftbhbqdikratzizz`, sa-east-1, Postgres 17.6): nove migrações aplicadas, 19 tabelas, 32 funções no catálogo, RLS ligado nas 19 e zero concessão de escrita para a chave publicável 16:57 · Matheus Silva
- PR [#1](https://github.com/BlendOps/frila-backend/pull/1) mergeado (`881fb67`) depois de duas rodadas de revisão por agente; o cartão [S0 · Backend · Migrações iniciais](https://trello.com/c/JuD3ytg1) foi para Concluído 16:57 · Matheus Silva
- PR [#2](https://github.com/BlendOps/frila-backend/pull/2) aberto: 19 políticas de leitura, 12 auxiliares do schema `privado`, o relógio `privado.agora()` e o fechamento do execute em `public.erro` 16:57 · Matheus Silva
- PR [#2](https://github.com/BlendOps/frila-backend/pull/2) mergeado (`70be98b`): 19 políticas de leitura, 12 auxiliares do schema `privado`, o relógio `privado.agora()` e duas correções vindas do advisor do Supabase 21:19 · Matheus Silva
- PR [#3](https://github.com/BlendOps/frila-backend/pull/3) aberto: entrada por código de 6 dígitos no e-mail em português sem link, RPCs `criar_conta` e `minha_conta`, e o aceite dos termos com versão e instante 21:19 · Matheus Silva
- Contrato do Frila em 0.2.1 (BlendOps/Frila#1): `criar_conta` com aceite dos termos, rota `minha_conta` e o envelope de erro com a chave `headers` que faltava 22:56 · Matheus Silva
- Handoff do backend escrito em `frila-backend/docs/ESTADO.md`: ambientes, portões, divergências registradas e o caminho crítico do Sprint 0 22:56 · Matheus Silva
- PR [#3](https://github.com/BlendOps/frila-backend/pull/3) mergeado (`0ebe506`): entrada por código no e-mail e `criar_conta` com perfil fixo. Três cartões de Backend do Sprint 0 concluídos 23:09 · Matheus Silva
commit 5 fatos
- `8f91845` — Abre a T-0025 e registra o primeiro dia de backend do Frila (T-0025) · 5 arquivos 15:30 · Matheus Silva
- `bb3f5b1` — Registra o frila-dev de pé e as duas rodadas de revisão do backend (T-0025) · 3 arquivos 16:57 · Matheus Silva
- `11b2462` — Registra as políticas de acesso e a entrada por código no e-mail (T-0025) · 2 arquivos 21:19 · Matheus Silva
- `df348fb` — Fecha o RLS na T-0025 e registra o contrato 0.2.1 (T-0025) · 2 arquivos 22:56 · Matheus Silva
- `120012d` — Fecha a entrada por código no e-mail na T-0025 (T-0025) · 2 arquivos 23:09 · Matheus Silva
frila-backend 14 fatos
- `51aaa70` — Liga o RLS nas dezenove tabelas e fecha a escrita direta pela chave publicável · 9 arquivos 15:40 · Matheus Silva
- `2a1b0d2` — Corrige a expansão de array vazio no verificador de mutação · 1 arquivo 15:44 · Matheus Silva
- `106e9df` — Aplica as migrações no frila-dev pela Management API · 2 arquivos 16:02 · Matheus Silva
- `08ae240` — Fecha os buracos do verificador de mutação: linha de base, identidade e triggers · 2 arquivos 16:12 · Matheus Silva
- `caddfc5` — Adiciona as políticas de leitura, as auxiliares do schema privado e o relógio do produto · 10 arquivos 16:51 · Matheus Silva
- `24a0118` — Fecha o caminho da semente de teste para ambiente remoto e cobre política frouxa · 10 arquivos 17:10 · Matheus Silva
- `9ad8ea3` — Corrige a volatilidade de erro e exigir_perfil, apontada pelo lint na integração contínua · 3 arquivos 17:25 · Matheus Silva
- `d1f69d8` — Faz os portões reprovarem quando não conseguem medir, em vez de passar · 3 arquivos 18:04 · Matheus Silva
- `468a035` — Reconhece a saída do lint sem achados, que não é JSON · 1 arquivo 20:40 · Matheus Silva
- `f638ad8` — Adiciona a entrada por código no e-mail e a criação da conta com perfil fixo · 15 arquivos 20:57 · Matheus Silva
- `e58cbca` — Declara os alertas do advisor que são consequência do desenho · 1 arquivo 21:55 · Matheus Silva
- `418fee1` — Confere o código do erro nos testes e traz o contrato 0.2.1 para o espelho · 4 arquivos 22:52 · Matheus Silva
- `f394271` — Confere sqlstate e envelope inteiro nas recusas, e o 409 pelo caminho HTTP · 3 arquivos 23:01 · Matheus Silva
- `53a7fea` — Atualiza o estado do backend depois do terceiro cartão · 1 arquivo 23:08 · Matheus Silva
sessao 1 fato
- Fabrício Tosta adicionado ao quadro do Trello do Frila; os cinco sócios com acesso ao repositório BlendOps/frila-backend 15:28 · Matheus Silva
teste 7 fatos
- supabase db reset + supabase test db no ambiente local: 8 migrações aplicadas, 19 tabelas, 30 CHECK, 1 EXCLUDE, 50 índices, 33 comentários de finalidade; 85 asserções pgTAP em 5 arquivos, Result: PASS 15:28 · Matheus Silva
- Verificador de mutação derruba cada restrição, trigger e política, uma por vez, e exige o pgTAP vermelho: 53 de 53 cobertas. Na primeira rodada, 10 das 19 políticas sobreviviam 16:57 · Matheus Silva
- Advisor de segurança do Supabase contra o frila-dev: nenhum alerta. Antes das correções eram cinco — três funções sem search_path fixo e uma função security definer executável por anon 16:57 · Matheus Silva
- Verificador de mutação passa a atacar política pelos dois lados — ausente e frouxa demais (`using (true)`) — e a reprovar quando não consegue medir: 71 de 71 21:19 · Matheus Silva
- `scripts/ciclo-completo.sh` exercita o fluxo por HTTP e achou o que o pgTAP não pega: o envelope de erro do contrato não tem a chave `headers`, e o PostgREST devolvia 500 no lugar do status que a regra levantou 21:19 · Matheus Silva
- Portão de lint na integração contínua achou três rótulos de volatilidade errados: `erro` marcada IMMUTABLE, `exigir_perfil` e `minha_conta` marcadas STABLE chamando função volátil 21:19 · Matheus Silva
- Recusa de regra passa a ser conferida nos três eixos: `sqlstate` PGRST, envelope inteiro com código e `details`, e o status HTTP pelo `ciclo-completo.sh`. Um `raise` cru deixava 12 asserções vermelhas que antes passavam 23:09 · Matheus Silva
17 set 2026 3 fatos
pages 3 fatos
2× CBL_C18.pages → CBL_C18.md 15:54–15:55 · Júlia Clovandi Vasconcelos
- CBL_C18.pages → CBL_C18.md · 6929 palavras 15:54
- CBL_C18.pages → CBL_C18.md · 6929 palavras 15:55
- frila_backlog.pages → frila_backlog.md · 92 palavras · pendente 17:28 · Júlia Clovandi Vasconcelos
16 set 2026 2 fatos
pages 2 fatos
- CBL_C18.pages → CBL_C18.md · 94 palavras · pendente 18:45 · Júlia Clovandi Vasconcelos
- CBL_C18.pages → CBL_C18.md · 6917 palavras 18:45 · Júlia Clovandi Vasconcelos
15 set 2026 1 fato
pages 1 fato
- CBL_C18.pages → CBL_C18.md · 7203 palavras 11:44 · Cauê Carneiro
11 set 2026 1 fato
commit 1 fato
- `67ea017` — Registra tarefa T-0008 e atualiza narrativa diária de 2026-09-10 · 3 arquivos 01:16 · Fabrício Tosta
10 set 2026 19 fatos
commit 16 fatos
- `9ba72b7` — Revisa a UI com sete lentes e mede o que nunca tinha sido medido · 10 arquivo(s) 04:42 · Fabrício Tosta
- `96da11a` — Registra o commit anterior no log de fatos · 1 arquivo(s) 04:42 · Fabrício Tosta
- `9e66d30` — Documenta o tipo agenda e a agenda oficial do C18 · 4 arquivo(s) 14:13 · Cauê Carneiro
- `296e3fb` — Registra o commit anterior no log de fatos · 1 arquivo 14:13 · Cauê Carneiro
- `0cc4544` — Registra a revisão profunda e o que ela mudou no sistema · 11 arquivos 14:30 · Fabrício Tosta
2× Registra o commit anterior no log de fatos · 1 arquivo 14:30–14:39 · Fabrício Tosta
- `425e2d4` — Registra o commit anterior no log de fatos · 1 arquivo 14:30
- `1a0ea97` — Registra o commit anterior no log de fatos · 1 arquivo 14:39
- `1ecf374` — Remove a linha órfã do log de fatos · 1 arquivo(s) 14:39 · Fabrício Tosta
- `0126f05` — Move o registro de fatos para o push e fecha a fronteira do log · 6 arquivos 14:46 · Fabrício Tosta
- `c3a9691` — Deixa o commit de escrituração fora do log, por decisão · 1 arquivo 14:47 · Fabrício Tosta
- `9ca2c2f` — Atualiza o documento CBL_C18 no Pages · 2 arquivos 14:58 · Júlia Clovandi Vasconcelos
- `5a06838` — Escreve a narrativa de 2026-09-10 · 1 arquivo 14:59 · Fabrício Tosta
- `303ce76` — Registra benchmarking de concorrentes de mercado do Frila (T-0006) · 12 arquivos 15:28 · Júlia Clovandi Vasconcelos
- `cafac94` — Adiciona Júlia Clovandi como co-responsável na T-0006 (T-0006) · 1 arquivo 15:33 · Júlia Clovandi Vasconcelos
- `75425dd` — Completa a narrativa de 2026-09-10 · 2 arquivos 21:50 · Fabrício Tosta
- `538fc3d` — Promove a iteração de 2026-09-10 ao Roadmap e ao C18 · 2 arquivos 21:55 · Fabrício Tosta
sessao 3 fatos
3× Claude · nota(s) com alteração pendente 23:32–23:33 · Fabrício Tosta
- Claude · 0 nota(s) com alteração pendente 23:32
- Claude · 1 nota(s) com alteração pendente 23:33
- Claude · 1 nota(s) com alteração pendente 23:33
9 set 2026 30 fatos
commit 26 fatos
- `94a7665` — Reformata o índice de registros como tabela · 1 arquivo(s) 05:00 · Fabrício Tosta
- `db98d70` — Registra o refinamento de UI e interação da ActionShelf (T-0001) · 6 arquivo(s) 05:23 · Fabrício Tosta
- `33e1984` — Registra screenshots fixos e comparativo visual da ActionShelf (T-0001) · 9 arquivo(s) 05:34 · Fabrício Tosta
- `8b10734` — Atualiza imagens e banner comparativo gerados com renderizador real · 6 arquivo(s) 05:50 · Fabrício Tosta
- `869cde1` — Registra aumento de 30% e alinhamento óptico da ActionShelf (T-0001) · 6 arquivo(s) 06:24 · Fabrício Tosta
- `02271c9` — Cria tarefa T-0002 — Refatorar UI da Bancada + WebView · 2 arquivo(s) 06:44 · Fabrício Tosta
- `6169043` — Atualiza a narrativa diária com a criação da T-0002 · 1 arquivo(s) 07:02 · Fabrício Tosta
3× Registra os fatos da sessão 14:17–14:20 · Cauê Carneiro
- `df873d0` — Registra os fatos da sessão · 1 arquivo(s) 14:17
- `3b73ade` — Registra os fatos da sessão · 1 arquivo(s) 14:18
- `49c2b54` — Registra os fatos da sessão · 1 arquivo(s) 14:20
- `ec9e6a2` — Cria tarefa T-0003 — Continuar as iterações do Fabricio (T-0003) · 2 arquivo(s) 15:10 · Cauê Carneiro
- `e13a69e` — Registra a T-0004 em andamento, com a Bancada já saindo por Release · 4 arquivo(s) 15:52 · Fabrício Tosta
- `c7de225` — Integra o trabalho do time e renumera a tarefa da Bancada para T-0005 · 3 arquivo(s) 15:54 · Fabrício Tosta
- `466f383` — Valida a release v0.1.0 da Bancada em máquina diferente e conclui a T-0004 · 2 arquivo(s) 15:59 · Cauê Carneiro
- `3803468` — Detalha o escopo executado da refatoração da Bancada (T-0002) · 1 arquivo(s) 16:46 · Cauê Carneiro
- `ec5b215` — Atualiza a narrativa diária com o restante dos fatos do dia · 1 arquivo(s) 17:38 · Cauê Carneiro
- `9a3e0fc` — Documenta o sistema de design da Bancada e abre a pasta 06 - Design · 3 arquivo(s) 17:44 · Fabrício Tosta
- `671d48a` — Registra o commit anterior no log de fatos · 1 arquivo(s) 17:45 · Fabrício Tosta
- `9154969` — Adiciona comando /publicar-bancada e auto-atualização no /entrar (T-0004) · 1 arquivo(s) 18:02 · Fabrício Tosta
- `d01b628` — Registra a revisão de UI da Bancada com as capturas que a provam (T-0002) · 14 arquivo(s) 21:51 · Cauê Carneiro
- `f1ffa54` — Devolve ao /entrar o passo de auto-atualização da Bancada (T-0004) · 1 arquivo(s) 21:56 · Fabrício Tosta
- `f3ba5f0` — Atualiza a narrativa do dia com as últimas quatro horas · 1 arquivo(s) 22:14 · Cauê Carneiro
- `5a26001` — Registra que a superfície de leitura renderiza o Markdown (V-01) · 1 arquivo(s) 22:14 · Fabrício Tosta
- `965ae4d` — Remove do log de fatos uma linha que apontava para commit inexistente · 1 arquivo(s) 22:18 · Fabrício Tosta
- `51addcb` — Faz de "sem sombra" um componente, e não só uma frase (V-03) · 1 arquivo(s) 22:24 · Fabrício Tosta
- `a733040` — Acrescenta às recusas as duas que a V-05 expôs · 1 arquivo(s) 22:30 · Fabrício Tosta
sessao 1 fato
- Claude · 0 nota(s) com alteração pendente 21:06 · Cauê Carneiro
ui 3 fatos
- Refinamento de UI e interação da ActionShelf: base em Liquid Glass, degradê em fade de 8 stops até #000000 no bezel físico, alinhamento óptico, hit area 44pt e feedback háptico no trackpad 05:22 · Fabrício Tosta
- Screenshots fixos e comparativo das 4 versões iteradas da ActionShelf (f7efef3 → e501854): v1 base, v2 tangência física, v3 degradê 8 stops e v4 polimento completo, com metadados de commits e data em 04 - Tarefas/Anexos/ 05:31 · Fabrício Tosta
- ActionShelf aumentada em 30% (520x68pt) com alinhamento óptico interno, badge 48pt e hit target 56pt (commit 5a39cc4) 06:23 · Fabrício Tosta
8 set 2026 28 fatos
commit 17 fatos
- `d622a3a` — Transforma o repositório no vault compartilhado do Challenge 18 · 25 arquivo(s) 19:53 · Fabrício Tosta
- `870a9ad` — Adiciona a automação do diário: hooks, quadro de tarefas e pipeline .pages · 15 arquivo(s) 19:59 · Fabrício Tosta
- `433d937` — Registra os fatos da sessão de implantação · 1 arquivo(s) 20:00 · Fabrício Tosta
- `1cb5db9` — Exige confirmação de identidade antes de publicar · 7 arquivo(s) 20:10 · Fabrício Tosta
- `7ea231d` — Torna as regras do CLAUDE.md mecânicas em vez de advisórias · 7 arquivo(s) 20:20 · Fabrício Tosta
5× Registra os fatos da sessão 20:21–22:05 · Fabrício Tosta
- `ff6f1c5` — Registra os fatos da sessão · 1 arquivo(s) 20:21
- `65911d8` — Registra os fatos da sessão · 1 arquivo(s) 21:16
- `1e97c6f` — Registra os fatos da sessão · 1 arquivo(s) 22:03
- `8a36370` — Registra os fatos da sessão · 1 arquivo(s) 22:04
- `6c20ea8` — Registra os fatos da sessão · 1 arquivo(s) 22:05
- `12431ba` — Abre o desafio C18 e ensina o pipeline a lidar com bundles · 17 arquivo(s) 21:01 · Fabrício Tosta
- `d293be9` — Teste: confirma que os hooks de commit estão funcionando · 1 arquivo(s) 21:30 · Cauê Carneiro
- `f814d9e` — Atualiza o documento CBL_C18 · 13 arquivo(s) 22:01 · Cauê Carneiro
- `1b11c77` — Corrige o loop do post-commit e remove o arquivo de teste · 2 arquivo(s) 22:06 · Fabrício Tosta
- `a2bb68d` — teste: verifica estabilidade do hook (sem --no-verify, via fluxo normal) · 1 arquivo(s) 22:06 · Fabrício Tosta
- `068c8bc` — Documenta a integração opcional com o ActionShelf no gate de push · 1 arquivo(s) 22:14 · Fabrício Tosta
- `85a78c1` — Remove a nota de teste do Cauê na Big Idea do C18 · 2 arquivo(s) 22:15 · Fabrício Tosta
pages 4 fatos
- 714_FabricioTosta_ReflectionC14.pages → 714_FabricioTosta_ReflectionC14.md · 686 palavras 19:56 · Fabrício Tosta
2× CBL_C18.pages → CBL_C18.md 21:00–22:15 · Fabrício Tosta
- CBL_C18.pages → CBL_C18.md · 4365 palavras 21:00
- CBL_C18.pages → CBL_C18.md · 4363 palavras 22:15
- CBL_C18.pages → CBL_C18.md · 4381 palavras 22:01 · Cauê Carneiro
sessao 6 fatos
2× Claude · nota(s) com alteração pendente 19:58–19:58 · Fabrício Tosta
- Claude · 0 nota(s) com alteração pendente 19:58
- Claude · 1 nota(s) com alteração pendente 19:58
4× Claude · nota(s) com alteração pendente 21:37–21:58 · Cauê Carneiro
- Claude · 1 nota(s) com alteração pendente 21:37
- Claude · 1 nota(s) com alteração pendente 21:37
- Claude · 1 nota(s) com alteração pendente 21:51
- Claude · 1 nota(s) com alteração pendente 21:58
teste 1 fato
- verificação de estabilidade do hook 22:06 · Fabrício Tosta