Skip to content

fix(google): validate Workspace integrations, return dropped fields and expose missing params - #9947

Merged
waleedlatif1 merged 4 commits into
stagingfrom
fix/google-suite-validation
Nov 12, 2026
Merged

waleedlatif1 merged 4 commits into
stagingfrom
fix/google-suite-validation

Conversation

@waleedlatif1

@waleedlatif1 waleedlatif1 commented Nov 12, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

  • Gmail: read, search, get thread, get draft and the Gmail trigger now return cc, bcc, replyTo, rfcMessageId, inReplyTo, references, snippet and internalDate. Before, Cc was dropped from every read path.
    • Search gains pageToken, nextPageToken and resultSizeEstimate, and its message fetches now run in bounded batches.
    • Send, draft and edit-draft gain an optional replyTo, which is header-sanitized.
    • The V2 block exposes the 11 registered but unreachable tools: labels, drafts and threads, including gmail_list_labels_v2.
    • An empty folder no longer reports an unexpected-format error.
    • Get thread and get draft bodies now come from nested and HTML-only parts.
  • Calendar: event tools return hangoutLink, conferenceData, reminders, recurrence, visibility, transparency, iCalUID, created/updated, attachments and more.
    • Create and update gain visibility, show-as, color, reminders and optional attendees. List gains updatedMin and timeZone, and V2 returns nextSyncToken.
    • The trigger payload adds the same fields.
  • Meet: participants return the signed-in user, and spaces return the moderation and artifact config.
  • Drive:
    • Get Content reads are now byte-capped and abortable. They previously used unbounded .text().
    • List and search gain orderBy, driveId and incompleteSearch.
    • Share requests Permission fields and gains expirationTime and allowFileDiscovery.
  • Docs:
    • Read now includes person, rich-link and date chip text, nested tables, and every tab (includeTabsContent, tabs).
    • Read also gains suggestionsViewMode and revisionId.
    • Write, insert and replace gain tabId, and replace gains searchByRegex.
  • Forms: responses, and the trigger for newly copied scripts, return respondentEmail and totalScore.
  • Sheets:
    • Read and Batch Read gain value and date render options.
    • Write, update, append and batch update return updatedData, which was previously requested but dropped.
    • Append honors Value Input Option.
    • Delete spreadsheet now works on shared drives.
  • Slides: read returns per-slide text and speaker notes, plus revisionId and locale. Get Page returns the missing Page fields.
  • Contacts: the person-field mask and output gain birthdays, events, relations, nicknames, structured address parts, department and more. Create and update gain birthday.
  • Tasks: tasks return hidden, links and assignmentInfo. List gains showAssigned, and the block exposes the existing hidden and completed filters plus parent and previous.
  • Groups:
    • Settings now sends alt=json; the API defaults to Atom.
    • Settings uses the correct default_sender field.
    • Update Settings had no inputs and always sent an empty patch. The block now has its settings inputs, and the block's settings output is populated.
    • List groups gains userKey, orderBy and sortOrder, and list members gains includeDerivedMembership.
  • Vault: list matters gains view and state. Export and saved query gain shared-drive inclusion (sent as sharedDrivesOption), exportFormat and dataScope; UNPROCESSED_DATA is limited to Mail and Groups.
  • All services: path IDs go through safeUrlPathSegment.
  • Backwards compatibility:
    • No param, subBlock id, operation value, tool id or output was removed or renamed, and no default changed. The one retype is the Gmail V2 labels output, from string to json, so it can hold the List Labels array. The trigger's comma-separated value still fits.
    • Every new param is optional and unset by default, and every new output is optional.
    • Behaviour changes for the same input, all fixes:
      • Docs Read content now includes chip and nested-table text.
      • Gmail Get Draft and Get Thread bodies are filled from nested and HTML-only parts.
      • Gmail Read on an empty folder returns "No messages found".
      • Drive Get Content errors past the 100 MB download and 10 MB export caps instead of buffering unbounded.
      • Invalid path ids (empty, ./.., or containing /) now fail before the request.

Type of Change

  • Bug fix
  • New feature (additive params and outputs)

Testing

  • New regression tests, each red on the pre-fix code:
    • Gmail Cc on single and multi-message reads
    • Gmail Reply-To emitted and sanitized through send, draft and edit-draft
    • Drive Get Content size caps
  • vitest over blocks/blocks.test.ts, tools/gmail, tools/google_sheets, tools/google_calendar, tools/google_drive/get_content.test.ts, blocks/blocks/google_drive.test.ts, lib/internal/gmail, lib/internal/google-vault and lib/webhooks/polling/google-calendar.test.ts: 110 passed
  • check-block-registry.ts origin/staging, check:tool-metadata, check:docs, check:integration-catalog and biome on the changed files pass. Type-check and check:audits run in CI.

