中文更新日志
ISkyPro 2.0.0 是基于 .NET 10 重写后的首个正式版本,集中完善了管理界面、跨平台发布、ISky v1 与 ISkyPro v2+ 插件运行时,以及 Plugin SDK v2。
✨ Features
- webui: 新增运行概览、Bot 登录与网关配置、插件管理、日志、设置和关于页面,可在浏览器中完成日常管理。
- plugins: 插件页分别管理 ISky v1 插件(EPL / x86)与 ISkyPro v2+ 插件,展示运行状态、队列、错误和设置;v2 插件可上传 ZIP 安装,重复插件会先显示已安装与待安装版本信息再确认更新,运行中的插件可自动停止并在更新后恢复。
- about: 更新下载显示文件名、大小、进度和状态,支持取消;Windows 与 Linux 包都可从 WebUI 进入自动更新流程,并会清理下载产生的临时文件。
- package: 正式提供 Windows x64、Windows arm64 和 Linux x64 主程序包;Linux 支持主程序、WebUI、QQBot 网关和 ISkyPro v2+ 插件。
- gateway: 消息接收、插件分发和 QQBot 发送改为独立队列,慢插件或慢请求不会阻塞网关继续接收事件,并可在 WebUI 查看队列指标。
- webui: 登录后会自动同步网关和插件状态,仪表盘插件数量合并统计 ISky v1 与 ISkyPro v2+;日间与暗黑模式的按钮焦点、页内滚动条和内容滚动体验同步优化。
- plugins: ISkyPro v2+ 插件页明确区分当前进程、随框架启动和当前 Bot 消息策略,stdio 自动启动偏好可跨框架重启保留;响应式卡片布局可完整访问 ZIP 安装和 HTTP 注册。
- logs: Bot 消息使用带字符数的单行摘要,点击后可查看详细信息、原始内容和 Payload;进入会话后可按全部、接收或发送方向快速过滤。
- security: 非 Windows 环境使用本地密钥保护 WebUI Token、Bot Secret 等运行时凭据;正式发布包不会携带本机运行数据、已安装插件、日志或运行时密钥。
🧩 Plugin Development
- sdk: Plugin SDK v2 对 C#、Python、Node.js 和 Go 进入稳定支持,官方 SDK 与样例统一提供有界并发、请求超时、双向调用、事件 ACK、日志和安全关闭。
- messages: 新增统一的结构化消息 API,可回复当前事件或向群、频道、用户和频道私信主动发送文本与提及;插件无需拼接 QQBot 标签或手工传递回复引用。
- messages: 结构化消息支持 QQ 群 Markdown,四语言 SDK 提供对应的 Markdown 回复/发送方法;Main 使用
msg_type = 2和markdown.content,类型化 @ 仍由框架安全生成。新增公开的QQBotMarkdownRepeatPlugin示例,并记录 2026-07-25 普通文本 @ 标签显示为文本、Markdown @ 可正常触发的实测兼容性结论;平台后续行为仍以最新官方文档和客户端为准。 - runtime:
stdio-jsonrpc插件支持静态发现、启动、停止、重启、崩溃恢复、权限校验、运行时 Token、设置表单、日志和运行指标。 - packages: C# 插件可通过
dotnet publish生成可安装 ZIP;Python、Node.js 和 Go 提供可直接打包或编译的样例。HTTP 插件作为独立服务部署,通过 Base URL 注册,无需上传 ZIP。 - catalog: QQBot API catalog 统一生成四种语言的方法、权限和模型元数据,减少不同 SDK 之间的接口差异。
🛡️ Stability
- sdk: 修复 C#
stdio-jsonrpc连续处理事件、SDK API 回复和 ACK 时可能出现的随机 JSON 解析错误与插件超时。 - v1-plugin: v1 插件的加载、生命周期、菜单和消息回调固定在单个 STA 线程,降低线程亲和与并发重入造成的兼容问题。
- v1-plugin: v1 插件执行超时或崩溃时可采集诊断信息、结束对应宿主并按策略重启、限流或禁用;插件页会显示宿主代次、超时、崩溃和诊断状态。
- v2-plugin: 每个 ISkyPro v2+ 插件使用有界事件队列,并在异常退出后按策略恢复,避免无限堆积任务或持续快速重启。
♻️ Compatibility
- runtime: 2.0.0 使用 .NET 10 和新的 ASP.NET Core 主程序,启动、部署和目录结构与旧版 ISky 不同,升级前请保留
config、data和插件目录。 - v1-plugin: ISky v1 插件、
isky.exe和message.dll继续由 Windows/x86 隔离宿主提供兼容;Linux 包仅支持 ISkyPro v2+ 插件。 - sdk: v1 EPL SDK 发布为
SDK-V1-EPL-<version>.zip;v2 SDK 按语言发布为SDK-V2-<Language>-<version>.zip。 - sdk: 相比预览版,C# 插件不再实现重复的
Manifest属性,Node.js SDK 方法返回 Promise,Python、Node.js 和 Go 插件应使用官方 runtime,而不是旧的低级直连 context。 - sdk: Go SDK 的正式导入路径为
github.com/Zephdyn/ISkyPro.Wiki/sdk/go/iskypro/v2。
English Changelog
ISkyPro 2.0.0 is the first stable release of the .NET 10 rewrite, completing the management UI, cross-platform packaging, the ISky v1 and ISkyPro v2+ plugin runtimes, and Plugin SDK v2.
✨ Features
- webui: Added browser-based dashboards, Bot login and gateway configuration, plugin management, logs, settings, and About pages for everyday administration.
- plugins: The plugin page separately manages ISky v1 plugins (EPL / x86) and ISkyPro v2+ plugins, showing runtime state, queues, errors, and settings. v2 plugin ZIPs can be installed directly; duplicate packages show installed and incoming version details before confirmation, and running plugins can be stopped and resumed automatically during updates.
- about: Update downloads now show file name, size, progress, and status and can be cancelled. Both Windows and Linux packages can enter the automatic update flow from the WebUI, with temporary download files cleaned up afterward.
- package: Stable packages are available for Windows x64, Windows arm64, and Linux x64. Linux supports the main application, WebUI, QQBot gateway, and ISkyPro v2+ plugins.
- gateway: Event receiving, plugin dispatch, and QQBot sends use separate queues, so a slow plugin or request no longer blocks incoming events; queue metrics are visible in the WebUI.
- webui: Gateway and plugin states now synchronize automatically after login, and dashboard plugin totals combine ISky v1 with ISkyPro v2+. Button focus contrast, themed inner scrollbars, and content scrolling were refined for both light and dark modes.
- plugins: The ISkyPro v2+ page clearly separates current process controls, start-with-framework behavior, and per-Bot message policy. Stdio auto-start preferences survive framework restarts, while responsive cards keep ZIP installation and HTTP registration fully reachable.
- logs: Bot messages use one-line summaries with character counts and open detailed metadata, original content, and payloads in an in-page dialog. Conversation views can quickly filter all, inbound, or outbound messages.
- security: Non-Windows systems protect WebUI tokens, Bot Secrets, and other runtime credentials with a local key. Release packages exclude local runtime data, installed plugins, logs, and runtime keys.
🧩 Plugin Development
- sdk: Plugin SDK v2 is stable for C#, Python, Node.js, and Go. Official SDKs and samples share bounded concurrency, request timeouts, bidirectional calls, event ACKs, logging, and graceful shutdown.
- messages: Added a unified structured messaging API for replying to the current event or sending text and mentions to groups, channels, users, and direct messages. Plugins no longer construct QQBot tags or pass reply references manually.
- messages: Structured messages now support QQ group Markdown across all four SDKs. Main uses
msg_type = 2withmarkdown.content, while typed mentions remain safely generated by the framework. A publicQQBotMarkdownRepeatPluginsample records the 2026-07-25 observation that text-message tags were displayed literally while Markdown mentions worked; future behavior remains subject to current official documentation and clients. - runtime:
stdio-jsonrpcplugins support static discovery, start, stop, restart, crash recovery, permission checks, runtime tokens, generated settings forms, logs, and runtime metrics. - packages: C# plugins can produce installable ZIPs with
dotnet publish; Python, Node.js, and Go include samples designed for direct packaging or compilation. HTTP plugins are deployed as independent services and registered by base URL instead of ZIP upload. - catalog: The QQBot API catalog generates methods, permissions, and model metadata for all four languages, reducing SDK surface differences.
🛡️ Stability
- sdk: Fixed intermittent JSON parsing failures and plugin timeouts while the C#
stdio-jsonrpcruntime processes consecutive events, SDK API responses, and ACKs. - v1-plugin: ISky v1 plugin loading, lifecycle calls, menus, and message callbacks now run on one STA thread, reducing thread-affinity and concurrent re-entry compatibility failures.
- v1-plugin: When a v1 plugin times out or crashes, ISkyPro can collect diagnostics, terminate the affected host, and apply restart, throttling, or disable policies. The plugin page shows host generation, timeout, crash, and diagnostic state.
- v2-plugin: Each ISkyPro v2+ plugin uses a bounded event queue and policy-based recovery after unexpected exits, avoiding unbounded work growth or rapid restart loops.
♻️ Compatibility
- runtime: 2.0.0 uses .NET 10 and a new ASP.NET Core application. Startup, deployment, and directory layout differ from the original ISky framework; preserve the
config,data, and plugin directories before upgrading. - v1-plugin: ISky v1 plugins,
isky.exe, andmessage.dllremain supported through the isolated Windows/x86 host. Linux packages support ISkyPro v2+ plugins only. - sdk: The v1 EPL SDK is published as
SDK-V1-EPL-<version>.zip; v2 SDKs are published per language asSDK-V2-<Language>-<version>.zip. - sdk: Compared with preview builds, C# plugins no longer implement a duplicate
Manifestproperty, Node.js SDK methods return Promises, and Python, Node.js, and Go plugins should use the official runtime instead of the old low-level direct context. - sdk: The stable Go SDK import path is
github.com/Zephdyn/ISkyPro.Wiki/sdk/go/iskypro/v2.