Repository navigation
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This branch was previously deployed
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.
Problem
Recorded meeting audio must be exportable as ordinary files — a hard requirement (owner records in Singapore, a single-party-consent jurisdiction; audio is the evidence). Document exports also needed the full meeting record. Board: MEET-7.
Solution
Per-block Export audio: single chunk → direct download; multi-chunk → ZIP (fflate, already a dep; stored not recompressed — exact original bytes, no stitching/transcoding) with lexicographically-safe, human-readable entry names (
001-00h00m45s.webm). Untranscribed and mid-recording chunks are always exportable; failures abort cleanly (no partial zips) with retry. Document exports: md/html/pdf carry transcript + summary + notes + per-chunk audio links; page-zip/site exports embed the audio bytes; collection dedupes viacollectAssetIds. Export works read-only (reading ≠ writing). Stacked on #372 — merge after it.Key files:
packages/ui/src/blockeditor/{meetingAudioExport.ts,meetingAudio.ts,exportBlocks.ts},packages/ui/src/export/{exportAssets.ts,toHtml.ts}, testsmeetingAudioExport.test.tsx+exportMeeting.test.ts.Before / After
Visual delta is one button in the existing block chrome; full block captures live in #369.
Test procedure
VITEST_MAX_WORKERS=1 pnpm verifygreen incl. e2e. Targeted:pnpm --filter @book.dev/ui exec vitest run src/blockeditor/__tests__/meetingAudioExport.test.tsx src/export/__tests__/exportMeeting.test.ts.Operational notes
No deps added (fflate reused), no env/migration. ~175MB transient memory at a 2h-meeting envelope (sequential fetch, in-memory zip) — acceptable, documented. PDF can't embed audio; the link text renders visibly so absence is never silent. Desktop save path unchanged (
downloadBlob); live desktop validation rides MEET-8's signed-build acceptance.Verify: green serialized. Reviews cleared: product/metrics (Parker — BLOCK→CLEAR after naming fix), code (Quinn). Final HEAD b8ca146.
🤖 Generated with Claude Code