Repository navigation
LiveGmailProbe and the README for Gmail (OP2-284) - #12
Merged
Merged
Conversation
A live probe for the Gmail work in OP2-279..282, and the README updated to say what that work is - and that its live verification is still to come. LiveGmailProbe skips unless the dev Vault and database, a Google OAuth client in ~/.claude/credentials.json (outpost2_google_client_id/_secret) and a Gmail connection are there; OP2_PROBE_LABEL picks one. - Reading, always: a cold token from the stored refresh token, the inbox in order, a full read with no HTML left, two search pages with nothing repeated, labels with counts (and without Starred/Unread/Important), and an attachment's bytes opened twice to prove part ids survive Gmail's per-fetch attachment ids. - Organising, undone, always: star, read state, a temporary label as a category (still in the Inbox) and as a folder (out of it), back to the Inbox; the label deleted and the message's labels checked identical to before, against Gmail's own record of them. - Sending, only with OP2_PROBE_SEND=1: high-importance mail to itself, read back, a reply that must share its thread, Trash and back, then the probe's own messages to Trash. It never mails anybody else. README: four providers; what Gmail serves and how it differs (labels, Trash/Spam, stars, importance headers, no sender blocking, UTC times); setting up the Google OAuth client and Testing mode's seven-day limit; running the probe; the status row marked "live verification pending" rather than done; Gmail's documented gotchas, flagged as documented; the test count. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01V7aurkG6ivoSJf2yFGtzi8
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
OP2-284, Gmail subtask 7 of 7: the live probe, and the README. Everything in #8 to #11 was written against Google's documentation and documented response shapes. This PR adds the test that checks it against a real account, and updates the docs to describe what was built, honestly.
LiveGmailProbeAlongside the other
Live*probes, and skipping (not failing) unless the environment is there:~/.claude/credentials.json, asoutpost2_google_client_idandoutpost2_google_client_secret;OP2_PROBE_LABELpicks one by name.It has three tests, in increasing order of consequence.
Reading. Runs every time.
left in it.Organising, undone. Runs every time. On the newest inbox message:
Outpost probe <timestamp>and apply it as a category, checking the message is still in the Inbox;In a
finally, the label comes off and is deleted, and the message's labels are checked identical to before. Every check reads Gmail's own record of the labels (format=minimal), not what the tools claim.Sending. Opt-in with
OP2_PROBE_SEND=1.Re:isn't doubled and that both messages share one Gmail thread.It never mails anybody else. It's opt-in because a test that sends every time it runs is a test that gets disabled.
README
maxResults=0rejected), flagged as documented and not yet hit live.Testing
All three probe tests skip here, as designed: there's no dev Vault in this environment. They can only really run against your account. Full suite: 1,076 tests; only the 20 Vault-dependent web-host tests fail, as on
mainin this environment.To run it locally
The first command runs reading and organising; the second adds sending. Running them with
--logger "console;verbosity=detailed"prints what was seen at each step.Generated by Claude Code