Changelog¶
Changelog¶
Unreleased¶
Security¶
- bump Pillow pin to
>=12.1.1,<13to fix CVE-2026-25990 (PSD out-of-bounds write); previous pin>=10.0,<12blocked the fix (#141) - validate
heading_styles.size,title_style.size, andcode_fontsizeagainst dangerous LaTeX macros and restrictheading_styles.levelto 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¶
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¶
0.4.2 (2026-03-20)¶
Bug Fixes¶
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_docsupport for custom DOCX styling via--reference-doc - Feat:
url_footnote_thresholdmetadata 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-exportpulls 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'sconvert_callouts()to process them correctly - Fix: footnotes (
[^name]/[^name]:) now render properly — added+footnotesextension togfm-tex_math_dollarsformat string - Fix: pass
--resource-pathto 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 doctorcommand for dependency checking- PDF output via tectonic (XeLaTeX)
- DOCX output via pandoc