You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docs(skills): a hardening change must not turn a failing request into a succeeding one
The most valuable learning of the sweep, and the one every other check
missed — sixteen PRs' own suites, both review bots, and the author.
Trimming a path identifier looks strictly safer. It is not when the
identifier previously went out through a bare encodeURIComponent and
reaches a destructive endpoint: box_sign_cancel_request went from a 404
no-op to cancelling a real signature request, and delete_r2_bucket from
naming no bucket to destroying prod-data. BigQuery's delete_dataset and
delete_table had the same shape on projectId.
Records the reasoning error that hid it: "trimming is the helper's
contract at all 137 sites" is an average, and the question is an
intersection — parameters whose normalisation actually changed, crossed
with irreversible operations. On that PR the answer was one of 137.
The resolution is strictUrlPathSegment, argued from the values (no
legitimate id carries surrounding whitespace, and the previous behaviour
was already a clean failure), not from consistency.
Two smaller ones folded in:
- safeUrlPath rejects only a truly empty path component, never a
whitespace-only one. Git tracks a file and a directory named only
spaces, and the parser never removes %20%20%20.
- A test that calls a function directly can pass while the wrapper does
the opposite. executeTool catches a postProcess throw and restores the
submit response, so eleven green Enrow failure-path tests sat over a
production success: true.
0 commit comments