2.0.0-preview.3
发布日期:2026-07-08
✨ Features
- about: 更新下载流程新增可见进度,显示状态、文件名、已下载大小、总大小和百分比;总大小未知时显示不确定进度。
- about: 自动安装现在先完成 WebUI 可见下载,再触发安装接口;下载失败或取消时不会继续进入安装步骤。
- about: 确认安装后不再保留遮挡进度条的弹窗,下载进度卡片新增取消按钮,可直接终止正在进行的更新下载。
- about: 更新缓存清理补齐,取消下载会删除
.download半成品,安装成功和程序启动时会清理已使用或历史遗留的更新包、一次性脚本和 staging 目录,避免data/updates按版本长期堆积。 - about: 自动安装支持 Linux
.tar.gz/.tgz主程序包,Linux 更新脚本会保留用户目录、替换 WebUI 并重启ISkyPro。 - about: 关于页新增 GitHub 仓库入口,保留文档、Release 和更新日志入口。
- webui: 侧边栏版本徽标和关于页当前版本改为读取后端运行时版本,临时测试版本或更新重启后不再依赖 WebUI 内置 changelog 版本。
- webui: 自动打开 WebUI 时会携带当前程序版本参数,
index.html和更新接口响应设置为 no-cache/no-store,避免更新重启后首屏继续使用旧版前端缓存。 - package: 新增 Linux x64 preview 主程序包
ISkyPro-<version>-linux-x64.tar.gz,解压后可直接运行ISkyPro;Linux 包启用 invariant globalization,不需要额外安装 ICU,并且不包含 Windows ISky v1 插件宿主、message.dll或 Windows Service 脚本。 - plugins: 插件页新增“ISky v1 / ISkyPro v2+”选项卡、数量徽标和选择记忆;首次打开时优先显示插件数量更多的一类。
- plugins: ISkyPro v2+ 插件页展示 Plugin SDK v2 插件的协议版本、transport、权限、命令数量、Bot 绑定、队列指标、最近错误、HTTP 注册和日志入口。
- gateway: WebSocket 业务事件接收与插件分发、QQBot HTTP 发送解耦,网关读取循环不会再等待慢插件或慢发送链路。
- gateway: 新增业务事件队列和 outbound 发送队列指标,包括排队、处理中、完成、丢弃、失败、限流和最近错误。
- runtime: 非 Windows 运行时改用本地 AES-GCM 密钥保护 WebUI token、Bot Secret 等运行时凭据,密钥位于
data/iskypro.runtime.key并会随用户数据保留。
🧩 Plugin Development
- sdk: 新增 Plugin SDK v2 协议草案,覆盖静态 manifest、
stdio-jsonrpctransport、JSON-RPC 2.0 长度帧、初始化握手、typed + raw 事件和messageReference。 - sdk: 新增
ISkyPro.PluginSdk.V2C# 原型接口与EchoPluginV2示例,覆盖 typed 字段、rawPayload、延迟回复、非消息类 SDK 方法和日志。 - sdk: 新增 Python / Node.js Plugin SDK v2 最小包和
stdio-jsonrpc跨语言样例,封装Content-Lengthframing、initialize、事件 ACK、invoke、log.write和被动文本回复。 - sdk: 新增 Go Plugin SDK v2 最小 module 和
samples/stdio-go-plugin,封装stdio-jsonrpcframing、initialize、事件 ACK、context.Context、Invoke、LogWrite和ReplyText。 - sdk: 新增 QQBot API catalog stub 生成器,可从
qqbot-api.catalog.json生成 C#、Python、Node.js 和 Go SDK method stubs,并用测试校验生成输出与 catalog 同步。 - qqbot-api: 新增 QQBot API v2 方法目录和规范 OpenAPI client 原型,核心覆盖消息、媒体、用户、群、频道、成员和权限接口。
- v2-plugin: ISkyPro v2+ 插件调度新增 observer / command / filter 模式、快速 ACK、插件专属有界队列、命令路由、过滤器超时和分发指标。
- v2-plugin: Main 新增
plugins-v2/*/manifest.json静态发现;有效 Plugin SDK v2 包会以stopped状态进入 API 快照,无效 manifest 会以invalidManifest和校验错误暴露,扫描阶段不会执行未知进程。 - v2-plugin: ISkyPro v2+ 插件快照新增 stdio 运行时状态字段,包括 state、processId、startedAt、lastExitAt、exitCode、crashCount、nextRestartAt、permissions、settingsAvailability 和 packageDirectory。
- v2-plugin: 新增
stdio-jsonrpcJSON-RPC client 和受管进程启动路径;用户触发 start 时会按 manifest 启动插件、发送iskypro.initialize、校验 pluginId/protocol/encoding/capabilities,并把成功握手的进程绑定为运行中 client。 - v2-plugin: stdout 现在作为严格协议通道处理,普通 stdout 日志会被判定为协议污染并拒绝启动;stderr 已按行采集到框架插件日志。
- v2-plugin:
stdio-jsonrpc插件新增真实 stop/restart/shutdown lifecycle;stop 会发送plugin.stop,短超时未退出时 kill 进程树,用户 stop/disable/shutdown 不会触发自动重启。 - v2-plugin:
stdio-jsonrpc插件异常退出会进入restartPending,复用 v1 插件崩溃窗口、延迟和连续崩溃禁用阈值;到期后台服务会自动重新启动并重新执行 initialize。 - v2-plugin: 新增 Plugin SDK v2 runtime token 服务;token 绑定 pluginId、instanceId 和进程生命周期,通过 initialize 传入插件,stop、crash 和 restart 会使旧 token 失效并重新签发。
- v2-plugin: 新增 SDK API dispatcher,调用
log.write、users.getCurrentBot和 catalog 方法前会校验 token、pluginId 归属、manifest 权限和 catalog defaultEnabled 状态;unsafe.rawOpenApi默认继续由全局风险开关拒绝。 - v2-plugin:
stdio-jsonrpc插件现在可接收events.messageJSON-RPC 事件;Main 会将ModernPluginMessageEvent映射为 Plugin SDK v2 event envelope,并将PluginSdkV2EventAck映射回分发结果。 - v2-plugin:
stdio-jsonrpcruntime 现在可处理插件主动发起的 SDK API JSON-RPC request / notification,复用 runtime token、manifest 权限和 API catalog dispatcher。 - v2-plugin: 事件 ACK 超时、进程退出时的 pending request 和插件拒绝 ACK 会更新 timeout/failure 指标;stderr 与
log.write插件日志加入 4096 字符截断,避免异常日志撑爆记录。 - v2-plugin: Plugin SDK v2 新增 settings schema API 和 WebUI 自动表单,支持 string、number、boolean、select、path、secret 字段,配置保存到插件隔离目录,secret 字段不回显且留空保存会保留旧值。
- v2-plugin: ISkyPro v2+ 插件页现在展示真实 stdio runtime 状态、PID、exit code、超时指标和 settings 入口;
settings.pageUrl继续只允许 loopback HTTP URL。 - v2-plugin: ISkyPro v2+ 插件页新增本地 zip 上传安装入口,支持覆盖已安装的
stdio-jsonrpc插件、安装后启动、安装后扫描刷新,并在后端拒绝路径穿越、无效 manifest、非 stdio transport 和运行中更新。 - v2-plugin:
unsafe.rawOpenApi作为默认关闭的实验入口保留,需要显式权限。
♻️ Compatibility
- v1-plugin: ISky v1 插件的顺序分发、返回值拦截、x86 PluginHost 隔离和拖拽排序不受 v2 插件分栏影响。
- linux: Linux preview 包支持主程序、WebUI、QQBot 网关和 ISkyPro v2+ 插件;ISky v1 插件、
isky.exe和message.dll兼容层仍仅支持 Windows 包。 - v2-plugin: HTTP ISkyPro v2+ 插件控制端点目前提供注册表级启用、禁用、移除和状态刷新;
stdio-jsonrpc静态发现、zip 安装、启动、停止、重启、崩溃恢复、token 鉴权、SDK API 权限校验、事件投递、日志观测、settings schema、Python / Node.js / Go 最小 SDK 和生成器已接入,Java 等 SDK 与稳定 API 命名冻结仍属于后续工作。
📝 Docs
- docs: 更新
docs/reference/update-check.md,记录下载任务进度接口、状态字段和 WebUI 下载/安装衔接。 - docs: 更新 Wiki 快速开始、FAQ 和 SDK 下载页面,补充 Linux preview 包启动、systemd 长期运行、Linux 自动更新和 ISky v1 插件 Windows-only 边界。
- docs: 更新
docs/reference/v2-plugin-sdk.md,记录 Plugin SDK v2 协议、事件模型、权限模型、SDK 方法命名和语言覆盖状态。 - docs: 更新
docs/designs/pluginhost-message-dispatch.md,记录 ISky v1 / ISkyPro v2+ 插件分发模型、网关业务队列和 v2 插件队列差异。 - docs: Wiki 新增快速开始、QQBot 事件配置、Webhook 与反向代理、插件 SDK、FAQ、SDK 下载和 preview.3 changelog 页面,支持中英文 i18n 站点;首页新增 GitHub 仓库入口。
- docs: Wiki 首页
/assets/yuki.png在保持原始分辨率和文字清晰度的前提下压缩到 512 KiB 以下,并保持原路径。 - release: 新增通用版本发布提示词,覆盖主程序 Windows / Linux 包、SDK 包、Wiki Release 上传和发布后校验流程。