Add Google Photos preset with binary-safe uploads#1137
Open
zrm625 wants to merge 8 commits into
Open
Conversation
Greptile SummaryThis PR adds a focused Google Photos integration path with binary-safe uploads. The main changes are:
Confidence Score: 5/5This looks safe to merge.
Important Files Changed
Reviews (8): Last reviewed commit: "fix: base64 cosplay is not media bytes" | Re-trigger Greptile |
Author
This last bit was the part I was least sure of what you wanted. I will work on this function again tomorrow. |
9eada52 to
2bdddeb
Compare
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.
Summary
Google Photos uploads need a raw byte upload step before
mediaItems.batchCreate, but Google Discovery does not publish that/uploadsendpoint as an operation. Executor also receives tool arguments as JSON, so binary media cannot be safely sent through a plainbodystring.This adds a focused Google Photos preset and a binary-safe
bodyBase64path for raw upload requests.Changes
Google Photospreset for Photos Library + Photos Picker.photoslibrary.mediaItems.uploadfor the raw/uploadstoken step missing from Google Discovery.bodyBase64support forapplication/octet-streamOpenAPI request bodies.Related: #1096 handled binary Google media downloads. This PR handles binary upload requests.
Evidence
bun run test src/sdk/non-json-body.test.tsinpackages/plugins/openapibun run test src/sdk/plugin.test.tsinpackages/plugins/googleE2E_CLOUD_URL=http://localhost:43300 bun run test:cloud -- scenarios/google-photos-preset-ui.test.tsine2ebun run --cwd packages/plugins/openapi typecheckbun run --cwd packages/plugins/google typecheckbun run format:checkbun run lintgit diff --checkDogfood
Running at https://executor.home.zakstak.com/. Verified on June 25, 2026: hosted catalog exposes
google_photos,photoslibrary.mediaItems.uploadexposesbodyBase64, and a tiny PNG upload-token smoke returnedok: truewithout callingmediaItems.batchCreate.Hermes dogfooded this as an MCP call and uploaded more than 4,000 photos and videos through this flow.