v0.4.0 - Google productivity suite
runline 0.4.0 — Google productivity suite
Seven new first-party plugins covering the Google user-facing APIs, all with per-plugin OAuth2 flows and full action parity with the underlying Google APIs. Verified end-to-end against real accounts.
New plugins
| Plugin | Actions | Highlights |
|---|---|---|
| googleCalendar | 11 | calendar + event; freeBusy, listInstances, move, RRULE with local nextOccurrence resolution via rrule |
| googleDrive | 20 | file, folder, fileFolder, drive; multipart + resumable uploads, streamed downloads, shared-drive CRUD, permissions |
| googleSheets | 13 | spreadsheet + sheet; append / update / upsert by match column (or row_number), auto-column-add, keepFirstRow on clear, raw batchUpdate passthrough |
| googleDocs | 21 | create, get (simple text flatten), batchUpdate passthrough, first-class helpers for text / table / bullets / named ranges / headers / footers / positioned objects |
| googleSlides | 7 | presentation + page, replaceText, listSlides, thumbnail export, batchUpdate |
| googleContacts | 10 | contact CRUD + list (connections or searchContacts) + group CRUD; auto-etag on update |
| googleTasks | 12 | taskList + task CRUD, reorder / reparent via move, clear completed |
Gmail
Existing gmail plugin kept intact; minor comment scrub.
Infrastructure
- Every action now handles
undefinedinput cleanly —input ?? {}guard added across all eight Google plugins. rruleimported via default + destructuring to survive CJS interop under Node ESM.- README plugin table regenerated; filtered to required auth fields so internal cache fields don't leak into the docs.
Testing
All eight plugins verified end-to-end from a clean workspace: OAuth flow → authed connection → action call returning real data (profile, calendar list, drive search, spreadsheet / doc / slide creation, contact groups, task lists). Public-read sharing tested via googleDrive.file.share, permanent delete tested via file.delete.