mirror of
https://github.com/openclaw/lobster.git
synced 2026-07-21 11:55:25 -04:00
[PR #2] [MERGED] feat(email): add gog.gmail.* commands and email.triage #3
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/openclaw/lobster/pull/2
Author: @vignesh07
Created: 1/22/2026
Status: ✅ Merged
Merged: 1/22/2026
Merged by: @vignesh07
Base:
main← Head:feat/email-triage-v1📝 Commits (2)
a9f2608feat(email): add gog.gmail.* commands and email.triageb46a1c9fix(gog): translate --query and unwrap gog v0.9 gmail.search JSON📊 Changes
7 files changed (+457 additions, -0 deletions)
View changed files
📝
src/commands/registry.ts(+6 -0)➕
src/commands/stdlib/email_triage.ts(+105 -0)➕
src/commands/stdlib/gog_gmail_search.ts(+92 -0)➕
src/commands/stdlib/gog_gmail_send.ts(+109 -0)➕
test/email_triage.test.ts(+91 -0)➕
test/fixtures/gog_gmail_search.json(+29 -0)➕
test/fixtures/mock-gog.mjs(+25 -0)📄 Description
Summary
Adds the first email workflow primitives to Lobster:
gog.gmail.search— fetch Gmail threads viagog gmail search(JSON)gog.gmail.send— send draft messages viagog(supports--dryRun)email.triage— read-only, deterministic bucketing + summaryThis enables pipelines like:
Notes
email.triageis read-only (it does not send). The recommended flow is: triage → agent drafts replies → approve →gog.gmail.send.--queryflag for ergonomics, butgogv0.9.x expects the query as a positional argument (gog gmail search <query> ...). We translate accordingly.gog gmail search --jsonreturns{ threads: [...] }(sometimes wrapped in an array);gog.gmail.searchunwraps/flat-maps this so downstream commands receive per-thread items.Testing
pnpm test(builds + runsdist/test/*.test.js, includes an end-to-end mockgogfixture)pnpm lint🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.