SIGN IN SIGN UP

skills: Gmail helper calls the API via curl so it (#398)

works behind an https CONNECT egress proxy The Gmail skill helper's HTTP layer used Python urllib, which cannot tunnel through an https:// CONNECT egress proxy, so in sandboxes routed through one every helper call failed and agents fell back to hand-rolled plain-text sends — losing the multipart/alternative HTML mirror and producing mail that recipients see re-wrapped at a narrow width. The helper's call() now shells out to curl, which tunnels CONNECT proxies natively; MIME construction is untouched, and non-2xx or non-JSON responses exit cleanly with the status and a body excerpt. Stub-curl tests assert the request shape (URL, auth header, JSON body over stdin), response parsing, and error behavior.

**Deployment notes**

Release note: existing sandboxes keep the old gmail.py until re-provisioned/re-seeded
skills-seed script change only (gmail.py urllib→curl). New sandboxes get the fix at seed time;
boxes provisioned before the upgrade keep the stale copy until their skill tree is re-seeded — the
fork ran a manual sprite sweep for this; upstream needs a release note or an automatic re-seed
path for existing sandboxes.
Adds a runtime expectation that curl exists in the sandbox image (universally true in practice).

<!-- codesmith:footer -->
---
<a href="https://app.blacksmith.sh/yc-software/codesmith/qm/pr/398"><picture><source media="(prefers-color-scheme: dark)" srcset="https://pr-comments-assets.blacksmith.sh/codesmith/view-with-codesmith-dark-v2.svg"><source media="(prefers-color-scheme: light)" srcset="https://pr-comments-assets.blacksmith.sh/codesmith/view-with-codesmith-light-v2.svg"><img alt="View with [code]smith" src="https://pr-comments-assets.blacksmith.sh/codesmith/view-with-codesmith-dark-v2.svg"></picture></a> <a href="https://backend.blacksmith.sh/track/enable-autofix?expires=1789237870&installation_model_id=19911&pr_number=398&repository=yc-software%2Fqm&return_to=https%3A%2F%2Fgithub.com%2Fyc-software%2Fqm%2Fpull%2F398&signature=ac65b7c6781ac8222cf14dcf3d7fc7457b104c821eeb9718e266fa1933e2d251"><picture><source media="(prefers-color-scheme: dark)" srcset="https://pr-comments-assets.blacksmith.sh/codesmith/autofix-with-codesmith-dark.svg"><source media="(prefers-color-scheme: light)" srcset="https://pr-comments-assets.blacksmith.sh/codesmith/autofix-with-codesmith-light.svg"><img alt="Autofix with [code]smith" src="https://pr-comments-assets.blacksmith.sh/codesmith/autofix-with-codesmith-dark.svg"></picture></a>
<sup>Need help on this PR? Tag <code>@codesmith-bot</code> with what you need. Autofix is disabled.</sup>

<!-- codesmith:autofix:disabled -->
<!-- /codesmith:footer -->
R
Regan Bell committed
1864c8affc372d058f551983b6a3d71c96771aab
Parent: 2489b89
Committed by GitHub <noreply@github.com> on 8/13/2026, 9:21:25 PM