v0.3.0
Breaking
2026-06-18
Migración PDF/AcroForm → ODT (Open Document Format, ISO/IEC 26300).
Las plantillas ahora usan marcadores {{prefix.markerKey}} en texto plano
dentro de <text:p>/<text:h> del content.xml del ZIP ODT,
en lugar de campos AcroForm de PDF.
- Manipulación ODT nativa con stdlib .NET (
ZipArchive + Regex), sin iText7. mimetype primero y sin compresión (spec ODF 1.3).
- Markdown → ODF con Markdig: headings
<text:h>, listas <text:list>, tablas nativas <table:table>, bold/italic/code/quote con estilos automáticos AI-*.
- Markers fragmentados: el validador detecta formato parcial sobre llaves y reporta
FragmentedMarker; el extractor limpia tags XML intercalados para recuperar el markerKey puro.
- Partición de block contenedor: cuando un marker se sustituye por contenido block-level, se parte el
<text:p>/<text:h> contenedor y se balancean <text:span> abiertos.
- Fix re-sustitución: el loop de sustitución mantiene
searchFrom entre iteraciones, evitando borrar {{...}} que la IA devuelva literalmente en su respuesta.
- Migraciones EF renombran
TemplatePdfPath→TemplateOdtPath y ResultPdfPath→ResultOdtPath. Histórico de informes PDF previos no descargable desde el nuevo endpoint.
- Endpoint:
GET /api/reports/{requestId}/odt con Content-Type: application/vnd.oasis.opendocument.text.
- Backoffice:
Validación ODT sustituye a Validación PDF; ApiTester descarga report.odt.
- Tamaño máximo de plantilla: 200 MB.