## Why
Passing `undefined` to a tool could fail JSON parsing because V8 stringifies it as the non-JSON text `undefined`.
## What changed
Return no JSON value for JavaScript `undefined`, so explicit `undefined` tool arguments behave like omitted arguments. Attempts to `store` an undefined value report the existing serializability error and preserve the previous stored value.
## Testing
Add regression coverage for storing `undefined` over an existing `null` value, and extend the current-time tool test to cover `{}`, omitted arguments, and explicit `undefined`.
GitOrigin-RevId: 071050ebb2ecc44c8f08453cf8523b4d21728c7e
## Why
Custom MCP tool names may contain user data, so they should not be added to Guardian metric tags.
## What changed
- Add the sanitized `tool` tag to Guardian review counts for MCP calls served by the OpenAI Apps server.
- Keep custom MCP calls and Guardian duration and token-usage histograms on their existing tags.
## Testing
- Cover network access, OpenAI app tool calls, and custom MCP tool calls in the Guardian metrics test.
GitOrigin-RevId: 6bd09ae461eab504f8f07bf7d0c9d1c0aa1317c9
## Why
Bearer credentials can contain characters outside the previous token pattern or
start with another recognized key prefix. This could leave part of the
credential visible after redaction.
## What changed
- Recognize bearer tokens containing URL-safe and base64-style characters,
optional padding, and horizontal whitespace after the scheme.
- Redact bearer credentials before matching narrower OpenAI and AWS key forms so
the whole credential is replaced.
- Preserve delimiters following the credential and avoid matching short tokens,
joined scheme names, or tokens separated by vertical or non-ASCII whitespace.
## Testing
Added focused positive and negative cases for the supported token forms and
false-positive boundaries.
GitOrigin-RevId: 1e5b10685281dc91d232d619b938bacbadaa47f9
## Why
Client-facing command execution items can include recognizable secrets in the
rendered command or parsed command actions.
## What changed
- Redact secrets in `commandExecution.command` and `commandActions` for live
items, completed items, and replayed thread history.
- Keep command approval requests backed by the original executable command and
parsed actions while using the redacted representation for display items.
- Document that execution item commands are redacted display values rather than
executable commands.
## Testing
- Cover redaction for command conversion, parsed search actions, legacy replay,
approval flows, completion notifications, and rejected commands.
GitOrigin-RevId: 2ad056f21882bf5166182ad1a4ff0bf6471d9c0e