Commit Graph

635 Commits

Author SHA1 Message Date
Peter Steinberger
82faae75cd fix: credit contacts Go build fix in changelog (#355) (thanks @laihenyi)
Some checks failed
ci / test (push) Has been cancelled
ci / worker (push) Has been cancelled
ci / darwin-cgo-build (push) Has been cancelled
ci / windows-build (push) Has been cancelled
2026-03-07 14:51:37 +00:00
Peter Steinberger
0ed89978d3 fix(sheets): cover rich-text hyperlinks in links command (#374) (thanks @omothm) 2026-03-03 05:25:56 +00:00
Omar Othman
ddc1a232e0 feat(sheets): add links command to retrieve cell hyperlinks
Add `gog sheets links` (alias: hyperlinks) command that retrieves
hyperlinks embedded in cells via spreadsheets.get with IncludeGridData.
Mirrors the existing `notes` command pattern using the CellData.Hyperlink field.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-03 05:25:56 +00:00
Peter Steinberger
9eb42121e9 docs: update drive ls --all docs/changelog (#107) (thanks @struong) 2026-03-03 05:06:17 +00:00
Steven Truong
14af8f2604 feat(drive): add --all flag to ls for global file listing 2026-03-03 05:06:17 +00:00
Peter Steinberger
e909bc8aad fix: honor dry-run for gmail bulk shortcuts (#385) (thanks @yeager) 2026-03-03 04:33:41 +00:00
Daniel Nylander
74d8089a15 feat(gmail): add archive, read, unread, trash convenience commands
New top-level Gmail commands for common label operations:

- `gog gmail archive` — remove INBOX label (archive)
- `gog gmail read` — remove UNREAD label (mark as read)
- `gog gmail unread` — add UNREAD label (mark as unread)
- `gog gmail trash` — add TRASH + remove INBOX label

All commands support:
- Message IDs as positional args: `gog gmail archive ID1 ID2`
- Query-based bulk ops: `gog gmail archive -q 'is:unread older_than:7d'`
- `--max` to limit query results (default 100)
- JSON output with `--json`
- Automatic batching (1000 per request, Gmail API limit)

These wrap the existing `gog gmail batch modify` with ergonomic
shortcuts for the most common Gmail operations.
2026-03-03 04:33:41 +00:00
Peter Steinberger
7abf494408 fix(ci): clear pre-existing lint baseline and docs updates 2026-03-03 04:06:29 +00:00
Peter Steinberger
0041b1f86a fix(auth): document gmail scope + readonly scope behavior (#113) (thanks @salmonumbrella) 2026-03-03 03:58:53 +00:00
salmonumbrella
59fb51276f fix(auth): resolve main rebase fallout 2026-03-03 03:58:53 +00:00
salmonumbrella
6eab7fd95a fix(lint): add blank lines for wsl_v5 linter
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-03 03:58:53 +00:00
salmonumbrella
25040fe7fe fix(auth): add readonly gmail and drive scope handling 2026-03-03 03:58:53 +00:00
Peter Steinberger
0aaafbe663 docs(readme): document drafts quote behavior 2026-03-03 03:39:26 +00:00
Peter Steinberger
ce9a89adfe fix(gmail): harden draft quote thread fallback (#394) (thanks @salmonumbrella) 2026-03-03 03:37:05 +00:00
salmonumbrella
5234214de3 feat(gmail): add --quote support to draft replies 2026-03-03 03:37:05 +00:00
Peter Steinberger
c2e7754a35 fix(cmd): repair rebase fallout in docs, time, and drive tests 2026-03-03 03:27:32 +00:00
Peter Steinberger
8b9f8316ab build(deps): update go, worker, and toolchain pins 2026-03-03 03:27:30 +00:00
Peter Steinberger
9ae2860754 ci(github): move CI jobs to blacksmith runners 2026-03-03 03:27:22 +00:00
salmonumbrella
b341ac1f78 docs(drive): add comment explaining shared drives query params
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-03 03:04:43 +00:00
salmonumbrella
427801d95c test(calendar): add test for --to monday end-of-day expansion
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-03 03:04:43 +00:00
salmonumbrella
65c33c8ef4 test(calendar): add tests for --to tomorrow and --to now
Add integration tests verifying isDayExpr() integration:
- TestResolveTimeRangeWithDefaultsToTomorrowEndOfDay: verifies
  --to tomorrow expands to end-of-day (23:59:59.999999999)
- TestResolveTimeRangeWithDefaultsToNowNoExpansion: verifies
  --to now does NOT expand to end-of-day (remains current time)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-03 03:04:43 +00:00
salmonumbrella
1b44490a24 test(calendar): add unit tests for isDayExpr function
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-03 03:04:43 +00:00
salmonumbrella
8955d73482 fix(drive): include all drives in ls 2026-03-03 03:04:43 +00:00
salmonumbrella
c8f16ebd4c fix(calendar): expand date-only --to 2026-03-03 03:04:43 +00:00
salmonumbrella
88fba24f05 fix(drive): include shared drives in search 2026-03-03 03:04:43 +00:00
salmonumbrella
2459923d28 fix: address linter issues in docs/drive commands
- Fix variable shadowing in DocsUpdateCmd (govet: shadow)
- Extract formatAuto constant to satisfy goconst linter

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-03 03:04:43 +00:00
salmonumbrella
f05a11c662 fix(drive): validate download formats 2026-03-03 03:04:43 +00:00
salmonumbrella
a5de5491ea fix(lint): resolve goconst and shadow lint errors
- Add boolTrue/boolFalse constants for string "true"/"false" values
- Rename shadowed err variable to writeErr in test file

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-03 03:04:43 +00:00
salmonumbrella
725d176143 docs(drive): add comment explaining shared drives query params
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-03 03:04:43 +00:00
salmonumbrella
4da63c9037 test(calendar): add test for --to monday end-of-day expansion
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-03 03:04:43 +00:00
salmonumbrella
9fea0341a1 test(calendar): add tests for --to tomorrow and --to now
Add integration tests verifying isDayExpr() integration:
- TestResolveTimeRangeWithDefaultsToTomorrowEndOfDay: verifies
  --to tomorrow expands to end-of-day (23:59:59.999999999)
- TestResolveTimeRangeWithDefaultsToNowNoExpansion: verifies
  --to now does NOT expand to end-of-day (remains current time)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-03 03:04:43 +00:00
salmonumbrella
e4d303f143 test(calendar): add unit tests for isDayExpr function
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-03 03:04:43 +00:00
salmonumbrella
2888f991e1 fix(drive): include all drives in ls 2026-03-03 03:04:43 +00:00
salmonumbrella
7e6ee3f1ba fix(calendar): expand date-only --to 2026-03-03 03:04:43 +00:00
salmonumbrella
b4d0bf9780 fix(docs): clarify update command help text
Distinguish the update command from write by specifying it inserts
text at a specific index position in the document.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-03 03:04:43 +00:00
salmonumbrella
10cafc986b test(docs): add invalid index validation tests for DocsUpdateCmd
Test that --index flag properly rejects zero and negative values
with the expected error message.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-03 03:04:32 +00:00
salmonumbrella
feae67ba9d test(docs): add --file input tests for write and update commands
Cover the readTextInput function and file path expansion logic
by testing DocsWriteCmd and DocsUpdateCmd with temp files.
Also test error cases: non-existent file, empty file, and
mutual exclusion of --text and --file flags.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-03 03:04:32 +00:00
salmonumbrella
dc45fe6db9 test(drive): cover invalid download format 2026-03-03 03:04:32 +00:00
salmonumbrella
c595f934bb fix(drive): include shared drives in search 2026-03-03 03:04:31 +00:00
salmonumbrella
ffa8631b52 fix: address linter issues in docs/drive commands
- Fix variable shadowing in DocsUpdateCmd (govet: shadow)
- Extract formatAuto constant to satisfy goconst linter

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-03 03:04:31 +00:00
salmonumbrella
44673ff169 feat(docs): add write and update commands 2026-03-03 03:04:31 +00:00
salmonumbrella
510fbc444a fix(drive): validate download formats 2026-03-03 03:03:50 +00:00
Viz
e4bf53be2d
Merge pull request #382 from Danielkweber/daniel/feat/sedmat-paragraph-addressing
feat(sedmat): paragraph addressing and structure introspection
2026-03-02 10:27:29 -05:00
daniel
ef0e8aaea6 fix: suppress nilerr lint for non-address passthrough in parseAddress
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-01 14:23:38 -05:00
daniel
85cfbe1e9c style: fix gofumpt struct field alignment in test file
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-01 14:19:46 -05:00
daniel
3e85dcf8ba feat(sedmat): add paragraph addressing and structure introspection
Add paragraph-number addressing (5d, 3s/.*/text/, $a/text/) and
`docs structure` / `docs cat -N` commands for paragraph-level
document manipulation.

New commands:
- `docs structure` — numbered paragraph list with types (text + JSON)
- `docs cat -N` — cat with [N] paragraph prefixes

Address syntax for `docs sed`:
- Nd (delete paragraph N), N,Md (range delete), $d (last)
- Ns/pat/repl/ (substitute within paragraph N)
- Na/text/ (append after N), Ni/text/ (insert before N)
- --tab flag for multi-tab document support

Testing:
- 24 new unit tests covering parseAddress (13 cases),
  parseFullExpr_Addressed (10 cases), resolveAddress (6 cases),
  and buildParagraphMap (8 cases). All pass.
- Manual testing against live Google Docs verified: structure,
  cat -N, addressed substitute, delete, append, insert, dollar
  addressing, and range delete.
- Bug found and fixed during manual testing: addressed a/text/
  and i/text/ were parsed by parseAICommand (expects a/pat/text/)
  which put text in the pattern field instead of replacement,
  producing empty paragraphs. Added parseAddressedAICommand for
  the single-field addressed form.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-01 14:15:08 -05:00
Viz
cb16e4f42f
Merge pull request #359 from visionik/pr/docs-sed
feat(docs): add sedmat — sed-like document formatting DSL and gog docs <id> sed command
2026-02-26 13:56:16 -05:00
Vinston
507fb6f2a2 chore: add pre-commit hook for fmt-check and lint 2026-02-26 13:53:01 -05:00
Vinston
269f167e96 fix: resolve govet/shadow, nilnil, and unparam lint errors
- Rename inner err to err2 in docs_sed.go and docs_sed_manual.go to fix shadow warnings
- Return non-nil empty response from batchUpdate when no requests (nilnil)
- Hardcode test constants for buildDocWithInlineImage helper (unparam)
2026-02-26 13:50:46 -05:00
Vinston
54465897b7 style: apply goimports + gofumpt formatting 2026-02-26 13:43:49 -05:00