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
mcp/registry (fix): the line written for a write blanked only an argument named as a credential, so a key, a cookie or a passkey under a name of someone else's choosing, in a settings object, was written in clear to a log at info. Blanked now, with its names kept, is everything under an argument a tool takes as a free-form object; in an address anywhere in what is left, who it signs in as, the value of every parameter and what follows its #; and whatever Config.SecretArguments names, whole, for a file's text, a command or an address whose path is the secret. Config.ShownArguments names, by tool, a free-form argument that holds no credential and is written as sent. What was blanked is blanked in the failure beside it too, which is apt to repeat what it was sent. The arguments are written with their names in order, where they were written as the caller had them
mcp/registry: a failure's words reach the caller with what an address in them may carry a credential in taken out, around every tool: who it signs in as, the value of every parameter and what follows its #. A server quotes an address back in an error with a credential of its own on the end, an indexer's stored key, and the tool handed that to the model as it was. An answer's addresses are left as they are
outside: add BlankAddresses, text with what each address in it may carry a credential in blanked, who it signs in as, the value of every parameter and what follows its #: for a server's own words about what went wrong, a failed test's reason or a line of a log, which quote the address it called with its own key on the end. It is the rule a failure's words and the line written for a write are held to. An address written inside brackets, as at [http://host/api?apikey=...] is, keeps the bracket that closes them
mcp/registry: Config.BlankAddresses names the values in an answer that are a server's own words for what went wrong, by the JSON names they are answered under, and each address under such a name is answered as one in a failure is, however deep and whether or not answers are cleaned; every other address in an answer is the caller's to use and is left. BlankAddressesUnused is the names on that list no tool answers under, for a server's test to hold to none
mcp/registry (fix): an empty map in an answer is sent as {}, as an empty list is sent as []; it was sent as null, which the SDK refused the whole call for, the tool's own schema saying an object
mcp/registry: a tool whose input is any takes no arguments, and refuses one as every other tool does and as the shared instructions say; the SDK's schema for such a tool took whatever it was sent. This changes what a server lists for such a tool, whose input schema now says it takes no properties; a call with no arguments, or with {}, is answered as before
chttp (fix): a StatusError and a Preview carry the start of a server's answer with its credentials blanked; a server that refuses a save echoes the record back, key and all, and the error reaches a log and whoever called with it in clear
chttp: add SecretName, whether a name is a credential's by the rule a trace hides one by; a name that ends passphrase, passkey, cookie, private_key or privatekey is one now, in a trace as well
mcp/acctest: Suite.Secret has everything a tool answers or refuses with read, all run long, for a credential the suite gives the server or the server's own, and Suite.LeakReport says where one was shown, for a suite's TestMain to fail on: a server hands a key back where nobody thinks to test, and it takes no test to think of the tool that shows it; sonarr-mcp's, which radarr-mcp and prowlarr-mcp had each copied
mcp/registry: Config.CleanAnswers has every piece of text in every tool's answer, and in its refusal, cleaned as text from outside is and cut to a length, once around every tool where a tool cleaning its own fields can miss one; Config.LeaveAsIs names the values a later call hands back, a path or a release's id, which are answered as they are; and LeaveAsIsUnused is the names on that list no tool answers under, for a server's test to hold to none
test/replayproxy: a proxy with no CassetteDir keeps no recordings and replays alone, for a suite that keeps its server from the internet and answers what it asks itself; one that records or verifies still needs somewhere to keep them
test/env: a miss says what to do about it in the suite's own words when it gave a RecordHint, in the report at the end of a run as well as in the log, and a suite with no recordings is told that a request had no answer, and to answer it or find what asked, where both were told it had no recording and to record one
every package: comments say what a thing is for first and why in a clause, and are reflowed to 150 columns. 27 of the 44 Go files this release touches changed in comments alone, with no change in what they do: all of clog, cout, lock, parallel, pointer, spelling, version, whitespace, mcp/server and the three under test/services