Skip to content

Changelog

Changelog

Unreleased

Security

  • bump Pillow pin to >=12.1.1,<13 to fix CVE-2026-25990 (PSD out-of-bounds write); previous pin >=10.0,<12 blocked the fix (#141)
  • validate heading_styles.size, title_style.size, and code_fontsize against dangerous LaTeX macros and restrict heading_styles.level to a sectioning-command allowlist (section, subsection, subsubsection, paragraph, subparagraph) (#148)

0.5.3 (2026-04-28)

Bug Fixes

  • bump pytest to >=9.0.3 to address CVE-2025-71176 (#150) (7c8ae72)
  • expose public load_default_yaml, stop importing private _load_default_yaml in CLI (#154) (2fdeab0)
  • log YAML parse failure before auto-quote retry in stage1_vault (#156) (40357a4)
  • reject invalid url_strategy at config load and runtime (#158) (4bb95b6)
  • resolve merge conflicts with main (ebf71ec)
  • resolve merge conflicts with main after public API rename (18107d8)
  • reuse _resolve_path in _build_mermaid_config to eliminate DRY violation (#159) (86a29bb)
  • validate heading/title/code style fields against dangerous LaTeX macros (#148) (f477533)

0.5.2 (2026-04-13)

Bug Fixes

  • bump Pillow to >=12.1.1,<13 to address CVE-2026-25990 (#141) (eb1b8d4)
  • validate code_fontsize and table_fontsize before LaTeX insertion (#134) (6ad9396)
  • validate header/footer config strings against dangerous LaTeX macros (#133) (a6bf828)

Documentation

  • sync documentation with codebase changes (7c2eecc)

0.5.1 (2026-04-05)

Bug Fixes

  • parameterize dict type hint in _build_config (c2d25f1), closes #122
  • reformat test_cli.py and test_stage4_pandoc.py to pass ruff format check (8646843)
  • resolve merge conflicts with origin/main (d362755)
  • validate config strings passed as pandoc CLI arguments (#106) (13e0311)
  • validate unicode_chars LaTeX values against dangerous macros (#105) (23801c0)

Documentation

  • sync documentation with codebase (94ae2ec)
  • sync documentation with codebase changes (56dafad)

0.5.0 (2026-03-27)

Features

  • add code_fontsize config and fvextra line-wrapping for PDF code blocks (2179f51)
  • code_fontsize config + fvextra line-wrapping + ragged2e table hyphenation (63ddad3)
  • support non-SVG image formats in export pipeline (9c92ced)
  • support non-SVG image formats in export pipeline (eb9677f), closes #70

Bug Fixes

  • narrow except clause in stage3_image.py to specific Pillow exceptions (#91) (3770c0b)
  • replace RuntimeError with MermaidRenderError in stage3_mermaid.py (#89) (1795562)
  • replace ValueError with UnsupportedFormatError in init.py (#90) (758d99a)

Documentation

  • add docstrings to re.sub callback closures in pipeline stages (#94) (9898361)

0.4.2 (2026-03-20)

Bug Fixes

  • wrap rsvg-convert subprocess in SVGConversionError handler (#63) (fc2bca8)

0.4.1 (2026-03-18)

Bug Fixes

  • auto-fix CI failures (attempt 1) (b7afe6e)
  • escape double quotes in callout titles before Pandoc interpolation (3c9a55f)
  • escape double quotes in callout titles before Pandoc interpolation (908b501), closes #57

0.4.0 (2026-03-17)

Features

  • redesign factory dashboard from append-only to edit-in-place (096e24b)
  • redesign factory dashboard to edit-in-place (497fd99)

Bug Fixes

  • add vault boundary check for SVG paths in stage3_svg (#35) (c50c550)
  • regenerate pixi.lock in release-please PR (9999c1d)
  • regenerate pixi.lock in release-please PR (d9914c7)
  • replace broken plugin approach in pr-code-review with direct prompt + post step (351f2ec)

Documentation

  • add agentic engineering and missing constitution principles to CLAUDE.md (8fc9345)
  • add agentic engineering, change safety, and missing constitution principles to CLAUDE.md (e12e3bb)
  • sync documentation with codebase (e6373e9)
  • sync documentation with codebase changes (a34c2ff)

0.3.0 (2026-03-09)

  • Feat: DOCX output now applies Lua filters for callout boxes, footnote promotion, and page breaks
  • Feat: SVG images are converted to PNG for DOCX compatibility
  • Feat: optional reference_doc support for custom DOCX styling via --reference-doc
  • Feat: url_footnote_threshold metadata injected into DOCX output for long-URL footnote promotion
  • Docs: add MkDocs + Material documentation site with auto-generated API reference
  • Docs: deploy to GitHub Pages at neuralsignal.github.io/obsidian-export/

0.2.4 (2026-03-09)

  • Feat: add conda-forge recipe (recipe/recipe.yaml) -- conda install obsidian-export pulls pandoc, tectonic, and librsvg automatically
  • Docs: rewrite Installation section with conda-forge/pixi as primary install method

0.2.3 (2026-03-09)

  • CI: add factory-orchestrator workflow to sweep orphaned issues (GITHUB_TOKEN cascade fix)
  • CI: increase dep-audit max-turns from 20 to 30 (match template default)
  • CI: add auto-tag workflow for automatic releases on merge to main

0.2.2 (2026-03-08)

  • Chore: sync pixi.toml version to match pyproject.toml

0.2.1 (2026-03-08)

  • Fix: bump version for PyPI release

0.2.0 (2026-03-08)

  • Fix: callouts now render as colored tcolorbox boxes instead of plain blockquotes — stage1 no longer strips [!TYPE] labels, allowing stage2's convert_callouts() to process them correctly
  • Fix: footnotes ([^name] / [^name]:) now render properly — added +footnotes extension to gfm-tex_math_dollars format string
  • Fix: pass --resource-path to pandoc so relative image paths resolve from the document's directory
  • Enhancement: added unicode character mappings for , ·, and box-drawing characters (└├─│)

0.1.1 (2026-03-08)

  • Fix: escape LaTeX special characters (_, $, &, %, #, etc.) in document titles injected into header/footer preamble blocks — prevents "Missing $ inserted" errors when filenames contain underscores

0.1.0 (2026-03-08)

Initial release.

  • 5-stage pipeline: vault operations, preprocessing, Mermaid rendering, SVG conversion, Pandoc output
  • Obsidian syntax stripping: wikilinks, embeds, callouts, Relations sections
  • Frontmatter cleaning with tag-to-keyword conversion
  • Recursive embed resolution with circular reference detection
  • Mermaid diagram rendering via mmdc
  • SVG-to-PDF conversion via rsvg-convert
  • Profile management CLI (obsidian-export profile create/list/show/delete)
  • User styles directory (~/.obsidian-export/styles/)
  • Config merging: user YAML overrides bundled defaults
  • obsidian-export doctor command for dependency checking
  • PDF output via tectonic (XeLaTeX)
  • DOCX output via pandoc