Context
PR #144 attempted this but was based on a pre-refactor codebase and was closed. The existing ReportExporter already has save_markdown() and save_json(). The CLI already has save and save json REPL commands. Only save_pdf() is missing.
Goal
Add PDF export capability to ReportExporter using fpdf2.
Scope
- Add
ReportExporter.save_pdf(intent, analysis, response_text) -> Path method
- Add
save_last_report(fmt="pdf") branch in ConversationEngine
- Add
save pdf / /save pdf REPL commands in CLI
- Register
fpdf2>=2.7.0 as optional [pdf] dependency in pyproject.toml
- Tests for PDF generation (verify file created, non-zero size, contains expected text)
Estimate
~50-80 lines of new code. Small, self-contained task.
Context
PR #144 attempted this but was based on a pre-refactor codebase and was closed. The existing
ReportExporteralready hassave_markdown()andsave_json(). The CLI already hassaveandsave jsonREPL commands. Onlysave_pdf()is missing.Goal
Add PDF export capability to
ReportExporterusingfpdf2.Scope
ReportExporter.save_pdf(intent, analysis, response_text) -> Pathmethodsave_last_report(fmt="pdf")branch inConversationEnginesave pdf//save pdfREPL commands in CLIfpdf2>=2.7.0as optional[pdf]dependency inpyproject.tomlEstimate
~50-80 lines of new code. Small, self-contained task.