For future Claude
Homologação dual-run VM 192.168.0.29: Java :8099 + .NET :8098 (MySQL partilhado). Gate testes 100%: xUnit 717/0/2, smoke 24/24, probe 0 crashes, matriz 115/115. Ingest workers OFF. Sessões Java/.NET não unificadas. Workers. Sem secrets aqui.
D2U.NET — Homologação
Veredicto (2026-08-19)
| Item |
Estado |
| Contratos MySQL (scan 2026-08-02) |
JobPaymentStatus corrigido (Paid=0…Invoiced=3). Upload STRING ok; ramo numérico = ordinal Java. Sessões DIVERGENTE de propósito. |
| Dual-run VM |
Deploy OK 2026-08-19 python deploy.py --workers-off --with-grafana |
.NET /health |
healthy · workersEnabled=false · usesLegacyMySql=true |
| Workers ingest |
OFF enquanto Java Mail/FTP/Lexacom/Scanner ON |
| Cleanup .NET |
Classes + cron Java; não executam com workers off |
| Grafana |
8 dashboards v6 com dados (42/42) · 11.6.16 · http://192.168.0.29:3000 |
| Smoke |
24/24 · 0 action_crash · 0 exceções no log |
| Smoke — falhas abertas |
nenhuma (BUG-06/07 corrigidos 2026-08-19 noite) |
| xUnit (corrida gate 2026-08-20) |
717 pass / 0 fail / 2 skip de 719 |
| Matriz features |
115/115 — Docs_New/testing/traceability-matrix.md |
| Smoke kit |
_run_test_suite.py / _multi_profile_probe.py / _verify_bugs.py |
Histórico de % (reconciliar)
| Data |
% |
Nota |
| 2026-07-13 |
~97–98% |
Vault anterior (optimista) |
| 2026-07-25 |
~93% |
Defect-first; C1/C2 client MySQL |
| 2026-07-26 |
~96% |
C1/C2/H1–H3 fix + smoke edit client |
| 2026-07-26b |
~98% |
20 gaps: force-logout, HtmlZip, BigHand, files share, UI |
| 2026-07-28–30 |
~98.5% |
Auditoria rotas legado MySQL; Transcript XML; multi-perfil login fixes |
| 2026-08-01–02 |
~99% |
AuthZ BUG-01…07 (ViewOnly/Delete/Edit/Template/MFA/session/Split) |
| 2026-08-10 |
100% funcional |
Plano Parity 100% waves 1–3 fechadas |
| 2026-08-19 |
contratos MySQL |
JobPaymentStatus era DIVERGENTE no dual-run (Paid .NET=2 = ERROR Java). Corrigido. Páginas “100%” ≠ bytes iguais na coluna. |
Dual-run — regras ops
- Preferir não alterar Java; ficheiros live-share via
_share_files_live.py
- Ingest scanners .NET OFF enquanto Java scanner/mail/lexacom activos (
deploy.py --workers-off)
- Vendor egress .NET pode ficar ON (approve path); Production
SimulateWhenNoFtp=false
- Ficheiros: host shared → Java
webapps/d2u/files + .NET /data/files
- HTTP only:
Security__RequireHttpsCookies=false
- IP sem subdomain:
Company__SingleCompany=true + Company__DefaultUrl=demo
- Sessão única: limpar
d2u_active_sessions se login silencioso; mensagem = index.login.4
cd C:\Projetos\Util\D2U.NET
python deploy.py --workers-off --with-grafana
python _run_test_suite.py
python _multi_profile_probe.py
python _verify_bugs.py
Contas de teste (senha comum DemoDock2026!)
Roteiro: C:\Projetos\Util\D2U.NET\_roteiro_teste_perfis.md
Known fixed (resumo recente)
2026-08-19 — Contratos partilhados + workers nomes/cron
JobPaymentStatus: Paid=0 Unpaid=1 Error=2 Invoiced=3 (sem Unknown; NULL = null)
JobUploadType numérico: ordinal Java (2=IPHONE→Mobile)
- Defaults: MRA create/upload; SystemPolicy;
AllowsDuplicateLogin fallback
- Classes:
DeleteOldFileTask / DeleteOldLogsTask; Quartz identity deleteOldFileTask / deleteOldLogsTask
- Cron cleanup = Java (meia-noite / 23:59)
- Mapa: Workers
2026-08-10 — Parity 100% push
- Approve →
VendorFtpEgressService.Enqueue (+ BigHand / Winscribe / MediaHawk / DialDictate)
- Cleanup:
scan_logs 3d + http_post_logs 4mo; file retention per-company
- Manage: Client Specialization, Company Settings fields, Specializations rename UI
- Reports: SpeechLive/Lexacom/Payment/Production/Deleted columns; Outside
DocumentToken; HtmlZip UsingDownloadAsHtm
- Workers: SpeechLive Reject/CreditRequest retries; Lexacom
GetAndSaveClients; Audio filename parsers
- AuthZ: fine flags (batch approve/reject, edit approved, manage submenu, per-report, ForceLogout
canLogoutUser)
2026-08-01 — AuthZ (Java parity)
Ver AuthZ-Bugs-2026-08-01. Policies: CanEditJob, CanDeleteJob, CanSplitJobs, + finas 2026-08-10.
Blockers / aceite parcial
| # |
Item |
Acção |
| QA |
Smoke VM pós-deploy + piloto |
Ops |
| Graph |
OAuth vazio |
OK enquanto MailReader .NET OFF |
| Jasper |
Relatórios não pixel-perfect |
Aceite — fora de escopo 100% |
| Dual session |
LoggedUserMap Java ≠ d2u_active_sessions |
Force-logout .NET-only; não unificar até cutover |
| Lexacom bootstrap |
Defaults Java saveClient parciais |
Aceite — poll funciona |
| Winscribe sidecar |
PATTERN3/4 + txt |
Edge residual |
Grafana
Links