* fix(paths): expand ~ in user-provided file paths
When users specify paths with ~ (e.g., --out ~/Downloads/file.pdf) and
the path is quoted in the shell command, the tilde is not expanded by
the shell. This caused files to be written to a literal ~/Downloads
directory instead of the user's home directory.
Add config.ExpandPath() function that expands ~ at the beginning of
paths to the user's home directory. Apply this fix to all user-provided
file paths across:
- gmail attachment download (--out)
- drive download/export (--out)
- drive upload (localPath argument)
- auth token export (--out)
- auth credentials/import/keep (input paths)
- gmail thread attachments (--out-dir)
- gmail send/drafts (--attach)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(lint): address wrapcheck and wsl issues
* fix(calendar): support ISO 8601 time format and add 'list' alias
- Add parsing for ISO 8601 datetime with numeric timezone without colon
(e.g., 2026-01-09T16:38:41-0800), which is the format produced by
macOS `date +%Y-%m-%dT%H:%M:%S%z`
- Add 'list' as an alias for 'events' subcommand for more intuitive CLI
usage (gog calendar list instead of gog calendar events)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* chore(changelog): note PR #56
* chore(lint): dedupe file string
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
When the original message has a Reply-To header, use that address
instead of From when auto-populating recipients for --reply-all.
This follows RFC 5322 email conventions for reply handling.
- Add ReplyToAddr field to replyInfo struct
- Fetch Reply-To header in fetchReplyInfo()
- Update buildReplyAllRecipients to prioritize Reply-To over From
- Add tests for Reply-To header behavior
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add --reply-all flag that automatically populates recipients from the
original message when replying. Original sender and To recipients go
to To, original Cc recipients go to Cc. Filters out self and
deduplicates addresses. Explicit --to/--cc flags override auto-populated
recipients.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add --limit as alias for --max across all commands
- Add --thread-id and --in-reply-to as aliases for --reply-to-message-id
- Enhance unknown flag errors with "Run with --help" hint
- Add tests for Kong parse error formatting and flag aliases
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>