Implements sync-gvoice command that imports SMS, MMS, and call records
from a Google Takeout Voice export. Follows the established adapter
pattern from the iMessage integration, implementing gmail.API interface
to plug into the existing sync infrastructure.
Key features:
- Parses HTML conversation files for text messages and call logs
- Handles 1:1 texts, group conversations, and call records
- Deterministic message IDs via SHA-256 for idempotent re-imports
- Indexes ~120k entries from ~50k files in ~6 seconds
- Full import at ~1,500 messages/sec
Summary
sync-gvoicecommand that imports SMS, MMS, and call records from Google Takeout Voice exportsgmail.APIinterface for plug-and-play integrationNew files
internal/gvoice/client.go- gmail.API implementation over Takeout HTMLinternal/gvoice/parser.go- HTML conversation parserinternal/gvoice/models.go- conversation and message typesinternal/gvoice/parser_test.go- parser testscmd/msgvault/cmd/sync_gvoice.go- CLI commandUsage
msgvault sync-gvoice --takeout-dir ~/path/to/Takeout/VoicePerformance