v2.3.2 — 视觉预处理统一 + OpenAI 防御强化 + 认知重构
📸 视觉预处理统一化(修复 #8)
- 新增
preprocessImages()函数:在convertToCursorRequest()入口统一检测 AnthropicImageBlockParam图片块 - 修复 Claude CLI 选择图片后不进 vision 预处理的 bug — 图片处理从分散的 handler 调用统一到 converter 层
extractMessageText()新增case 'image':兜底处理,vision 关闭/失败时保留图片元信息而非静默丢弃- Express body 限制从 10MB → 50MB,支持大型 base64 图片传输
- 完善日志链路:📸 检测图片 → ✅ 处理成功 /
⚠️ 残留 / ❌ 失败
🛡️ OpenAI 端全面防御层对齐
- OpenAI Chat Completions API 端新增完整的拒绝检测 + 自动重试机制(与 Anthropic 端一致)
- OpenAI 端新增响应清洗(
sanitizeResponse),所有输出后处理替换 Cursor 身份引用为 Claude - OpenAI 端新增身份探针拦截(
isIdentityProbe),拦截"你是谁"等身份询问 - 流式模式改为统一缓冲后发送,先检测拒绝再输出(与 Anthropic handler 策略同步)
🧠 非工具场景认知重构
- 无工具请求(如 ChatBox 纯对话)新增认知重构前缀,防止模型暴露 Cursor 文档助手身份
- 无工具场景的助手历史消息清洗:自动替换包含
read_file/read_dir工具声明的拒绝文本 - 工具能力询问("你有哪些工具")返回 Claude 能力描述而非硬拦截
- 解决了 ChatBox、LobeChat 等 OpenAI 兼容客户端效果差的核心问题
👁️ v2.3.0 新增:多模态视觉拦截与降级
- 开箱即用的纯本地 OCR (
mode: 'ocr'):零配置、免 API Key,利用本机 CPU 毫秒级提取图片中的文本 - 兼容第三方视觉 API (
mode: 'api'):支持 Google Gemini、OpenRouter 等免费视觉大模型
Full Changelog: https://github.com/7836246/cursor2api/commits/v2.3.2