Historical docgen changelog
Preserved release history of the discontinued docgen CLI and Rust crate.
These releases describe the discontinued docgen CLI and Rust crate. Typst package versions use a separate namespace; see Versions.
[0.7.2] - 2026-05-07
Changed
- Installation: Removed Homebrew support; curl install script is now the recommended method
- README: Clarified that
docgen compilepasses--font-path fontsautomatically
[0.7.1] - 2026-05-07
Fixed
- Font path not passed to typst:
docgen compilenow passes--font-path fontstotypst compile, so bundled fonts are found as documented - Hardcoded document language: All templates now read
languagefromcompany.jsoninstead of always using"de"; addedget-language(company)helper tostyles.typ
[0.7.0] - 2026-04-12
Added
- More integrated diagram layouts: Added
timeline,swimlane,quadrant, androadmapto the built-indiagramdocument type - More diagram examples: Added showcase examples for all four new layouts under
examples/
Fixed
- Parallel compile race in local template updates:
.docgen/templates/now uses a version marker and lock file to avoid concurrent delete/extract failures during paralleldocgen compileruns
[0.6.12] - 2026-04-11
Added
- Integrated diagram document type: New
diagramtemplate with internal preprocessing and automatic layout rendering Supportstree/hierarchical,flow/layered,mindmap/radial, and simplearchitecturediagrams No manual positioning required in JSON No external Typst packages required - CLI support for diagram JSON:
docgen compile diagram.jsonnow routes diagram documents through the embedded Rust renderer - Example diagrams: Added four showcase examples under
examples/diagram-flowdiagram-mindmapdiagram-orgchartdiagram-architecture
[0.6.11] - 2026-01-27
Changed
- Task-list template: Description now renders inline after title with
--separator Previously: Description on separate line with vertical spacing Now: Compact inline display, reducing visual clutter
[0.6.10] - 2026-01-27
Added
- Display options for all templates:
show-title-pageandshow-footerFunction-based templates (8):show-title-page: trueandshow-footer: trueparameters task-list, documentation, concept, contract, protocol, specification, proposal, sla Inline/accounting templates (9):show_footerflag viadata.metadata.show_footerinvoice, offer, credit-note, delivery-note, letter, order-confirmation, quotation-request, reminder, time-sheet Both default totrue— existing behavior is fully preserved Set tofalseto hide title page or footer
Removed
- Tag rendering removed from task-list template
Tags were visually disruptive and redundant with category headings
Tag data in
.typfiles is still accepted but no longer rendered
[0.6.9] - 2026-01-27
Fixed
- Critical: Fixed missing
#prefix for subtask rendering in task-list templateif "subtasks" in task ...inside content block was rendered as plain text Added#prefix so subtasks are now recursively rendered instead of showing raw Typst code Impact: Task lists with subtasks now display correctly
[0.6.8] - 2026-01-27
Fixed
- Critical: Fixed missing
#prefix instandard-title-pagesubtitle renderingv(10pt),align(center)andtext(...)were rendered as plain text instead of being executed as Typst functions Added#prefix to all function calls inside the content block Impact: Task list and other templates usingsubtitlenow display correctly instead of showing raw code Error:v(10pt) align(center)[ text(size: size-large, fill: color-text-light)[...] ]visible in PDF
[0.6.7] - 2026-01-27
Fixed
- Critical: Made
vat_breakdownoptional in offer template Offers without VAT (e.g., international offers) now compile successfully Template now checks ifvat_breakdownexists before accessing it Falls back to empty array()if not present Error:dictionary does not contain key "vat_breakdown"
[0.6.6] - 2026-01-27
Fixed
- Critical: Fixed incorrect
#prefix inside for-loop intotals-summary.typRemoved#fromrows.push()inside#forloop body (line 58) Context: Typst#for { }creates a code block where#is NOT allowed Impact: Invoices and offers now compile successfully Error:the character # is not valid in codeat line 58
[0.6.5] - 2026-01-27
Fixed
- Partial Fix: Added
#to code inside content blocks, but incorrectly added it inside for-loop body Note: v0.6.5 introduced a new error. Upgrade to v0.6.6 for complete fix
[0.6.4] - 2026-01-27
Fixed
- Partial Fix: Changed for-loop brackets from
[]to{}but missed#prefix Note: v0.6.4 didn’t fully fix the issue. Upgrade to v0.6.5 for complete fix
[0.6.3] - 2026-01-27
Fixed
- Critical: Fixed missing
#prefix in accounting templates causing function calls to render as text Fixedinvoice/default.typ: Added#to accounting-header, din5008-address-block, invoice-totals Fixedoffer/default.typ: Added#to accounting-header, din5008-address-block, invoice-totals Fixeddelivery-note/default.typ: Added#to accounting-header, din5008-address-block Fixedreminder/default.typ: Added#to accounting-header, din5008-address-block Fixedtime-sheet/default.typ: Added#to accounting-header, din5008-address-block Impact: PDFs now display correctly with rendered headers, addresses, and totals instead of raw code
[0.6.2] - 2026-01-27
Fixed
- Critical: Fixed metadata type handling in ALL title-page components
standard-title-page()now accepts both array and dictionary metadatadocument-title-page()already fixed in v0.6.1parties-title-page()now accepts both array and dictionary metadata Fixes compilation errors in credentials and contract templates Error:type array has no method pairswhen using array-based metadata - Type checking in all three title-page functions handles both data formats, so every template using title-page components works with either:
Array format:
[(key1, value1), (key2, value2)](used by some templates) Dictionary format:(key1: value1, key2: value2)(used by other templates)
[0.6.1] - 2026-01-27
Fixed
- Partial Fix: Fixed metadata type handling in
document-title-page()only Note: v0.6.1 missed fixes forstandard-title-page()andparties-title-page()Upgrade to v0.6.2 for complete fix
[0.6.0] - 2026-01-27
Breaking
- Simplification & code consolidation: complete architectural simplification following Unix philosophy — do one thing well, plain text over binary, composable tools, DRY (Don’t Repeat Yourself)
Removed
- SQLite database → Replaced with JSON files (
data/clients.json,data/projects.json,data/counters.json) - Interactive TUI → Removed 696 lines of terminal UI code
- Global package management → Removed 304 lines of dead code
- 5 dependencies removed:
rusqlite- No longer needed (JSON-based storage)dialoguer- No interactive promptsconsole- No terminal stylingcomfy-table- Output simplifiedlopdf- Was never used
Changed
- Data storage: Human-readable JSON files instead of binary SQLite
- CLI behavior: No arguments → shows help (was: interactive UI)
- Commands: All require explicit parameters (e.g.,
docgen client add --name "Name") - Binary size: ~20% smaller due to dependency reduction
- Git-friendly: JSON files can be diff’d, merged, and version controlled
Added
- New task-list template: Professional task/todo list template with checklists, priorities, categories, dependencies
- Client/Project delete commands:
docgen client delete <id>,docgen project delete <id> - 6 reusable components in
templates/common/:formatting.typ- Date/money formatting (9 templates)din5008-address.typ- DIN 5008 address blocks (9 templates)accounting-header.typ- Logo + metadata box (9 templates)unit-formatter.typ- Unit translations (4 templates)locale-helpers.typ- Locale string resolutiontotals-summary.typ- Right-aligned totals (4 templates) - 4 title-page components: standard, document, parties, enhanced (used by 9 templates)
- Integration tests: 14 test cases covering client, project, and delete operations
- Simpler workflow: Direct CLI commands integrate easily into scripts and AI workflows
- Code reduction: ~1,200+ lines of duplicate code eliminated ~710 lines in Phase 1 (formatting, DIN 5008, headers) ~100 lines in Phase 2 (units, totals) ~425 lines (title pages)
- CLI refactoring: Commands moved to
cli/src/commands/module, main.rs reduced by 333 lines (-23%)
Migration from v0.5.x: No migration tool needed - v0.6.0 had no production users.
If you used v0.5.x locally:
- Backup your data:
cp -r data/ data.backup/ - Upgrade:
brew upgrade docgen - No automatic migration - re-enter data via CLI or edit JSON files directly
JSON format:
// data/clients.json
[{"id":1,"number":1,"name":"Client Name","created_at":"2026-01-26T10:00:00Z", ...}]
// data/counters.json
{"client":0,"invoice":0,"offer":0,"credentials":0,"concept":0,"documentation":0}
[0.5.2] - 2026-01-25
Fixed
- Critical: JSON workflow template paths
Fixed: JSON documents (invoice, offer, credentials) used wrong template path
Changed from
templates/to.docgen/templates/for JSON workflow Fixed: Syntax error in offer template (extra closing brackets) Fixed:docgen initnow uses new v0.5.0 template system All JSON and .typ documents now work correctly
[0.5.1] - 2026-01-25
Fixed
- Critical: Templates now embedded in binary
Fixed: Templates were not extracted from binary (empty .docgen/templates/)
Templates are now embedded at compile-time using
include_dircrate Works immediately after installation without repository access Fixes issue wheredocgen template initcreated empty directory
[0.5.0] - 2026-01-25
Breaking
- Project-local template system: complete redesign of template architecture for portability and simplicity (see the migration guide below)
Old System (≤ 0.4.x):
- Templates installed globally in
~/Library/Application Support/typst/packages/ - Required manual version management
- Not portable across machines
- Hard to customize
New System (0.5.0+):
- Standard templates in
.docgen/templates/(auto-updated, not in Git) - Custom templates in
templates/(stable, in Git) - Everything project-local - works on any machine
- Simple forking workflow for customization
Added
docgen template init- Initialize project templatesdocgen template fork <name> --name <custom>- Fork and customize templatesdocgen template list- List standard and custom templatesdocgen template update- Manually update standard templates- Auto-update on compile - Standard templates sync with docgen version automatically
.gitignoremanagement - Auto-adds.docgen/to gitignore
Changed
- Template imports now use project-relative paths:
Standard:
#import "/.docgen/templates/concept/default.typ": conceptCustom:#import "/templates/my-concept/default.typ": my_concept - No more package installation - Templates copied to project instead
- Documentation rewritten - New workflow explained in README
Removed
- No longer neededdocgen template install- No longer neededdocgen template removeGlobal package management- All templates are project-local nowVersion pinning in imports- Standard templates always current
Migration guide (0.4.x → 0.5.0) for existing projects:
- Run
docgen template initin your project - Update .typ files to use new import paths:
// Old: #import "@local/docgen-concept:0.4.12": concept // New: #import "/.docgen/templates/concept/default.typ": concept - If you had customized templates, fork them:
docgen template fork concept --name my-concept # Then copy your customizations to templates/my-concept/
Benefits: clone project → works immediately (no setup); upgrade docgen → templates auto-update; custom templates protected from updates; everything in Git → full version control.
[0.4.12] - 2025-01-25
Added
- Automatic Template Package Installation
docgen compilenow automatically installs templates as Typst packages if not already installed No manualdocgen template installrequired anymore Ensures templates are always at the correct version matching docgen CLI - Versionless Package Imports (Recommended)
Symlinks created for versionless imports:
@local/docgen-concept→ latest version Old versioned imports still supported:@local/docgen-concept:0.4.12Recommendation: Use versionless imports to always get latest template version Templates automatically update when docgen is updated
Changed
- Documentation Updated for Versionless Imports
Example code now shows recommended versionless syntax:
#import "@local/docgen-concept": conceptInstallation message shows both versionless (recommended) and versioned options Solves fundamental versioning problem: templates now sync with docgen version
Fixed
- Template Version Mismatch Fixed: Hard-coded template versions in .typ files prevented updates from taking effect Fixed: Users had to manually update version numbers in all .typ files after docgen update Now: Versionless imports automatically use newest installed version
[0.4.11] - 2025-01-25
Fixed
- Concept Template Logo & Footer
Logo now displays correctly in package-import mode (
@local/docgen-concept) Logo pre-loading: Automatically convertscompany.logopath to_logo_imageFooter: Changed to simple one-line layout (like credentials template) Format: [Client Name] | [Page X] | [Date] Previous multi-line accounting-footer was incorrect for concept documents Concept template now matches credentials template layout (clean & minimal)
[0.4.10] - 2025-01-25
Fixed
- Concept Template Footer
Concept template now uses
accounting-footer(same as invoice/offer) Consistent business footer across all accounting and concept documents
Changed
- Complete Footer Migration to Centralized System
All accounting templates now use
accounting-footerfromcommon/footers.typ: invoice, offer, credit-note, delivery-note, letter order-confirmation, quotation-request, reminder, time-sheet Concept template migrated toaccounting-footerCode reduction: -515 lines of duplicate footer code eliminated Total footer code reduction (v0.4.9 + v0.4.10): -806 lines Single source of truth for all footer layouts
[0.4.9] - 2025-01-25
Added
- Centralized Footer System in
templates/common/footers.typdocument-footer: Standard 4-column footer for most document-layout templatesminimal-footer: Simplified 3-column footer for protocol templatesaccounting-footer: Business-specific footer (reserved for invoice/offer) Reduces code duplication: -291 lines of duplicate footer code eliminated Single source of truth for footer styling and layout
Fixed
- Logo Loading in Package-Import Mode
Logo now displays correctly when using
#import "@local/docgen-documentation:0.4.9"Fixed: Logo pre-loading (_logo_image) only worked in JSON-workflow mode Changed to directimage()loading fromcompany.logopath Works in both package-import and JSON-workflow modes - Footer Consistency Across Templates All document-layout templates now use centralized footer functions Unified footer styling and layout across documentation, concept, protocol, specification, contract, proposal, sla
Changed
- Updated all document-layout templates to use
common/footers.typ:documentation/default.typ: Usesdocument-footerwith created_at styleconcept/default.typ: Usesdocument-footerwith created_at styleprotocol/default.typ: Usesminimal-footer(3-column)specification/default.typ: Usesdocument-footerwith version/last_updated stylecontract/default.typ: Usesdocument-footerwith created_at styleproposal/default.typ: Usesdocument-footerwith created_at stylesla/default.typ: Usesdocument-footerwith version/last_updated style
[0.4.8] - 2025-01-25
Fixed
- Content-Loading in protocol und specification Templates
Protocol Template rendert jetzt vollständigen Content aus JSON
Specification Template rendert jetzt vollständigen Content aus JSON
Syntax-Fehler mit
#v()in protocol Template behoben<Zeichen in JSON-Beispielen escaped um “unclosed label” Fehler zu vermeiden
Changed
- Protocol Template: Content-Loading von
eval(data.content, mode: "markup")zueval("[" + data.content + "]", mode: "code") - Specification Template: Content-Check vereinfacht (direkter Zugriff auf
data.content)
[0.4.7] - 2025-01-25
Fixed
- CLI Template-Erkennung für alle 12 neuen Template-Typen erweitert letter, credit-note, reminder, delivery-note, order-confirmation, time-sheet, quotation-request contract, protocol, specification, proposal, sla
- Init-Befehl erstellt jetzt Verzeichnisse für alle Template-Typen
Changed
docgen compileerkennt automatisch alle neuen Template-Typen anhand von Pfad und Dateinamendocgen initerstellt vollständige Verzeichnisstruktur mit allen 17 Template-Typen
[0.4.6] - 2025-01-25
Added
- 12 neue Template-Typen für verschiedene Geschäftsdokumente:
letter- Geschäftsbrief (DIN 5008 konform)credit-note- Gutschrift für Rückerstattungenreminder- Zahlungserinnerung/Mahnung (Multi-Level)delivery-note- Lieferschein mit Unterschriftsfeldernorder-confirmation- Auftragsbestätigungtime-sheet- Stundenzettel für Arbeitszeiterfassungcontract- Vertrag mit Unterschriftsseiteprotocol- Besprechungsprotokoll/Meeting Notesspecification- Spezifikation/Pflichtenheft mit Code-Blocksproposal- Projektvorschlag für Agenturen/Beratungsla- Service Level Agreementquotation-request- Angebotsanfrage an Lieferanten - Neue Datei
DOCUMENT-TYPES.mdmit vollständiger Übersicht aller Templates - Umfangreiche Examples für IT-Consultant Szenario hinzugefügt: 12 vollständige JSON-Beispieldateien README mit Verwendungsbeispielen und Szenarien Realistische Projekt-Workflows (API-Migration, Cloud-Migration)
Fixed
- Footer-Position in
conceptunddocumentationTemplates von 100pt auf 80pt korrigiert - Logo-Pfade konsistent in allen Templates (
"/" + company.logoodercompany._logo_image)
Changed
- Alle Templates verwenden jetzt konsistente Margins und Footer-Position (80pt)
- Templates folgen durchgängig Accounting-Layout oder Document-Layout Standards
[0.4.5] - 2025-01-24
Fixed
- Invoice footer positioning corrected (bottom margin 122pt → 80pt)
- Logo path consistency across all templates
- Consistent use of
image("/" + company.logo)pattern
[0.4.4] - 2025-01-23
Fixed
- Invoice footer positioning issue (bottom margin reduced from 122pt to 71pt)
[0.4.3] - 2025-01-23
Added
- Initial templates for invoice, offer, concept, documentation, credentials
[0.4.2] - 2025-01-20
Added
- Basic CLI functionality
- Template generation support
- JSON-based document workflow
[0.4.1] - 2025-01-18
Added
- Initial release
- Core template system
- Typst integration