Skip to content

Develop - #202

Merged
elson-vinicius-lopes merged 11 commits into
masterfrom
develop
Aug 27, 2026
Merged

Develop#202
elson-vinicius-lopes merged 11 commits into
masterfrom
develop

Conversation

@elson-vinicius-lopes

Copy link
Copy Markdown
Collaborator

No description provided.

elson-vinicius-lopes and others added 11 commits August 27, 2026 17:37
… em execute-candidates (issue #86)

Adiciona campo aditivo pathwayDiagnostics[] (vazio nesta etapa, populacao por
pathway fica para @lp-parser-llm) e correlationId ao response de
execute-candidates, conforme desenho em
docs/architecture/diagnostico-issue-86-diagnostico-estruturado-execute-candidates.md.
Corrige tambem sanitizacao ausente no pathway tcl-xsl (3 pontos onde
ex.Message/pipelineResult.Errors iam crus para o wire), alinhando com o
padrao ja usado no pathway sysmiddle (LowCodeErrorSanitizer.ForWire).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
)

Materializa o diagnóstico estruturado em execute-candidates: sysmiddle,
tcl-xsl e ai-fallback agora sempre terminam em exatamente 1 PathwayDiagnostic
(candidate_generated/not_applicable/failed), nunca silenciosos. Diferencia
map_not_found de xsl_not_found via novo TransformationPipelineResult.ErrorCode
(populado na origem, não por regex sobre a mensagem).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…xecute-candidates

Issue LayoutParserReact #86: enriquece o XML doc do endpoint
POST /api/transformationexecution/execute-candidates e adiciona seção
bilíngue PT/EN no README com o contrato aditivo (taxonomia de status/code,
semântica de candidates vazio com causa e a regra de sanitização de mensagens).
…vs leitura ad-hoc (#139)

Roda RealMapperParser em paralelo, sem side effect, dentro de
ExtractLayoutGuidsFromDecryptedContent, comparando InputLayoutGuid/TargetLayoutGuid
extraídos pelo caminho legado vs. pelo parser B (candidato canônico) e logando
divergência (só GUIDs/booleano, sem conteúdo do documento). Falha do RealMapperParser
é capturada e nunca propaga - passo 1 do plano em
docs/architecture/inventario-parsers-mapperVo-issue-139.md.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
… not_applicable/failed

QA (issue #86) apontou gap: os ramos de negócio que adicionam PathwayDiagnostic
(sem mapper, MAP/XSL não encontrado, cooldown de IA, etc.) só escreviam em
warnings/pathwayDiagnostics, sem log correlacionável — só exceções reais geravam
log. Isso deixava o caso mais comum do bug relatado (candidates vazio por falta
de mapper/arquivo) sem rastro em log, só na resposta HTTP.

Adiciona LogInformation (not_applicable/candidate_generated) e LogWarning
(failed) ao lado de cada PathwayDiagnostic.Add, com CorrelationId, pathway,
status, code e a fonte da decisão (catálogo, gate de cooldown, ErrorCode do
pipeline) quando disponível. Reforça os logs já existentes nos blocos catch
com os mesmos campos estruturados.
…sercao no PR #200 (falso positivo por deslocamento, sem codigo novo)
…e depreca parser legado (#139)

Passo 2: XslGeneratorService.GenerateXslContent agora parseia o MapperVO com
XslSynth.Core.RealMapperParser / XslSynth.Model.MapperVo (parser B) em vez do
legado LayoutParserApi.Models.Entities.MapperVo.FromXml. Todos os campos usados
(Rules.Name/Sequence/ContentValue, LinkMappings.Name/Sequence/DefaultValue/
AllowEmpty/InputGuid/TargetGuid) têm equivalente direto em B.

Passo 3: marca MapperVo/MapperRule/LinkMappingItem legados com [Obsolete] (sem
remover arquivos). Único uso residual fora de escopo é
MapperDatabaseService.ExtractLayoutGuidsFromDecryptedContent (fase de sombra do
passo 1, intocada de propósito) — gera 1 warning CS0618 esperado e documentado.

Testes sintéticos novos cobrem o caminho tipado (Rule+LinkMappingItem dentro de
<MapperVO>) e o fallback via XML bruto (sem estrutura reconhecida pelo parser).
…de arquitetura no README

Passos 1-3 do plano de migração de MapperVO (fase de sombra, migração do
consumidor de XslGeneratorService, deprecação do parser legado) confirmados
como concluídos no inventário de arquitetura; passo 4 permanece fora de
escopo (#140/#141). Documenta também a limitação já conhecida de que nenhum
parser (legado ou RealMapperParser) captura elementos aninhados. README
ganha nota curta apontando RealMapperParser como fonte canônica.
…aseService (issue #139)

QA encontrou que ExtractLayoutGuidsFromDecryptedContent ainda populava mapper.XslContent
via MapperVo.FromXml (legado) em produção, fora da fase de sombra do passo 1. Migrado
para RealMapperParser/XslSynth.Model.MapperVo — extração de XslContent é idêntica entre
os dois parsers (mesmo Element("XslContent") com fallback "Xsl"), sem gap de comportamento.
GUIDs continuam vindo da leitura ad-hoc, inalterada. Sombra do passo 1 mantida (compara
caminho ad-hoc vs RealMapperParser, nunca comparou contra MapperVo.FromXml).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…racao-139

feat: consolida RealMapperParser como parser MapperVO canonico (issue #139)
…gnostico-estruturado-86

feat: diagnostico estruturado de pathwayDiagnostics em execute-candidates (fecha LayoutParserReact#86)
@elson-vinicius-lopes
elson-vinicius-lopes merged commit a9b5839 into master Aug 27, 2026
6 checks passed
@github-actions

Copy link
Copy Markdown

Dependency Review

✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.

Scanned Files

None

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