1.55.0
(feat): Add opt-in allowUserAgentAppInfo config. When enabled, generated clients expose an
option.WithUserAgentAppInfo(name, version, comment string) client option whose sanitized
product token is appended to whatever User-Agent the SDK would otherwise send
({sdk}/{version} ... {product}/{product-version} ({comment})), following RFC 9110.
Disabled by default, so existing generated output is byte-identical, and it composes with
includePlatformHeaders, the configured user-agent template value, and the default
{package}/{version} value. Caller-supplied values are trimmed before the blank check and
before encoding (blank name/version/comment are dropped rather than encoded into whitespace
tokens), then name/version are percent-encoded to RFC 7230 tchar and comment delimiters
(, ), \ and control characters (incl. CR/LF) are escaped, so untrusted values cannot
inject header content. Still overridable by an explicit User-Agent header and suppressed
by omitFernHeaders. The AppInfo type, the AppInfoOption, and the emitted
appendAppInfoToUserAgent helper are only generated when the flag is on, so the shared
core-utilities are never modified. No IR change.