Checklist

  • Code follows project style guidelines
  • Self-reviewed my changes
  • Tests added/updated and passing (new tests pass the test-audit authoring gate)
  • No new warnings introduced
  • I confirm that I have read and agree to the terms outlined in the Contributor License Agreement (CLA)

@vercel

vercel Bot commented Nov 12, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
docs Ready Ready Preview Nov 12, 2026 8:35pm UTC

Request Review

@cubic-dev-ai cubic-dev-ai Bot left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All reported issues were addressed across 190 files

Reply with feedback, questions, or to request a fix.

Turn on auto-fix | Re-trigger cubic

Comment thread apps/sim/blocks/blocks/google_docs.ts Resolved
Comment thread apps/sim/tools/google_sheets/read.ts Resolved
Comment thread apps/sim/tools/google_sheets/append.ts Resolved
Comment thread apps/sim/tools/google_contacts/types.ts Resolved
Comment thread apps/sim/tools/google_calendar/types.ts Resolved
Comment thread apps/sim/blocks/blocks/google_vault.ts Resolved
Comment thread apps/sim/tools/google_slides/read.ts Resolved
Comment thread apps/sim/tools/google_calendar/utils.ts Resolved
@greptile-apps

greptile-apps Bot commented Nov 12, 2026 •

Copy link
Copy Markdown
Contributor

RetriggerView in GreptileConfidence Score: 5/5

[High impact] The PR appears safe to merge; no new actionable issue was established.

Summary

This PR expands Google Workspace inputs and outputs, exposes more Gmail operations, and bounds Drive content reads.

  • Gmail results now include more message details.
  • Gmail search pages results and outgoing mail can set Reply-To.
  • The Gmail V2 block exposes more label, draft, and thread actions.
  • Calendar events accept more options and return more event details.
  • Drive content reads stop at size limits and can be cancelled.
  • Drive list, search, and sharing accept more controls.
  • Docs reads include more content and writes can target tabs.
  • Sheets reads and writes expose more value options and results.
  • Groups settings can be read and updated through block inputs.
  • Contacts, Forms, and Meet expose more Google response fields.
  • Slides, Tasks, and Vault expose more fields and query options.
  • Google API resource IDs are checked before they enter request paths.

Reviews (3) · Last reviewed commit: "fix(google): tighten Docs tab/number par..." · Reviewed by Greptile

Comment thread apps/sim/tools/google_sheets/read.ts Resolved
Comment thread apps/sim/blocks/blocks/gmail.ts Resolved
Comment thread apps/sim/blocks/blocks/gmail.ts Resolved
@waleedlatif1
waleedlatif1 force-pushed the fix/google-suite-validation branch from 02365f9 to d7f8c49 Compare November 12, 2026 20:16
@waleedlatif1

Copy link
Copy Markdown
Collaborator Author

@greptile

@waleedlatif1

Copy link
Copy Markdown
Collaborator Author

@cubic-dev-ai review this PR

@cubic-dev-ai

cubic-dev-ai Bot commented Nov 12, 2026

Copy link
Copy Markdown
Contributor

@cubic-dev-ai review this PR

@waleedlatif1 I have started the AI code review. It will take a few minutes to complete.

@cubic-dev-ai cubic-dev-ai Bot left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All reported issues were addressed across 193 files

Reply with feedback, questions, or to request a fix.

Turn on auto-fix | Re-trigger cubic

Comment thread apps/sim/tools/google_docs/utils.ts Resolved
Comment thread apps/sim/tools/google_slides/utils.ts Resolved
Comment thread apps/sim/tools/google_slides/utils.ts Resolved
Comment thread apps/sim/tools/google_docs/utils.ts Resolved
…nd expose missing params

Gmail read/search/thread/draft and the Gmail trigger now return Cc, Bcc,
Reply-To, Message-ID, In-Reply-To, References, snippet, and internalDate.
Sweeps Calendar, Meet, Drive, Docs, Sheets, Slides, Forms, Contacts, Tasks,
Groups, and Vault against the Google API references. All changes are
additive: no param, subBlock, operation, tool id, or output is removed or
retyped.
- Vault shared drives use sharedDrivesOption; reject unprocessed scope outside Mail/Groups
- Sheets: reject COLUMNS reads with a row filter, guard v1 spreadsheet ids, expose includeValuesInResponse on v2 writes
- Groups list sends userKey exclusive of customer; Drive caps the metadata error body
- Slides reads WordArt text and marks nullable outputs; Calendar validates raw reminder minutes and exposes the list time zone
- Contacts rejects year 0000; Gmail labels output typed as json; audit and baseline fixes
@waleedlatif1
waleedlatif1 force-pushed the fix/google-suite-validation branch from d7f8c49 to 60fde47 Compare November 12, 2026 20:29
@waleedlatif1

