github xberg-io/xberg v1.2.5

2 hours ago

1.2.4 was tagged but never reached a package registry: its generated binding files still
named 1.2.3, so its publish run was cancelled. 1.2.5 is the first published release carrying
the 1.2.4 changes below in addition to its own.

Fixed

  • (python): a config field holding a nested data-carrying enum is no longer dropped by
    from_json / to_json.
    The Python DTOs marked every field whose type transitively held
    a data enum as #[serde(skip)] -- CaptioningConfig.llm and ChunkingConfig's nested
    options among them -- so a JSON payload round-tripped through such a config silently lost
    those fields. Regenerated on alef 0.92.1, whose Python emitter no longer treats a
    serializable enum wrapper as opaque. (alef#394)
  • (ppt): a legacy .ppt's embedded OLE objects are extracted. A Word document or Excel
    sheet inserted as an object -- the way PowerPoint 97-2003 decks routinely carry a table --
    lives in the deck's ExOleObjStg records, which the extractor walked over as opaque bytes,
    so the slide came out as its title and nothing else. The .pptx path already recursed into
    ppt/embeddings/; the legacy path now does the same: each embedded object's storage is
    resolved through the persist chain (so a superseded save's copy is never read),
    decompressed when the record says so, identified by its root stream (WordDocument,
    Workbook/Book, PowerPoint Document, or an OPC Package) and extracted into
    children as slide<N>/oleObject<id>.bin with the slide whose shape displays it. The
    decompressed size is bounded by max_embedded_file_bytes (falling back to
    max_archive_size), the object count by max_files_in_archive, and max_archive_depth = 0
    disables the recursion, as for .pptx. Metafile presentation pictures (EMF/WMF) are still
    not emitted as images. (GH#1660)
  • (pdf): a ruled table drawn one bar per cell no longer loses all but its last two rows.
    Word draws cell borders as per-cell filled bars with a corner square at every crossing, so
    every vertical rule terminates at every horizontal rule. The section-divider split, which
    reads a full-width rule that no vertical rule runs through as the boundary between two
    stacked form sections, therefore treated every internal rule of such a table as a divider,
    cut the table into one-row pieces and discarded the pieces below the cell minimum -- a
    12-row table came back as 11 | 290, 12 | 300. A rule that every vertical rule stops at
    carries no section information when the same is true of every other rule on the table, so
    a table whose internal rules all qualify is now left whole; a form whose sections' rules
    stop at a minority of the rules still splits. (GH#1656)

Don't miss a new xberg release

NewReleases is sending notifications on new releases.