Skip to content

v2.4.8

Choose a tag to compare

@SelinuxJXM SelinuxJXM released this 12 Oct 10:06
· 1 commit to main since this release

JSecProbe v2.4.8 更新内容

本次修复了两个同根同源的地址拼接缺陷:它们都不会崩溃、不会弹错框,而是表现为「AI 已经配置好了,但就是不出结果」,是典型的静默失败。同时把 AI 请求地址的构造统一收口,避免同类问题再次出现。

修复

  • 修复:本地 AI(Ollama)对话必定失败,提示「本地引擎请求失败(404)」

    使用本地 Ollama 时,状态栏显示「AI 已配置」,但每次发送消息都失败。根因是「AI 智能辅助」的对话入口把地址拼成 {引擎地址}/v1 就直接发起请求,缺少 /chat/completions 这一段;Ollama 对该路径只返回 Go 的默认 404 文本(404 page not found)。

    值得注意的是:AI 分析 / 结论 / 评估等其它功能走的是另一条路径(地址补全正确),报告生成更是直接使用 Ollama 原生接口——所以本地模型在除对话外的功能里一直是正常的,只有这一个入口受影响,这也是该问题长期未被发现的原因。

  • 修复:报告生成的云端 AI 调用请求到不存在的端点

    报告生成在云端模式下只补了 chat/completions、没有补版本段。由于保存配置时会把用户填写的 /v1 剥掉再入库,实际请求落在 {域名}/chat/completions 上,服务端返回 404 后被静默捕获并回退到内置模板——现象是「AI 报告没起作用,但也不报错」。

加固

  • AI 请求地址构造统一收进 electron/services/ai-url.ts,作为全项目唯一入口;聊天、分析、报告生成不再各写一套拼接规则。
  • 本地引擎地址做归一处理:把地址填成含 /v1、/chat/completions 或带尾部斜杠的形式,都不会再拼出重复路径(如 /v1/v1/chat/completions)。

质量保障

  • 新增 4 条端点解析用例,覆盖默认地址、未配置回落、尾部斜杠与版本段的幂等性。
  • 新增一条真机端到端用例:本机运行 Ollama 时,用真实模型跑通一次本地对话,断言返回 200 且内容非空;持续集成环境无 Ollama 时自动跳过。
  • 测试基线:5 个文件 64 个用例,全部通过。

兼容性

数据库结构无变更,可直接覆盖升级。

说明:云端地址若指向内网自建服务,报告生成现在也会与聊天保持一致、受同一套 SSRF 防护约束;如确为内网部署,可设置环境变量 JSECPROBE_ALLOW_PRIVATE_API=1 显式放行(会在日志中留痕)。