Copy link
Copy Markdown
Collaborator Author

@greptile

@waleedlatif1

Copy link
Copy Markdown
Collaborator Author

@cubic-dev-ai review this PR

@cubic-dev-ai

cubic-dev-ai Bot commented Nov 12, 2026

Copy link
Copy Markdown
Contributor

@cubic-dev-ai review this PR

@waleedlatif1 I have started the AI code review. It will take a few minutes to complete.

@cubic-dev-ai cubic-dev-ai Bot left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All reported issues were addressed across 193 files

Reply with feedback, questions, or to request a fix.

Turn on auto-fix | Re-trigger cubic

Comment thread apps/sim/tools/google_docs/utils.ts Resolved
@waleedlatif1
waleedlatif1 merged commit 2857279 into staging Nov 12, 2026
83 checks passed
@waleedlatif1
waleedlatif1 deleted the fix/google-suite-validation branch November 12, 2026 21:02
waleedlatif1 added a commit that referenced this pull request Nov 12, 2026
…and Microsoft sweeps

Final staging-to-main review of #9947, #9954 and #9949. The executor merges raw subBlock values
under the block mapper's output, so a value stored for another operation (or an empty default the
serializer fills in) reached tools whenever the mapper skipped that key.

- Outlook: reply, reply-all and forward always set cc/bcc, so a Send cc never reaches them; send
  and draft always set importance; the new Importance dropdown defaults to unset
- Google Groups Update Settings assigns every setting, so unchanged settings are never sent as ''
- Google Tasks List assigns its tri-state filters and the tool skips empty values
- OneDrive "If File Exists" defaults to unset so opening an old upload block sends nothing new
- Google Sheets clears a Batch Get major dimension for every other operation
- Azure DevOps: List Pipelines and Get Comments keep main's Max Results fallback, each paged
  operation has its own continuation token, and multi-item reads omit the raw field bag
- SharePoint upload drops "." folder segments as before and still rejects ".."
- Entra transitive and includeManager use one strict flag check; Dataverse treats a cleared page
  size as unset
- Behaviour-neutral cleanups: shared header lookup (Gmail), settings mapper (Groups), identity and
  metadata outputs (Word), isSet (Dataverse), graphPathSegment (SharePoint), typed identity reads
  (Azure DevOps), Teams fallback payload nulls
waleedlatif1 added a commit that referenced this pull request Nov 12, 2026
…and Microsoft sweeps (#9960)

* fix(integrations): close stale and empty value leaks from the Google and Microsoft sweeps

Final staging-to-main review of #9947, #9954 and #9949. The executor merges raw subBlock values
under the block mapper's output, so a value stored for another operation (or an empty default the
serializer fills in) reached tools whenever the mapper skipped that key.

- Outlook: reply, reply-all and forward always set cc/bcc, so a Send cc never reaches them; send
  and draft always set importance; the new Importance dropdown defaults to unset
- Google Groups Update Settings assigns every setting, so unchanged settings are never sent as ''
- Google Tasks List assigns its tri-state filters and the tool skips empty values
- OneDrive "If File Exists" defaults to unset so opening an old upload block sends nothing new
- Google Sheets clears a Batch Get major dimension for every other operation
- Azure DevOps: List Pipelines and Get Comments keep main's Max Results fallback, each paged
  operation has its own continuation token, and multi-item reads omit the raw field bag
- SharePoint upload drops "." folder segments as before and still rejects ".."
- Entra transitive and includeManager use one strict flag check; Dataverse treats a cleared page
  size as unset
- Behaviour-neutral cleanups: shared header lookup (Gmail), settings mapper (Groups), identity and
  metadata outputs (Word), isSet (Dataverse), graphPathSegment (SharePoint), typed identity reads
  (Azure DevOps), Teams fallback payload nulls

* fix(integrations): render Azure DevOps list outputs in docs, clear stale Outlook importance on replies

This branch was successfully deployed

1 active deployment
Preview — 60fde476 Deployed Nov 12, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant