# Changelog ## 0.3.0 - 2026-07-23 - Adopt the Toolbox SDK 0.2.0 shared header with standard Help and app-specific Gitea source controls, centered app identity, Personalize, and Apps menus. - Apply the shared system, light, and dark appearance choice to the OneNote reader while retaining authored page fonts, colors, highlights, and ink. - Scope reader controls so application button styling cannot override the shared Toolbox header. ## 0.2.1 - 2026-07-22 - Preserve the intrinsic aspect ratio of embedded images when their recorded display width is reduced to fit the reader, including linked images. - Allow the page reader to scroll when its Toolbox grid area is constrained. ## 0.2.0 - 2026-07-22 - Open unfragmented FSSHTTPB package-store `.one` sections through the same bounded page/content model as desktop revision stores. - Interpret desktop and FSSHTTPB `.onetoc2` stores into authored section-group, section, page, and subpage trees, with identity fallback and deterministic handling of missing, duplicate, cyclic, and unlisted entries. - Add complete-set CAB extraction for multi-cabinet packages, including split CFDATA blocks, spanning files, codec continuity, link validation, aggregate limits, and browser selection of one `.onepkg` plus its `.cab` companions. - Add native MSZIP and Quantum decoding alongside uncompressed and LZX CAB support. - Parse and render structured outlines, rich-text formatting and safe links, tables, signature/header-validated PNG/JPEG images, decoded ink, layout hints, and declared embedded attachments. - Add local structured JSON, text, Markdown, inert HTML, and deterministic static notebook ZIP exports with diagnostics, unsupported-content summaries, normalized resource names, and bounded output. - Add independent parser, image-preview, display, TOC, cabinet-set, and export resource budgets. Oversized images remain explicitly downloadable but are not copied or decoded for automatic preview. - Verify the implementation against the redistributable OneNote golden corpus, a licensed five-part libmspack fixture, adversarial malformed inputs, and two private `.onepkg` files without committing their bytes. Known unsupported areas remain fragmented FSSHTTPB data-element reconstruction, equations, audio/video, pixel-perfect page placement, and untested OneNote producer variants. ## 0.1.0 - 2026-07-22 - Add a standalone React/Vite reader integrated with Toolbox SDK 0.1.1, including `AppShell`, the Toolbox manifest, nested-path-safe assets, and the Portal release contract. - Add a worker-hosted native TypeScript parser for a desktop OneNote revision-store subset: bounded file-node and object-space traversal, property sets, page metadata, titles, timestamps, levels, and plain text. - Add in-memory CAB enumeration and extraction for uncompressed and LZX folders, including checksums, strict paths, explicit resource limits, and cooperative cancellation between data blocks. - Open contained `.one` sections independently and expose package entries, section/page navigation, partial failures, and structured diagnostics. - Verify a Joplin `.one` golden with three pages and a Joplin LZX `0x1203` `.onepkg` golden with seven entries, five sections, and seven pages. Also verify rust-cab uncompressed and LZX `0x1303` fixtures. - Add deterministic static release packaging, SHA-256 sidecars, pinned-source provenance, fixture licensing, and security/support documentation. Known unsupported areas are FSSHTTP-packaged `.one`, MSZIP and Quantum CAB extraction, multi-cabinet archives, `.onetoc2` hierarchy/order interpretation, visual content, attachments, layout/format fidelity, links, and exports.