Skip to content

WaLiAPI v0.2.2

Choose a tag to compare

@github-actions github-actions released this 26 Aug 00:40

Web 管理面板(Docker / headless 部署)

  • Linux headless 服务器部署:新增 waliapi-web 二进制(无桌面窗口),支持 Docker 和 systemd 两种部署方式,适合放在 Linux 服务器上长期运行
  • Web 管理面板:浏览器访问完整管理界面,与桌面版业务能力一致——仪表盘、渠道管理、密钥管理、日志审计、安全规则、知识库、Wiki、MCP、导入导出、应用配置等
  • 多阶段 Docker 构建:Node/pnpm 编译前端 → Rust 编译 waliapi-server → 运行时使用非 root 用户,SQLite 数据持久化到 /data
  • GitHub Actions 发布:推送 web-v* 标签自动创建 Release、上传二进制包、发布 Docker 镜像到 GHCR
  • systemd 部署支持:提供 systemd unit 文件和环境变量配置示例,适合不用 Docker 的场景
  • Web 管理面板用户设置:支持修改管理员用户名和密码
  • 🔧 桌面版自动启动内嵌服务:移除"随应用启动内嵌服务"开关,桌面版启动后自动运行 HTTP 服务
  • 🔧 后端重构分离桌面版与 Web 服务:同一 Rust 代码库编译出桌面版(Tauri 窗口)和 headless 版(纯 HTTP 服务)

Web 适配层修复

  • 🐛 api.ts 绕过 runtime 适配层api.ts 直接用 @tauri-apps/api/coreinvoke,浏览器环境无 Tauri IPC 全部失败,改为统一走 runtime.ts 适配层
  • 🐛 runtime.ts 请求路径和格式不匹配后端:修正 fetch 路径(/api/admin/invoke/admin/api/invoke)、body 字段名(commandcmd)、响应解析逻辑、补齐 CSRF 头(X-Requested-With)、SSE 路径同步修正
  • 🐛 default-run 缺失导致 cargo run 报错Cargo.toml 有两个 binary(waliapi + waliapi-web),未设 default-run,补上 default-run = "waliapi"

流式请求超时修复(502 问题)

  • 🐛 流式请求被总超时掐断reqwest.timeout() 是整个请求总超时(含 SSE 传输),大量对话时 LLM 生成时间超过 timeout_secs(默认 60s)连接被掐断,客户端收到 502
  • 🔧 分离流式/非流式超时策略:新增 streaming_client()(仅 connect_timeout 10s,不设总超时)和 blocking_client()connect_timeout + 总超时 timeout_secs),流式请求不再受总超时限制
  • 🔧 全链路覆盖:5 个 adaptor(openai/claude/deepseek/gemini/custom)的 forward_stream + endpoint_executor + handlers.rsopenai_messages_request / native_anthropic_request + embeddings 全部切换到对应 client

模型映射编辑修复

  • 🐛 模型映射编辑输入丢失useModelMappingsuseEffect([initial]) 在每次 prop 变化时重置内部状态,pairsToMapping 丢弃 from/to 为空的不完整行后,onChange → 父组件更新 → prop 变化 → useEffect 重置 的循环把用户正在输入的数据吃掉。引入 skipNextSyncRef + markSynced() 跳过内部变更的 round-trip

Codec 加固

  • 🔧 Chat store/stream_options 归一化:归一化 Chat 请求的 storestream_options 字段,合批 Responses 工具调用与 easy input
  • 🐛 thinking none/off 映射修复:thinking 设为 none/off 时映射为 adaptive + low effort,不再报错
  • 🐛 --help 参数路由修复--help 在参数路由前拦截,恢复正常帮助文本和退出码 0

Docker 构建修复

  • 🐛 Rust 基础镜像升级:rust 1.88 → 1.96,notify-rust@4.18 要求 rustc ≥ 1.89
  • 🐛 Dockerfile.tp 兼容国内镜像:新增国内镜像源构建变体,去掉 syntax 指令(tp 网络到不了 auth.docker.io)
  • 🔧 tauri.conf.json 显式指定 mainBinaryName:修复构建时 binary 名称不确定的问题

其他

  • 版本号统一升级至 0.2.2(package.json / Cargo.toml / tauri.conf.json)
  • Cargo.toml 添加 default-run = "waliapi"