Peter Steinberger
e58ccfb87b
fix: refine gmail thread modify command
2025-12-31 13:08:27 +01:00
Alex Hillman
356058ac7c
Add thread modify command for batch label operations
...
This adds a new `gmail thread modify` subcommand that uses the Gmail API's
Threads.Modify endpoint to apply label changes to all messages in a thread
at once.
Usage:
gog gmail thread modify <threadId> --add "Label1,Label2" --remove "Label3"
Features:
- Resolves label names to IDs automatically
- Supports both adding and removing labels in a single operation
- JSON output mode for programmatic use
BREAKING CHANGE: The `gmail thread` command is now a parent command with
subcommands. Use `gmail thread get <id>` instead of `gmail thread <id>`.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-31 03:56:56 +00:00
Peter Steinberger
05069448ce
feat(docs): create/copy/info/text
2025-12-26 22:24:22 +01:00
Peter Steinberger
f158aa7ebf
fix(gmail): thread attachment downloads
2025-12-26 21:34:08 +01:00
Peter Steinberger
2b86e5c7fe
style(googleauth): improve success footer contrast
2025-12-26 20:56:43 +01:00
Peter Steinberger
f6910f4395
fix(drive): permissions list without empty page token
2025-12-26 20:53:06 +01:00
Peter Steinberger
c888a85b1c
test: add regression coverage
2025-12-26 19:20:53 +01:00
Peter Steinberger
eedfba8a5f
fix(sheets): avoid --json flag collision
2025-12-26 19:20:44 +01:00
Peter Steinberger
720dec78ee
fix(googleauth): restore accounts template
2025-12-26 19:20:40 +01:00
Peter Steinberger
4713e3f8d9
refactor(googleauth): embed html templates
2025-12-26 18:32:19 +01:00
Peter Steinberger
ba6e44775c
test(cmd): cover docs/sheets/slides exports
2025-12-26 18:32:13 +01:00
Peter Steinberger
30fbee4a8f
refactor(cmd): unify drive exports and table output
2025-12-26 18:32:06 +01:00
Peter Steinberger
9c1f2aaabb
feat: add docs/slides/sheets export commands
2025-12-26 18:01:07 +01:00
Peter Steinberger
c205ace50e
test(drive): add export format coverage
2025-12-26 17:50:34 +01:00
Peter Steinberger
0a84c2b34a
feat(drive): export docs as docx
2025-12-26 17:44:48 +01:00
Peter Steinberger
1b69c2e334
feat(drive): support --format for Google Docs exports
2025-12-26 17:41:15 +01:00
Peter Steinberger
6c4ee18d83
test(gmail): cover padded base64 attachments
2025-12-26 17:32:47 +01:00
Peter Steinberger
9ff2928dda
fix(gmail): make attachment download reliable
2025-12-26 17:24:38 +01:00
Peter Steinberger
f044d59522
chore(cli): remove --debug flag
ci / test (push) Has been cancelled
2025-12-26 16:20:33 +01:00
Peter Steinberger
cd793f2c65
chore(cli): prefer --verbose over --debug
2025-12-26 16:14:02 +01:00
Peter Steinberger
9d8d36a94e
feat: take over PR #18 integration
2025-12-26 15:35:15 +01:00
Peter Steinberger
04299d2248
test: enforce drive flag contract
2025-12-26 10:32:50 +00:00
Peter Steinberger
cba4f1fc97
feat(cli)!: normalize drive parent flags
2025-12-26 10:32:45 +00:00
Peter Steinberger
7663e52643
fix(calendar): confirm only on delete
2025-12-26 10:21:08 +00:00
Peter Steinberger
4744cfbaf4
fix: apply confirmations to destructive cmds
2025-12-26 10:20:03 +00:00
Peter Steinberger
1a0f03ced7
fix: satisfy govet shadow lints
2025-12-26 10:16:08 +00:00
Peter Steinberger
18f2a9fd4f
feat(cli)!: switch to --json/--plain
2025-12-26 10:15:12 +00:00
Peter Steinberger
65b5ccb303
test: fix linter shadows
2025-12-26 09:35:39 +00:00
Peter Steinberger
9817b49d8e
test: expand paging and reply coverage
2025-12-26 09:34:59 +00:00
Peter Steinberger
7c00bba72e
feat(drive): page permissions list
2025-12-26 09:34:52 +00:00
Peter Steinberger
150f4aa411
feat(cli)!: normalize flags and args
2025-12-26 09:21:28 +00:00
Peter Steinberger
79d76c7b9a
feat(calendar): add --max and --page to calendars
2025-12-26 08:49:08 +00:00
Peter Steinberger
e8dc1af8a1
refactor(secrets): remove Keychain trust env toggle
2025-12-26 08:33:34 +00:00
Peter Steinberger
3f2f858820
fix(secrets): trust Keychain application by default
2025-12-26 08:20:50 +00:00
salmonumbrella
fa2ee8fb60
fix(ci): update golangci-lint to v2 and fix config
...
- Update Makefile to install golangci-lint v2.1.6
- Migrate .golangci.yml to v2 format
- Add exclusions for common false positives
- Remove unused helper functions
2025-12-24 20:19:39 -08:00
salmonumbrella
f4243c33a8
feat(calendar): add --all flag to events command
...
List events from all calendars at once with merged, time-sorted output.
2025-12-24 19:49:30 -08:00
salmonumbrella
e7fae164f4
feat: add context propagation, security fixes, and new features
...
Drive:
- Add context propagation to all API calls
- Add path traversal security fix in download
Gmail:
- Add context propagation to labels and thread commands
- Simplify MIME building (remove unused ReplyTo, BodyHTML)
- Add --from flag for send-as aliases in send and drafts
- Simplify base64 decoding
- Add path traversal security fix in attachments
Calendar:
- Add needsAction status support to respond command
- Add --comment flag for response comments
- Add organizer check to prevent self-response
Auth:
- Add browser-based account management command (auth manage)
- Add web UI for managing connected accounts
Maintenance:
- Update golangci-lint config for v2 compatibility
2025-12-24 19:14:01 -08:00
salmonumbrella
d2be673d10
feat: add retry logic, concurrent fetching, and extended commands
...
Resilience:
- RetryTransport with circuit breaker for 429/5xx resilience
- Exponential backoff with jitter, respects Retry-After headers
- Circuit breaker auto-resets after 30s of successful requests
Performance:
- Concurrent gmail thread fetching (fixes N+1 query pattern)
- Bounded concurrency with semaphore (max 10 parallel)
New calendar commands:
- colors: list available event/calendar colors
- conflicts: check availability across calendars
- search: find events by text query
- time: show current time in multiple timezones
New gmail commands:
- autoforward: get/enable/disable auto-forwarding
- delegates: list/add/remove mail delegation
- filters: list/create/delete inbox filters
- forwarding: manage forwarding addresses
- sendas: manage send-as aliases
- vacation: get/enable/disable vacation responder
- batch: bulk operations (mark-read, archive, label, delete)
- watch: Pub/Sub push with webhook forwarding
New services:
- Sheets: read/write/append spreadsheet data
- Tasks: manage tasklists and tasks
Developer experience:
- Shell completion (bash, zsh, fish, powershell)
- version command with build info
- --debug flag for verbose logging
- lefthook for pre-commit hooks
Documentation:
- Expanded README with examples
- Gmail watch/Pub/Sub guide (docs/watch.md)
- Architecture spec (docs/spec.md)
- Release process (docs/RELEASING.md)
2025-12-24 17:51:21 -08:00
Peter Steinberger
76937a074d
test: cover gmail push historyId formats
2025-12-24 18:31:40 +00:00
Peter Steinberger
21af864b50
fix: accept numeric gmail historyId
2025-12-24 18:31:40 +00:00
Peter Steinberger
20f217f923
fix: add people auth service
2025-12-24 19:22:48 +01:00
Peter Steinberger
4f695ababe
fix: avoid err shadowing in gmail watch
2025-12-24 19:00:07 +01:00
Peter Steinberger
aea131abb9
test: cover gmail watch flow
2025-12-24 17:53:48 +00:00
Peter Steinberger
b59ea1e8cb
feat: add gmail watch and history commands
2025-12-24 17:53:48 +00:00
Peter Steinberger
93c35dd73c
test(tasks): add validation coverage
2025-12-24 18:52:33 +01:00
Peter Steinberger
d50d7f7bcc
feat(tasks): add Tasks support
2025-12-24 18:50:59 +01:00
Peter Steinberger
277143ab3f
test(gmail): expand MIME + docs
2025-12-24 18:25:18 +01:00
Shane Lindsay
5a7afe5143
feat(gmail): restore reply-to-address header
2025-12-24 18:25:18 +01:00
Shane Lindsay
0774fb9c64
feat(gmail): support HTML bodies
2025-12-24 18:25:18 +01:00
Peter Steinberger
e1bc61d26b
test(gmail): expand base64url decoding coverage
2025-12-24 18:09:42 +01:00