feat: meeting export enhancements — HTML/PDF, batch (all meetings), section filters, retry & analytics - #714
Open
akamabu wants to merge 4 commits into
Open
Conversation
### Feature 1: Smart Meeting Auto-Naming (LLM-powered)
- Add Tauri command `api_auto_generate_title` that generates meeting
titles from transcript using the configured LLM
- Add `api_should_auto_name` to detect default timestamp titles
- Frontend hook `useAutoNaming` with auto-rename-if-needed flow
- Enables renaming meetings WITHOUT generating a full summary
### Feature 2: Vietnamese Quick Summary Templates
- Add 3 new built-in templates for Vietnamese users:
- `vietnamese_meeting`: General meeting notes (Tóm tắt, Quyết định,
Hành động, Thảo luận)
- `vietnamese_standup`: Daily standup (Hôm qua/Hôm nay/Vướng mắc)
- `vietnamese_interview`: Interview evaluation (Kỹ năng, Điểm mạnh/yếu,
Quyết định)
- Templates support Vietnamese-language LLM output natively
- All templates registered in defaults.rs with tests
### Feature 3: Export to Markdown
- Add Tauri command `api_export_meeting_markdown` with save dialog
- Add `api_get_meeting_markdown` for clipboard export
- Frontend hook `useExportOperations` with file + clipboard modes
- Export button added to SummaryUpdaterButtonGroup
- Output includes metadata, transcript with timestamps, and AI summary
- Add useAutoNaming hook to page-content.tsx with auto-rename-if-needed - Add useExportOperations hook with file export + clipboard copy - Pass hooks through TranscriptPanel to TranscriptButtonGroup - Add Wand2 'Rename' button (shows spinner during generation) - Add Download 'Export' dropdown with 'Export to File' + 'Copy Markdown' - Fix export_markdown.rs pool access (method, not field) Refs: #auto-naming, #export-markdown
…ry/analytics - Rust: add api_get/export_meeting_html, api_get/export_meetings_markdown/html with ExportSection (full/summary/transcript) and batch multi-meeting combine - Rust: add unit tests for build_meeting_markdown (full, missing summary/transcript, corrupt JSON, HTML escaping, summary/transcript-only, batch combine, section parse) - TS: rewrite useExportOperations with retry loop, lastError/error boundary, HTML+PDF export (browser print-to-PDF), batch export (all meetings), section param - TS: extract pure logic into lib/export-errors.ts + lib/title-utils.ts with bun:test - TS: add useAutoNaming local fallback (isDefaultTitle) + shouldAutoName(title) helper - UI: SummaryUpdaterButtonGroup export dropdown with format/section selector and batch (all meetings) options; wire through SummaryPanel + page-content - auto_naming.rs: LLM title fallback to heuristic on provider error
Author
|
Hi maintainers — this PR is ready for review. It adds HTML/PDF + batch meeting export, section filtering, resilient retry/error handling, and analytics, with Rust unit tests and The CI workflows on this head commit haven't run yet (showing as pending). Could a maintainer approve the workflow run so checks can complete? Happy to address any feedback or split the PR if you'd prefer smaller pieces. Thanks! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Comprehensive meeting-export enhancement: new formats (HTML/PDF), batch export of all meetings, section filtering (summary/transcript/full), resilient error handling, and analytics tracking.
Changes
Rust (
frontend/src-tauri)api_get/export_meeting_html,api_get/export_meetings_markdown,api_get/export_meetings_htmlExportSectionenum (Full|SummaryOnly|TranscriptOnly) applied to all single + batch renderersgenerate_fallback_title) on provider errorbuild_meeting_markdown/build_meeting_html(full doc, missing summary/transcript, corrupt JSON, HTML escaping, summary/transcript-only, batch combine, section parse)TypeScript (
frontend)useExportOperationsrewritten: retry loop (3 attempts, exponential backoff),lastError/error boundary, HTML + PDF (browser print-to-PDF) export, batch export (all meetings),sectionparamlib/export-errors.ts(ExportError,classifyExportError,userFriendlyMessage) andlib/title-utils.ts(isDefaultTitle,generateHeuristicTitle) withbun:testuseAutoNaminglocal fallback (isDefaultTitle) +shouldAutoName(title)helperSummaryUpdaterButtonGroupexport dropdown with format/section selector + batch (all meetings) actions, wired throughSummaryPanel+page-contentAnalytics
export_markdown_batch,export_html_batch,export_markdown_batch_all,export_html_batch_all,export_pdfAnalytics.trackCopy(summary/transcript)Test plan
cargo test -p meetily(export_markdown module)bun testforlib/export-errors.test.ts+lib/title-utils.test.tsNotes
window.print()(browser print-to-PDF) using the HTML renderer — no extra native dependency.