Skip to content

fix(sidecar): resume Gmail history past page cap when pages are deduped - #679

Closed
cursor[bot] wants to merge 1 commit into
mainfrom
cursor/critical-bug-investigation-66a1
Closed

cursor[bot] wants to merge 1 commit into
mainfrom
cursor/critical-bug-investigation-66a1

Conversation

@cursor

@cursor cursor Bot commented Aug 9, 2026

Copy link
Copy Markdown

Summary

  • Persist history_page_token in sidecar_state (migration 32) when Gmail history listing hits the 3-page cap with more pages pending.
  • Pass the saved token into listNewMessageIds on the next poll so the poller resumes from the dangling pageToken instead of re-fetching already-deduped pages 1–3.
  • Clear the resume token when the listing completes or on history-gap re-anchor.

Why

When Gmail history spans more than MAX_HISTORY_PAGES (3) and pages 1–3 are fully deduped, truncated=true froze the cursor forever and page 4+ messages were never ingested — silent mail loss during bursts for Workspace sidecar mailboxes.

Test plan

  • npm run typecheck passes locally
  • npm test passes locally (59 tests in workspace-poll, gmail-client, sidecar-state)
  • New regression test: truncated history with all pages deduped saves history_page_token and converges on poll 2

Notes for reviewer

Rule 6 cursor-advance logic now has a third branch: when truncated with a dangling nextPageToken and the current window is exhausted (all deduped or empty), persist the resume token without advancing history_cursor.

Open in Web View Automation 

…ed (#667)

When Gmail history spans more than MAX_HISTORY_PAGES (3) and pages 1–3 are
fully deduped, truncated=true froze the cursor forever and page 4+ messages
were never ingested — silent data loss during mail bursts.

Persist history_page_token in sidecar_state (migration 32) and pass it to
listNewMessageIds so the next poll resumes from the dangling pageToken
instead of re-fetching already-deduped pages.

Co-authored-by: schmug <schmug@users.noreply.github.com>
@cloudflare-workers-and-pages

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Preview URL Updated (UTC)
✅ Deployment successful!
View logs
ais-hub 15aa459 Commit Preview URL

Branch Preview URL
Aug 09 2026, 11:06 AM

@cloudflare-workers-and-pages

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Updated (UTC)
✅ Deployment successful!
View logs
agentic-inbox 15aa459 Aug 09 2026, 11:07 AM

@schmug

schmug commented Aug 23, 2026

Copy link
Copy Markdown
Owner

Closing as superseded by #686.

This is one of 24 near-identical PRs re-filed daily by an automation that has since been fixed. #686 carries the same Gmail history page-token change and is the one kept open, so no work is lost here.

@schmug schmug closed this Aug 23, 2026
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.

2 participants