Skip to content

Commit f6587f3

Browse files
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)
1 parent 7bfa633 commit f6587f3

42 files changed

Lines changed: 6664 additions & 168 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.lefthook.yml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
pre-commit:
2+
parallel: true
3+
commands:
4+
fmt-check:
5+
glob: "*.go"
6+
run: gofmt -l . | grep . && echo "Run 'gofmt -w .' to fix" && exit 1 || exit 0
7+
lint:
8+
glob: "*.go"
9+
run: golangci-lint run --timeout 2m
10+
build:
11+
glob: "*.go"
12+
run: go build ./...
13+
14+
pre-push:
15+
parallel: true
16+
commands:
17+
test:
18+
run: go test ./...

0 commit comments

Comments
 (0)