Skip to content

Corrige CA1848 da API, bloqueio local do Worker e testes de fuso - #60

Closed
devmnsoft wants to merge 16 commits into
codex/s00-foundationfrom
codex/corrigir-ca1848-e-bloqueio-worker
Closed

devmnsoft wants to merge 16 commits into
codex/s00-foundationfrom
codex/corrigir-ca1848-e-bloqueio-worker

Conversation

@devmnsoft

@devmnsoft devmnsoft commented Sep 16, 2026

Copy link
Copy Markdown
Owner

Resumo

Fecha a falha de compilação da API sob TreatWarningsAsErrors (CA1848), restaura o assembly de referência consumido pelos testes (CS0006 em cascata) e endurece o encerramento local do Worker no Windows.

A política de fuso e o cancelamento dos BackgroundServices já estavam no PR #59; esta entrega corrige o que ainda quebrava o build e a operação local.

Causas

  1. MSB3021 / MSB3027 — processo do Worker (dotnet run + Odca.Worker.exe) mantinha Odca.Application.dll / Odca.Configuration.dll abertas no bin do checkout.
  2. CS8604 (histórico)timeZoneId nullable; já resolvido via TimeZonePolicy.Resolve + CreateUtcRange(..., TimeZoneInfo).
  3. CS0006 — efeito cascata: API não gerava obj/.../ref/Odca.Api.dll porque falhava em CA1848 nos LogError adicionados no PR Corrige resolução de fuso e encerramento local do Worker #59.
  4. CS1061ApiHostStartupTests usava PostAsJsonAsync sem using System.Net.Http.Json.

Política de fuso

  • Organização válida tem precedência.
  • Se ausente (null), usa TimeZone:DefaultId (America/Sao_Paulo em appsettings.json).
  • Vazio / inválido / indisponível → erro controlado (503/422), sem !, sem UTC silencioso, sem fuso da máquina.
  • Filtro em created_at timestamptz: início inclusivo do dia local e início exclusivo do dia seguinte, convertidos para UTC; rejeita meia-noite inválida; ambígua usa o instante mais cedo.

Worker / scripts

  • ShutdownTimeout 2 min; stoppingToken propagado; cancelamento não vira falha retriável.
  • scripts/stop-local.ps1: restringe ao checkout; tenta encerramento normal; -Force mata a árvore (taskkill /T /F); fallback por ExecutablePath.

Nota sobre packages.lock.json (IntegrationTests)

O upload remoto do lock grande corrompeu o arquivo para PLACEHOLDER. O arquivo foi removido e Odca.IntegrationTests ficou temporariamente com RestorePackagesWithLockFile=false. Após merge ou com git push autenticado localmente, republish tests/Odca.IntegrationTests/packages.lock.json e remova o override no .csproj.

Validação executada (Windows)

  • dotnet restore Odca.sln --locked-mode (projetos com lock)
  • dotnet build API, Worker, solução Debug e Release — 0 erros
  • Testes: TimeZonePolicy, ContractImportDateRange, DocumentWorkerCancellation, ApiHostStartup — aprovados
  • Worker iniciado → DLLs bloqueadas → stop-local.ps1 -Force → rebuild sem bloqueio

Como validar localmente

.\scripts\stop-local.ps1
.\scripts\stop-local.ps1 -Force
dotnet restore Odca.sln --locked-mode
dotnet build src/Odca.Api/Odca.Api.csproj -c Debug
dotnet build src/Odca.Worker/Odca.Worker.csproj -c Debug
dotnet build Odca.sln -c Debug
dotnet test tests/Odca.Domain.Tests --filter FullyQualifiedName~TimeZonePolicyTests
dotnet test tests/Odca.IntegrationTests --filter "FullyQualifiedName~ContractImportDateRangeTests|FullyQualifiedName~DocumentWorkerCancellationTests"

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 16, 2026

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
🔒 Security Review Completed 2026-09-16T23:57:32.025492Z 723d21a PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

Copy link
Copy Markdown
Owner Author

A correção isolada do CA1848 (só ContractImportsController) foi extraída para o PR #61 e mesclada em codex/s00-foundation, porque este PR permanece dirty e mistura Worker/lockfiles.

Pode rebasear o restante (stop-local / Worker) depois do pull do default.

@devmnsoft devmnsoft closed this Sep 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant