Second Brain

For future Claude

Defect-first parity review 2026-07-25 (updated 2026-07-26): Java dict2us-app vs D2U.NET on shared MySQL dual-run (VM :8098 / :8099). CRITICAL C1/C2 + HIGH H1–H3 fixed and smoke-verified on demo MySQL. Veredicto reconciliado para ~96%. Sem secrets nesta nota.


Code Review Paridade — 2026-07-25

D2U.NET · Homologacao · Legado D2U · Deploy kit C:\Projetos\Util\D2U.NET

Veredicto

Item Valor Confidence
Paridade código (dual-MySQL homolog) ~96% (era ~93% em 2026-07-25) high
E2E smoke VM (2026-07-23) 31/31 pass (_e2e_results.json) stated
Smoke client edit (2026-07-26) FirstName/Email/Folder round-trip OK; credits ledger OK high
Pronto cutover 100% Não — QA 7 dias ainda pendente high

Docs vault anteriores diziam ~97–98% (2026-07-13) — reconciliado para baixo em 2026-07-25; subido para ~96% após fix C1/C2/H1–H3.

Known fixed (verificado 2026-07-25)

Fix Evidência
Company__SingleCompany=true .env deploy kit + CoreServices.cs _singleCompany
Security__RequireHttpsCookies=false .env + Program.cs cookie policy
Workers ingest OFF beside Java .env MailReader/Ftp*/Audio*/Lexacom/SpeechLive/Egress=false
Theme CSS folder = data_folder WebServices.cs ResolveThemeFolderDataFolder
user_client.user_id PK LegacyMySqlModelExtensions.MapClient Id → user_id
Org↔client client_id MapClientOrganization user_client_organization.client_id

Fixed 2026-07-26 (C1/C2/H1–H3 + scan)

ID Fix Ficheiros
C1 Edit/create/update identity via client.User no MySQL; email uniqueness só em User.Email ClientManagementServices.cs
C2 Client.Folderuser_client.folder (winscrobe_folder mantido) LegacyMySqlModelExtensions.cs
H1 Lista: LegacyPaymentCreditsCalculator.GetBalancesAsync; edit: balance ledger LegacyPaymentCreditsCalculator.cs, ClientManagementServices.cs
H2 Reports comprehensive/client: nomes via User ReportGenerationService.cs
H3 Settings ThemeFolder lê/grava DataFolder no MySQL ClientManagementServices.cs (CompanySettingsService)
Scan WhereCompany / WhereCompanyClient em pastas DWR/API + nomes via User ApiServices.cs, DwrEfQueries.cs
Bonus total_price FLOAT→decimal conversion (evita 500 na lista credits) LegacyMySqlModelExtensions.MapPayment

Smoke 2026-07-26 (VM)

  • Login demoadmin → Clients → Edit /3
  • Load: FirstName/LastName/Email + Credits ledger (330.56)
  • Save round-trip: FirstName + Folder persistidos em users / user_client
  • Java :8099/d2u/login.do = 200; workers ingest OFF
  • /MedTrans/Jobs/DragDrop = 404 (rota; Create OK)

CRITICAL (histórico — resolvido)

C1 — Client edit name/email (RESOLVIDO 2026-07-26)

Identity lida/gravada em User quando UsesLegacyMySql().

C2 — Client.Folder (RESOLVIDO 2026-07-26)

Mapeado folder em MapClient.

HIGH (histórico)

H1–H3 — RESOLVIDOS 2026-07-26

Ver tabela Fixed acima.

H4 — Observabilidade ausente até 2026-07-25

  • Mitigado: docs/GRAFANA-D2UNET.md + grafana/d2unet-overview.jsonnão no compose da VM

Área matrix

Área Paridade Notas
Auth / SingleCompany / cookies HTTP ~98% Fixes verificados
Schema MySQL core jobs/users/org ~97% Folder + credits ledger OK
Client admin CRUD identity ~95% C1/C2 fix smoke OK
Jobs list/create/search/dashboard ~95% DragDrop rota 404
Workflow FSM ~94% Engine + emails ops
DWR / aliases .do ~95% Company scope clients OK
Workers (ops dual-run) N/A Java owns ingest
Reports ~94% Nomes via User
UI theme/assets ~96% Settings↔data_folder alinhado

Top acções restantes

  1. Piloto empresa B 7 dias + acceptance-checklist-struts.md
  2. Confirmar rota DragDrop (404) vs Create
  3. Import Grafana dashboard (ops)
  4. Manter ingest .NET OFF até cutover workers

Não tocado (intencional)

  • Java / Tomcat / compose D2U-PRD em 192.168.0.29
  • Secrets não copiados para vault