Peter Steinberger
8e878fe485
fix(cli): avoid vet shadow
ci / test (push) Has been cancelled
ci / worker (push) Has been cancelled
ci / darwin-cgo-build (push) Has been cancelled
2026-01-10 03:13:12 +01:00
Peter Steinberger
ecef6a0f10
fix(cli): infer default account
2026-01-10 03:12:21 +01:00
Peter Steinberger
7b664d5ac4
chore(release): fix verify-release.sh for tap
2026-01-10 02:12:57 +01:00
Peter Steinberger
0af3c331ff
fix(release): embed version in artifacts
ci / test (push) Has been cancelled
ci / worker (push) Has been cancelled
ci / darwin-cgo-build (push) Has been cancelled
2026-01-10 02:06:20 +01:00
Peter Steinberger
c15727e9ab
release: v0.5.1
ci / test (push) Has been cancelled
ci / worker (push) Has been cancelled
ci / darwin-cgo-build (push) Has been cancelled
2026-01-09 23:38:59 +01:00
Peter Steinberger
c428b0af5d
chore(release): add windows arm64 target
2026-01-09 23:37:22 +01:00
Peter Steinberger
810e0c5257
release: v0.5.0
ci / test (push) Has been cancelled
ci / worker (push) Has been cancelled
ci / darwin-cgo-build (push) Has been cancelled
2026-01-09 22:56:59 +01:00
Peter Steinberger
e05b08992c
fix(gmail): avoid err shadow in drafts update
2026-01-09 22:54:51 +01:00
Peter Steinberger
8d918ceb53
Merge pull request #55 from antons/feature/update-drafts
...
feat(gmail): add drafts update command
2026-01-09 21:48:17 +00:00
Peter Steinberger
95e883dc8f
fix(gmail): preserve draft thread headers on update ( #55 ) (thanks @antons)
2026-01-09 22:47:52 +01:00
Anton Sotkov
a528467dcd
refactor(drafts): share compose core
2026-01-09 22:46:04 +01:00
Anton Sotkov
21fbf16390
feat(gmail): add drafts update command
2026-01-09 22:46:04 +01:00
Peter Steinberger
6d462c5864
fix(lint): satisfy wsl
2026-01-09 21:05:08 +01:00
Peter Steinberger
b44d1d5d97
feat(auth): add groups service
2026-01-09 21:05:05 +01:00
Peter Steinberger
4af0cb83f1
fix(auth): verify account matches authorized email
2026-01-09 17:30:19 +01:00
Peter Steinberger
b14c0ce908
fix(auth): filter non-token keys in auth tokens list
2026-01-09 16:43:14 +01:00
Peter Steinberger
3606b751ad
docs(auth): link OAuth client setup
2026-01-09 15:29:20 +01:00
Peter Steinberger
bfe101a45f
fix(lint): satisfy wsl/err113
2026-01-09 13:26:52 +01:00
Peter Steinberger
82a75efc41
docs(readme): remove lefthook mention
2026-01-09 13:22:21 +01:00
Peter Steinberger
334570fa8e
fix(auth): skip keychain access for file backend
2026-01-09 11:29:36 +01:00
Peter Steinberger
7e12fa212f
docs(readme): refresh features and auth/keyring
2026-01-09 11:08:15 +01:00
Peter Steinberger
962ccf3353
feat(auth): hint keyring file password
2026-01-09 10:52:52 +01:00
Peter Steinberger
abb3e63638
test(gmail): prevent watch serve CI hang
2026-01-09 10:35:25 +01:00
Peter Steinberger
dacfa8a178
fix(cli): keyring config UX + make gog args
2026-01-09 10:32:33 +01:00
Peter Steinberger
fde7e6ffd4
ci: fix fmt-check and lint
2026-01-09 10:09:53 +01:00
Peter Steinberger
269f8e5a1f
feat(auth): add keyring backend config command
2026-01-09 10:05:40 +01:00
Peter Steinberger
ba41885b1c
test: raise coverage to 85%
2026-01-09 09:18:16 +01:00
Peter Steinberger
6c6a354e54
Merge pull request #53 from visionik/fix/recurring-event-timezone
...
fix(calendar): add timezone to EventDateTime for recurring events
2026-01-09 05:00:19 +00:00
Peter Steinberger
00dcff3f20
fix(calendar): infer timeZone for recurring events ( #53 , thanks @visionik)
2026-01-09 05:58:01 +01:00
Jonathan Taylor
6ec670d0df
fix(calendar): add timezone to EventDateTime for recurring events
...
Google Calendar API requires an explicit TimeZone field on EventDateTime
when creating recurring events. Without it, the API returns:
'Missing time zone definition for start time.'
This change extracts the timezone from the RFC3339 offset in the --from/--to
values and maps common US offsets to IANA timezone names.
Fixes recurring event creation via:
gog calendar create primary --summary 'Test' \
--from '2026-01-08T11:00:00-05:00' \
--to '2026-01-08T11:30:00-05:00' \
--rrule 'RRULE:FREQ=DAILY;INTERVAL=28'
2026-01-09 05:53:40 +01:00
Peter Steinberger
8fe47fce70
Merge pull request #35 from salmonumbrella/feature/email-tracking
...
feat(tracking): add optional email open tracking
2026-01-09 03:51:04 +00:00
Peter Steinberger
8b18ae87c9
fix(lint): resolve wsl lint findings ( #35 )
...
Thanks @salmonumbrella.
Co-authored-by: salmonumbrella <salmonumbrella@users.noreply.github.com>
2026-01-09 04:49:53 +01:00
Peter Steinberger
852083613f
fix(lint): tidy wsl spacing ( #35 )
...
Thanks @salmonumbrella.
Co-authored-by: salmonumbrella <salmonumbrella@users.noreply.github.com>
2026-01-09 04:41:05 +01:00
Peter Steinberger
6547ac0b04
fix(lint): satisfy fmt/lint checks ( #35 )
...
Thanks @salmonumbrella.
Co-authored-by: salmonumbrella <salmonumbrella@users.noreply.github.com>
2026-01-09 04:39:24 +01:00
Peter Steinberger
7beb1bc52f
fix(lint): tidy test lint findings ( #35 )
...
Thanks @salmonumbrella.
Co-authored-by: salmonumbrella <salmonumbrella@users.noreply.github.com>
2026-01-09 04:34:38 +01:00
Peter Steinberger
47c06796b0
fix(lint): tidy cmd/ui lint findings ( #35 )
...
Thanks @salmonumbrella.
Co-authored-by: salmonumbrella <salmonumbrella@users.noreply.github.com>
2026-01-09 04:34:31 +01:00
Peter Steinberger
f60cf96b00
fix(tracking): remove duplicate ciphertext error ( #35 )
...
Thanks @salmonumbrella.
Co-authored-by: salmonumbrella <salmonumbrella@users.noreply.github.com>
2026-01-09 04:22:23 +01:00
Peter Steinberger
c1ebd60210
test: expand coverage and tracking regressions ( #35 )
...
Thanks @salmonumbrella.
Co-authored-by: salmonumbrella <salmonumbrella@users.noreply.github.com>
2026-01-09 04:21:16 +01:00
Peter Steinberger
2fe888e1fc
chore(deps): update tracking deps ( #35 )
...
Thanks @salmonumbrella.
Co-authored-by: salmonumbrella <salmonumbrella@users.noreply.github.com>
2026-01-09 04:21:16 +01:00
salmonumbrella
de6a6574da
Fix lint errors for email tracking
2026-01-09 04:21:05 +01:00
Peter Steinberger
088bb6c801
fix(secrets): linux dbus guard ( #51 , thanks @salmonumbrella)
2026-01-09 01:58:50 +01:00
salmonumbrella
64aa17f167
fix(secrets): detect headless Linux and avoid D-Bus hangs ( #45 )
...
On headless Linux systems (e.g., Raspberry Pi), gnome-keyring may be
installed but not running. When this happens, the keyring library's
attempt to connect to D-Bus SecretService hangs indefinitely.
This change adds two layers of protection:
1. D-Bus detection: If DBUS_SESSION_BUS_ADDRESS is not set and backend
is "auto", automatically use file backend (avoids hang entirely)
2. Timeout fallback: If D-Bus is present but unresponsive, timeout after
5 seconds with guidance to use file backend
The D-Bus detection handles the common case cleanly without goroutine
leaks. The timeout is a safety net for edge cases where D-Bus is set
but SecretService is still unresponsive.
Fixes #45
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 01:55:37 +01:00
Peter Steinberger
ce861c8b31
chore(tracking): wsl fix
2026-01-09 01:53:42 +01:00
Peter Steinberger
29181a3890
chore(tracking): lint cleanup
2026-01-09 01:53:42 +01:00
Peter Steinberger
120a5aa066
refactor(tracking): extract deploy helpers
2026-01-09 01:53:42 +01:00
Peter Steinberger
7fe4ff4da7
Merge pull request #52 from antons/fix/normalize-mime
...
fix(gmail): normalize MIME types in multipart bodies
2026-01-09 00:14:53 +00:00
Peter Steinberger
e3ffd7240f
chore: changelog + test hardening ( #52 , thanks @antons)
ci / test (push) Has been cancelled
ci / worker (push) Has been cancelled
ci / darwin-cgo-build (push) Has been cancelled
2026-01-09 01:13:23 +01:00
Anton Sotkov
edb8200cc1
fix(gmail): normalize MIME types in multipart bodies
...
Body extraction compared exact MIME types; parts often include params like
"text/plain; charset=utf-8", so multipart/alternative returned empty body
(null in JSON). Normalize MIME types (lowercase/trim/strip params) so
plain/html parts are found, preferring plain text. Also accept padded
base64url defensively.
2026-01-09 01:11:01 +01:00
Peter Steinberger
74f7c15d66
fix(gmail): avoid nil tracking config
2026-01-09 00:01:48 +01:00
Peter Steinberger
818c4b2af3
fix(gmail): handle reply info pointer
2026-01-09 00:01:05 +01:00