Releases: protoLabsAI/google-plugin
Release list
v0.5.0 — contacts, docs create, own-calendar events
Three tools that finish the personal-assistant loop:
contacts_search— names → email addresses across saved AND auto-collected contacts, so "draft an email to Mike" can find Mike.docs_create— a NEW private Google Doc with initial text. Create-only: existing docs are never edited.calendar_create_event— timed or all-day events on your own calendar. Takes no attendees — inviting people emails them, and this plugin never sends.
contacts.readonly, contacts.other.readonly, documents, now in the connect defaults). Tokens minted earlier keep working for everything else and return a readable insufficient-scope error on the new tools until you hit Reconnect in the Google panel.
15 → 18 tools · 63 host-free tests.
v0.4.0 — triage + scheduling batch
Six new tools, all on scopes existing tokens already carry (no re-consent):
gmail_label— add/remove labels by name (auto-creates missing),archive=Trueremoves INBOX. Adding TRASH/SPAM is refused — the plugin still never deletes.- Attachments —
gmail_get_threadlists them;gmail_get_attachmentreturns text content or saves binaries into the agent workspace. gmail_list_drafts/gmail_update_draft— find and rewrite drafts in place (reply headers + thread preserved). Still draft-only, never sends.calendar_availability— free/busy blocks for scheduling questions.calendar_search— text search across past + future events.
9 → 15 tools · 56 host-free tests.
v0.3.0 — gmail_mark_read
gmail_mark_read(message_ids | thread_id) — clears the UNREAD label from up to 1000 messages (or a whole thread) for inbox triage. Deliberately the only mailbox mutation beyond drafts: never archives, deletes, or sends. Uses the gmail.modify scope existing tokens already carry — no re-consent needed.
v0.2.0 — one-click OAuth connect, Drive, hardened core
Highlights
- One-click OAuth connect (#2): paste an OAuth client id + secret into Settings once, hit Connect Google in the console view — the plugin runs the consent flow, stores the refresh token in the untracked
secrets.yaml, and it takes effect immediately. No more manual token minting. Public callback is gated by a single-use TTL state nonce. - Drive module (#4):
drive_search(full-text) +drive_read(Docs → text, Sheets → CSV, Slides → text; binary files refuse readably) — the first proof of the additive-module architecture. - Hardened core (#3): errors carry Google's own message instead of a bare status code; 401s retry once with a fresh token; the token cache is thread-safe; multi-word Gmail labels quote correctly.
- Repo standard (#1): host-free 44-test suite + CI, version-coherence enforcement, and two flat-repo pytest traps fixed and pinned by tests (
calendar.pystdlib shadow →gcal.py; no top-level relative imports in__init__.py).
Setup
See the README's Connect (one-click OAuth) section — 5-minute Google Cloud client setup, then connect from the console.
Requires protoAgent ≥ 0.71.0.