Replace removed Charges.source with payment_method
Vendor Stripe removed Charges.source from POST /v1/charges. Confirmed against a spec snapshot, not a changelog. Takes effect in 67 days.
m82 Labs watches the APIs you depend on, finds the call sites that break, and opens a pull request carrying the evidence. You merge it.
Vendor Stripe removed Charges.source from POST /v1/charges. Confirmed against a spec snapshot, not a changelog. Takes effect in 67 days.
The pipeline
Detection is not hard. Deciding whether something detected is true, and whether it reaches you, is the entire job.
Spec snapshot diffvendor stripe
Claim, then artifactinvariant 13
untrusted — vendor changelog, 2026-05-12The source parameter on Charges is removed as of API version 2026-05-28.Call sites and version basis3 repositories
The skip is shown rather than hidden. A repository that was checked and found safe is a result, not silence.
The edit1 of 3 sites
m82 Labs’s own test runinvariant 10
Both runs are m82 Labs’s, executed after the agent exits — not the agent’s report of its own work.
What lands in your repo
Vendor Stripe removed source from POST /v1/charges in API version 2026-05-28. Confirmed against a spec snapshot, not a changelog.
@@ -81,7 +81,7 @@ def charge(customer, token): return stripe.Charge.create( amount=amount, source=token, payment_method=token, currency="usd", )
agent output — not rewrittenjobs/sync.py:210 passes a token from a config value I could not resolve. The replacement is correct if that value is a payment method id. Worth a look.
The edit is bounded by the single vendor change it was dispatched for. Tidying the rest of the file on the way past would count as a failure, not a bonus.
A vendor saying it removed something is a claim. What opens a pull request is the spec snapshot showing it gone.
Your suite, before and after, executed by the runner — never the agent reporting on its own work.
Reproduced exactly as the agent wrote it. This is the line a tool selling confidence would delete.
Boundaries
These are not settings. They are properties of how the system is built, and none of them has a flag that turns it off.
No auto-merge flag and no high-confidence bypass. Every fix waits for a person, every time, regardless of how certain it is.
Its only capability is editing files in a directory. Git, tokens, the network and the merge decision all sit outside the process doing the writing.
CI configuration, .env files and the git directory are off limits — and it is checked after the edit, not asked for politely before it.
A model can propose what a change is. Only an artifact decides whether it happened, and a judgement with nothing observed behind it opens nothing.
m82 Labs’s reach ends here
edit files in /workspaceits only capabilityGITHUB_TOKENnot in the environmentnetwork egressno route outgitoutside the processthe merge decisionoutside the systemsrc/payments/charge.pyallowedtests/test_charge.pyallowed.github/workflows/ci.ymlforbidden.env.productionforbiddenVendors watched
Chosen to make detection correct rather than to make the list look long. None of the pipeline is written for a particular vendor, so coverage is a dial rather than a rewrite — and what turns it is precision, not demand.
Pricing
Start small and move up as your team and repositories grow. Upgrade, downgrade or cancel at any time.