3.79.0
(feat): 新增以毫秒表示的 defaultTimeout 自定义配置选项,这对 JavaScript/TypeScript 更为地道(setTimeout、AbortSignal.timeout(ms))。使用 "infinity" 可禁用超时。基于秒的 defaultTimeoutInSeconds 和 timeoutInSeconds 键现已弃用,但仍继续有效:其值会被转换为毫秒(× 1000)。优先级为 defaultTimeout > defaultTimeoutInSeconds > timeoutInSeconds。对于现有配置,生成的 SDK 输出保持不变。
3.78.2
(fix): 修复了一个回归问题:由可选映射值支撑的生成 Record 类型(例如可选的 additionalProperties)的值类型丢失了 | undefined。可选映射值现在正确生成 Record<string, T | undefined>,序列化为 record(string(), T.optional()),而 unknown/any 映射值仍保留去除多余 | undefined 的形式(Record<string, unknown>)。
3.78.1
(fix): 修复当运行时向文件上传参数传入 null 或 undefined 时出现的 TypeError: Cannot use 'in' operator to search for 'path' in undefined 崩溃。该错误现在会是一个清晰的 TypeError,描述期望的类型,而不再是晦涩的 in 运算符失败。
3.78.0
(feat): 新增 additionalBodyParameters 请求选项,将额外参数展开到端点的 JSON 请求体中。调用方提供的属性会覆盖端点请求体中匹配的键,与 Python、Swift 和 Ruby SDK 的行为一致。省略该选项时请求体保持不变,且绝不会为无请求体的请求伪造请求体。
3.77.3
(fix): 撤销对与请求体属性冲突的内联路径参数的自动重命名(在 3.77.1 中引入)。这类冲突现在在 CLI 层面被拒绝:fern check 会报错并要求用户消除名称歧义(例如通过 x-fern-parameter-name)。