Commit Graph

328 Commits

Author SHA1 Message Date
Peter Steinberger
0af3c331ff fix(release): embed version in artifacts
Some checks failed
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
Some checks failed
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
Some checks failed
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)
Some checks failed
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
Peter Steinberger
af6e659f72 refactor(tracking): reduce send complexity 2026-01-09 00:00:22 +01:00
Peter Steinberger
5e65fc9626 Merge branch 'land/pr-35' 2026-01-08 23:56:58 +01:00
Peter Steinberger
b55a3ed076 docs(changelog): thank contributor for #35 2026-01-08 23:56:01 +01:00