Repository navigation
Calendário: múltiplos projetos e pessoas com multiplicadores históricos - #41
Merged
Merged
Conversation
victorwads
force-pushed
the
feat/calendar-multiselect-multipliers
branch
from
October 26, 2026 07:34
8d460ad to
139e083
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Três alterações para revisão
Regra fechada de vigência
Última vigência datada <= startedAt ORIGINAL; depois base effectiveFrom:null; sem regra fator1. Mesmo fator até o fim do registro, sem repartir quando atravessa mudança. Computado=rateado×fator; logged preservado. Fator0 permitido; negativos/não finitos e instantes duplicados rejeitados. Alterar/remover regra antiga recalcula histórico; UI avisa preferir nova vigência para mudança futura.
Arquitetura e segurança
Correção solicitada na revisão
Removida por completo a nova Function: nenhum export, handler, target de deploy ou chamada de salvamento. Transação de projeto pelo SDK Web aplica schema compartilhado/CAS/auditoria; Rules permitem editar fatores a qualquer editor autorizado do projeto. Testes garantem ausência da função. Extrai MultiSelect neutro: filtros das quatro telas usam a mesma implementação; CalendarMultiSelect é só reexport de compatibilidade. Meus Registros usa native IN<=10 shards completos antes da paginação e totais; arrays de URL entram em chaves/fences de relatórios e listagens.
Validação
Ambiente e validação real
Autorização Docker recebida; ambiente exclusivo ATIVO em http://localhost:5187, projeto Compose worktrack-calendar-multi-factors (Auth9117, Firestore8097, Functions5017, UI4017), somente demo-work-track. Logs All emulators ready; somente as quatro Functions preexistentes. Multiplicadores salvos por Firestore batchGet/commit200 no navegador, sem chamada Functions para salvar. Vite ready, HMR connected, bootstrap aponta portas corretas, página React renderizada sem erros de console nas verificações. A demora inicial era download npm/JAR, não travamento.
Navegador: login conta sintética frontend.review@wads.dev; duas seleções de projetos (Atlas/Portal) e duas pessoas, URL preservada ao recarregar, eventos identificados mesmo com privacidade oculta. Sem fator: total combinado11h50. Salvamento real de base0.25 para pessoa principal no Atlas -> total7h50; colega permanece fator1. Registro75min logged/67.5min rateado ->16.9min exibidos computados. Salvamento de segunda vigência0.5 em2026-10-06T09:30:00-03:00 persistido e recarregado -> total8h53.1min, eventos anteriores0.25 e posteriores0.5. Nenhum registro histórico alterado; apenas mapa do projeto demo. Fronteira exata e registro atravessando vigência também cobertos nos testes automatizados.
Rules executadas em JVM isolada dentro do container, projeto separado demo-project-privacy-rules/porta efêmera:14/14 PASS, inclusive permissão de escrita direta por editor autorizado e negação de edição pessoal estrangeira/sem autenticação. CI remoto PASS nas duas execuções. Não houve deploy e nenhum ambiente alheio foi parado. .env.worktree ignorado/fora do commit. Containers permanecem disponíveis até autorização humana para encerrar.
Validação complementar após correção: multiplicador base0.30 salvo no navegador via Firestore batchGet/commit200 e persistido após reload, sem callable de multiplicadores; runtime mantém4 funções preexistentes; Rules14/14 PASS. Dashboard Atlas+Portal mostra13.85h computadas, Meu relatório12.15h, Meus Registros14 resultados com ambos selecionados e tópico desativado. Calendário continua com dois projetos/duas pessoas após extração compartilhada. Os exemplos são somente demo, não produção. CI anterior passou; após amend uma nova execução será disparada.
Revisão humana solicitada
Por favor revisar os TRÊS fluxos em http://localhost:5187/calendar?date=2026-10-05: seletores Projetos/Pessoas e configuração em http://localhost:5187/projects/design-demo-plataforma?tab=details. Conta sintética frontend.review@wads.dev no login do Auth Emulator (não Google real). Roteiro em docs/calendar-multiselect-review.md; Atlas contém base0.30 (salva pelo SDK direto) e vigência0.5 para a pessoa principal, colega sem regra fator1. Ambiente será mantido para revisão.