[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-promptfoo--promptfoo":3,"tool-promptfoo--promptfoo":61},[4,18,26,36,44,53],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",160015,2,"2026-04-18T11:30:52",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":32,"last_commit_at":42,"category_tags":43,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",109154,"2026-04-18T11:18:24",[14,15,13],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":32,"last_commit_at":50,"category_tags":51,"status":17},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[52,13,15,14],"插件",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":32,"last_commit_at":59,"category_tags":60,"status":17},4721,"markitdown","microsoft\u002Fmarkitdown","MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具，专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片（含 OCR）、音频（含语音转录）、HTML 乃至 YouTube 链接等多种格式的解析，能够精准提取文档中的标题、列表、表格和链接等关键结构信息。\n\n在人工智能应用日益普及的今天，大语言模型（LLM）虽擅长处理文本，却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点，它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式，成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外，它还提供了 MCP（模型上下文协议）服务器，可无缝集成到 Claude Desktop 等 LLM 应用中。\n\n这款工具特别适合开发者、数据科学家及 AI 研究人员使用，尤其是那些需要构建文档检索增强生成（RAG）系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性，但其核心优势在于为机器",93400,"2026-04-06T19:52:38",[52,14],{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":66,"readme_en":67,"readme_zh":68,"quickstart_zh":69,"use_case_zh":70,"hero_image_url":71,"owner_login":64,"owner_name":64,"owner_avatar_url":72,"owner_bio":73,"owner_company":74,"owner_location":74,"owner_email":75,"owner_twitter":64,"owner_website":76,"owner_url":77,"languages":78,"stars":114,"forks":115,"last_commit_at":116,"license":117,"difficulty_score":32,"env_os":118,"env_gpu":119,"env_ram":119,"env_deps":120,"category_tags":125,"github_topics":127,"view_count":32,"oss_zip_url":74,"oss_zip_packed_at":74,"status":17,"created_at":146,"updated_at":147,"faqs":148,"releases":177},9070,"promptfoo\u002Fpromptfoo","promptfoo","Test your prompts, agents, and RAGs. Red teaming\u002Fpentesting\u002Fvulnerability scanning for AI. Compare performance of GPT, Claude, Gemini, Llama, and more. Simple declarative configs with command line and CI\u002FCD integration.  Used by OpenAI and Anthropic.","Promptfoo 是一款专为大语言模型（LLM）应用打造的开源测试与安全评估工具。它帮助开发团队告别低效的“试错法”，通过自动化手段系统性地测试提示词（Prompts）、智能体（Agents）及检索增强生成（RAG）系统的表现。\n\n在 AI 应用开发中，模型输出的稳定性、安全性及不同模型间的性能对比往往是难点。Promptfoo 有效解决了这些问题：它不仅支持对 GPT、Claude、Gemini、Llama 等主流模型进行并排基准测试，还能执行专业的“红队测试”（Red Teaming），自动扫描并识别潜在的安全漏洞与合规风险。此外，它能轻松集成到 CI\u002FCD 流程中，确保每次代码提交都经过严格的质量门禁。\n\n这款工具主要面向 AI 应用开发者、算法工程师及安全研究人员。其核心亮点在于“本地优先”的隐私设计理念，所有评估数据均在本地运行，确保敏感提示词不会泄露；同时提供简洁的声明式配置文件，兼顾命令行操作的便捷性与可视化报告的直观性。作为已被 OpenAI 和 Anthropic 等头部机构采用的工具，Promptfoo 正成为构建安全、可靠 AI 产品的基础设施。","# Promptfoo: LLM evals & red teaming\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fnpmjs.com\u002Fpackage\u002Fpromptfoo\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fv\u002Fpromptfoo\" alt=\"npm\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fnpmjs.com\u002Fpackage\u002Fpromptfoo\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fdm\u002Fpromptfoo\" alt=\"npm\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Factions\u002Fworkflows\u002Fmain.yml\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Factions\u002Fworkflow\u002Fstatus\u002Fpromptfoo\u002Fpromptfoo\u002Fmain.yml\" alt=\"GitHub Workflow Status\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fblob\u002Fmain\u002FLICENSE\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002Fpromptfoo\u002Fpromptfoo\" alt=\"MIT license\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fdiscord.gg\u002Fpromptfoo\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fdiscord\u002F1146610656779440188?logo=discord&label=promptfoo\" alt=\"Discord\">\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ccode>promptfoo\u003C\u002Fcode> is a CLI and library for evaluating and red-teaming LLM apps. Stop the trial-and-error approach - start shipping secure, reliable AI apps.\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fwww.promptfoo.dev\">Website\u003C\u002Fa> ·\n  \u003Ca href=\"https:\u002F\u002Fwww.promptfoo.dev\u002Fdocs\u002Fgetting-started\u002F\">Getting Started\u003C\u002Fa> ·\n  \u003Ca href=\"https:\u002F\u002Fwww.promptfoo.dev\u002Fdocs\u002Fred-team\u002F\">Red Teaming\u003C\u002Fa> ·\n  \u003Ca href=\"https:\u002F\u002Fwww.promptfoo.dev\u002Fdocs\u002F\">Documentation\u003C\u002Fa> ·\n  \u003Ca href=\"https:\u002F\u002Fdiscord.gg\u002Fpromptfoo\">Discord\u003C\u002Fa>\n\u003C\u002Fp>\n\n> Promptfoo is now part of OpenAI. Promptfoo remains open source and MIT licensed. Read the [company update](https:\u002F\u002Fwww.promptfoo.dev\u002Fblog\u002Fpromptfoo-joining-openai\u002F).\n\n## Quick Start\n\n```sh\nnpm install -g promptfoo\npromptfoo init --example getting-started\n```\n\nAlso available via `brew install promptfoo` and `pip install promptfoo`. You can also use `npx promptfoo@latest` to run any command without installing.\n\nMost LLM providers require an API key. Set yours as an environment variable:\n\n```sh\nexport OPENAI_API_KEY=sk-abc123\n```\n\nOnce you're in the example directory, run an eval and view results:\n\n```sh\ncd getting-started\npromptfoo eval\npromptfoo view\n```\n\nSee [Getting Started](https:\u002F\u002Fwww.promptfoo.dev\u002Fdocs\u002Fgetting-started\u002F) (evals) or [Red Teaming](https:\u002F\u002Fwww.promptfoo.dev\u002Fdocs\u002Fred-team\u002F) (vulnerability scanning) for more.\n\n## What can you do with Promptfoo?\n\n- **Test your prompts and models** with [automated evaluations](https:\u002F\u002Fwww.promptfoo.dev\u002Fdocs\u002Fgetting-started\u002F)\n- **Secure your LLM apps** with [red teaming](https:\u002F\u002Fwww.promptfoo.dev\u002Fdocs\u002Fred-team\u002F) and vulnerability scanning\n- **Compare models** side-by-side (OpenAI, Anthropic, Azure, Bedrock, Ollama, and [more](https:\u002F\u002Fwww.promptfoo.dev\u002Fdocs\u002Fproviders\u002F))\n- **Automate checks** in [CI\u002FCD](https:\u002F\u002Fwww.promptfoo.dev\u002Fdocs\u002Fintegrations\u002Fci-cd\u002F)\n- **Review pull requests** for LLM-related security and compliance issues with [code scanning](https:\u002F\u002Fwww.promptfoo.dev\u002Fdocs\u002Fcode-scanning\u002F)\n- **Share results** with your team\n\nHere's what it looks like in action:\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fpromptfoo_promptfoo_readme_8f0f3a849214.png\" alt=\"prompt evaluation matrix - web viewer\" width=\"700\">\n\nIt works on the command line too:\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fpromptfoo_promptfoo_readme_8b3426261d1f.gif\" alt=\"promptfoo command line\" width=\"700\">\n\nIt also can generate [security vulnerability reports](https:\u002F\u002Fwww.promptfoo.dev\u002Fdocs\u002Fred-team\u002F):\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fpromptfoo_promptfoo_readme_7c84928a021a.jpg\" alt=\"gen ai red team\" width=\"700\">\n\n## Why Promptfoo?\n\n- **Developer-first**: Fast, with features like live reload and caching\n- **Private**: LLM evals run 100% locally - your prompts never leave your machine\n- **Flexible**: Works with any LLM API or programming language\n- **Battle-tested**: Powers LLM apps serving 10M+ users in production\n- **Data-driven**: Make decisions based on metrics, not gut feel\n- **Open source**: MIT licensed, with an active community\n\n## Learn More\n\n- [Getting Started](https:\u002F\u002Fwww.promptfoo.dev\u002Fdocs\u002Fgetting-started\u002F)\n- [Full Documentation](https:\u002F\u002Fwww.promptfoo.dev\u002Fdocs\u002Fintro\u002F)\n- [Red Teaming Guide](https:\u002F\u002Fwww.promptfoo.dev\u002Fdocs\u002Fred-team\u002F)\n- [CLI Usage](https:\u002F\u002Fwww.promptfoo.dev\u002Fdocs\u002Fusage\u002Fcommand-line\u002F)\n- [Node.js Package](https:\u002F\u002Fwww.promptfoo.dev\u002Fdocs\u002Fusage\u002Fnode-package\u002F)\n- [Supported Models](https:\u002F\u002Fwww.promptfoo.dev\u002Fdocs\u002Fproviders\u002F)\n- [Code Scanning Guide](https:\u002F\u002Fwww.promptfoo.dev\u002Fdocs\u002Fcode-scanning\u002F)\n\n## Contributing\n\nWe welcome contributions! Check out our [contributing guide](https:\u002F\u002Fwww.promptfoo.dev\u002Fdocs\u002Fcontributing\u002F) to get started.\n\nJoin our [Discord community](https:\u002F\u002Fdiscord.gg\u002Fpromptfoo) for help and discussion.\n\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fgraphs\u002Fcontributors\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fpromptfoo_promptfoo_readme_bae8784bd248.png\" \u002F>\n\u003C\u002Fa>\n","# Promptfoo：LLM 评估与红队测试\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fnpmjs.com\u002Fpackage\u002Fpromptfoo\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fv\u002Fpromptfoo\" alt=\"npm\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fnpmjs.com\u002Fpackage\u002Fpromptfoo\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fdm\u002Fpromptfoo\" alt=\"npm\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Factions\u002Fworkflows\u002Fmain.yml\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Factions\u002Fworkflow\u002Fstatus\u002Fpromptfoo\u002Fpromptfoo\u002Fmain.yml\" alt=\"GitHub 工作流状态\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fblob\u002Fmain\u002FLICENSE\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002Fpromptfoo\u002Fpromptfoo\" alt=\"MIT 许可证\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fdiscord.gg\u002Fpromptfoo\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fdiscord\u002F1146610656779440188?logo=discord&label=promptfoo\" alt=\"Discord\">\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ccode>promptfoo\u003C\u002Fcode> 是一款用于评估和红队测试 LLM 应用的命令行工具及库。告别试错式开发，开始交付安全、可靠的 AI 应用。\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fwww.promptfoo.dev\">官网\u003C\u002Fa> ·\n  \u003Ca href=\"https:\u002F\u002Fwww.promptfoo.dev\u002Fdocs\u002Fgetting-started\u002F\">入门指南\u003C\u002Fa> ·\n  \u003Ca href=\"https:\u002F\u002Fwww.promptfoo.dev\u002Fdocs\u002Fred-team\u002F\">红队测试\u003C\u002Fa> ·\n  \u003Ca href=\"https:\u002F\u002Fwww.promptfoo.dev\u002Fdocs\u002F\">文档\u003C\u002Fa> ·\n  \u003Ca href=\"https:\u002F\u002Fdiscord.gg\u002Fpromptfoo\">Discord 社区\u003C\u002Fa>\n\u003C\u002Fp>\n\n> Promptfoo 现已成为 OpenAI 的一部分。Promptfoo 仍保持开源，并采用 MIT 许可证。请阅读 [公司公告](https:\u002F\u002Fwww.promptfoo.dev\u002Fblog\u002Fpromptfoo-joining-openai\u002F)。\n\n## 快速开始\n\n```sh\nnpm install -g promptfoo\npromptfoo init --example getting-started\n```\n\n此外，您也可以通过 `brew install promptfoo` 或 `pip install promptfoo` 进行安装。如果您不想全局安装，也可以使用 `npx promptfoo@latest` 来运行任何命令。\n\n大多数 LLM 提供商都需要 API 密钥。请将您的密钥设置为环境变量：\n\n```sh\nexport OPENAI_API_KEY=sk-abc123\n```\n\n进入示例目录后，您可以运行评估并查看结果：\n\n```sh\ncd getting-started\npromptfoo eval\npromptfoo view\n```\n\n更多内容请参阅 [入门指南](https:\u002F\u002Fwww.promptfoo.dev\u002Fdocs\u002Fgetting-started\u002F)（评估）或 [红队测试指南](https:\u002F\u002Fwww.promptfoo.dev\u002Fdocs\u002Fred-team\u002F)（漏洞扫描）。\n\n## 使用 Promptfoo 能做什么？\n\n- **测试您的提示词和模型**，借助 [自动化评估](https:\u002F\u002Fwww.promptfoo.dev\u002Fdocs\u002Fgetting-started\u002F)\n- **保护您的 LLM 应用**，通过 [红队测试](https:\u002F\u002Fwww.promptfoo.dev\u002Fdocs\u002Fred-team\u002F) 和漏洞扫描\n- **对比不同模型**，如 OpenAI、Anthropic、Azure、Bedrock、Ollama 等 [更多支持的提供商](https:\u002F\u002Fwww.promptfoo.dev\u002Fdocs\u002Fproviders\u002F)\n- **在 CI\u002FCD 中自动化检查**，详见 [CI\u002FCD 集成](https:\u002F\u002Fwww.promptfoo.dev\u002Fdocs\u002Fintegrations\u002Fci-cd\u002F)\n- **审查拉取请求**，利用 [代码扫描](https:\u002F\u002Fwww.promptfoo.dev\u002Fdocs\u002Fcode-scanning\u002F) 发现与 LLM 相关的安全和合规问题\n- **与团队共享结果**\n\n以下是实际操作效果：\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fpromptfoo_promptfoo_readme_8f0f3a849214.png\" alt=\"提示词评估矩阵 - Web 查看器\" width=\"700\">\n\n它同样可以在命令行中使用：\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fpromptfoo_promptfoo_readme_8b3426261d1f.gif\" alt=\"promptfoo 命令行界面\" width=\"700\">\n\n此外，它还能生成 [安全漏洞报告](https:\u002F\u002Fwww.promptfoo.dev\u002Fdocs\u002Fred-team\u002F)：\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fpromptfoo_promptfoo_readme_7c84928a021a.jpg\" alt=\"生成式 AI 红队测试\" width=\"700\">\n\n## 为什么选择 Promptfoo？\n\n- **开发者友好**：速度快，支持实时重载和缓存等功能\n- **私密性**：LLM 评估完全在本地运行，您的提示词不会离开您的设备\n- **灵活性**：兼容任何 LLM API 和编程语言\n- **实战验证**：已为生产环境中服务超过 1000 万用户的 LLM 应用提供支持\n- **数据驱动**：基于指标而非直觉做出决策\n- **开源**：采用 MIT 许可证，拥有活跃的社区\n\n## 了解更多\n\n- [入门指南](https:\u002F\u002Fwww.promptfoo.dev\u002Fdocs\u002Fgetting-started\u002F)\n- [完整文档](https:\u002F\u002Fwww.promptfoo.dev\u002Fdocs\u002Fintro\u002F)\n- [红队测试指南](https:\u002F\u002Fwww.promptfoo.dev\u002Fdocs\u002Fred-team\u002F)\n- [CLI 使用说明](https:\u002F\u002Fwww.promptfoo.dev\u002Fdocs\u002Fusage\u002Fcommand-line\u002F)\n- [Node.js 包使用指南](https:\u002F\u002Fwww.promptfoo.dev\u002Fdocs\u002Fusage\u002Fnode-package\u002F)\n- [支持的模型列表](https:\u002F\u002Fwww.promptfoo.dev\u002Fdocs\u002Fproviders\u002F)\n- [代码扫描指南](https:\u002F\u002Fwww.promptfoo.dev\u002Fdocs\u002Fcode-scanning\u002F)\n\n## 参与贡献\n\n我们欢迎所有贡献！请查看我们的 [贡献指南](https:\u002F\u002Fwww.promptfoo.dev\u002Fdocs\u002Fcontributing\u002F) 开始参与。\n\n加入我们的 [Discord 社区](https:\u002F\u002Fdiscord.gg\u002Fpromptfoo)，获取帮助和交流讨论。\n\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fgraphs\u002Fcontributors\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fpromptfoo_promptfoo_readme_bae8784bd248.png\" \u002F>\n\u003C\u002Fa>","# Promptfoo 快速上手指南\n\nPromptfoo 是一款用于评估大语言模型（LLM）应用和进行红队测试（安全漏洞扫描）的命令行工具与库。它帮助开发者停止试错，快速构建安全、可靠的 AI 应用。\n\n## 环境准备\n\n*   **操作系统**：支持 macOS、Linux 和 Windows。\n*   **运行时依赖**：\n    *   **Node.js** (推荐)：需安装 Node.js 环境以使用 npm 或 npx。\n    *   **Python** (可选)：如果偏好使用 pip 安装，需安装 Python 环境。\n*   **API 密钥**：大多数 LLM 提供商（如 OpenAI、Anthropic 等）需要有效的 API Key。请确保已准备好相关密钥。\n\n> **国内加速建议**：若访问 npm 源较慢，可临时切换至淘宝镜像源：\n> `npm config set registry https:\u002F\u002Fregistry.npmmirror.com`\n\n## 安装步骤\n\n你可以选择以下任意一种方式进行安装：\n\n**方式一：使用 npm 全局安装（推荐）**\n```sh\nnpm install -g promptfoo\n```\n\n**方式二：使用 Homebrew (macOS)**\n```sh\nbrew install promptfoo\n```\n\n**方式三：使用 pip (Python)**\n```sh\npip install promptfoo\n```\n\n**方式四：免安装运行**\n如果不希望全局安装，可以直接使用 `npx` 运行最新命令：\n```sh\nnpx promptfoo@latest \u003Ccommand>\n```\n\n## 基本使用\n\n以下是从零开始运行一次评估的最简流程：\n\n### 1. 初始化示例项目\n创建一个包含示例配置的项目目录：\n```sh\npromptfoo init --example getting-started\n```\n\n### 2. 配置 API 密钥\n在使用前，请将你的 LLM API 密钥设置为环境变量（以 OpenAI 为例）：\n```sh\nexport OPENAI_API_KEY=sk-abc123\n```\n*(Windows PowerShell 用户请使用 `$env:OPENAI_API_KEY=\"sk-abc123\"`)*\n\n### 3. 运行评估\n进入生成的示例目录并执行评估命令：\n```sh\ncd getting-started\npromptfoo eval\n```\n\n### 4. 查看结果\n评估完成后，启动本地 Web 界面查看详细的对比报告和矩阵：\n```sh\npromptfoo view\n```\n浏览器将自动打开，展示模型输出对比、评分及延迟等指标。","某电商团队的 AI 客服系统上线前，工程师急需验证提示词在不同模型下的回答质量与安全性，防止出现胡编乱造或泄露用户隐私的情况。\n\n### 没有 promptfoo 时\n- 测试全靠人工逐条对话，覆盖场景有限，难以发现边缘情况下的错误回答。\n- 切换 GPT-4、Claude 或本地 Llama 模型对比效果时，需手动复制粘贴提示词，效率极低且容易出错。\n- 缺乏自动化安全扫描，无法系统性检测提示词注入、数据泄露等红队攻击风险。\n- 每次代码更新后无法自动回归测试，导致线上偶尔出现“智障”回复，只能事后救火。\n- 评估结果依赖主观感觉，团队内部对“哪个版本更好”争论不休，缺乏量化数据支撑。\n\n### 使用 promptfoo 后\n- 通过声明式配置文件批量运行数百个测试用例，自动覆盖正常咨询、恶意诱导等多种场景。\n- 一键并行调用多个主流模型，生成直观的对比矩阵，快速锁定性价比最优的模型组合。\n- 内置红队攻击模块，自动模拟黑客指令扫描漏洞，提前拦截潜在的安全合规风险。\n- 将评估流程集成到 CI\u002FCD 流水线，任何提示词修改若导致评分下降，直接阻断合并请求。\n- 输出包含准确率、延迟及安全评分的详细报告，让优化决策基于客观指标而非直觉。\n\npromptfoo 将原本耗时数天的黑盒测试转化为分钟级的自动化流程，帮助团队在保障安全的前提下自信地交付高质量 AI 应用。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fpromptfoo_promptfoo_8f0f3a84.png","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fpromptfoo_7b90416f.png","Test your LLM apps",null,"inquiries@promptfoo.dev","https:\u002F\u002Fpromptfoo.dev","https:\u002F\u002Fgithub.com\u002Fpromptfoo",[79,83,87,91,95,99,102,105,108,111],{"name":80,"color":81,"percentage":82},"TypeScript","#3178c6",96.9,{"name":84,"color":85,"percentage":86},"CSS","#663399",2.1,{"name":88,"color":89,"percentage":90},"JavaScript","#f1e05a",0.7,{"name":92,"color":93,"percentage":94},"Python","#3572A5",0.2,{"name":96,"color":97,"percentage":98},"Go","#00ADD8",0,{"name":100,"color":101,"percentage":98},"Shell","#89e051",{"name":103,"color":104,"percentage":98},"MDX","#fcb32c",{"name":106,"color":107,"percentage":98},"HTML","#e34c26",{"name":109,"color":110,"percentage":98},"Dockerfile","#384d54",{"name":112,"color":113,"percentage":98},"Ruby","#701516",20251,1752,"2026-04-18T07:11:01","MIT","Linux, macOS, Windows","未说明",{"notes":121,"python":122,"dependencies":123},"该工具主要作为 Node.js CLI 工具分发 (npm)，同时也支持通过 Homebrew (brew) 和 Python (pip) 安装。运行大多数大模型评估需要配置相应提供商的 API 密钥 (如 OPENAI_API_KEY) 作为环境变量。评估过程在本地运行以保护隐私，但实际推理通常调用外部 API 或本地已配置的服务 (如 Ollama)。","未说明 (主要通过 npm\u002Fnpx 运行，也可通过 pip 安装)",[124],"promptfoo (npm\u002Fpip package)",[35,126,14],"其他",[128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145],"llm","prompt-engineering","prompts","llmops","prompt-testing","testing","rag","evaluation","evaluation-framework","llm-eval","llm-evaluation","llm-evaluation-framework","ci","ci-cd","cicd","pentesting","red-teaming","vulnerability-scanners","2026-03-27T02:49:30.150509","2026-04-18T22:32:40.819271",[149,154,159,164,169,173],{"id":150,"question_zh":151,"answer_zh":152,"source_url":153},40694,"使用 Google Gemini 1.5 Flash 模型时出现 \"Invalid JSON payload\" 或 \"Unknown name content\" 错误怎么办？","这是因为 Promptfoo 默认使用的是 Google API 的 `v1` 版本，而某些模型（如 gemini-1.5-flash）可能需要 `v1beta` 版本。解决方案有两种：\n1. 等待或使用支持覆盖 API 版本的 PR（#2529）。\n2. 通过 OpenAI 兼容格式调用 Gemini，将 `baseURL` 设置为 `https:\u002F\u002Fgenerativelanguage.googleapis.com\u002Fv1beta\u002Fopenai\u002F`。示例代码如下：\n```typescript\nconst openai = new OpenAI({\n  apiKey: process.env.API_KEY_GEMINI,\n  baseURL: 'https:\u002F\u002Fgenerativelanguage.googleapis.com\u002Fv1beta\u002Fopenai\u002F',\n});\nconst result = await openai.chat.completions.create({\n  model: 'gemini-1.5-flash',\n  messages: [{ role: 'user', content: 'Your prompt here' }],\n});\n```","https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F1876",{"id":155,"question_zh":156,"answer_zh":157,"source_url":158},40695,"自托管的 Docker 容器启动时报错 \"ENOENT: no such file or directory, open '\u002Fapp\u002F.next\u002FBUILD_ID'\" 如何解决？","该问题通常是由于 Dockerfile 构建过程中缺少必要的文件拷贝步骤导致的。请确保使用 Promptfoo 0.42.0 或更高版本，该版本已更新 Dockerfile 以解决自托管共享功能的相关问题。如果问题仍然存在，请检查构建日志，确保 `.next` 目录下的 `BUILD_ID` 和 `prerender-manifest.json` (或 .js) 文件已被正确生成并复制到最终镜像中。","https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F412",{"id":160,"question_zh":161,"answer_zh":162,"source_url":163},40696,"自托管 UI 的 \"Evals\" 标签页显示为空，但网络请求中有数据返回，这是什么原因？","这通常是一个已修复的 Bug。维护者已经合并了针对此问题的修复补丁。请尝试升级到最新版本的 Promptfoo。如果是通过 Node.js 包运行，确保配置中的 `sharing` 选项正确设置了 `apiBaseUrl` 和 `appBaseUrl`，例如：\n```javascript\nconst results = await promptfoo.evaluate({\n  \u002F\u002F ... other config\n  sharing: {\n    apiBaseUrl: \"http:\u002F\u002Fyour-server-ip:3000\",\n    appBaseUrl: \"http:\u002F\u002Fyour-server-ip:3000\"\n  }\n});\n```\n升级后重新运行评估，页面应能正常显示数据。","https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F1873",{"id":165,"question_zh":166,"answer_zh":167,"source_url":168},40697,"如何检测提示词输出中的偏见（bias）和公平性（fairness）？","Promptfoo 支持通过分类器断言（classifier assertion）来检测偏见。您可以配置一个分类器模型来判断输出是否存在偏见。如果需要反转阈值行为（即当分类器判定为有偏见时视为失败），可以将断言类型从 `classifier` 改为 `not-classifier`。具体配置示例需参考官方文档中关于分类器断言的部分，并确保已正确设置相关的 API Token（HuggingFace API Key 处理在 #809 中已修复）。","https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F657",{"id":170,"question_zh":171,"answer_zh":172,"source_url":158},40698,"Docker 自部署环境中遇到 \"fetch failed\" 和 \"ENOTFOUND placeholder.promptfoo.dev\" 错误怎么办？","这个错误表明容器试图连接到一个占位符域名 `placeholder.promptfoo.dev`，这通常是因为环境变量未正确配置。请检查您的 Docker 运行命令或 `docker-compose.yml` 文件，确保所有必要的环境变量（特别是涉及 API 端点或共享功能的变量）已替换为实际的地址或正确的配置值，而不是保留默认的占位符。升级至 0.42.0+ 版本也可能包含相关修复。",{"id":174,"question_zh":175,"answer_zh":176,"source_url":163},40699,"如何在 Node.js 项目中正确配置分享（sharing）功能以便在自托管 UI 中查看结果？","在 Node.js 包中，分享功能需要显式配置。您需要在 `evaluate` 函数的配置对象中添加 `sharing` 字段，并指定 `apiBaseUrl` 和 `appBaseUrl` 指向您的自托管服务器地址。示例如下：\n```javascript\nconst results = await promptfoo.evaluate({\n  prompts: ['...'],\n  providers: [...],\n  tests: [...],\n  sharing: {\n    apiBaseUrl: \"http:\u002F\u002F192.168.1.55:3000\",\n    appBaseUrl: \"http:\u002F\u002F192.168.1.55:3000\"\n  }\n});\n```\n注意：早期版本可能尚未完全实现 Node 包的分享功能，建议更新至最新版本。",[178,183,188,193,198,203,208,213,218,223,228,233,238,243,248,253,258,263,268,273],{"id":179,"version":180,"summary_zh":181,"released_at":182},324178,"code-scan-action-0.1.5","## [0.1.5](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcompare\u002Fcode-scan-action-0.1.4...code-scan-action-0.1.5) (2026-04-14)\n\n\n### 错误修复\n\n* **app:** 澄清攻击成功率标签 ([#8387](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F8387)) ([7482eff](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F7482eff88f193e857822b43da040638eb4ae1565))\n* **code-scan:** 避免在 MCP npx 中使用 npm 之前的环境变量 ([#8515](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F8515)) ([7d2eacd](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F7d2eacd7820a33de24f8253b1ebe14e23b25faf1))\n* **deps:** 将依赖 undici 更新至 ^7.24.5 ([#8411](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F8411)) ([3d8a24d](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F3d8a24dcdb06cc729cc9b4d94f7b3f8763d03b9a))","2026-04-14T20:57:14",{"id":184,"version":185,"summary_zh":186,"released_at":187},324179,"0.121.5","## [0.121.5](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcompare\u002F0.121.4...0.121.5) (2026-04-14)\n\n\n### 功能特性\n\n* **提供商:** 添加 Abliteration 提供商 ([b29fa9a](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002Fb29fa9a475315cc97d57a5616d08e9b099d8f66b))\n* **提供商:** 添加 OpenAI Codex 应用服务器提供商 ([#8578](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F8578)) ([a403dd1](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002Fa403dd17b012029bbd4323e3d95e44e5366d08a3))\n* **提供商:** 允许 anthropic:messages 通过 Claude Code 会话进行认证 ([#8692](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F8692)) ([642af70](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F642af7060cce97885133c8729672c2ec5eed42ac))\n* **WebUI:** 添加系统主题选择器 ([#8538](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F8538)) ([2ed5e5b](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F2ed5e5b263049daad98b0ddc45674e2d29c194ee))\n\n\n### 错误修复\n\n* **应用:** 图表切换可见性 ([#8439](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F8439)) ([f9d448d](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002Ff9d448dd74dbe6542a9c4ce7282dc0f85df42159))\n* **断言:** 在 HTML 断言中避免使用 jsdom ([979aee4](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F979aee484b2bba62fc9aed821f00dcb44e0ca8c7))\n* 当 inverse: true 时，修正 rouge 断言的原因消息 ([#8682](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F8682)) ([7d64d8d](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F7d64d8daedaaac7c84b421046cdc3d85959870e8))\n* **依赖:** 更新 anthropic 相关包 ([#8670](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F8670)) ([0a4a7e0](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F0a4a7e08075eaaa9f3605018da01fd7a41216f2f))\n* **依赖:** 将 openai 依赖更新至 ^6.34.0 ([#8701](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F8701)) ([73f6ba1](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F73f6ba19bccae06aeafd6b702df26d4f9f6dc4bd))\n* **依赖:** 将 parse5 依赖更新至 v8 ([#8710](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F8710)) ([759391d](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F759391d6ea3e3639071e257c55e65105c077935d))\n* **依赖:** 更新 openai 相关包 ([#8672](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F8672)) ([1ae735c](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F1ae735c8a9f2d7b7d62453f9c195cd691ff561b5))\n* **提供商:** 在 exec 提供商中关闭 stdin，以防止子进程挂起 ([#8686](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F8686)) ([9cd7709](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F9cd7709d19fa8c85c97a402400d0f7cbb8a1762e))\n* **提供商:** 解析 claude-agent-sdk 的设置文件路径 ([#8606](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F8606)) ([d575bd1](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002Fd575bd1fc13809428216d1c2de1ea59249c19005))\n* **提供商:** 向 Azure 响应部署发送推理配置 ([#8255](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F8255)) ([67437f3](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F67437f3fc02c320dc3ea29c99ea69e6334cb3b2b))\n* ","2026-04-14T20:57:13",{"id":189,"version":190,"summary_zh":191,"released_at":192},324180,"0.121.4","## [0.121.4](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcompare\u002F0.121.3...0.121.4) (2026-04-10)\n\n\n### 功能特性\n\n* 允许为每个测试单独选择不使用 defaultTest 断言 ([5e5959e](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F5e5959ecc6984fe34df0c3fa74aa231fdc9ea972))\n* **codex:** 扩展 Codex SDK 的评估控制和文档 ([#8433](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F8433)) ([80c3f7f](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F80c3f7f25431e7a6319df54b46b4cd283f4b6b8c))\n* **eval:** 按提供商对串行评分进行分组 ([#8509](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F8509)) ([d289602](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002Fd289602becd76fa80b10e6896756877edd730d6a))\n* **examples:** 添加带有追踪功能的 OpenAI 代理 Python SDK 示例 ([#8354](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F8354)) ([6870717](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F6870717cd4594f206b2f53e244fce75335ae9992))\n* **http:** 支持结构化多部分请求 ([#8533](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F8533)) ([5bac47c](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F5bac47c0393ef7b2d89d6f9073eb0b63e3c5ffba))\n* 日本 FIEA 插件 ([#8316](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F8316)) ([f330ab3](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002Ff330ab391b44e8b29acd1cb9dd7b415ebe6c202a))\n* **matchers:** 在 GradingResult 中公开评分提供商的元数据 ([#8330](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F8330)) ([03cbac6](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F03cbac6f5e4141372a399a07ab907c20a182993f))\n* **openai:** 通过 Codex 启用 ChatGPT 登录 ([#8327](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F8327)) ([5a9cb96](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F5a9cb9689b2b2b84d751fabeae19460cee9f6aad))\n* **providers:** 增加对 Gemma 4 提供商的支持 ([#8454](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F8454)) ([b0667ed](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002Fb0667ed5460570261dcf27dc7cdda87d474eb198))\n* **providers:** 添加 Anthropic SDK 缺失的功能并修复 apiKeyRequired 错误 ([#8351](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F8351)) ([3060847](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F30608476af1ca322968280720996022de5db20b1))\n* **providers:** 扩展 OpenClaw 的支持 ([#8589](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F8589)) ([93f29ec](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F93f29ec55e70dd4ab91b7c467de158dfdf5f9e5c))\n* **providers:** 支持 Codex 本地图片并加固 SDK ([929790b](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F929790bdf1fee83d1a9568e1d6c7309a4805dc4f))\n* **providers:** 支持多模态 OpenAI 代理输入 ([#8397](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F8397)) ([4065844](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F4065844369ac3fe68fc0cadb22b3f19311a6ec76))\n* **redteam:** 添加编码代理红队插件 ([85a0cfe](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F85a0cfee367b9b55b4a53e2cf42753f76c1be2c9))\n* **redteam:** 添加 FDA 医疗插件 ([#8456](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissu","2026-04-11T00:31:40",{"id":194,"version":195,"summary_zh":196,"released_at":197},324181,"0.121.3","## [0.121.3](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcompare\u002F0.121.2...0.121.3) (2026-03-24)\n\n\n### 功能特性\n\n* 在 .claude\u002Fsettings.json 中添加 block-no-verify PreToolUse 钩子 ([#8234](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F8234)) ([29a856a](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F29a856a8fa2defba5bc8362ea6e14364b7e624ce))\n* 为复合越狱策略添加新的配置选项 ([#7693](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7693)) ([071d345](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F071d34592e626fa12399d43d6f2feda2a8edb67c))\n* **应用:** 为 DataTable 添加手动筛选功能，并改进筛选器的用户体验 ([#8122](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F8122)) ([46dfdf5](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F46dfdf57298b0cd6afa98b2b626bcb53e150cca8))\n* **断言:** 添加轨迹评估断言 ([#8040](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F8040)) ([6567fda](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F6567fdaf0b381e65110451f802222fc0f861613a))\n* **断言:** 添加轨迹工具参数匹配 ([#8142](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F8142)) ([d0ba078](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002Fd0ba0780b01f900f9b78670b16e8fadb897afe20))\n* **HTTP:** 添加基于文件的身份验证 ([#8282](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F8282)) ([00b497c](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F00b497c23e43c0f2f4cafbbcfbdad65e4aedf9a8))\n* **提供商:** 为代理 SDK 添加技能评估支持 ([#8242](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F8242)) ([3e2bfeb](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F3e2bfeb4d51fa09cee1c1fd8530ad3114354f6b9))\n* **提供商:** 支持 GPT-5.4 迷你和纳米模型 ([#8216](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F8216)) ([8ee7547](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F8ee7547fe4f6a72e6206190758d878da91446a9c))\n* **提供商:** 支持 Sora 的新视频尺寸 ([#8147](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F8147)) ([3e8af4d](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F3e8af4d571825772c1d93e4729effc58db93255a))\n* **提供商:** 通过 Google AI Studio 和 Vertex 支持 Veo ([#8185](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F8185)) ([c8e340d](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002Fc8e340de7a293fd95b16a80ccb4067d326092a46))\n* 支持在 claude-agent-sdk 中选择不进行 API 密钥检查 ([#8256](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F8256)) ([13c040f](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F13c040f3f4bc8415378239c4e13c1c8967738850))\n\n\n### Bug 修复\n\n* **AI21:** 保留零 max_tokens 设置 ([#8287](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F8287)) ([88da62a](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F88da62a219dc0370301636cf7ff651238771dad1))\n* **Anthropic:** 保留零 max_tokens_to_sample 设置 ([#8290](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F8290)) ([92dd8b7](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F92dd8b78291341fdd0142ce69a1ae0fbba575565))\n* **断言:** 稳定轨迹评估断言 ([#8140](https:\u002F\u002Fgithub.com\u002Fpro","2026-03-24T22:52:54",{"id":199,"version":200,"summary_zh":201,"released_at":202},324182,"0.121.2","## [0.121.2](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcompare\u002F0.121.1...0.121.2) (2026-03-12)\n\n\n### Bug修复\n\n* 将node-addon-api添加到sharp构建的devDependencies中 ([#8102](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F8102)) ([1d4e959](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F1d4e9596f2199ade67e4b65207b8f99b7c2b1b3b))\n* **依赖:** 更新依赖@tanstack\u002Freact-virtual至^3.13.20 ([#8083](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F8083)) ([5e5f774](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F5e5f7746b065f45147efc9fedaff3366af01e020))\n* **依赖:** 更新依赖@tanstack\u002Freact-virtual至^3.13.21 ([#8104](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F8104)) ([b17998b](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002Fb17998bd9fcc6ad7c67236f83e1a4353227ab7e6))\n* **依赖:** 更新mui包至^7.3.9 ([#8077](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F8077)) ([4db1d67](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F4db1d67b081a4180d099cbff63978713326fb8e9))\n* **依赖:** 更新openai相关包 ([#7956](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7956)) ([5b70a50](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F5b70a5089d25cc7bd227703144f35e74d6d52995))\n* **评估:** 为每次评估保留图表的默认状态 ([#8087](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F8087)) ([cd26f4a](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002Fcd26f4a16dfca36043b06f934c3a2ce5301571f5))\n* **示例:** 在温度比较中使用匹配的gpt-4o模型 ([#8074](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F8074)) ([516df96](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F516df96042d5fdec7522548b1f30b6eb7c58704b))\n* 带有模式的not-contains-json会尊重inverse标志 ([#8069](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F8069)) ([baf5e1b](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002Fbaf5e1bfda95cc7b9d53642a9e9c265489826307))\n* 防止在fetchWithCache中缓存错误响应 ([#8070](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F8070)) ([033e1bb](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F033e1bb688cf1054961f94d6563b904c8d14cab3))\n* **提供商:** 使openclaw与上游网关保持一致 ([#8058](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F8058)) ([f130803](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002Ff1308031752870233b8f0b2b35137ecd7c3a76d2))\n* **提供商:** 省略LiteLLM代理提供商的默认温度 ([#8064](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F8064)) ([f831d39](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002Ff831d399b5dc0bf131305e9eff4ffadbbd79881c))\n* **红队:** 避免风险类别抽屉中的路由依赖 ([#8085](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F8085)) ([1e1d9ac](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F1e1d9ac537e187ac7927511b3b6bfbb8321ee254))\n* **红队:** 改进EU AI法案预设中的偏见\u002F歧视覆盖范围 ([#8115](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F8115)) ([30ce06b](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F30ce06bc2ac13d7bcdaac374fd63252f3a2a3b48))\n* 移除不必要的字符串长度限制","2026-03-12T15:14:59",{"id":204,"version":205,"summary_zh":206,"released_at":207},324183,"0.121.1","## [0.121.1](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcompare\u002F0.121.0...0.121.1) (2026-03-09)\n\n\n### Bug修复\n\n* **providers:** 支持更新的 opencode SDK API ([#8060](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F8060)) ([7ec80b2](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F7ec80b2e173dc99438002c8f5d16feb7b6643aa1))","2026-03-09T16:34:10",{"id":209,"version":210,"summary_zh":211,"released_at":212},324184,"0.121.0","## [0.121.0](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcompare\u002F0.120.27...0.121.0) (2026-03-09)\n\n\n### ⚠ 重大变更\n\n* **providers:** 在 claude-agent-sdk 中，将相对配置路径解析为相对于配置目录的路径 ([#8030](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F8030))\n\n### 功能特性\n\n* **redteam:** 将保险插件通用化，适用于所有保险类型 ([#8002](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F8002)) ([945c3bc](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F945c3bc6725ca8bc7369f7d0efed6f8394da98fa))\n* 当目标关闭对话时，停止多轮 redteam 攻击 ([#7942](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7942)) ([d849923](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002Fd84992322a2442f6d1a71a744f297d5e808ab770))\n\n\n### 错误修复\n\n* **app:** 通过 onChange 限幅来强制执行策略配置限制 ([#8045](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F8045)) ([9b8920d](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F9b8920d97a3a8cd4091e7e5b6ff20efff74e2ded))\n* **app:** 恢复复合越狱策略的可见性 ([#8013](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F8013)) ([a34ec66](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002Fa34ec664ece825532bcd14c31b79ddf0afab9dbc))\n* **ci:** 在 CI 环境中跳过电子邮件验证 API 调用 ([#8034](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F8034)) ([594a4a7](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F594a4a7ad46203d2c5d3ac833c25ecfd14295847))\n* **cli:** 在加载文件之前限制代理的文件系统读取量 ([#8050](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F8050)) ([d39c41b](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002Fd39c41b89262fafeced2778801e2e637eab8d19a))\n* **deps:** 将依赖 @opencode-ai\u002Fsdk 更新至 ^1.2.19 ([#8052](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F8052)) ([995f94c](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F995f94cef32c953de83d3e35cd273c09fad34472))\n* **deps:** 将依赖 fast-xml-parser 更新至 ^5.4.2 ([#8042](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F8042)) ([8be46a5](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F8be46a5b096092cf68ef1cf989e706b461807d0c))\n* **deps:** 更新 opentelemetry ([#8056](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F8056)) ([6b4ed86](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F6b4ed863686fa49e922d697bbf725555cd8adaa0))\n* 使包含断言中的带引号逗号解析保持一致 ([#8041](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F8041)) ([3c1ad55](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F3c1ad55811347febe7479b4bfb77887b7dc5003e))\n* **providers:** 在 claude-agent-sdk 中，将相对配置路径解析为相对于配置目录的路径 ([#8030](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F8030)) ([2e8a976](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F2e8a9763ee2e663473f915b18417abdbaf408634))","2026-03-09T15:39:14",{"id":214,"version":215,"summary_zh":216,"released_at":217},324185,"0.120.27","## [0.120.27](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcompare\u002F0.120.26...0.120.27) (2026-03-06)\n\n\n### 功能特性\n\n* 为 Claude Code 和 Codex 添加 promptfoo-evals 代理技能 ([#7985](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7985)) ([71160fe](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F71160fea6aaa3471de9c6027b929830bdd7acfb0))\n* **应用：** 添加媒体库页面 ([#6901](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F6901)) ([4eba85a](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F4eba85aac7a3103a4edbf40c834dd23301160afe))\n* **代码扫描：** 针对容量错误添加指数退避重试机制 ([#8016](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F8016)) ([8d263e4](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F8d263e47118f99a12289debc9ff746c43660fc96))\n* 添加道德人工智能映射 ([#7948](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7948)) ([4e2c897](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F4e2c897c62936ea896ecfc2ba2864739eeb0191f))\n* **评估创建者：** 添加 YAML 下载和 CLI 调用提示 ([#7932](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7932)) ([c73c002](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002Fc73c002fdd45bc116537c74711010877b05584a0))\n* **评估：** 在运行评估之前检测缺失的 API 密钥 ([#7937](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7937)) ([d2b7d61](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002Fd2b7d61f2a68834e525a1d4bb6e6fa39d03318ae))\n* **评估：** 默认禁用自动分享功能，除非是付费云客户 ([#7982](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7982)) ([9df2250](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F9df2250611e18218fd5a12eade8958bdbfafdaf2))\n* 处理红队预检中的 email_verification_required（ENG-1531）问题 ([#7979](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7979)) ([2c66d1b](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F2c66d1b6ec4627323b5ea764121b22d8d77ac7c0))\n* **提供商\u002F谷歌：** 添加 Nano Banana 2 图像模型支持 ([#7884](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7884)) ([0dba833](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F0dba833169ce94c2ca7ea94cf14eb9b24b75663f))\n* **提供商：** 添加 gpt-5.3 和 gpt-5.2 别名 ([#7965](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7965)) ([2001eda](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F2001edafb90d2e75bc12ada5864113abb1a56893))\n* **提供商：** 添加 gpt-5.4 和 gpt-5.4-pro 别名 ([#8008](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F8008)) ([3d9826e](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F3d9826e93193f4cb90756655f0628c54d0648616))\n* **提供商：** 添加 gpt-5.4 模型支持 ([#8009](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F8009)) ([968ca35](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F968ca35c73e6ec3289e4eccae0a4f2c12665f02a))\n* **提供商：** 添加 ModelsLab 图像生成提供商 ([#7925](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7925)) ([df5f07a](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002Fdf5f07af00361541730e3bb64a8bff8d54f3fce0))\n* **提供商：** 为 Gemini 模型添加 Vertex AI 成本计算 ([#7490","2026-03-06T22:14:25",{"id":219,"version":220,"summary_zh":221,"released_at":222},324186,"0.120.26","## [0.120.26](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcompare\u002F0.120.25...0.120.26) (2026-03-03)\n\n\n### 功能特性\n\n* 添加 financial:sox-compliance 插件 ([#7780](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7780)) ([b7cfc8e](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002Fb7cfc8e47c5594a498c8a472460896424e5ada52))\n* 添加 model-identification 插件 ([#7883](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7883)) ([a2ac7c6](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002Fa2ac7c6139aaed061f41fd7ab83c7562e1672068))\n* **app:** 为 Chip 组件添加 href 支持 ([#7783](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7783)) ([983970a](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F983970ab8f9ed0731f3c0dcac27f2f76ce2ce0d0))\n* **providers:** 添加 Gemini 3.1 Pro 支持 ([#7779](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7779)) ([e41c203](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002Fe41c203bb53ac0e9dc02b1bcd9682c3044b87c57))\n* **providers:** 在 Claude Agent SDK 响应元数据中公开工具调用信息 ([#7790](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7790)) ([d1a2d28](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002Fd1a2d289bb5154a5dd6b412ce03146ed760d33a0))\n* **providers:** 支持通过 LITELLM_API_BASE 环境变量覆盖基础 URL ([#7862](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7862)) ([9aa543e](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F9aa543e8fd30c4a3209d30e6930758498c34c7a8))\n* **redteam:** 为 redteam 路由添加 Zod 验证 ([#7811](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7811)) ([85e4c48](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F85e4c4815541482d72261e1d7d6a8b6d9e172381))\n* **redteam:** 改进评估页眉、打印样式及报告导航功能 ([#7613](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7613)) ([3beaca4](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F3beaca4c4248df31f6f6f15c4a869d08a23533e1))\n* **report:** 添加未测试框架插件的切换开关 ([#7770](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7770)) ([63d803c](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F63d803c503be0ce842bc838dac901dd8db6c6823))\n* **server:** 添加 CSRF 防护中间件 ([#7840](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7840)) ([a574489](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002Fa5744892efeb7980934d15d97b1895d792d43b3b))\n* **server:** 为评估、用户和 redteam 路由添加 Zod 验证 ([#7817](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7817)) ([21948ec](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F21948ec0b9fad283384967b9a09d49d2d106d1c7))\n* **server:** 为模型审计路由添加 Zod 验证 ([#7799](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7799)) ([b441654](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002Fb4416540a2e7edb0b1362f17073635c9f6a38c63))\n* **server:** 为提供商路由添加 Zod 验证 ([#7814](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7814)) ([27e0fc3](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F27e0fc38bb2e1f8f3d0028d5c4a17d2b08d1e388))\n* **server:** 为追踪、Blob、媒体及版本相关路由添加 Zod 验证","2026-03-03T00:44:46",{"id":224,"version":225,"summary_zh":226,"released_at":227},324187,"0.120.25","## [0.120.25](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcompare\u002F0.120.24...0.120.25) (2026-02-18)\n\n\n### 功能特性\n\n* 为建议的策略添加重新生成按钮 ([#7652](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7652)) ([2b09693](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F2b096935c26ee148ad28f7bfe47ddad292ce9bd3))\n* **app:** 为 Combobox 组件添加 renderOption 属性 ([#7723](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7723)) ([a609016](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002Fa609016ce3605f39e13274e99b32f5fd968518f4))\n* 添加 eval setup 命令以打开评估设置网页视图 ([#7663](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7663)) ([58c634f](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F58c634fed8a350a63f63795bca6614649b55c353))\n* **eval:** 支持使用云 UUID 配置进行 eval -c 操作 ([#7661](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7661)) ([5175eba](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F5175eba6312569d9fc532fcfbdbe6633c5bc6f07))\n* **fetch:** 添加 PROMPTFOO_FETCH_CONNECTIONS 环境变量，用于覆盖 HTTP 连接池大小 ([#7758](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7758)) ([535d30b](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F535d30bf7360904b8c28b65acaebaf72a55bf4b8))\n* **providers:** 添加对 Claude Sonnet 4.6 的支持 ([#7734](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7734)) ([2679911](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F2679911e19d13f236d5cd3a42efc2d57500f094d))\n* **providers:** 为 OpenAI Codex 提供商添加 GPT-5.3 模型支持 ([#7674](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7674)) ([2c0f588](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F2c0f588f70309adb5976807c42d559ef0ff64be6))\n* **providers:** 添加 OpenClaw 多提供商支持 ([#7562](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7562)) ([ee1a607](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002Fee1a6073c9e6a39ac19595b786a1ff5311404b1c))\n* **redteam:** 存储并显示正确的扫描时间 ([#7591](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7591)) ([ca76e58](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002Fca76e5894be04a37a16837d85f631687950118cf))\n* **targetLink:** TargetLink 探针通信的共享类型和 CLI 辅助工具 ([#7638](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7638)) ([d82e4b1](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002Fd82e4b1171bf840b08c395d4f4e34fccb5147139))\n\n\n### 错误修复\n\n* **ci:** 修正 calibreapp\u002Fimage-actions 标签引用 ([#7677](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7677)) ([9a6ca07](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F9a6ca071b11fef8afec0568b6314031e23ed6815))\n* **cli:** 清晰化缺失配置搜索提示 ([#7721](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7721)) ([2942908](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F294290834db8c8ef620a342c71b764236d4adfa6))\n* **deps:** 更新 anthropic 相关包 ([#7659](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7659)) ([4f2b2e9](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F4f2b2e96b747ed92114a1be4cb8bb9f136b91b37))\n* **deps:** 更新依赖 @anthropic-ai","2026-02-18T20:50:36",{"id":229,"version":230,"summary_zh":231,"released_at":232},324188,"0.120.24","## [0.120.24](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcompare\u002F0.120.23...0.120.24) (2026-02-10)\n\n\n### Features\n\n* add --filter-prompts option with MCP alignment ([#7451](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7451)) ([e9b53e2](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002Fe9b53e2ac83df1f6e98bf9561a6a3c8d87d271af))\n* **eval:** add hidden column indicators and schema-based column visibility persistence ([#7536](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7536)) ([8fbeb60](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F8fbeb60a1cbb2171b6fa53e548f2dacbffa8a31f))\n* **fetch:** add Cloudflare 524 timeout to transient error retry ([#7590](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7590)) ([e7c1c81](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002Fe7c1c8152c4517c9fca24335b5955924cc0cf3d1))\n* **providers:** add Claude Opus 4.6 support across all platforms ([#7506](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7506)) ([850c3bf](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F850c3bf9d38d3ab850e80f86c15ccd8c384b59a8))\n* **providers:** add pricing support for Google AI Studio models ([#7491](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7491)) ([ffcacd4](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002Fffcacd4b2a04ec670f26608bb6946e4c206741f9))\n* **providers:** disable MCP caching by default, add cache_mcp opt-in ([#7518](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7518)) ([3f224a6](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F3f224a6d2be47fd31cc4260e1b1a673de82f87b8))\n* real estate plugins ([#7494](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7494)) ([ef92072](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002Fef9207295df0a848edb458670c70f3623ad68c6b))\n\n\n### Bug Fixes\n\n* **deps:** update dependency @modelcontextprotocol\u002Fsdk to ^1.26.0 ([#7588](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7588)) ([3902784](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F3902784a78ad58294001accff0c4ab7033a789cd))\n* **deps:** update dependency @octokit\u002Fauth-app to ^8.2.0 ([#7560](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7560)) ([b7d9b4d](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002Fb7d9b4d83361f7f03062e4f584727cd2ef8c7d1a))\n* **deps:** update dependency @opencode-ai\u002Fsdk to ^1.1.49 ([#7559](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7559)) ([08ebaae](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F08ebaae059375ac7a0bbbd29bbfddb1b0a278050))\n* **deps:** update dependency @opencode-ai\u002Fsdk to ^1.1.50 ([#7578](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7578)) ([3697c4f](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F3697c4f318d0a7d7a264b76d67dc39416736133a))\n* **deps:** update dependency @opencode-ai\u002Fsdk to ^1.1.51 ([#7580](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7580)) ([22630d1](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F22630d14a223924f5d8949e912f331373c8a66f1))\n* **deps:** update dependency glob to ^13.0.1 ([#7568](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7568)) ([d783cdc](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002Fd783cdc806c6bcac41179c343048dfd803cfd987))\n* **deps:** update dependency minimatch to ^10.1.2 ([#7570](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7570)) ([12d604c](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F12d604c5af0229a9f64011f6982716db540ee49b))\n* **deps:** update dependency ora to ^9.2.0 ([#7581](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7581)) ([8f4fc1e](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F8f4fc1ecd24ba282a724927a29c6838931dedb84))\n* **deps:** update dependency posthog-node to ~5.24.10 ([#7584](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7584)) ([d47b996](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002Fd47b99621e3bf1eac80608f9f3f4bd77842c5f64))\n* **deps:** update dependency posthog-node to ~5.24.9 ([#7564](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7564)) ([644bc11](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F644bc112f738f36c2054b98235c3eca76d7bffab))\n* **deps:** update dependency semver to ^7.7.4 ([#7602](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7602)) ([6882a4d](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F6882a4d688e64f527c74dcf1ba45ff8f5e79f375))\n* **deps:** update openai packages ([#7577](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7577)) ([cc71973](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002Fcc71973210c3ebefe55e993294cd03df7d4bc145))\n* **eval:** correct promptIdx alignment with test-level filtering ([#7544](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7544)) ([0f4ae84](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F0f4ae84699f1d3836abde351b34c18e7bb1ec2dd))\n* **eval:** fix SSL \"bad record mac\" errors under concurrent API load ([#7466](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7466)) ([5eb903b](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F5eb903b20a860f3af96410ba353f51ea4e650092))\n* **eval:** show more toggle for metrics in cells for evals ([#7530](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7530)) ([1367921](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F1367921d626320cd1f4ff1885bb11f35f75f5026))\n* **huggingface:** concurrent dataset fetching ([#7423](","2026-02-10T21:20:00",{"id":234,"version":235,"summary_zh":236,"released_at":237},324189,"0.120.23","## [0.120.23](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcompare\u002F0.120.22...0.120.23) (2026-02-06)\n\n\n### Bug Fixes\n\n* **blobs:** restore cloud blob upload for shared evals ([#7484](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7484)) ([7eb1009](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F7eb100939c07b0b414459682cdd057e024b39814))\n* **deps:** update dependency @opencode-ai\u002Fsdk to ^1.1.48 ([#7499](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7499)) ([b081a54](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002Fb081a54887bd4c8ff79cc81b305b8f10f21c2962))\n* **deps:** update dependency commander to ^14.0.3 ([#7497](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7497)) ([1c8f67a](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F1c8f67a7af72cd4bd8fa0d63b8dab261a2405a8b))\n* **eval:** restore runtime vars when filtering tests for re-run ([#7071](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7071)) ([c53523c](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002Fc53523c461d9a1b93ce03bcc149605746a9307f3))\n* **redteam:** avoid undefined callApi with Python mischievous-user ([#7509](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7509)) ([395856c](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F395856ca76e57d46c42efa2d8a389e788990bb5c))\n* **redteam:** data exfil grader falls through to LLM rubric on no server-side hit ([#7516](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7516)) ([6fbd246](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F6fbd246792ea00c6f135c4968fb8c8e5e0454673))\n* **redteam:** include specific policy IDs in severity map ([#7492](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7492)) ([61935ee](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F61935ee9ced0bd5a4675c2a59456b9e0abbe66c0))\n* **redteam:** skip refusal check when output contains valid prompt markers ([#7524](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7524)) ([882f47e](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F882f47e145181ae4cbaeac3ee05a39f625f88349))\n* **redteam:** strip eval- prefix from dynamic page URLs ([#7496](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7496)) ([f467707](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002Ff467707e15758113278610ed9a9fea54f8afba8c))\n\n\n### Performance Improvements\n\n* **redteam:** strip graderExamples from remote generation requests ([#7522](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7522)) ([d7df221](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002Fd7df221b5857b2ca0c77256447c3bb9ec4572a2f))","2026-02-06T21:47:54",{"id":239,"version":240,"summary_zh":241,"released_at":242},324190,"0.120.22","## [0.120.22](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcompare\u002F0.120.21...0.120.22) (2026-02-04)\n\n\n### Features\n\n* **redteam:** enable multilingual support for audio\u002Fvideo\u002Fimage strategies ([#7485](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7485)) ([01b62ce](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F01b62cee55c4c06edc510d9684a4696bbc62633b))\n\n\n### Bug Fixes\n\n* **app:** move rows useMemo after table declaration to fix build ([#7475](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7475)) ([d1c2a39](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002Fd1c2a39d6729de3988cbc4c21f72126ca5e0a8c6))\n* **app:** reduce payload to avoid RangeError ([#7436](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7436)) ([ff3d3d9](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002Fff3d3d9d31ebeb87c461db4443ce233e915d29d2))\n* **app:** show all table rows when printing instead of just current page ([#7387](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7387)) ([ca50ce8](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002Fca50ce87c9ea59ac5d81a09430929f10ad92cb82))\n* **cli:** improve error messages for missing config file ([#7464](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7464)) ([9189dbf](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F9189dbf2f79d3c237615678c47ce41edefd585f8))\n* **commands:** use streaming iteration in recalculatePromptMetrics to avoid OOM ([#7471](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7471)) ([1346f0a](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F1346f0a130536427829ae451f66323a4a2a2bb3f))\n* **deps:** override lodash-es to 4.17.23 to resolve prototype pollution ([#7474](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7474)) ([f8bbd45](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002Ff8bbd45ad91bd0b389f2c4aa999999a0671abefd))\n* **deps:** update dependency @anthropic-ai\u002Fsdk to ^0.72.0 ([#7460](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7460)) ([4bce247](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F4bce247f1003ab38dbe3115913172b9c5b0b6275))\n* **deps:** update dependency @anthropic-ai\u002Fsdk to ^0.72.1 ([#7472](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7472)) ([bc8be96](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002Fbc8be969ddd782681779d7f7f0404be235113707))\n* **deps:** update dependency ai to ^6.0.62 ([#7456](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7456)) ([cc259e9](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002Fcc259e99a3960c74a1447241dccce42c0d64c91f))\n* **deps:** update dependency fast-xml-parser to ^5.3.4 ([#7476](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7476)) ([29121d5](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F29121d52c5dd36769c23867025e46281f420679d))\n* **deps:** update dependency posthog-node to ~5.24.6 ([#7441](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7441)) ([9d2a59f](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F9d2a59f662965c6d86d6f2acf63d00c9407edbae))\n* **deps:** update dependency posthog-node to ~5.24.7 ([#7465](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7465)) ([b87fbd9](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002Fb87fbd9e06c6b4532c1cd5a8d4fda36ccf7da5d7))\n* export\u002Ftable handling for falsy values ([#7440](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7440)) ([ec5b404](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002Fec5b404de0cadb2de27578c716e37e092dcdd860))","2026-02-04T21:49:08",{"id":244,"version":245,"summary_zh":246,"released_at":247},324191,"0.120.21","## [0.120.21](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcompare\u002F0.120.20...0.120.21) (2026-02-03)\n\n\n### Features\n\n* **app:** add print styles to DataTable for light mode printing ([#7365](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7365)) ([167b27c](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F167b27c4b9483173cebe6eb7b3467e72a723fd3f))\n* **app:** improve HTTP endpoint request body editor ([#7438](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7438)) ([cfadb37](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002Fcfadb3733c252114b5b15daf0f3a95809333b541))\n* **providers:** add HuggingFace chat completion provider ([#7446](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7446)) ([cd709b7](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002Fcd709b7db38fc396ccadce5e960e28019f0efd01))\n* **providers:** add tools and tool choice transformations ([#7420](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7420)) ([c332cef](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002Fc332cefd5dfc141d1f02ae4427509e82aeb1062e))\n* **providers:** add xAI Grok Imagine video provider ([#7395](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7395)) ([8407969](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F84079698c689628f5a7bd775befbc99f4529decc))\n* **redteam:** Add indirect-web-pwn attack strategy ([#6973](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F6973)) ([1065e71](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F1065e711ddd96e53da500a20589914d53d94f157))\n\n\n### Bug Fixes\n\n* **app:** refresh history page when evals complete ([#7189](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7189)) ([31ac183](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F31ac183deb8b09ea7bb657cd579304007515aa1a))\n* **assertions:** resolve dynamic vars before passing to assertion functions ([#7374](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7374)) ([d3ad963](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002Fd3ad963830002c3856a7f1a6ad719e74b8ab91c1))\n* **ci:** replace raven-actions\u002Factionlint with direct download ([#7373](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7373)) ([665f8d3](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F665f8d344e8ed7b9127b0438e9b09bc460259fd0))\n* **cli:** ensure process exits on SIGINT during view command ([#7390](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7390)) ([1a21ce2](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F1a21ce267cbd61e5671a611884b53f5937ac44b5))\n* **cli:** show zero pass\u002Ffail counts in `promptfoo show` ([#7427](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7427)) ([ecc2abc](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002Fecc2abc942c4697813a4acda763c877a34e9a0ab))\n* **cli:** use npx commands in README when init run via npx ([#7377](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7377)) ([1c0504e](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F1c0504e7bdd31e7aa6dde2f1c65e28b4cbcc372c))\n* **deps:** lock file maintenance example dependencies ([#7406](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7406)) ([4f4807c](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F4f4807ce20500ba35b0785729aa5d6de04cb9377))\n* **deps:** run npm audit fix ([#7450](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7450)) ([3f9ac78](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F3f9ac78f4740f4ce0cc52d3e7c66fe2240adcf2e))\n* **deps:** update dependency @actions\u002Fcore to ^2.0.3 ([#7415](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7415)) ([5f0e93f](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F5f0e93f4337eb03546f470fe526afc15d86c5e14))\n* **deps:** update dependency @actions\u002Fgithub to ^8.0.1 ([#7412](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7412)) ([052ba95](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F052ba950240c25239bed8a364f2e628318b42f6b))\n* **deps:** update dependency @actions\u002Fgithub to v8 ([#7402](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7402)) ([b805942](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002Fb805942c7286eca0e42f851c5c1f4a2ced9dd037))\n* **deps:** update dependency @apidevtools\u002Fjson-schema-ref-parser to ^15.2.2 ([#7362](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7362)) ([7ac8a53](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F7ac8a53913fad9101a5698976971495fc8e62618))\n* **deps:** update dependency @opencode-ai\u002Fsdk to ^1.1.35 ([#7380](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7380)) ([632f64d](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F632f64ddb11600b6b4bd66068548add9de902664))\n* **deps:** update dependency @opencode-ai\u002Fsdk to ^1.1.36 ([#7389](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7389)) ([c23e90c](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002Fc23e90cc951a94edcb25de8e0fdbf74a684d4769))\n* **deps:** update dependency ai to ^6.0.50 ([#7399](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7399)) ([af3542d](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002Faf3542d342403d2f9a8cb8de633188ea862e80a6))\n* **deps:** update dependency ai to ^6.0.55 ([#7410](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7410)) ([890d6a7](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F890d6a7bf4781e0ecfaf174516ca21619e53ad1c))\n* **deps:** update dependency ai to ^6.0.56 ([#7417](https:\u002F\u002Fgithub","2026-02-03T19:38:22",{"id":249,"version":250,"summary_zh":251,"released_at":252},324192,"0.120.20","## [0.120.20](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcompare\u002F0.120.19...0.120.20) (2026-01-29)\n\n\n### Features\n\n* **redteam:** add email validation to generate command ([#7314](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7314)) ([4fffc3a](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F4fffc3a2827cfadc9213f06167755fa880a2099d))\n\n\n### Bug Fixes\n\n* **deps:** update dependency @openai\u002Fagents to ^0.4.3 ([#7352](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7352)) ([7fbb175](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F7fbb1750d9304ef65a94762934381de745c96f01))\n* **deps:** update dependency posthog-node to ~5.23.0 ([#7249](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7249)) ([2126508](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F21265087b3af10f627bb56838a772c2c8677b190))\n* **deps:** update dependency posthog-node to ~5.24.2 ([#7357](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7357)) ([5c664a2](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F5c664a2f902b4fa83a8093906088038059b842f2))\n* **redteam:** add retry logic for multi-turn strategy generation ([#7342](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7342)) ([3e10268](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F3e102682789c295c27c1a25dd89bfd687018b295))\n* **redteam:** preserve provider config in browser flow ([#7358](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7358)) ([5941c43](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F5941c432a342fe3c514e25e5efaec264b0d2f4f1))\n* **scheduler:** preserve provider id() method when wrapping with rate… ([#7353](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7353)) ([eee32d4](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002Feee32d4756d56fda37e73c4253fd0fee7481650d))","2026-01-29T03:33:54",{"id":254,"version":255,"summary_zh":256,"released_at":257},324193,"0.120.19","## [0.120.19](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcompare\u002F0.120.18...0.120.19) (2026-01-28)\n\n\n### Features\n\n* **app:** enhance DataTable with column alignment and styling improvements ([#7349](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7349)) ([8b8b122](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F8b8b1223cef96257783caf69079976090db0062c))\n* **app:** extend UI component interfaces for data-testid support ([#7339](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7339)) ([d9dc48a](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002Fd9dc48a4866c1657ef7d4355deddd8f7ecc6dcaa))\n* **webui:** Make severity cards colourful again ([#7346](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7346)) ([ba3c3db](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002Fba3c3db57d9968a85b2b7fcdd35ea61039df8934))\n\n\n### Bug Fixes\n\n* **deps:** update dependency @opencode-ai\u002Fsdk to ^1.1.33 ([#7327](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7327)) ([bc8ee96](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002Fbc8ee96af4f424a25d3e66579205d717894f81a1))\n* **deps:** update dependency @opencode-ai\u002Fsdk to ^1.1.34 ([#7332](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7332)) ([a9523d5](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002Fa9523d51826d42c4d762ac0d414900c04b318cc4))\n* **deps:** update dependency ai to ^6.0.49 ([#7341](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7341)) ([a957b98](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002Fa957b98754982c60fc75fbdb61b6b32c03c81532))\n* serialize Error objects properly in log context ([#7351](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7351)) ([584b283](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F584b283134c8496ce2468003522aa13558bd4182))\n* **share:** add adaptive chunk retry for large eval uploads ([#7335](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7335)) ([1f114da](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F1f114da4b3a9d81e04a771471fcae6df84ba95fd))\n* **webui:** Make chevron clickable for combobox ([#7347](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7347)) ([e7be12d](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002Fe7be12d351f6b137f1964120277775ed384654ad))","2026-01-28T22:54:26",{"id":259,"version":260,"summary_zh":261,"released_at":262},324194,"0.120.18","## [0.120.18](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcompare\u002F0.120.17...0.120.18) (2026-01-28)\n\n\n### Features\n\n* **eval:** support multiple --filter-metadata flags with AND logic ([#7317](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7317)) ([61d8d17](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F61d8d174ee756881edac31dcad9861bb14530803))\n* **providers:** add collaboration_mode support to OpenAI Codex SDK ([#7275](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7275)) ([a3e6d58](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002Fa3e6d58d3580f0ea161646bc75967a86789ee4d7))\n* **redteam:** add early CLI error for missing sharp dependency ([#7222](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7222)) ([f518b39](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002Ff518b39637937a95c6f92a72f3870e26bec50077))\n* **redteam:** informational level severity ([#7298](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7298)) ([4ce1327](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F4ce1327dfab30c39079e9ad8fddd4f436427350b))\n* **scheduler:** add adaptive rate limit scheduler ([#7262](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7262)) ([0f6da61](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F0f6da6141819be36fb0f840f8e94f5cedd3a1739))\n* **server:** add shared API types infrastructure with Zod schemas ([#7260](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7260)) ([f3a12d2](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002Ff3a12d2b4e7f60d3dd997eca2916a5ff98a0fd09))\n* **xai:** add websocketUrl override and expose function calls in voice provider ([#7217](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7217)) ([5865735](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F5865735be1348d317bf793383a5bdf409aea2031))\n\n\n### Bug Fixes\n\n* **deps:** update dependency @modelcontextprotocol\u002Fsdk to ^1.25.3 ([#7268](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7268)) ([45e82e7](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F45e82e73877de890a5848b3c86a1335b50324b7d))\n* **deps:** update dependency @openai\u002Fagents to ^0.4.2 ([#7325](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7325)) ([d2ae2fd](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002Fd2ae2fda6a33ae961c4f177a9fb2df953fadbeee))\n* **deps:** update dependency @opencode-ai\u002Fsdk to ^1.1.26 ([#7248](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7248)) ([597abe0](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F597abe079c5e665f7dad2c583cafd69a5bd9da18))\n* **deps:** update dependency @opencode-ai\u002Fsdk to ^1.1.28 ([#7253](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7253)) ([d689b01](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002Fd689b011497987a0faad07b8ad74b0f06070eecb))\n* **deps:** update dependency @opencode-ai\u002Fsdk to ^1.1.31 ([#7289](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7289)) ([2c10b14](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F2c10b14cfd3c10a1fb0e6054bd748c5fd7d0952c))\n* **deps:** update dependency @opencode-ai\u002Fsdk to ^1.1.32 ([#7315](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7315)) ([01456ea](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F01456eadf2a3621d4a7fc8c97bcb1952d81df491))\n* **deps:** update dependency ai to ^6.0.45 ([#7277](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7277)) ([9d113d1](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F9d113d15b5169fa2a88316b10dafc4e5b84b1a19))\n* **deps:** update dependency ai to ^6.0.47 ([#7305](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7305)) ([dd9bef1](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002Fdd9bef140956e89a9d9b0ae8424ce82eca72e485))\n* **deps:** update dependency ai to ^6.0.48 ([#7307](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7307)) ([9f6e275](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F9f6e2755dfb8db00d8c4097da0eff8e8a2d54306))\n* **deps:** update dependency cors to ^2.8.6 ([#7306](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7306)) ([9f59e5b](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F9f59e5be8ef95fcc6c3b4bed925d41030bc27d77))\n* **deps:** update dependency keyv to ^5.6.0 ([#7269](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7269)) ([0135f8c](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F0135f8c8b03aec40ef1d2a845e6ebcd8e6017a92))\n* **deps:** update dependency lightningcss to ^1.31.0 ([#7251](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7251)) ([20e4ddb](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F20e4ddb39ca6d6966d0107c069716e64d340394c))\n* **deps:** update dependency lightningcss to ^1.31.1 ([#7270](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7270)) ([f41fc9e](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002Ff41fc9e413671ef185b3e6e81b0adea154aeb7ea))\n* **deps:** update dependency ora to ^9.1.0 ([#7271](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7271)) ([0d98bf6](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F0d98bf6d6a0cedbb46007da0781fa27f55b9c8ae))\n* **deps:** update dependency posthog-node to ~5.21.2 ([#7242](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7242)) ([8e8864c](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F8e8864c85457cd3cea8080717a67a1da58ef59f8))\n* **deps:** update dependency undici to ^7.19.0 ([#7291](https:\u002F\u002Fgithub.com\u002Fpromptf","2026-01-28T05:53:29",{"id":264,"version":265,"summary_zh":266,"released_at":267},324195,"0.120.17","## [0.120.17](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcompare\u002F0.120.16...0.120.17) (2026-01-23)\n\n\n### Features\n\n* **redteam:** add telecom vertical red team plugins ([#7182](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7182)) ([678fd1e](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F678fd1e9828aeece905f6d17984f3478846749ee))\n* **redteam:** add VLSU compositional safety plugin ([#6855](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F6855)) ([3e30cb0](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F3e30cb0383991990177f3858cc19022334167974))\n* **webui:** add user-rated filter to show only manually rated results ([#6193](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F6193)) ([cbc59db](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002Fcbc59dbbe9fd7c66e7b6b44bae9559e682f8ad9b))\n\n\n### Bug Fixes\n\n* **app:** fix tabs padding and hover state conflicts ([#7179](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7179)) ([7edf9af](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F7edf9afef478d1223498b431acc12eb8fb062c82))\n* **ci:** use gh pr diff for full reviews to avoid false positives ([#7192](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7192)) ([520f4cb](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F520f4cb9491672b2ee67d1d4c93b83352f9d2d07))\n* **deps:** update dependency @apidevtools\u002Fjson-schema-ref-parser to ^15.2.1 ([#7193](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7193)) ([e1e5faa](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002Fe1e5faa5363344a2b0234ae745f0f85fc8e007fd))\n* **deps:** update dependency @openai\u002Fagents to ^0.3.9 ([#7183](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7183)) ([78cd5f4](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F78cd5f4f235a32bc9c300338955b42193e1b0c95))\n* **deps:** update dependency @opencode-ai\u002Fsdk to ^1.1.24 ([#7177](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7177)) ([a34f27f](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002Fa34f27f82767ee7ef1d109ddb750bcb6e9ddbcc6))\n* **deps:** update dependency @opencode-ai\u002Fsdk to ^1.1.25 ([#7180](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7180)) ([f960f63](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002Ff960f63b3dd8aee3ca34960697fa5e27cb8b0b62))\n* **deps:** update dependency better-sqlite3 to ^12.6.2 ([#7194](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7194)) ([2fca1e1](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F2fca1e152201788ff9f9ec143baacab8b6d61b80))\n* **deps:** update dependency posthog-node to ~5.21.1 ([#7178](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7178)) ([376b8a4](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F376b8a4942a344f7f837956bd5aa6b32033ef38e))\n* **export:** unify CSV exports between CLI and WebUI ([#6659](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F6659)) ([a7080b6](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002Fa7080b63aa7b7b40415b2877a33c5ae4e79530e3))\n* **redteam:** fix policy loading and logging for inline vs reusable policies ([#7210](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7210)) ([b097386](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002Fb0973865a3bc953425094db6d6bf2e0a728629d0))\n* **redteam:** handle isRefusal in Crescendo before parsing JSON ([#7191](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7191)) ([d0c5857](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002Fd0c5857984826f5a89de07ddfd704d2233b03157))\n* **redteam:** use lenient provider matching for agentic strategies ([#7027](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7027)) ([552cb98](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F552cb98d15a34f5a2686a6b2aed5b1badd6952ea))\n* **retry:** prevent data loss when retry fails and add cloud sync ([#7164](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7164)) ([577c4d7](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F577c4d7c2fd4d6dac1e5241e31873080cfd51cd0))\n* **webui:** prevent external URL auto-loading from test variables ([#7076](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7076)) ([b7b5243](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002Fb7b52436512198dfe63a02daa59b32f142cf5385))\n* **webui:** prevent form submission during ime composition ([#7186](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7186)) ([2f3d37a](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F2f3d37acae31521fe934c043d1824662c7fe1524))","2026-01-23T04:10:37",{"id":269,"version":270,"summary_zh":271,"released_at":272},324196,"0.120.16","## [0.120.16](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcompare\u002F0.120.15...0.120.16) (2026-01-21)\n\n\n### Features\n\n* **config:** add per-test structured output support ([#6239](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F6239)) ([4629892](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F4629892c14c8df37d298229209a8a932d607de9f))\n* **eval:** re-enable SIGINT graceful shutdown for eval pause\u002Fresume ([#7012](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7012)) ([06364ef](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F06364ef85ebf0ffe0c5091d594aa91d704dea07a))\n* **providers:** add AWS Bedrock video generation (Nova Reel + Luma Ray 2) ([#6889](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F6889)) ([71cb200](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F71cb2005e639ab45c20b875317d7ad21566beb34))\n* **providers:** add enhanced parameters and chat support for WatsonX ([#6605](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F6605)) ([6cbb5db](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F6cbb5db7487640b8d2855998695e4bc45cf89843))\n* **providers:** support dynamic prompt reporting ([#6843](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F6843)) ([65a2dc7](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F65a2dc79e4f3aa0b5adba466be39bdb93fcc8e4c))\n\n\n### Bug Fixes\n\n* **deps:** update dependency @opencode-ai\u002Fsdk to ^1.1.23 ([#7153](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7153)) ([b697ce7](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002Fb697ce7bbcaf2fd89d172c5fdcfb217bcf466b8c))\n* **redteam:** improve plugin logging and fix report aggregation ([#7150](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7150)) ([5736ff0](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F5736ff0a8e07cc2bd3fd93320ef01e62356ed170))\n* **redteam:** unique display IDs for policy plugins & accurate progress bar ([#7157](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7157)) ([5cbc027](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F5cbc027ef063353bf667787536d1c1d62bcc399e))","2026-01-21T03:20:53",{"id":274,"version":275,"summary_zh":276,"released_at":277},324197,"0.120.15","## [0.120.15](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcompare\u002F0.120.14...0.120.15) (2026-01-20)\n\n\n### Features\n\n* **app:** add NavigationSidebar component and enhance Tabs ([#7073](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7073)) ([55a3125](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F55a3125e5627c2f1a4981744f536fde71b21a5de))\n* **app:** add Storybook with stories for all UI components ([#7066](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7066)) ([53f51cf](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F53f51cf79b9d584dbf1acf1e1142bbde3f1d215f))\n* **app:** enhance Combobox with label and clearable props ([#7074](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7074)) ([53a47c5](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F53a47c59b87135d68ff74a0cce8d788475118987))\n* **app:** Improve alert component ([#7069](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7069)) ([8ee2bcb](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F8ee2bcb8b53e7f55c562b128dcfa9f8997384ded))\n* **code-scan:** fork PR support and comment-triggered scans ([#7038](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7038)) ([4eebb81](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F4eebb8179b9c57ed4cb966d0f63cf2f8d3991096))\n* **eval:** add providers filter on test cases ([#6872](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F6872)) ([4d64d84](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F4d64d84b8aed357b792834731d521de4913272ca))\n* **eval:** add test-level prompts filter ([#6686](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F6686)) ([895e1b4](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F895e1b4a4ee683c3fccb2c02de9527574faba223))\n* **eval:** surface metadata.sessionId as a variable column in tables and exports ([#7087](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7087)) ([736bddb](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F736bddb911065806b8da8d7583adba395c3673aa))\n* **evaluator:** add __count variable for derived metrics averages ([#7092](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7092)) ([31ad6e6](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F31ad6e60e607e24276aa7a8f62e9b497c2bc1a82))\n* **providers:** add apiBaseUrl support to xAI Voice provider ([#7088](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7088)) ([a1d535a](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002Fa1d535a32ba6231fb8593b6501600b21e7578468))\n* **providers:** add native session endpoint support for HTTP provider ([#7133](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7133)) ([54c315b](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F54c315b4d69e586aae173b7b91e0d6ff7cde59dc))\n* **providers:** add Transformers.js provider for local inference ([#6661](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F6661)) ([dd9b199](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002Fdd9b199dea69e986888ac530896123c27edee4d2))\n* **providers:** add Vercel AI gateway ([#7061](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7061)) ([f2a4c89](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002Ff2a4c89da251c0ccb78605e82de20d162fd1e74e))\n* **python:** propagate -j concurrency flag to worker pool ([#7065](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7065)) ([32ffdd5](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F32ffdd5e9a0e05b0f6a2352cf87ba28e58edbbe3))\n* **redteam:** add -d\u002F--description flag to generate command ([#7148](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7148)) ([c305085](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002Fc3050851bb8dc1abdfdffa62663b5b5c0d9659c1))\n* **redteam:** add RAG source attribution plugin ([#7064](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7064)) ([3efe2a6](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F3efe2a6cf300f185a29cb434d5e50a2a370d0466))\n* **redteam:** stop scan early when plugins fail to generate test cases ([#7017](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7017)) ([49b856b](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F49b856b4b7141e950b5c856b1608f7bf59819b4b))\n* **webui:** Multi-input in redteam setup UI ([#6954](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F6954)) ([3c45963](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F3c459639147962cca65c63d8df0377ae0ba3a9cf))\n\n\n### Bug Fixes\n\n* **config:** resolve env variables from config env section in provider IDs ([#7093](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7093)) ([736f65a](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F736f65a5d19fe355b58d2fee093514c4fe7ff7b8))\n* **deps:** update dependency @apidevtools\u002Fjson-schema-ref-parser to ^15.2.0 ([#7131](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7131)) ([a7ef170](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002Fa7ef17014ad44d3642ba2f4a790ddf0df40d200c))\n* **deps:** update dependency @openai\u002Fagents to ^0.3.8 ([#7123](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7123)) ([85a3c92](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F85a3c921ec2db77e4866aedd3ca7e3087fa47f42))\n* **deps:** update dependency @opencode-ai\u002Fsdk to ^1.1.20 ([#7124](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fissues\u002F7124)) ([271ea58](https:\u002F\u002Fgithub.com\u002Fpromptfoo\u002Fpromptfoo\u002Fcommit\u002F271ea58391df834ad349d0c366701f964402cac1))\n* **d","2026-01-20T21:16:12"]