更新日志

NapCatQQ Desktop 与 ncd-watch 的版本记录。

v3.5.2

本次更新修复小窗口中的布局与内容裁切,并改进配置面板的展开体验。

🐛 修复

  • 自适应布局 — 下载提示不再拉高整组组件卡片;组件与主机列表按可用宽度分列,窄窗口中的操作按钮、二维码、终端搜索和编辑器不再被挤出可见区域。
  • 内容滚动 — 多条通知、任务详情、Bot 指标和概览实例列表在矮窗口中可滚动查看,弹窗随窗口大小调整高度,避免操作区被挤出。

⚡ 改进

  • 展开过渡 — NC / SL 切换、代理和认证方式、定时重启及应用端高级选项支持平滑展开与收起;快速切换可取消旧动画,折叠编辑器保留未保存草稿。调试台分屏与长消息也支持平滑收放,并遵循动效设置。
提交与发布信息

📦 下载

⬇️ Windows 安装包(x64 · MSI)

适用于 Windows 10 / Server 2016 及以上。已装旧版的直接覆盖安装,Bot、远端主机和配置都会保留;也可以在应用里「检查更新」一键升级。

文件名固定的同款安装包:NapCatQQ-Desktop-x64.msi(给脚本用) · 校验和:SHA256SUMS


  • fix(watch): 按平台编译探活和指标辅助函数 (67009bfd)
  • fix(domain): 修复 BotId 类型导出的属性警告 (1ef856e5)
  • perf(build): 精简开发构建调试信息 (99457568)
  • fix(ui): 修复动态布局并统一展开过渡 (f2999ea2)
  • perf(ci): 生成 Agent 后恢复资源时间戳以复用 Tauri 测试缓存 (b35a8729)
  • fix(ci): 同时清理 Cargo 规范化后的桌面二进制名称 (cf2a0710)
  • fix(ci): 保存依赖缓存前严格清除含凭据的本仓库产物 (e50ecf14)
  • fix(ci): 禁止发布凭据进入共享 Cargo 缓存 (faedc510)
  • perf(ci): 复用前端与 Tauri 清单时间戳以避免重复 LTO (74dfca5b)
  • test(host): 等待 ConPTY 子进程就绪后验证关闭耗时 (25ce8847)
  • refactor(network): 沿用构建脚本的环境缺失错误处理 (8b0afe51)
  • style(ci): 对齐缓存回归测试格式 (ff0952d4)
  • perf(ci): 复用并行发布门禁并缓存完整 MSI 构建产物 (ceba902d)

💬 遇到问题

  • 先看使用文档,里面有常见问题
  • 到 Issues 反馈,附上版本号和日志会快很多;也可以来 QQ 群 问
  • watch-v 开头的发布是远端 Linux 监控组件 ncd-watch,不是桌面安装包

完整变更:v3.5.1...v3.5.2

v3.5.1

查看更新收起

本次更新改进聊天媒体与文件下载体验,并修复窗口恢复和远端 SnowLuma 启动中的问题。

本次更新改进聊天媒体与文件下载体验,并修复窗口恢复和远端 SnowLuma 启动中的问题。

🐛 修复

  • 聊天文件 — 修复好友和群聊文件消息的下载入口,兼容不同协议版本的文件标识和消息直链。
  • 聊天语音 — 首次点击即可加载并播放,补齐播放 / 暂停、进度拖动、时长、音量和倍速控件,加载失败后可重试。
  • 窗口恢复 — 修复从任务栏恢复窗口时的闪跳,以及主窗口与聊天窗口长期隐藏后可能出现的交接失败,保留交接中的未发送草稿。
  • 远端 SnowLuma — 修复 Linux SSH 原生部署在断线、重连或启动失败后可能沿用失效状态的问题,避免旧连接的任务干扰新连接。

⚡ 改进

  • 媒体选择 — 消息多选、键盘焦点和搜索定位的边框更贴合图片、视频、语音与文件卡片,减少媒体周围的空白。
  • 并行下载 — 聊天文件、组件安装包和应用更新在下载源支持时自动使用多连接下载;较快连接会继续处理剩余片段,减少大文件下载末尾的等待。不支持分片的来源自动使用单连接。
  • 下载恢复与文件保护 — 分片下载遇到临时断流时只补下尚未写入的部分;下载完成并通过所需校验后才替换目标文件,失败或取消不会覆盖已有完整文件。
  • SnowLuma 批量启动 — Linux SSH 原生部署复用同一主机的共享服务与已验证的初始化结果,减少重复探测和凭据校验;不同主机独立初始化,配置、进程或连接变化后重新检查。
提交与发布信息

📦 下载

⬇️ Windows 安装包(x64 · MSI)

适用于 Windows 10 / Server 2016 及以上。已装旧版的直接覆盖安装,Bot、远端主机和配置都会保留;也可以在应用里「检查更新」一键升级。

文件名固定的同款安装包:NapCatQQ-Desktop-x64.msi(给脚本用) · 校验和:SHA256SUMS


  • fix(ci): 为发布门禁补齐 QQ 安装注册表夹具 (56c64baa)
  • test(host): 分离 Windows 输入帧测试的冷启动与传输超时 (a3066806)
  • fix(ci): 固定发布测试打包与标签的提交 (1de054e3)
  • docs(context): 记录下载与远端启动缓存生命周期 (60861885)
  • fix(snowluma): 明确远端缓存与连接租约生命周期 (42c2a6ce)
  • perf(network): 优化并行分片并统一聊天与组件下载 (b9742d19)
  • fix(chat): 修复媒体交互与窗口恢复并加快远端 SL 批量启动 (633f7d42)
  • fix(tauri): 修复任务栏恢复窗口时的闪跳 (697395b4)
  • test(metrics): 消除探针夹具的空闲端口复用竞态 (28c50437)
  • test(chat): 固定转发弹窗键盘用例的动效环境 (c66f8bad)
  • fix(ci): 授予临时测试账户批处理登录权限 (c37cd859)
  • fix(ci): 记录普通账户任务实例与调度事件 (35f525a4)
  • fix(ci): 预检标准账户任务并显式设置启动条件 (88b9fe1a)
  • fix(ci): 在临时标准账户下执行 Windows Agent 回归 (a50ed194)
  • fix(tests): 限定隔离进程继承的句柄 (b6992de8)
  • fix(tests): 隔离降权进程的 Windows 桌面权限 (9641e358)
  • fix(tests): 让 Agent 进程冒烟兼容管理员 CI (9566ae5a)

💬 遇到问题

  • 先看使用文档,里面有常见问题
  • 到 Issues 反馈,附上版本号和日志会快很多;也可以来 QQ 群 问
  • watch-v 开头的发布是远端 Linux 监控组件 ncd-watch,不是桌面安装包

完整变更:v3.5.0...v3.5.1

v3.5.0

查看更新收起

本版新增 Windows 原生远程管理,加入独立的网络设置页,并统一扫码弹窗、密钥输入与圆角样式。

本版新增 Windows 原生远程管理,加入独立的网络设置页,并统一扫码弹窗、密钥输入与圆角样式。

Windows 原生远程管理

  • 连接 Windows 主机 — 通过 OpenSSH 识别目标系统,支持 PowerShell 终端、文件传输、端口隧道和 Windows 路径。添加主机时可以自动识别系统,也可以明确选择 Windows。
  • 远程托管代理 — 安装包随附 Windows 远程代理,可在主机管理页启用或重新部署。机器服务与用户桌面工作进程分别处理后台托管和 QQ 会话,按 Windows 用户身份隔离组件、应用与数据目录。
  • 原生 Bot 与应用端 — 接入 Windows 目标机的组件安装、库存、NapCat/SnowLuma 启停、配置、日志、WebUI 和应用端监督;补齐主机指标、定时重启及值守接线。
  • 会话状态可见 — 管理页显示目标身份、托管服务、用户桌面和工作进程状态;等待登录、锁屏、多会话及代理待更新时给出对应操作。
  • Windows SSH 兼容修复 — 修复真实 Server 2022 上命令输入阻塞、长命令传输停滞和 PowerShell 启动进度混入命令输出的问题。

目标机需要启用 OpenSSH Server,首次部署代理需要管理员账户;QQ 运行和扫码还需要该账户登录桌面。SSH 登录不能代替桌面登录。详见 Windows 远程管理。

本版已通过代码与本机隔离验证,并在 Windows Server 2022 上实测 SSH、SFTP、命令、隧道和代理探针。服务部署与升级、用户会话恢复、QQ 扫码及完整应用生命周期仍待真实远端验收。

网络设置

  • 统一网络入口 — 在「设置 → 网络」选择系统代理、直连或手动代理;支持 HTTP、HTTPS、SOCKS5/SOCKS5H、代理认证与排除地址。保存后用于新请求,已开始的下载沿用原配置。
  • 下载线路可选 — GitHub 与 Node.js 下载分别支持自动择优、仅原站、指定内置或自定义镜像;指定线路失败时保留错误,不擅自换源。
  • 草稿连接测试 — 保存前测试当前代理与线路,查看 HTTP 结果和响应耗时。GitHub API 访问方式与个人 Token 也移至网络页。
  • 凭据隔离 — 代理密码保存在系统密钥库或本机加密存储,不写入普通设置文件,不随配置 ZIP 导出。SSH、远端工具和本机 WebUI 仍使用各自的网络路径。

界面调整

  • NapCat 与 SnowLuma 共用扫码弹窗布局,统一二维码、等待手机确认、过期和异常状态的呈现。
  • 密码与密钥输入默认隐藏内容,使用统一的显隐按钮,减少不同页面的操作差异。
  • 调整方正、标准和圆润三档圆角,设置中的预览与实际控件使用同一组数值。

配套值守

配套发布 ncd-watch 0.3.0。Windows 值守由随 Desktop 部署的远程代理承载;Linux 仍使用独立的 ncd-watch 二进制。Desktop 升级不会自动替换 Linux 主机上的 ncd-watch。

提交与发布信息

📦 下载

⬇️ Windows 安装包(x64 · MSI)

适用于 Windows 10 / Server 2016 及以上。已装旧版的直接覆盖安装,Bot、远端主机和配置都会保留;也可以在应用里「检查更新」一键升级。

文件名固定的同款安装包:NapCatQQ-Desktop-x64.msi(给脚本用) · 校验和:SHA256SUMS


  • docs: 补充 Windows 远程管理与网络配置说明 (5c75b643)
  • build(windows): 打包独立 Agent 并接入 CI 资源门禁 (993ba49a)
  • feat(ui): 展示 Windows 远端托管与会话状态 (63bdb1be)
  • feat(settings): 新增代理与下载线路设置页 (a5d3323c)
  • refactor(ui): 统一 NapCat 与 SnowLuma 扫码弹窗 (933bbf8b)
  • style(ui): 调整三档圆角并对齐设置预览 (634d719e)
  • feat(ui): 统一密码与密钥字段的隐藏和显隐操作 (ed00ecea)
  • feat(tauri): 接入 Windows 管理与网络设置命令 (c7c0f635)
  • feat(runtime): 持久化并应用 Desktop 网络策略 (29f4022e)
  • feat(runtime): 串联 Windows 原生 Bot 与应用生命周期 (6c64c7e7)
  • feat(appframework): 适配 Windows 远端应用与运行时 (9b5a32a0)
  • feat(component): 支持 Windows 远端组件与代理部署 (3778485d)
  • feat(agent): 实现 Windows 服务与用户会话托管 (90b53c96)
  • feat(watch): 接入 Windows 原生宿主与指标采集 (036ff92f)
  • feat(host): 打通 Windows SSH 主机与平台识别 (0ac7cc03)
  • feat(network): 支持应用代理与可配置下载线路 (eece0e3b)
  • feat(domain): 扩展 Windows 托管与网络策略领域契约 (6adc0eea)

💬 遇到问题

  • 先看使用文档,里面有常见问题
  • 到 Issues 反馈,附上版本号和日志会快很多;也可以来 QQ 群 问
  • watch-v 开头的发布是远端 Linux 监控组件 ncd-watch,不是桌面安装包

完整变更:v3.4.5...v3.5.0

v3.4.5

查看更新收起

本版改进下载选源与缓存管理,新增 GitHub API 直连设置,并修复 SnowLuma 多账号流量统计和远端值守问题。

本版改进下载选源与缓存管理,新增 GitHub API 直连设置,并修复 SnowLuma 多账号流量统计和远端值守问题。

  • 下载加速 — 按实际吞吐量选择直连或镜像,大文件分片也先测速;持续低速时自动尝试其他源,修复分片失败后无法回退的问题。组件安装和 Desktop 更新显示当前下载源与切换原因,Node 安装包使用对应二进制镜像
  • 下载缓存清理 — 在「设置 → 数据」查看安装包、旧 Desktop 更新包和下载暂存文件的占用,按类别清理并查看跳过或失败的原因。安装、更新和数据迁移期间会保护正在使用的缓存;配置、聊天记录、安装日志和另存的文件保持独立
  • GitHub API 直连 — 在「设置 → 数据」选择默认中转或直连 GitHub,可配置个人 Token;版本检查和 Desktop 更新遵守已保存的请求方式,Token 仅发送给 GitHub
  • SnowLuma 多账号流量统计 — 同一主机上共用 SnowLuma 的多个 Bot 分别记录收发数据,后启动的账号也能加入采集;修改指标开关和采样间隔后会同步更新采集配置
  • 流量节点归属 — 修复多个连接使用同一地址和端口、不同路径时的统计混淆,保留各账号的独立节点计数
  • 指标界面刷新 — 修复切换 Bot 后短暂显示上一账号数据,以及慢请求覆盖较新统计的问题

升级说明

远端用户请在「组件」页将 ncd-watch 更新至 0.2.9,再同步通知配置,以获得配套的 SnowLuma 掉线识别、互助账号选择和通知发送修复。Desktop 升级不会自动替换远端 ncd-watch 二进制。

提交与发布信息

📦 下载

⬇️ Windows 安装包(x64 · MSI)

适用于 Windows 10 / Server 2016 及以上。已装旧版的直接覆盖安装,Bot、远端主机和配置都会保留;也可以在应用里「检查更新」一键升级。

文件名固定的同款安装包:NapCatQQ-Desktop-x64.msi(给脚本用) · 校验和:SHA256SUMS


  • fix(network): 修复 Windows 下载回归测试的响应截断 (e3d7f353)
  • fix(metrics): 修复 SnowLuma 多 Bot 流量统计与 watch 通信 (78ad71c0)
  • fix(network): 完善下载镜像测速与持续低速回退 (0be35350)
  • feat(settings): 支持使用个人 Token 直连 GitHub API (1bd1b034)
  • feat(data): 增加下载缓存清理与权限保护 (203fea4e)

💬 遇到问题

  • 先看使用文档,里面有常见问题
  • 到 Issues 反馈,附上版本号和日志会快很多;也可以来 QQ 群 问
  • watch-v 开头的发布是远端 Linux 监控组件 ncd-watch,不是桌面安装包

完整变更:v3.4.4...v3.4.5

v3.4.4

查看更新收起

本版重点改善远端 Bot 的状态恢复和扫码重登。断网重连后能重新接管登录状态,手机退出账号导致 QQ 更换进程时,也能恢复扫码通道。

本版重点改善远端 Bot 的状态恢复和扫码重登。断网重连后能重新接管登录状态,手机退出账号导致 QQ 更换进程时,也能恢复扫码通道。

同时新增 SnowLuma 简化扫码、远端同机重登互助和 Docker 资源管理,并调整 Bot 列表、配置页与组件管理的操作布局。

扫码与远端恢复

  • SnowLuma 简化扫码 — 本机 Windows、远端 Linux 和 Docker 的冷启动实例可在 Desktop 中获取登录二维码。截图中的二维码会先在本地识别,再按 Desktop 样式重新生成;控件不可用时可打开 QQ 或 VNC 继续操作
  • 二维码过期自动刷新 — 过期后自动请求新码,获取暂时失败时延长重试间隔。已扫码、等待手机确认时保持当前登录流程;关闭窗口或更换 QQ 进程后,旧二维码和迟到的解析结果不会重新显示
  • 退出账号后重新扫码 — QQ 退出账号并更换主进程后,校验所属账号、恢复注入并重新绑定扫码会话。扫码登录了其他账号时,自动重启对应的冷启动 Bot,回到重新登录流程
  • 重连与手动刷新 — 修复断网重连后长时间等待 WebUI、Bot 状态恢复缓慢和刷新按钮未完成实际探测的问题。聊天账号随登录状态变化更新,避免 QQ 已掉线却仍显示已连接;远端指标读取失败也会区分断网与探针未启用
  • VNC 通道恢复 — 打开远端 QQ 界面前检查并恢复 VNC 服务与访问通道,修复重连后地址仍指向失效连接、无法连接服务器的问题

管理与通知

  • Docker 资源管理 — 扩展容器、镜像、网络和数据卷管理页面,提供容器创建、资源查看与相应管理操作。操作范围以当前选择的远端主机为准
  • 同机重登互助 — 配置互助 Bot 和管理员后,可由同一远端主机上的在线 Bot 发送掉线通知与重登二维码,支持管理员请求刷新。二维码只发送到管理员私聊,群目标收到文字提醒;需要配套更新 ncd-watch
  • 管理界面调整 — Bot 卡片突出启停与扫码操作,将辅助操作收进菜单,调整资源指标和待机信息。配置页重新整理账号、宿主与连接编辑区域,统一头像回退、组件卡片和主机切换器的展示

升级说明

使用远端重登互助时,升级 Desktop 后,请在「组件」页将远端 ncd-watch 更新至 0.2.8,再同步通知配置。互助 Bot 需要通用正向 WebSocket,管理员账号需单独配置。Desktop 升级不会自动替换远端 ncd-watch 二进制。

简化扫码依赖 QQ 的图形会话与可用控件。热启动、控件不可用或窗口受遮挡时,请使用 QQ / VNC 登录。

提交与发布信息

📦 下载

⬇️ Windows 安装包(x64 · MSI)

适用于 Windows 10 / Server 2016 及以上。已装旧版的直接覆盖安装,Bot、远端主机和配置都会保留;也可以在应用里「检查更新」一键升级。

文件名固定的同款安装包:NapCatQQ-Desktop-x64.msi(给脚本用) · 校验和:SHA256SUMS


  • feat(ui): 统一组件卡片与主机切换布局 (65211529)
  • feat(ui): 优化 Bot 卡片操作层级与指标展示 (c5f230c8)
  • feat(ui): 优化 Bot 配置页身份与连接编辑布局 (de3315b4)
  • refactor(ui): 复用 Bot 头像与加载回退展示 (e541a6c3)
  • fix(ui): 自动更新过期二维码并解码重绘截图 (3d7fafed)
  • fix(chat): 登录状态变化时立即刷新聊天账号 (9a6fc97b)
  • refactor(tauri): 接入运行时的 VNC 与指标恢复接口 (15b9a8bf)
  • fix(runtime): 统一远端重连与扫码恢复编排 (5ceac015)
  • fix(snowluma): 恢复远端登录进程与共享服务会话 (6f501b0a)
  • fix(host): 避免 SSH 长命令阻塞同主机状态请求 (1b6510c3)
  • docs(relogin): 补充重登互助代码落点 (f065c074)
  • docs(docker): 说明资源管理能力与边界 (5418b1e3)
  • feat(ui): 扩展 Docker 资源管理页面 (432cc641)
  • feat(tauri): 暴露 Docker 资源管理命令 (1bc848ec)
  • feat(ui): 配置 OneBot 重登录通知 (b06430e7)
  • feat(ui): 支持主动刷新 Bot 运行状态 (4b010dc2)
  • feat(tauri): 同步重登录配置与值守状态 (674fc6e1)
  • feat(runtime): 接入重登录通知与运行状态恢复 (b0164164)
  • fix(snowluma): 串行化扫码取码并清理迟到状态 (8555ff6a)
  • feat(deploy): 管理 Docker 容器和资源 (21c508cf)
  • feat(domain): 扩展 Docker 资源管理契约 (1eee8915)
  • feat(watch): 增加远端重登录二维码值守 (cd899a7d)
  • feat(relogin): 新增重登录通知策略引擎 (2a1a879d)
  • feat(domain): 新增 OneBot 重登录配置契约 (6bac31da)
  • fix(ui): 按扫码状态收紧弹窗底部操作 (61190d84)
  • fix(ui): 按扫码状态收紧弹窗底部操作 (47a881e4)
  • docs(snowluma): 补充快捷登录与会话恢复说明 (d492668b)
  • fix(ui): 稳定扫码状态并隔离 Bot 登录快照 (33c467b3)
  • fix(snowluma): 支持 Windows 账号选择页切换扫码 (cf008ef1)
  • fix(snowluma): 恢复扫码通道并隔离远端 Bot 共享服务 (6c31c4f6)
  • docs(snowluma): 补充快捷登录与会话恢复说明 (14ab3bea)
  • fix(ui): 稳定扫码状态并隔离 Bot 登录快照 (b6c911ae)
  • fix(snowluma): 支持 Windows 账号选择页切换扫码 (b7583ac0)
  • fix(snowluma): 恢复扫码通道并隔离远端 Bot 共享服务 (8feb795c)
  • fix(snowluma): 避免将 OneBot 监听端口识别为 WebUI (fe5fa07d)
  • fix(snowluma): 避免将 OneBot 监听端口识别为 WebUI (465d1c49)
  • docs(snowluma): 补齐扫码指南入口并统一默认开启说明 (528aa25a)
  • docs(snowluma): 补齐扫码指南入口并统一默认开启说明 (0128c78c)
  • fix(snowluma): 断线时失效扫码会话并验证重连缓存 (8acff387)
  • docs(snowluma): 整理扫码路线并加入辅助程序检查 (8eda5c12)
  • feat(ui): 默认提供扫码入口并收紧确认与关闭状态 (b7cf34a6)
  • feat(runtime): 接入扫码生命周期与 SL 登录前后校验 (81d197d3)
  • feat(deploy): 为 SL 容器准备可回退的控件扫码环境 (b62007b7)
  • feat(snowluma): 通过系统控件实现 Windows 与 Linux 扫码 (c2022503)
  • feat(domain): 新增默认启用的 SL 扫码配置与状态契约 (47274f22)
  • docs(snowluma): 整理扫码路线并加入辅助程序检查 (b5499b9d)
  • feat(ui): 默认提供扫码入口并收紧确认与关闭状态 (7d1a4066)
  • feat(runtime): 接入扫码生命周期与 SL 登录前后校验 (585bee81)
  • feat(deploy): 为 SL 容器准备可回退的控件扫码环境 (3f0dd88c)
  • feat(snowluma): 通过系统控件实现 Windows 与 Linux 扫码 (341a1206)
  • feat(domain): 新增默认启用的 SL 扫码配置与状态契约 (c9f4161b)
  • docs: 完善项目介绍、使用指南与界面预览 (8e60125b)
  • docs: 完善项目介绍、使用指南与界面预览 (7d52aeea)
  • fix(ui): 保留 SnowLuma 探测失败快照并恢复登录徽章 (3b10f333)
  • fix(snowluma): 重建远端登录探测并按序处理主机重连 (a9c60f59)

💬 遇到问题

  • 先看使用文档,里面有常见问题
  • 到 Issues 反馈,附上版本号和日志会快很多;也可以来 QQ 群 问
  • watch-v 开头的发布是远端 Linux 监控组件 ncd-watch,不是桌面安装包

完整变更:v3.4.3...v3.4.4

v3.4.3

查看更新收起

这一版集中打磨聊天窗口和托盘的操作体验:悬浮预览与右键菜单在同一面板内切换,聊天会话按列表位置上下翻页,首次加载也有了骨架屏过渡。

这一版集中打磨聊天窗口和托盘的操作体验:悬浮预览与右键菜单在同一面板内切换,聊天会话按列表位置上下翻页,首次加载也有了骨架屏过渡。

同时修复自己发送和合并转发的图片无法显示、关闭转发记录时闪回加载界面、主窗口关闭后托盘退出无响应等问题,补齐附件发送、消息复制与 Markdown 按钮交互。

托盘与窗口

  • 悬浮预览更稳定 — 鼠标停留约半秒后再展开聊天托盘预览,减少路过图标时误触。面板展开后保持位置稳定,移动鼠标不会反复触发展开或造成偏移
  • 预览与菜单连贯切换 — 在已展开的聊天预览上按右键,直接在同一个面板内切换到菜单;两种视图保持相同高度,减少跳动。菜单已打开时重复按右键也不会重新打开
  • 展开与收起动效 — 调整托盘面板的淡入、淡出和内容切换,减少切换时的停顿。阴影随面板一同退场,修复面板消失后 Windows 阴影仍留在屏幕上的问题
  • 托盘退出 — 修复主窗口已关闭时,从主托盘菜单点击「退出」没有反应的问题,恢复正常退出流程

聊天与附件

  • 会话翻页 — 选择当前会话下方的聊天时,旧消息向上退出,新消息从下方进入;选择上方的聊天时,方向相反。快速切换会接续到最后选中的会话,减少长消息列表切换时的卡顿
  • 首次加载 — 聊天窗口读取账号、会话和消息时显示骨架屏,让首屏布局与后续内容衔接
  • 附件输入 — 支持把图片和文件拖进聊天框,或从剪贴板粘贴附件;发送时可以查看处理与上传进度
  • 发送状态 — 将发送提示收进消息旁的小型进度环,减少对消息内容的遮挡。可取消的发送任务在悬停时显示取消按钮,发送失败后仍可重试
  • 文件卡片 — 长文件名自动省略,保留完整名称供悬停查看;增强默认主题下卡片边界、文字和文件类型图标的辨识度
  • 账号选择 — 增加左下角账号选择按钮的左侧留白;连接状态改用带勾或横线的圆形标识,配合颜色区分,悬停时也更容易看清
  • 断线恢复 — 聊天事件通道断开后自动重试,恢复连接时刷新联系人与最近会话;修复订阅过程中旧状态覆盖新连接状态的问题

转发与消息内容

  • 自己发送的图片 — 修复直接发送图片及自己合并转发图片后,聊天窗口或转发记录里显示「图片加载失败」的问题,补全本地图片来源与转发消息的关联
  • 转发方式 — 重新整理合并转发、逐条转发的选择界面,支持一次选择最多 100 条消息。逐条转发出现部分失败时,会保留结果并提示失败情况
  • 聊天记录弹窗 — 关闭时保留当前记录内容直到退场完成,修复退出过程中闪回「正在读取聊天记录」首屏的问题
  • 消息复制 — 改进 Windows 剪贴板复制,按消息内容提供文字、图片和文件等格式;图片、音视频文件及合并聊天记录的复制内容更完整,GIF 等附件保留原文件
  • Markdown 与内嵌键盘 — 正确解析 Markdown 消息内容与内嵌按钮,减少编码文本和协议占位符直接露出。支持打开链接、填入命令,以及按钮指定的发送或回复操作;连接未提供的 QQ 回调能力或无法确认的操作权限,会禁用按钮并说明原因
  • 输入光标 — 修复插入 @成员 后光标位置偶发错乱的问题,继续输入时保持在正确位置
提交与发布信息

📦 下载

⬇️ Windows 安装包(x64 · MSI)

适用于 Windows 10 / Server 2016 及以上。已装旧版的直接覆盖安装,Bot、远端主机和配置都会保留;也可以在应用里「检查更新」一键升级。

文件名固定的同款安装包:NapCatQQ-Desktop-x64.msi(给脚本用) · 校验和:SHA256SUMS


  • test(chat): 等待转发弹窗完成聚焦与退场 (bbf6069b)
  • fix(chat): 改善账号选择悬停留白与状态辨识度 (7445ebad)
  • feat(chat): 根据会话列表位置切换消息翻页方向 (e393d91d)
  • docs(chat): 更新聊天交互与原生托盘实现索引 (214d0146)
  • perf(chat): 平滑切换会话并完善首次加载骨架屏 (50204b91)
  • fix(chat): 截断长文件名并提高文件卡片主题对比度 (2f0679e1)
  • fix(chat): 统一转发模式界面并保留退出动画内容 (74302090)
  • feat(chat): 用气泡旁进度环显示发送状态并支持取消 (6a914887)
  • feat(chat): 完善 Markdown 消息与内嵌键盘交互 (74f421bd)
  • fix(chat): 将转发消息标识绑定到预览节点 (56d48f1b)
  • fix(chat): 恢复自己发送和合并转发图片的本地来源 (07f006a0)
  • fix(desktop): 修复主窗口关闭后的托盘退出流程 (a52030c0)
  • perf(tauri): 使用原生合成动画平滑托盘展开和菜单切换 (949b1f90)
  • feat(chat): 完善附件、复制转发、重连与托盘交互 (c8cac0f2)

💬 遇到问题

  • 先看使用文档,里面有常见问题
  • 到 Issues 反馈,附上版本号和日志会快很多;也可以来 QQ 群 问
  • watch-v 开头的发布是远端 Linux 监控组件 ncd-watch,不是桌面安装包

完整变更:v3.4.2...v3.4.3

v3.4.2

查看更新收起

这是针对远端 SSH / Docker 管理的热修版本,处理「SSH 和容器管理正常,但 WebUI 提示 token 错误、调试台无法鉴权,日志反复提示刷新登录凭证失败」的问题(#154)。

这是针对远端 SSH / Docker 管理的热修版本,处理「SSH 和容器管理正常,但 WebUI 提示 token 错误、调试台无法鉴权,日志反复提示刷新登录凭证失败」的问题(#154)。

🐛 修复

  • 远端 WebUI token — 优先读取容器正在使用的 webui.json,避免已有配置与 Desktop 缓存、容器启动参数不一致时,打开 WebUI 和使用调试台仍带着旧 token。首次读取失败或鉴权被拒后会定期重新核对;容器配置恢复可读后,也能继续同步
  • 登录失败与重复告警 — 正确识别 NapCat 返回的 token 错误、登录限流和两步验证要求,不再把这些响应一律当成解码失败。登录失败后按原因退避重试,减少短时间内反复登录触发限流,以及同一错误持续刷屏
  • ncd-watch 更新 — 更新远端监控组件时先上传到暂存文件,再替换可执行文件,避免直接覆盖运行中的程序。改进非 root 用户的停止与启动流程;启动失败会返回明确错误,不再显示更新成功

⚡ 改进

  • Bot 状态 — 卡片会区分「WebUI 鉴权失败」「WebUI 登录受限」「WebUI 需两步验证」和「WebUI 不可用」。鉴权恢复后清除旧提示,刷新页面也能恢复当前状态

升级说明

安装 3.4.2 后,重新打开 Desktop,让远端会话重新连接并读取容器配置。

使用远端 ncd-watch 的用户,请同时在组件管理中更新到 ncd-watch 0.2.7;它会复用 WebUI 登录凭据,减少后台监控反复登录造成的限流。ncd-watch 是独立组件,升级 Desktop 不会自动替换远端二进制。

提交与发布信息

📦 下载

⬇️ Windows 安装包(x64 · MSI)

适用于 Windows 10 / Server 2016 及以上。已装旧版的直接覆盖安装,Bot、远端主机和配置都会保留;也可以在应用里「检查更新」一键升级。

文件名固定的同款安装包:NapCatQQ-Desktop-x64.msi(给脚本用) · 校验和:SHA256SUMS


  • docs(context): 补充 WebUI token 同步与鉴权退避落点 (40771c1e)
  • fix(ui): 展示 NapCat WebUI 鉴权失败与恢复状态 (585b0b0e)
  • fix(tauri): 在 WebUI 会话快照中回填鉴权状态 (812f6dcb)
  • fix(component): 暂存替换 ncd-watch 并检查启动结果 (5081929d)
  • fix(watch): 复用 WebUI 登录凭据并避让登录限流 (d2924920)
  • fix(runtime): 同步远端 Docker 的实际 WebUI token (4c18ed7d)
  • feat(deploy): 支持从运行中的 Docker 容器读取配置 (c375e121)
  • fix(napcat): 识别 WebUI 鉴权错误并退避重试 (fdb7db4b)
  • feat(domain): 定义 NapCat WebUI 鉴权状态与会话快照 (3a6f41df)

💬 遇到问题

  • 先看使用文档,里面有常见问题
  • 到 Issues 反馈,附上版本号和日志会快很多;也可以来 QQ 群 问
  • watch-v 开头的发布是远端 Linux 监控组件 ncd-watch,不是桌面安装包

完整变更:v3.4.1...v3.4.2

v3.4.1

查看更新收起

截图可以只复制到剪贴板了,不必每次都放进聊天框。启动后还没打开聊天页,也能直接按快捷键截图;截图被其他窗口挡住时,再按一次快捷键就能召回。

截图可以只复制到剪贴板了,不必每次都放进聊天框。启动后还没打开聊天页,也能直接按快捷键截图;截图被其他窗口挡住时,再按一次快捷键就能召回。

聊天滚轮、分栏拖动和页面切换也更利落了。悬浮侧栏收窄成图标卡片,概览里的 CPU / RAM 图表加了负载状态,长文本和终端面板的遮挡问题一起修了一轮。

✨ 新增

  • 截图去向 — 截图设置里新增「截图后添加到聊天框」,默认开启,保留原来的使用方式。关闭后,截图仍可复制或另存为,完成时不会把图片塞进聊天草稿,也不会拉起聊天窗口或把焦点抢回输入框;聊天附件已满时也能继续截图
  • 概览负载 — CPU / RAM 图表会根据占用显示负载状态和对应颜色。鼠标移到历史曲线上时,状态跟着那个时间点变化;曲线端点换成小猫头,填充与发光更淡一些

🐛 修复

  • 截图快捷键 — 修复启动后必须先进入聊天页,快捷键才会注册的问题。截图进行中再次按快捷键,会召回当前截图窗口,不再尝试开启另一轮;其他页面更新截图设置时,也会保留当前聊天会话作为接收目标
  • 终端遮挡 — 打开底部终端面板时,Bot 和应用端页面的悬浮按钮留在原位,由终端面板覆盖,避免按钮跟着面板往上挤、挡住页面内容
  • 界面细节 — 下拉选中项和输入框占位文本过长时统一单行省略,避免挤坏布局;弹窗关闭按钮保持固定正方形,启动屏退场的冲击波放回 Logo 下方

⚡ 改进

  • 聊天滚动 — 滚轮输入更快响应,惯性拖尾更短。滚到一半反向滚动时会立即接管,拖动滚动条也会停止原来的惯性;向上加载历史消息时仍保留阅读位置
  • 拖动尺寸 — 调整聊天分栏、输入框高度、终端高度、终端分屏和文件栏宽度时,尺寸跟着指针按帧更新。终端布局在松手后保存,减少拖动过程中的反复刷新;取消拖动、隐藏面板或切换分屏时也会收尾
  • 动画与侧栏 — 页面退场和按压反馈更短,快速反向切换会从当前画面接着播放,减少动画中断后残留的缩放、透明度和位移。悬浮侧栏改成更窄的图标卡片,留出更多内容空间;经典贴边样式仍可在「设置 → 外观」切换
提交与发布信息

📦 下载

⬇️ Windows 安装包(x64 · MSI)

适用于 Windows 10 / Server 2016 及以上。已装旧版的直接覆盖安装,Bot、远端主机和配置都会保留;也可以在应用里「检查更新」一键升级。

文件名固定的同款安装包:NapCatQQ-Desktop-x64.msi(给脚本用) · 校验和:SHA256SUMS


  • feat(ui): 截图新增「添加到聊天框」开关与应用级快捷键兜底 (d147fd34)
  • fix(tauri): 截图快捷键脱离聊天页注册并支持召回与仅剪贴板 (37050277)
  • feat(domain): 截图请求新增 addToChat 去向开关 (e3ac6b6b)
  • feat(overview): CPU / RAM 卡头加负载状态,端点换成小猫头 (5bc75a5f)
  • fix(ui): 终端面板打开时悬浮按钮留在原位并被面板盖住 (736afbb5)
  • fix(ui): 启动屏退场冲击波垫到 logo 之下 (c0201f49)
  • fix(ui): 占位文本过长统一单行省略 (327a6e41)
  • fix(ui): 弹窗关闭按钮改为固定正方形 (eef96f2a)
  • fix(ui): Select 选中项过长时单行省略 (f34fed7f)
  • fix(ui): 悬浮侧栏改为窄图标卡片 (33d1d24d)
  • test(debug): 等待输入焦点后验证命令面板键盘操作 (baa2bb49)
  • perf(ui): 按帧预览拖动尺寸并在松手时保存 (8331e93b)
  • perf(chat): 提升滚轮即时响应与反向接管 (4f0b2a87)
  • perf(ui): 收紧交互动画并修复中断残留 (2509f701)
  • perf(build): 限定更新模块构建脚本的失效输入 (31b64d24)
  • chore(ci): 移除临时缓存诊断开关 (b6d95de8)
  • fix(ci): 对齐缓存归档的输入时间精度 (a82e7ba2)
  • fix(ci): 补齐构建脚本跟踪的空环境输入 (d000a34d)
  • test(ui): 限定浮层焦点测试的查询范围 (9633e20a)
  • perf(ci): 复用完整测试产物并校验源码时间戳 (f7e6a2ba)
  • perf(ci): 合并重复构建并建立主分支共享缓存 (0bdd469b)
  • perf(tests): 限制本地并发并减少测试环境开销 (b3339744)

💬 遇到问题

  • 先看使用文档,里面有常见问题
  • 到 Issues 反馈,附上版本号和日志会快很多;也可以来 QQ 群 问
  • watch-v 开头的发布是远端 Linux 监控组件 ncd-watch,不是桌面安装包

完整变更:v3.4.0...v3.4.1

v3.4.0

查看更新收起

这版可以直接在桌面端聊天了。NapCat 和 SnowLuma 都能用,私聊、群聊、看图、发文件都有;可以留在主窗口里,也可以单独开一个聊天窗口。顺手加了截图和滚动长截图,截完就能放进输入框。

这版可以直接在桌面端聊天了。NapCat 和 SnowLuma 都能用,私聊、群聊、看图、发文件都有;可以留在主窗口里,也可以单独开一个聊天窗口。顺手加了截图和滚动长截图,截完就能放进输入框。

聊天之外,NeoBot 的配置、模型、提示词、记忆和插件也能在桌面里直接管了,远端实例同样能连上面板。QQ 改成单独装一份。托盘和多窗口的资源占用也收拾了一轮:藏起来的窗口会休眠,关掉聊天窗口后会释放资源,消息和图片缓存也加了上限。

✨ 新增

  • 聊天 — 侧栏多了「聊天」入口。好友可以按 QQ 分组找,群聊放进群盒子,会话能置顶、只看未读。每个 Bot 的联系人和消息分开;从主窗口弹出聊天时,正在写的草稿也会带过去
  • 消息操作 — 回复、@、撤回自己发的消息、转发和多选合并转发都能直接做。发失败了能看原因、重新发送,切会话不会丢掉没写完的内容;想保留收到的撤回消息,可以在账号设置里开「防撤回」
  • 图片与表情 — 图片点开看大图,可以缩放、拖动;语音能播放和转文字,视频、Markdown 和合并转发也能查看。QQ 表情和收藏表情可以选了发,常用 QQ 表情自带缩略图,不用等在线资源加载完才认得出来
  • 聊天记录 — 最近的消息会存到本机,重开后还能看。往上翻会接着读更早的历史;搜索可以查当前会话,也能查这个账号已保存的记录,按类型、发送者、日期筛选,点结果跳回那条消息
  • 账号托盘 — 可以给账号开后台接收,再放一个 QQ 头像到托盘。新消息显示红点,也可换成头像闪烁;鼠标停上去看未读会话,点一下直接打开。群聊能单独设免打扰,NapCat 还会读取 QQ 本身的群消息提醒设置
  • 群文件 — 群聊里可以直接找文件、上传下载、建文件夹、改名、移动和删除,也能看剩余容量。没有权限或协议端不支持的操作会置灰;消息里的文件卡片也能下载,能看进度、取消任务,关掉面板不会中断传输
  • 截图与长截图 — 默认按 Ctrl+Alt+S 呼出,框选后可以标注、撤销重做、复制或另存为。长截图跟着手动滚动拼接,上下都能截,截过的部分会去重,旁边能预览结果,也能暂停或撤销最近一次采集。完成后图片放进聊天草稿,确认了再发送
  • 截图设置 — 快捷键可以自己改,也能选全局响应或只在程序有焦点时响应。默认截图时隐藏聊天窗口;全局快捷键在聊天窗口关闭后仍可使用
  • NeoBot 配置与模型 — 本体配置可以填表,也能直接改 TOML;供应商、密钥和模型都能在详情里改,支持拉取模型列表、测连接、给不同用途分配模型。提示词也能编辑、预览和恢复默认,还能看各部分的 Token 估算
  • NeoBot 记忆 — 可以按关键词和标签找记忆,打开看全文、编辑或删除;支持单条和批量压缩,任务进度与压缩快照也能查看
  • NeoBot 插件 — 填 GitHub 仓库地址安装,已有插件能启停、重载、更新、卸载和改配置;装之前会检查来源,遇到来源冲突会先让你核对再决定是否替换
  • NeoBot 运行与用量 — 可以查看连接、服务和后台任务,操作待机、恢复和重启,创建或修改定时任务。统计页能看消息、延迟和 API 用量,计费页能试算;对话流能跟随最近请求、看完整历史和对比两次记录
  • NeoBot 部署与登录 — 「部署」页把没启动、没填 QQ、还没对接这些问题列出来,给出对应入口。面板首次设置密码也能在桌面里完成,保存后会验证是否能登录;远端实例通过对应主机的 SSH 隧道访问面板,隧道连不上时会报错,不会连到本机同端口的服务
  • 侧栏 — 「设置 → 外观」可以选悬浮卡片或经典贴边,喜欢原来可折叠侧栏的选经典即可

⚡ 改进

  • QQ 安装 — 组件页会从官方安装包里解出一份 QQ,单独放在桌面端管理的目录里,Bot 优先用这份。装卸和更新不会动你日常使用的系统 QQ;如果 Bot 要用系统 QQ,启动前会提醒,也能直接去装一份。这里分开的是程序文件,QQ 登录数据的存储方式不变
  • 内存与后台占用 — 主托盘菜单和账号未读预览换成原生绘制,省掉菜单自己的 WebView。主窗口、调试台和聊天窗口在隐藏或闲置后会减少资源占用,关掉聊天窗口后释放它的 WebView;独立聊天窗口也少加载了一批用不到的内容
  • 长时间聊天 — 消息、事件和媒体缓存加了容量上限,图片等请求也限制了同时处理的数量,减少持续收消息时的内存积累。往上看旧消息时会保留阅读位置,想回最新消息可以点右下角箭头
  • 调试台 — 参数、文档和回包可以分别收起来,再展开时内容还在;参数填错了,在顶部集中提示,点一下跳到对应字段。发请求统一用顶栏选的通道。JSON 编辑器补了行号、折叠、自动缩进和括号配对,Tab 可以接受补全,只读回包也能折叠着看
  • 应用端 — 新建实例默认不随桌面端启动,需要的再手动打开这个开关
  • NeoBot 编辑 — 在同一个实例详情里切页,没保存的改动会留着。保存时会检查版本,如果面板里的内容已经被改过,会提示冲突并保留当前草稿,避免把另一边的改动直接盖掉

🐛 修复

  • NeoBot 配置 — 之前有些对接写进了 data/config.toml,NeoBot 实际读的却是 app/data/config.toml,导致填好了也不生效。现在导入、编辑和备份都按实际目录走,启动时也固定到实例自己的目录;旧对接符合迁移条件的会自动搬过去
  • NeoBot 重启 — 在上游面板点重启后,桌面端之前会把它当成已经停止,日志和停止按钮也跟着失效。现在会继续跟踪重启后的进程;其他框架真正退出时,也不会把残留子进程误认成主进程
  • Bot 日志 — 切到别的页面期间收到的日志会留在缓冲里,回来后还能看,之前这段会丢
  • Windows 启动 — 修复正式版程序因主线程栈不足,打开就退出的问题

📌 说明

  • 聊天默认开启,不用的话可以在「设置 → 功能」关掉。聊天窗口、后台接收、账号托盘和截图快捷键会一起停掉,已有记录和设置保留;重新开启会恢复原来的后台设置。每个账号的后台接收、托盘和防撤回默认都关着
  • 本机只保留有条数和容量上限的近期聊天记录,消息记录不随配置备份导出。草稿会在退出程序后清掉
  • NeoBot 的面板管理页要实例正在运行、控制台能连上,登录需 NeoBot 1.2.4a1 或更新版本;具体操作取决于上游是否提供对应接口,旧版缺少时会提示升级。第三方插件自己的页面仍从原入口打开
  • NeoBot 编辑草稿只在当前实例详情里保留,离开详情后会清掉。导入只有 data/config.toml 的打包版项目时,先按提示把数据整理到 app/data
提交与发布信息

📦 下载

⬇️ Windows 安装包(x64 · MSI)

适用于 Windows 10 / Server 2016 及以上。已装旧版的直接覆盖安装,Bot、远端主机和配置都会保留;也可以在应用里「检查更新」一键升级。

文件名固定的同款安装包:NapCatQQ-Desktop-x64.msi(给脚本用) · 校验和:SHA256SUMS


  • test(ui): 修复发版前端门禁的导航与缓存测试 (a4e81f2c)
  • docs(neobot): 记录桌面管理覆盖与验证结果 (a1df9031)
  • feat(ui): 补齐 NeoBot 桌面管理操作 (2c8c1e70)
  • feat(neobot): 完善面板转发与远端 SSH 隧道 (dd6d4a42)
  • fix(ui): 优化调试台布局与请求回包交互 (ad15f246)
  • fix(chat): 修复放大窗口后图片查看器缩放抖动 (769ea58a)
  • feat(ui): 增强 JSON 编辑器的输入与预览体验 (e2500099)
  • fix(chat): 让截图全局快捷键独立于聊天窗口生命周期 (fb51bece)
  • docs(chat): 记录聊天总开关的生命周期行为 (99c4acd6)
  • feat(ui): 将聊天接入功能开关与入口门控 (1d0262b3)
  • feat(tauri): 热更新聊天开关并回收窗口和截图入口 (0fac8f96)
  • feat(runtime): 支持聊天总开关与后台租约回收 (4439522b)
  • feat(domain): 新增聊天功能总开关配置 (234b0fe6)
  • fix(chat): 修复关窗迟滞与回收后的窗口唤起 (39102f6a)
  • feat(ui): 侧栏形态可切换——悬浮卡片 / 经典贴边 (91a8c9cc)
  • feat(domain): AppUiPreferences 新增 sidebarStyle 悬浮侧栏字段 (be4cea98)
  • fix(chat): 合并适配--useChatScreenshot 的 isTauri 改走 core/domain/runtime/env,消除 transport 直连 (be736c28)
  • fix(chat): 合并适配--AttachmentPreview 本地预览读取走 useChatSend 出口,截图测试补 QueryClient Provider (7f046b5a)
  • docs(ui): coverage 地板入 PR 自检清单 (dfa7d4ea)
  • refactor(ui): ChatSearch 拆分——搜索模型入 core/domain 带单测,工具栏/结果/展示件外提 (c371cbc2)
  • docs(chat): 记录原生截图和双向长截图功能落点 (e2bb90f7)
  • feat(ui): 将截图工具与快捷键设置接入聊天草稿 (f6bd5f55)
  • feat(tauri): 实现原生截图标注与双向滚动长截图 (c0b42a9d)
  • feat(runtime): 管理有界截图附件缓存与会话留存 (c1ae6344)
  • feat(domain): 定义截图请求、快捷键与草稿预览契约 (09811719)
  • fix(ui): useSplashExit 补 gsap import——开屏退场引用未导入的模块致浏览器预览整页崩 (44cc52c0)
  • refactor(ui): SegmentView 按段类型拆 segments/ 12 件;chatStore 豁免不拆(单类结构) (759becc8)
  • refactor(ui): ChatPage 拆分——Workspace/List/Conversation/SearchDialog 外提,连接标签与文件信号入 core/domain (2ba5ec6b)
  • test(ui): coverage v8 地板——core/domain+hooks lines 60/funcs 71/branches 79,test:coverage 脚本 (045935bb)
  • test(ui): ContextMenu 测试删 CSS 变量魔数断言,保留行为断言 (c9f5bbb7)
  • test(ui): domain/hooks 测试地板第一批——karin/connections/metrics-settings/config-transfer/paths/workingSet 语义外 15 套新测试 (a8d77402)
  • refactor(ui): SchemasteryForm 按字段类型拆目录,模型纯函数独立成文件 (19b1b68d)
  • refactor(ui): 引导页/开屏拆分——hero 文案与概览格式化入 core/domain,widget 外提 (15f8bd78)
  • refactor(ui): 组件页拆分——探测/发布查询纯逻辑入 core/domain,五组编排外提 co-located hooks (1e46bce6)
  • refactor(ui): 设置页拆分——_shared 断环,通知 Tab 按频道区块外提 (ded4b1ac)
  • refactor(ui): 调试台拆分——CollectionsPanel 拖拽落点纯逻辑入 core/domain,右/左栏区块件与 tabCycling 外提 (cb78c694)
  • refactor(ui): Bot 配置页拆分——保存/SnowLuma App/远程网络导入编排外提 co-located hooks (2e3f1e05)
  • refactor(ui): Bot 列表页与运行指标页拆分——启动编排进 hooks/bot/useBotStartFlow,指标展示纯逻辑入 core/domain (fb7ffef7)
  • refactor(ui): mock 三巨头拆表——app-config/app-framework/onebot-debug 按框架与接口域分目录,薄壳保导出面 (d411df1e)
  • build(ui): ESLint 分层禁令上 error 门禁,lint 并入 verify;测试限流 8 线程 (3bd1085c)
  • chore(ui): 清理 unused eslint-disable 指令与 ANSI 正则禁用注释位置 (cf7f51ed)
  • refactor(ui): 反向依赖清账——neobot 解析表与 isTauri/preferencesStore/mockHosts 下沉 core/domain (29ce3929)
  • fix(ui): 聊天视图恢复失败弹出 InfoBar 提示 (863346c2)
  • refactor(ui): debug 右栏媒体服务工厂经 hooks/chat 出口 (59099a32)
  • refactor(ui): Bot 趋势历史拉取迁移 react-query (f695b002)
  • refactor(ui): 聊天展示件下沉 shared/chat,debug 与 chat 共用同一套时间线组件 (cb7de56d)
  • refactor(ui): 聊天页/成员面板 service 直连迁到 hooks 层 react-query (56b82e4a)
  • refactor(ui): 新建 hooks/chat 分层,聊天 service 调用收口(消费方迁移下一提交) (2ee2dd2b)
  • chore(ui): ESLint 依赖与分层门禁配置就位(门禁批次启用) (caccc98e)
  • fix(ui): Bot 日志缓冲改模块级 store,切页期间事件不再丢失 (afe20c6d)
  • refactor(ui): 诊断台日志/资源监控迁移 react-query (bc8ce83c)
  • refactor(ui): terminal 手搓拉数迁移 react-query (3ed4a21f)
  • refactor(ui): 应用壳 service 直连收进 hooks/desktop 与 core/domain/windows (c156de2d)
  • refactor(ui): debug 页 FileField/TopBar 直连收进 hooks 层 (46e16d00)
  • refactor(ui): apps 详情页 service 直连收进 hooks/apps 分层 (46e7f1f6)
  • chore(ui): 删除 5 个无引用孤儿文件 (40ec6988)
  • chore(chat): 内置 QQ 表情缩略图并同步功能索引 (2ce1af3f)
  • feat(chat): 补齐日常聊天交互并优化发送与附件体验 (f2518a13)
  • feat(chat): 完善消息状态与媒体表情兼容 (c797ee6e)
  • fix(tauri): 重试被失焦打断的聊天窗口恢复 (d42394f8)
  • feat(runtime): 补齐聊天动作并校验群成员管理权限 (d7d8933b)
  • feat(domain): 新增聊天防撤回偏好 (c9da8e84)
  • fix(chat): 归档预算截断时保持最新消息段连续 (ff4942af)
  • docs(perf): 补充自动审查修复和集中验收结果 (caafa988)
  • fix(tauri): 门控操作系统触发的窗口恢复 (34e45a0c)
  • fix(chat): 对归档中的无 ID 事件保持回放幂等 (8aed709a)
  • fix(chat): 保留大图片发送结果并分离轻量归档副本 (c676898f)
  • fix(tauri): 确认 WebView 可见后再显示原生窗口 (0c4e856b)
  • test(tauri): 移除依赖外部配置隔离的产品验收入口 (47bf3a86)
  • docs(perf): 记录 Chat 双窗内存优化与验收边界 (e12c40e9)
  • test(tauri): 增加 Chat 内存对照和产品双窗验收入口 (566fffc6)
  • perf(tauri): 降低 Chat 绘制成本并修复双窗回收 (1ac5b95f)
  • perf(ui): 隔离 Chat 构建入口和重型依赖 (684405d6)
  • fix(ui): 清理卸载后才注册的窗口尺寸监听 (a5e08419)
  • docs(perf): 记录内存边界修复和验收结果 (b9ec6a20)
  • perf(ui): 限制转发缓存与媒体请求并发 (5b3f5c19)
  • perf(chat): 限制消息阅读工作集并批量摄入事件 (19fd2b12)
  • fix(tauri): 确认 WebView 调度结果并限制失败重试 (5319224c)
  • perf(onebot): 为事件缓存和待推队列增加字节预算 (efd3c794)
  • fix(tauri): 配对注销原生面板字体加载器 (178ae4a0)
  • feat(ui): 聊天群文件对话框与时间线文件下载 (848f6fe0)
  • feat(chat): 群文件浏览、整理与直链下载的后端 (267fa413)
  • style(ui): 全仓 prettier 重排 src-ui (ea767bcf)
  • chore(ui): 接 Prettier 并给 fmt:check 挂上 verify (1aa36ce5)
  • style(rust): 全仓 cargo fmt (40daa80f)
  • feat(ui): 组件卡片头像从只给应用端扩到全部组件 (b68636d9)
  • feat(bot): 会用系统 QQ 的 Bot 启动前先提醒一次 (a59cf542)
  • feat(qq): Windows QQ 改侧装解包安装,并能回答本机 Bot 会用哪份 QQ (6bd3e1cb)
  • docs(appframework): NeoBot 路径说明与 mock 同步到 app/data (4a26d560)
  • fix(appframework): 启动钉住 NeoBot 数据目录,旧对接自动搬到 app/data (0bd5ff5f)
  • fix(appframework): NeoBot 配置备份跟着改到 app/data (c456dcfe)
  • refactor(tauri): 移除 WebView 版托盘面板 (70b8771a)
  • fix(tauri): 原生托盘面板修菜单一进就消失,闲置 30 秒回收 (a01a2141)
  • feat(tauri): 托盘面板(主托盘 + 账号托盘)改原生 Direct2D 绘制 (3c475040)
  • feat(chat): 账号托盘右键菜单和悬停未读预览改成自绘面板(WebView 版) (2a7b1f5c)
  • perf(tauri): 主窗和调试台失焦 2 分钟后也降到 Low (8dffbce3)
  • perf(ui): 外壳入场动画只往前填,播完不再占合成层 (d55efdd5)
  • feat(tauri): WebView 调度器接管窗口显隐,藏起即休眠、聊天窗失焦降内存 (58e623ec)
  • style(chat): 聊天页重做视觉,嵌进主窗口时贴边排而不是一张卡片 (464a1e50)
  • feat(tauri): WebView 调度器第一步,按窗口统计内存 (114d3c8a)
  • perf(ui): 状态点呼吸和吉祥物 zz 换成 CSS 动画 (2bc6d80b)
  • perf(tauri): 主窗藏到托盘时 WebView 一起设不可见 (26d8a101)
  • fix(tauri): release 主线程栈调到 8 MB,修启动即栈溢出 (901a88c3)
  • chore(bindings): 同步 ts 绑定(数据目录注释改动进了生成的 JSDoc) (af900a8a)
  • fix(appframework): NeoBot 数据目录是 app/data 不是 data——修导入失败与写错文件 (35547a6f)
  • chore(build): 按 review 意见删掉 /STACK 兜底 (583dc738)
  • style: rustfmt 本 PR 引入了未格式化代码的文件 (0a9779a2)
  • chore: 版本号退回 3.3.1,交给发版流程统一处理 (01d6c073)
  • fix(ui): 新建实例真正默认不随桌面端启动,部署页认数字形式的 QQ (bd29a19e)
  • fix(runtime): 自重启接管只认 NeoBot,接手后的退出不再报成正常 (b6847227)
  • fix(runtime): 「原始文件」的 Bot 侧配置只读本机原生 NapCat (db70dbb4)
  • fix(appframework): NeoBot 面板转发拒绝远端实例,凭据错误分清连不上与密码错 (df322f61)
  • feat(ui): 所有图标小按钮都给气泡——全局机制回落 aria-label (6ed5f5ad)
  • feat: 原始文件含 Bot 侧配置、提示气泡配色随主题、更多按钮补描述 (b2a85086)
  • chore(release): 版本号 3.3.3 -> 3.3.4(并变基到最新 main) (bc0e5d8a)
  • feat: 实例默认不自启、版本管理独立成页、图标按钮补功能描述 (ad3b70e8)
  • fix(ui): 按 1.2.3 实机反馈修四处——版本闸门、滚动、404 话术、登录反馈 (98431ddc)
  • chore(release): 版本号 3.3.1 -> 3.3.3 (eee52062)
  • fix(build): 给主线程 16 MB 栈——上游深递归把启动顶炸了 (e6b73636)
  • fix: 按第二轮盲审结论修文档与文案(含 1 处与代码矛盾的旧注释) (35564d54)
  • feat(ui): 部署页可直达「机器人」页新建 Bot (bcdcad05)
  • fix(ui): 「机器人 QQ 填了没」对着面板的 defaults 判,不写死 '0' (a4249545)
  • docs(ui): 部署页说清 token 的覆盖关系 (be83d261)
  • feat(ui): NeoBot「部署」页——把「还差什么」列出来,并一键连上 QQ (84429eff)
  • feat(ui): 面板凭据改为「先探状态再指引」,不代替用户设密码 (6d19b933)
  • feat(ui): NeoBot 插件页接上管理动作(安装 / 启停 / 重载 / 卸载) (e12559eb)
  • feat(ui): NeoBot 模型 / 提示词 / 记忆 / 插件四页,并按盲审结论修缺陷与文案 (f7ca8ff6)
  • feat(ui): NeoBot 概览页——第一条真正读面板数据的通路 (c2b720bf)
  • feat(appframework): 面板凭据(记住面板密码)落库与 IPC (16dfa4d9)
  • feat(ui): NeoBot 应用端卡片加品牌头图 (88e881a0)
  • feat(appframework): NeoBot 面板会话缓存与受白名单约束的面板转发 (0b89af8a)
  • feat(ui): NeoBot 详情加「Web 控制台」页,标注面板完整能力 (67553906)
  • docs(appframework): 更正 NeoBot 不走桌面端商店的注释 (aacb379e)
  • fix(appframework): 应用自重启后继续跟踪,不再误判为已退出 (3982bcbf)
  • fix(runtime): 冷账号未读群加入 QQ 免打扰解析队列 (31185622)
  • fix(ui): 前端偏好恢复清掉快照缺省的白名单键 (7904bf76)
  • fix(tauri): 本地图片预览先查体积再截断读盘 (a0059aee)
  • fix(config): 导出覆盖改名兼容 Windows、导入拒绝实例共用安装目录 (1b85daf1)
  • fix(appframework): 配置备份不再收 koishi 可执行清单 package.json (2b4bc91e)
  • fix(appframework): AstrBot 插件 metadata.yaml 行内注释不再污染身份校验 (a66e15c9)
  • fix(config): Windows 短路径别名参与框架恢复预检 (e91dfc61)
  • feat(config): 完整配置备份与框架配置恢复 (57fc53f9)
  • chore: 同步聊天面板与消息归档相关变更 (6aafb4ce)
  • docs(context): 同步 AstrBot 代登录策略落点 (bab8256a)
  • feat(runtime): AstrBot 实例启动注入桌面托管会话密钥 (9ab671b7)
  • feat(appframework): AstrBot Dashboard 代登录支持 desktop-session 并兼容新旧密码协议 (d9118031)
  • fix(ui): 版本入口显隐贴合框架能力与实例状态 (cf096c75)
  • refactor(appframework): 清掉 NeoBot 接入留下的死代码 (a9aaf6f4)
  • fix(appframework): 两份配置收进同一次备份写 (79604574)
  • test(ui): 版本清单 mock 与真机口径对齐 (3718faca)
  • fix(ui): 详情页头部安装带上已选版本 (ee4d54ad)
  • fix(ui): loguru CRITICAL / SUCCESS 等级判定补齐 (fa5ddec3)
  • fix(ui): PEP 440 前端比较器同步后端同构修正 (f11ffa2a)
  • fix(runtime): 冷认领的 program 与启动写盘同口径 (d11a39cf)
  • fix(runtime): 应用端重装 / 换版本实际执行 (96037bbf)
  • fix(appframework): PEP 440 比较器 dev 方向与 pre 分隔符序号解析 (547b9310)
  • fix(appframework): 修正 NeoBot 安装重装与停止对接路径的实例边界 (e9bae01d)
  • fix(ui): Select 下拉限高并可滚动,选项多时不再选不到 (7b22976f)
  • test(appframework): 补 NeoBot 退出端点的 HTTP 请求路径测试 (f31bd1a2)
  • feat(appframework): NeoBot 接优雅关闭(走面板退出端点,带版本闸门) (bedf5242)
  • fix(appframework): 按其他框架规范化 NeoBot 简介,去掉自指测试 (65d944ef)
  • feat(ui): 实例列表卡片也提示可更新 (ec5d593b)
  • feat(ui): 应用端版本显示、可更新提示与「装任意版本」 (c7005bbd)
  • test(appframework): 加查 PyPI 的真机冒烟(默认 ignore) (99a02d05)
  • feat(appframework): 版本查询打通到 IPC 与前端服务层 (12a30d20)
  • feat(appframework): PyPI 版本清单查询(PEP 440 排序) (4769ad01)
  • feat(appframework): 安装时可按生态指定版本,并可传入 PyPI 镜像 (675de3d1)
  • fix(appframework): NeoBot 读真实版本号,不再返回字面量 "installed" (98214475)
  • test(ui): 补 NeoBot 的浏览器预览 mock (92258f7d)
  • fix(appframework): 修正 NeoBot 仓库地址并把交流群写进简介 (d3c806ba)
  • fix(ui): 日志解析支持裸 ISO 时间与竖线分隔等级 (8553d14e)
  • docs(context): 补全应用端框架名单并记下 NeoBot 的两个硬名单 (474bddcd)
  • feat(ui): NeoBot 显示名与 ts-rs 生成物 (b3a2244e)
  • feat(runtime): NeoBot 依赖图快照与进程识别 (b78dc6e3)
  • feat(appframework): NeoBot 适配器与注册 (c9a105a8)
  • feat(appframework): NeoBot 导入探测(probe_project) (31be02ed)
  • feat(appframework): NeoBot 类型化配置(两份 TOML) (3a21394c)
  • feat(appframework): NeoBot 对接计划(integration) (420d6032)
  • feat(appframework): NeoBot 组件(安装 / 探测 / 启动) (6a7f2b62)
  • feat(appframework): 新增 NeoBot 框架清单(manifest) (3bfe3d94)
  • feat(domain): ComponentId 新增 NeoBot 变体 (a74c1064)
  • docs: keep local agent work records out of version control (51a5b031)
  • fix(windows): 分离开发窗口任务栏图标身份 (ee41960a)
  • fix(chat): 打磨聊天媒体、搜索与会话交互 (3221b313)
  • fix(tauri): 补齐 macOS 与 Linux 应用图标资源 (e7ed39b7)
  • docs(ui): 补充聊天体验对照 Stapxs 的优化报告 (82b97d1b)
  • docs(context): 更新聊天列表与消息操作功能落点 (994ae8fd)
  • feat(ui): 会话列表键鼠直达与消息原地操作 (0ec1c894)
  • style(tauri): 补齐配置文件末尾换行 (3e3d9f6a)
  • chore(build): 忽略本地 pnpm 存储缓存 (ca1ab4cd)
  • docs(context): 更新聊天媒体与群盒子功能落点 (bf8cf280)
  • feat(ui): 完善聊天媒体与会话资料交互 (77a25e24)
  • feat(runtime): 支持聊天媒体动作与分级回包容量 (8290c536)
  • feat(ui): 雪花图标多击触发偏心旋转彩蛋 (1bd1a7d3)
  • docs(ui): 概览 SnowLuma 雪花彩蛋设计 (1bca95cf)
  • docs(ui): 概览 SnowLuma 雪花彩蛋设计 (c6e4b8c9)
  • feat(chat): 保存聊天档案并完善群盒子与历史分页 (77dbf95a)
  • fix(ui): 修复资料弹层透明遮挡与挂载时序 (e61043cd)
  • feat(ui): 完善原生聊天双栏与输入交互 (654ebc51)
  • fix(ui): 修复弹层重复打开与退场重开的焦点恢复 (f3830476)
  • docs(context): 补充原生聊天功能落点 (a6aed643)
  • feat(ui): 新增原生双栏聊天与账号会话交互 (2ad82a5a)
  • feat(tauri): 接入聊天命令和会话生命周期 (3280e2f1)
  • feat(runtime): 新增独立聊天会话与调试隔离 (294674a9)
  • feat(ui): 更新猫尾品牌图标与应用资源 (a7bb828a)

💬 遇到问题

  • 先看使用文档,里面有常见问题
  • 到 Issues 反馈,附上版本号和日志会快很多;也可以来 QQ 群 问
  • watch-v 开头的发布是远端 Linux 监控组件 ncd-watch,不是桌面安装包

完整变更:v3.3.3...v3.4.0

v3.3.3

查看更新收起

本版主线是配置搬家收尾:「设置 → 数据」的导出包现在完整带上框架配置与界面偏好,导入逐项预检、失败整体回滚、条件不够先存待恢复;另收紧了 Koishi 备份范围,修复 AstrBot 插件市场误拦。本版不含聊天相关改动(仍在开发中)。

本版主线是配置搬家收尾:「设置 → 数据」的导出包现在完整带上框架配置与界面偏好,导入逐项预检、失败整体回滚、条件不够先存待恢复;另收紧了 Koishi 备份范围,修复 AstrBot 插件市场误拦。本版不含聊天相关改动(仍在开发中)。

✨ 新增

  • 完整配置备份(v2) — 导出 ZIP 在原有基础上新增:应用端实例档案(含领养时保存的回滚快照)、七个应用端框架的配置原文(Karin / NoneBot2 / AstrBot / MaiBot / Koishi / 云崽 / NeoBot 的核心设置、模型与插件配置,麦麦自定义提示词及历史版本)、界面与终端偏好、API 调试台工作区、SnowLuma 全局设置。框架配置按原文件保存,注释、格式和自定义字段原样保留;只收文本配置,程序本体、依赖、数据库和聊天消息记录一律不进包
  • 框架配置恢复 — 导入或迁移时逐实例预检:目标目录须属于对应框架、实例须已停止、远端恢复核对 SSH 连接身份;写入一半失败整体回滚。实例还没装、正在运行或远端连不上时,配置先存为「待恢复副本」,装好、停妥或重连后在数据页一键「重试恢复框架配置」,待恢复副本也随下一次导出一起走

🐛 修复

  • Koishi · 配置备份收紧 — 备份不再收 Koishi 的 package.json 可执行清单(其 scripts.start 会在启动时执行,篡改过的配置包借「导入 + 重启」即可运行任意命令);白名单保留 koishi.yml 与 .env
  • AstrBot · 插件市场误拦「身份不符」 — 插件 metadata.yaml 字段尾部的「# 作者」式行内注释此前被当成值的一部分,拼出的插件身份与市场目录对不上,安装被拦;现在按 YAML 规则正确剥离注释(引号内的 # 仍算内容)
  • Windows · 导出覆盖必报错 — 导出选「覆盖已有文件」时,Windows 不允许直接覆盖改名,必报「替换导出 ZIP 失败」;现在先挪开旧档、写入新档再清理,任何一步失败目标处仍保住完整的一份
  • 导入 · 拒绝实例共用安装目录 — 手改过的 app-instances.json 可让多个实例指向同一安装目录,起停、恢复、删除会互相打到对方文件;导入预检现在按主机加安装目录去重直接拒绝
  • Windows · 框架恢复预检认短路径别名 — 实例目录落在带 RUNNER~1 式短名称别名的路径下时(部分临时目录如此),恢复预检此前对不上目录名;现在按原始路径逐段核对,长名短名都认,符号链接检查不放松
  • 界面偏好恢复不留残值 — 导入缺省快照后,终端布局、Bot 排序等没写进快照的项会残留旧值却报告「偏好已恢复」;现在缺省项一并清回默认,写盘失败时也随回滚复原

📌 说明

  • 配置包只含配置:框架与插件程序本体、系统密钥库(SSH 私钥与密码、GitHub Token)不随包恢复,换机需另行安装与配置;配置原文里的 OneBot token、模型 API Key 等仍随文件保存,请妥善保管配置包
  • 旧版 ZIP 与扁平配置文件夹继续支持导入;新包为 v2 格式,沿用旧版四个文件名
  • 实例尚未安装、正在运行或远端暂不可达的,导入后记得在「设置 → 数据」点「重试恢复框架配置」
  • 本版数据路径与既有配置不动;覆盖安装即可
提交与发布信息

📦 下载

⬇️ Windows 安装包(x64 · MSI)

适用于 Windows 10 / Server 2016 及以上。已装旧版的直接覆盖安装,Bot、远端主机和配置都会保留;也可以在应用里「检查更新」一键升级。

文件名固定的同款安装包:NapCatQQ-Desktop-x64.msi(给脚本用) · 校验和:SHA256SUMS


  • chore(config): 本版无聊天特性,传输表摘除聊天偏好片 (f03d33fe)
  • docs(user): 配置备份框架名单补 NeoBot (f301b73b)
  • fix(ui): 前端偏好恢复清掉快照缺省的白名单键 (8744b3ec)
  • fix(config): 导出覆盖改名兼容 Windows、导入拒绝实例共用安装目录 (e8f2daac)
  • fix(appframework): 配置备份不再收 koishi 可执行清单 package.json (64657c4f)
  • fix(appframework): AstrBot 插件 metadata.yaml 行内注释不再污染身份校验 (e31d71eb)
  • fix(config): Windows 短路径别名参与框架恢复预检 (462b9f84)
  • chore(appframework): 补齐 NeoBot 配置备份路径与覆盖断言 (ca94757a)
  • feat(config): 完整配置备份与框架配置恢复 (f517e1f9)

💬 遇到问题

  • 先看使用文档,里面有常见问题
  • 到 Issues 反馈,附上版本号和日志会快很多;也可以来 QQ 群 问
  • watch-v 开头的发布是远端 Linux 监控组件 ncd-watch,不是桌面安装包

完整变更:v3.3.2...v3.3.3

v3.3.2

查看更新收起

新框架一位:NeoBot(纯 Python 实现的 QQ 聊天机器人)正式接入,新建、安装、对接、停止全链路可用。另有重要修复一个:AstrBot 升级 v4.26 后桌面端一直提示「用户名或密码错误」的问题已解决,新旧版本的 AstrBot 现在都能正常代登录。本版不含聊天相关改动(仍在开发中)。

新框架一位:NeoBot(纯 Python 实现的 QQ 聊天机器人)正式接入,新建、安装、对接、停止全链路可用。另有重要修复一个:AstrBot 升级 v4.26 后桌面端一直提示「用户名或密码错误」的问题已解决,新旧版本的 AstrBot 现在都能正常代登录。本版不含聊天相关改动(仍在开发中)。

✨ 新增

  • 应用端 · NeoBot — 接入 NeoBot:新建实例一键安装(uv + PyPI neobot-app),也可直接导入已有项目(只同步依赖,不动你的脚手架和端口);OneBot 反向 WS 对接与其他应用端一致;配置页类型化编辑 data/config.toml 的适配器段与面板配置,改哪写哪、保留注释
  • NeoBot · 按版本安装 — 新建实例与「重装 / 换版本」时可以从 PyPI 版本清单里挑选版本,不再只能装最新;实例列表卡片与详情页头部会显示已装版本、有新版本时给出提示(版本号按 PEP 440 规则比较,1.2.1a1、1.0.0rc1 这类预发布版本不会误判新旧)
  • NeoBot · 优雅关闭 — 停止实例(1.2.3 及以上)时先经面板接口请它自行收尾——NeoBot 关闭时要完成记忆总结,可能花几分钟,桌面端最长等待 15 分钟;版本不够或请求未送达再按进程树回收

🐛 修复

  • AstrBot · WebUI 代登录 — AstrBot v4.26 起登录接口改为接收明文密码(此前接收 MD5),桌面端仍按旧协议提交,导致 AstrBot 升级后概览、跑着改配置等页面一直提示「用户名或密码错误」,而浏览器里同样的密码能正常登录。现在:v4.28 及以上优先走上游的桌面托管会话,免密码直接登录;密码登录自动适配新旧两种协议,≤ v4.25 的旧核心也照常可用
  • 日志 — 支持 loguru 的裸 ISO 时间与竖线等级写法:NeoBot(以及其他用 loguru 的框架)的日志此前整段识别不出时间和等级,现在能正确解析并按等级着色

📌 说明

  • AstrBot 的免密代登录在该实例下次由桌面端启动后生效;不重启也不影响使用——桌面端记住的密码会按新协议自动适配
  • 由桌面端启动的 AstrBot 实例,其 WebUI 里的「重启 / 更新」入口会关闭(统一由桌面端管理)
  • NeoBot 优雅关闭需实例版本 ≥ 1.2.3
  • 本版数据路径与既有配置不动;覆盖安装即可
提交与发布信息

📦 下载

⬇️ Windows 安装包(x64 · MSI)

适用于 Windows 10 / Server 2016 及以上。已装旧版的直接覆盖安装,Bot、远端主机和配置都会保留;也可以在应用里「检查更新」一键升级。

文件名固定的同款安装包:NapCatQQ-Desktop-x64.msi(给脚本用) · 校验和:SHA256SUMS


  • docs(context): 同步 AstrBot 代登录策略落点 (8bf23995)
  • feat(runtime): AstrBot 实例启动注入桌面托管会话密钥 (e549e20a)
  • feat(appframework): AstrBot Dashboard 代登录支持 desktop-session 并兼容新旧密码协议 (fbe93cae)
  • Merge pull request #146 from Tang-Tian-dev/feat/app-framework-neobot (5d6fa2a9)

💬 遇到问题

  • 先看使用文档,里面有常见问题
  • 到 Issues 反馈,附上版本号和日志会快很多;也可以来 QQ 群 问
  • watch-v 开头的发布是远端 Linux 监控组件 ncd-watch,不是桌面安装包

完整变更:v3.3.1...v3.3.2

v3.3.1

查看更新收起

小补丁一个:新增「VC++ 运行库」组件。NapCat 官方注入器(NapCatWinBootMain/Hook)依赖 VC++ 运行库,机器缺它时注入器会秒退、只留下一行看不懂的报错——现在组件页可以一键检测、一键补装,装/更新 NapCat 时也会自动带上。顺带把组件「卸载」入口按实际能力分了流,系统级安装的组件改为引导去 Windows 设置里卸载。

小补丁一个:新增「VC++ 运行库」组件。NapCat 官方注入器(NapCatWinBootMain/Hook)依赖 VC++ 运行库,机器缺它时注入器会秒退、只留下一行看不懂的报错——现在组件页可以一键检测、一键补装,装/更新 NapCat 时也会自动带上。顺带把组件「卸载」入口按实际能力分了流,系统级安装的组件改为引导去 Windows 设置里卸载。

✨ 新增

  • 组件 · VC++ 运行库 — 一键检测与安装:自动读注册表判断装没装(已装的机器无感);未装时下载微软官方安装包(固定版本 14.44.35211.0,下载后校验 SHA256)静默安装,一次 UAC 弹窗即可完成;装到一半失败不用重新下载,再点一次接着装
  • 组件 · VC++ 运行库 — 装或更新 NapCat 时自动补齐缺失的运行库;启动 NapCat Bot 时若缺运行库会被拦下并提示到组件页处理,不再给指向不明的注入器退出日志

⚡ 改进

  • 组件 — 卸载入口按组件实际能力分流:组件自己管卸载的照旧;VC++ 运行库、本控制台(MSI)这类在系统里注册的组件,右键菜单与卸载按钮换成「在系统中卸载…」,点击直达 Windows「设置 → 应用 → 已安装的应用」,找对应条目手动卸载;不具备卸载语义的组件不再显示点了会弹英文报错的卸载项

📌 说明

  • 安装 VC++ 运行库需要管理员权限(弹一次 UAC 确认);若安装器返回「需要重启后生效」,重启电脑后再启动 NapCat
  • 该检测只针对 Windows 本机;远端 Linux 部署链路不受影响
  • 本版数据路径与既有配置不动;覆盖安装即可
提交与发布信息

📦 下载

⬇️ Windows 安装包(x64 · MSI)

适用于 Windows 10 / Server 2016 及以上。已装旧版的直接覆盖安装,Bot、远端主机和配置都会保留;也可以在应用里「检查更新」一键升级。

文件名固定的同款安装包:NapCatQQ-Desktop-x64.msi(给脚本用) · 校验和:SHA256SUMS


  • feat(component): 新增 VC++ 运行库组件,装 NapCat 自动补装、启动门禁拦截 (f73b6fed)
  • feat(component): 组件卸载能力显式声明,系统托管项引导至系统卸载页 (6029f7c5)
  • fix(scripts): 发布正文的提交标题转义 @,不再误提及 GitHub 用户 (708b8a7e)
  • fix(ci): 为 launch plan ColdStart 测试 stub QQ 注册表 (25f88f93)
  • fix(ci): rust-core 显式 setup-node 恢复 launch plan 测试环境 (9909d9d9)
  • fix(ci): Defender 排除步骤兼容空 RUSTUP_HOME (6f1a6f0d)
  • fix(ci): dispatch 套件不因 changes job 失败而挂 (307ea5b5)
  • perf(ci): 路径过滤与 Rust 双 job 并行,砍掉 PR 门禁墙钟 (07fe916a)

💬 遇到问题

  • 先看使用文档,里面有常见问题
  • 到 Issues 反馈,附上版本号和日志会快很多;也可以来 QQ 群 问
  • watch-v 开头的发布是远端 Linux 监控组件 ncd-watch,不是桌面安装包

完整变更:v3.3.0...v3.3.1

v3.3.0

查看更新收起

三个大板块集中落地:桌面端内嵌了完整的终端面板;OneBot 调试台可以直接调接口、发消息、导出代码,还能暴露为 MCP 服务给本机 agent;应用端再添 MaiBot、Koishi、TRSS-Yunzai 三个框架。另外还有设置页「功能」开关、20 个社区主题和一批稳定性修复。

三个大板块集中落地:桌面端内嵌了完整的终端面板;OneBot 调试台可以直接调接口、发消息、导出代码,还能暴露为 MCP 服务给本机 agent;应用端再添 MaiBot、Koishi、TRSS-Yunzai 三个框架。另外还有设置页「功能」开关、20 个社区主题和一批稳定性修复。

✨ 新增

  • 终端 — 桌面端底部嵌入完整终端面板:多标签、左右分屏、搜索、命令成败标记与跳转、关键字高亮、最近/常用命令、多行粘贴确认、输出导出为文件
  • 终端 — 每个标签带文件栏:面包屑导航、双击直接改小文本、拖文件进终端上传远端、「此电脑」换盘;服务器状态条实时显示 CPU / 内存 / 负载
  • 终端 — sudo 代填:密码不经前端,由面板内完成;多行粘贴默认确认
  • 终端 — 一键直达上下文:Bot 卡片进 Docker 容器或宿主机部署目录、远端主机卡片进 SSH、应用端实例进项目目录并自动接好 node / uv / .venv / karin 环境;标题栏开关或 `Ctrl + `` 随手呼出
  • 终端 — 设置页新增「终端」Tab:字号、行高、配色、光标、高亮、显卡加速、默认 shell、右键行为、选中即复制、回滚行数,改了立刻生效
  • OneBot 调试台 — 三栏工作台:接口目录、参数表单、事件流一屏同开;NapCat / SnowLuma 统一目录,HTTP / 正向 WS / 反向 WS 三种通道
  • OneBot 调试台 — 接口目录行以中文简介为主名,参数括注和上游简介的附属说明挪进悬停提示和文档页
  • OneBot 调试台 — 消息事件详情气泡新增快捷操作:回复 / 撤回 / 查发送者,在中栏开一个预填好参数的请求标签
  • OneBot 调试台 — 加好友 / 加群请求卡片给「同意 / 拒绝」,拒绝前二次确认
  • OneBot 调试台 — 完整消息构建器接入聊天输入框:段拼装、双向转换、实时预览
  • OneBot 调试台 — 流式接口可调用:分块上传 / 进度收拢、本机文件直接预置;upload_file_stream 不传参数时走普通单帧
  • OneBot 调试台 — 请求标签新增「导出调用代码」:按当前动作、参数和生效通道生成 curl / JavaScript / Python 片段,token 自动打码
  • OneBot 调试台 — 调用历史支持「对比响应」:勾选同一个接口的两条记录并排看回包,按行 diff 高亮
  • OneBot 调试台 — 「弹出为独立窗口」,与主界面调试台单窗共存
  • OneBot 调试台 — 可开成本机 agent 的 MCP 服务(ncd-mcp):调试台的接口、事件流通过 MCP 暴露给本机代理;MCP 来源的调用也进历史
  • 应用端 · MaiBot — 接入 MaiBot 框架:源码安装、正向对接(协议 Bot 开端口、麦麦来连)、启动前上游条款核对;新建、导入、启停、对接全套
  • 应用端 · MaiBot — 深度配置页:模型、人格、记忆、表达学习、回复、会话规则、MCP、高级全覆盖;两份主配置强类型、停止时差量写盘保注释、运行中直接走麦麦自己的 WebUI 接口改
  • 应用端 · MaiBot — 运行期页:状态、用量、提供商与 MCP 探测、试聊 / 重启;模型页测连接拉模型、从预设挑提供商
  • 应用端 · MaiBot — WebUI 数据页搬进桌面端:提示词、学到的表达方式、黑话、人物、表情包、知识库(导入 / 图谱)、行为分数,不再跳浏览器;支持桌面端直联「试聊」
  • 应用端 · MaiBot — 插件商店(官方 plugin-repo 市场);桌面端管的插件标记只读;在桌面端配好模型即标记 WebUI 首次配置完成
  • 应用端 · MaiBot — 远端安装:装前查 glibc / 架构 / 磁盘,缺 Python 3.12 先装好;远端下不动的由桌面端代下传上去;远端装插件也由桌面端下 tar.gz 传上;跨机对接走桌面端隧道
  • 应用端 · Koishi — 接入 Koishi 框架:官方整包安装 + 反向 WS 对接 + koishi.yml 插件树 + 控制台 WebSocket + 插件市场;概览(状态卡 / 运行信息 / 当前设置 / 控制台入口)、服务器、全局设置、插件(按 Schemastery schema 画表单)、添加已装、连接页
  • 应用端 · Koishi — 控制台功能原生化不再跳 WebUI:试聊(私聊 / 群聊)、指令(别名 / 权限 / 冷却 / 次数)、数据库(表目录 + 翻页只读)、文件(树 / 预览 / 编辑 / 新建改名删除)四页,页头「试聊」与概览工具直达指原生页
  • 应用端 · Koishi — 插件原文 JSON 换 CodeMirror 编辑器(着色 / 补全 / 诊断,空配置按 schema 默认值预填);日志按 Koishi 时间 / 等级 / 来源名拆行上色
  • 应用端 · TRSS-Yunzai(云崽) — 接入云崽框架:概览、基础 / 主人与权限 / 群聊 / 渲染、插件、连接页;新增 git / redis 运行时依赖组件
  • 应用端 — 应用端连接支持正向 WS:协议 Bot 开服务端、应用端连过来,跨机也走通(远端 Bot 连本机麦麦走 -L,本机 Bot 连远端麦麦走 -R,两台远端常驻 ssh -L)
  • 应用端 — 实例详情换成左侧分组导航,保存条挪到底部;填错的页在侧栏亮红点、保存条能直接跳过去
  • 应用端日志 — 每次启动另起一份(上轮留 .1)、按上游颜色码原样上色、长行换行;实例详情「更多」里新增「随桌面端启动」开关
  • 应用端商店 — 可按分类筛选、推荐标签可改名、装不了的条目给「手动装」;商店目录支持分几份文件拉取、单文件插件同名多源依次回落
  • 设置 · 功能页 — 可选模块可整块关掉:两个协议端分开开关(至少留一个)、应用端总开关 + Karin / NoneBot2 / AstrBot / MaiBot 各自开关、容器页、ncd-watch、内嵌终端;关掉的从侧栏和各页入口消失,后台也真少干活(不探测、不探远端 Docker、不写 watch 心跳)
  • 外观 — 新增 20 个社区主题(Rosé Pine、Tokyo Night、Dracula、Nord、One、GitHub、Gruvbox、Solarized、Everforest、Kanagawa、Monokai 等);主题选择器按族分组、跟随系统的暗色样式只在没选主题时生效
  • 外观 — 配置原文编辑器给 YAML 着色
  • 应用内更新日志 — 跳过发布正文里的下载块和页脚,只显示本版重点和改动
  • 远端 Bot — 连接页新增「从远端读取」:读回远端当前 onebot 网络配置、弹框列出增删改,确认后只填进表单不直写(#137)

🐛 修复

  • 配置 — 并发写共享配置文件偶发 configuration I/O failed(os error 2 / 32):批量启动多个 NapCat Bot 时约三成会翻;整笔事务和单文件原子写共用一把锁,并发写测试钉住
  • 配置 — 写文件先把原文件挪成 .bak,挪走到换上之间来读的报 NotFound:备份改成拷贝、临时文件直接原子替换
  • 启动 — 自更新把 0.1.0 当当前版本:build.rs 原来在编译机读配置,target 被别的 checkout 编过就读不到产品版本号
  • 托盘 — 面板点「显示主窗口」后面板自己浮着:面板 capability 不给 hide,前端那句 hide() 一直被拒,改由后端收起;托盘面板换自己的 capability,顺带少了用不上的窗口 / 选文件权限
  • 托盘 — 托盘退出和主菜单退出各走各的:托盘退出不停本机应用端实例、不收终端
  • 调试台 — 弹出窗命令原来同步执行,从 IPC 建 WebView 窗体会把主事件循环卡死(点了没反应、主窗拖不动);改 async 后弹出窗与主窗不互卡
  • 组件 — 点「安装 QQ 依赖」装错时任务挂着转圈的「安装 QQ 系统依赖」却看不到原因:失败路径补发 StepEnd / Finished,原因写进步骤日志
  • 组件 — 取消组件任务的判断:队列里的任务只走队列取消,正在跑的不可取消任务(装系统包那类)被拒时不再已被掐停;Desktop 自更新的取消不再先成功再冒 task not found
  • 组件 — 装卸组件后下一次探测不重探:除丢内存副本还记无效标记,装卸后的 home、布局、选中路径、needs_sudo 不再停在装之前;重探失败落档案兜底;每台机器加探测锁,冷缓存时并发只探一次
  • 组件 — uv 默认版本钉住各发行版 sha256 再下载;新文件先攒 .new 装齐再换,装到一半失败不丢旧 uv
  • SSH — 从本机 OpenSSH known_hosts 抄指纹:跳过 @revoked 吊销过的公钥;按连接用的 host + 端口找,不再拿档案显示名对;非 22 只认 [host]:port、主机名不分大小写、同行 !host 排除
  • 远端适配 — 远端解压缺 unzip / tar 自动补装:个别 apt 源连不上导致整次装跳过,改成刷新失败也接着装、成败只看安装那句;Alpine 不再先跑 apk update
  • 远端适配 — 远端 HOME 带空格或引号时 ncd-watch 停不掉:pkill -f 的匹配路径原先是转义外面再套一层单引号,带空格时拿到两个参数
  • 远端适配 — Host::which 在 PATH 找不到时接着看 /usr/local/bin、/usr/bin 等常见目录,远端按连接记住找到的路径;SnowLuma 解析远端 bash 不再每条短脚本多两趟 exec
  • 端口 — 本机挑应用端口只试 bind 回环:别的程序在 0.0.0.0 上听着也判空闲,第二个 AstrBot 实例会分到同一个 dashboard 口;现在除了 bind 再连一下 127.0.0.1
  • 端口 — 远端建实例、改端口、分正向听口避开服务器上正在听的口:一次读 /proc/net/tcp 比对全部候选,不再逐口起 python
  • 进程 — 本机跑命令超时后命令和它的子进程还在跑:超时按进程树强杀;内嵌终端测试不再被同时建的 ConPTY 输出管道吊住
  • 进程 — 停应用实例连子进程一起收(适配器起的子任务不再留下):先请它自己退,等不到再收整棵树
  • AstrBot — 展开插件 zip 时子项名含 .. 直接整包装不上(如 notes..txt):现在只挡挪不了的(空名、. / ..、带路径分隔符);解包、展开或读 metadata.yaml 失败时把半成品清掉,重试不再报「已存在」
  • AstrBot — WebUI 账号面板在读不到落盘账号时显示空用户名:和登录代填同一个兜底
  • 麦麦 — 装完卡在「安装中」:安装状态只认任务结果,不再被半成品 .venv 提前翻成已安装
  • 麦麦 — 行为页的时间按麦麦所在主机的时区折算,远端服务器是 UTC 也不再差几个小时
  • 云崽 — 渲染页选「自动」整个页面崩掉;单独设置里沿用默认的项不再被序列化成 null 写回 YAML
  • 通知 — Docker Bot 当 OneBot 发送方时把容器内端口直接写给 ncd-watch:按部署规则换宿主机口,规则里没有的带上容器名和容器内端口,由 ncd-watch 发送前 docker inspect 现查;一个发送方整体失败换下一个,部分成功不重发(#137)
  • 远端观察 — WebUI / noVNC 隧道和 ncd-watch 的 webuiPort 按 docker inspect 读容器实际端口映射(network_mode=host 用容器内端口),读不到才按规则推;推出来的口标成推测值,不盖掉 notify.json 里已有的口(#137)
  • 登录 — 暗色主题扫码登录二维码拍屏 20 次只扫出 1~3 次:改浅底深码 + 码区静区,所有主题二维码对比度 ≥ 3.5
  • UI — 相对时间在 28、29 天和 360 多天显示「0 个月前」「0 年前」
  • UI — 外链打不开时组件页把被拒的 Promise 吞掉没人报:统一弹「无法打开链接」错误条,连点几次只留一条
  • UI — 对接、导入对话框晚到的失败在框已关掉后还弹出来:关框后请求挂空键、检查结果走 mutate 回调
  • UI — 配置导入后装卸 SnowLuma 的回写拿旧副本把导入的设置盖回去:导入在写锁里提交事务、写完同步内存副本
  • UI — 标签输入框在输入法选字时按回车提前加上;Select 下拉打开时反复重播;弹窗打开时焦点落进弹窗里;页面贴底的悬浮按钮跟着终端面板抬高

⚡ 改进

  • 前端加载 — xterm 拆成懒加载 vendor(506 KB),启动预加载 vendor 从 1088 KB 降到 581 KB,终端面板挂上时才加载
  • 前端动画 — 页面切换动画改 WAAPI 走合成线程;概览 CPU / RAM 曲线滚入交合成线程,采样不再带整页重渲
  • 终端 — 收起 / 切页 / 轻量化都不断连,关标签才结束;命令菜单顶部筛选、两行条目、紧凑的添加表单
  • 应用端 — 实例停止、自动启动、对接 / 解绑后的状态改走事件桥推送,不再依赖调用结果回写,状态跟在跑的实例更齐
  • 远端运维 — 远端缺工具自动补装、系统包提示、compose 插件补装统一走一份实现并一起校验包名;慢镜像装系统包的上限从 180 秒提到 600 秒
  • 任务 — 只有「在跑的不可取消任务」没有取消按钮,排队和等输入的照旧;取消先于队列判断,组件任务和 Desktop 自更新不再混着处理

📌 说明

  • 本版数据路径与既有配置不动;覆盖安装即可
  • 「功能」页开关默认全开,升级后行为与之前一致;有 Bot 在用的协议端、有实例的框架、在跑的应用端、装着 ncd-watch 的远端会在设置页被拦住,处理完再关
  • MCP 服务(ncd-mcp)需要本机 agent 支持 MCP 客户端接入;开启后调试台能力经 stdio 暴露,访问粒度与调试台相同
  • Docker 部署的协议 Bot 不给对接应用端(容器里的 127.0.0.1 不是宿主机),对接对话框会置灰并说明;要对接请换成原生部署
  • 正向 WS 对接暂只对本机和远端麦麦放开;其余框架的正向配对以对接对话框的可用项为准
提交与发布信息

📦 下载

⬇️ Windows 安装包(x64 · MSI)

适用于 Windows 10 / Server 2016 及以上。已装旧版的直接覆盖安装,Bot、远端主机和配置都会保留;也可以在应用里「检查更新」一键升级。

文件名固定的同款安装包:NapCatQQ-Desktop-x64.msi(给脚本用) · 校验和:SHA256SUMS


  • fix(settings): 功能页顶栏说明整段去掉 (e4b4b64c)
  • fix(window): 调试台弹出窗命令改 async——sync 命令跑在主线程执行器上,从 IPC 里建 WebView 窗体会把主事件循环卡死(点了没反应、主窗失去响应拖不动) (06d0a4de)
  • fix(ui): 验收修正——onebot-debug.service 找回 DebugCatalog 导入,设置草稿补 mcp 段的透传与脏检查 (f9e60c79)
  • fix(mcp): 验收修正——rpc 测试按引用传请求帧,ToolError derive Debug,bot.rs 测试夹具补上 AppState.mcp (085434a4)
  • fix(debug): 流式调用验收修正——WS 文本/二进制帧分发的 future 补上 await,call 走 call_with_token 的 result,空手 upload_file_stream 放行普通单帧,下载安全名剥掉前导下划线,单测断言不再要求句柄 Debug (1a0ad2c4)
  • chore(generated): ts-bindings 重新生成(流式调用与 MCP 服务的新类型、AppSettings.mcp、FeatureToggles.apiDebug、DebugCallOrigin+mcp),Cargo.lock 随 axum 引入更新 (87c32782)
  • fix(debug): 导出代码补「自动」通道占位分支,右栏 api 补依赖,对比框删掉过时注释 (70042ced)
  • feat(debug): 调用历史加「对比响应」,勾选同一个接口的两条记录并排看回包,按行 diff 高亮(自带 LCS 行 diff) (0ebbbcae)
  • docs(debug): codemap 第 16 节补流式调用编排与本机文件预置的落点 (7e053d5d)
  • feat(debug): 流式接口可调用——发送条进度、本机文件选择、解除四处「第二期」占位 (22939f88)
  • feat(debug): 前端流式调用通路与本机文件占位(服务、hook、domain、mock) (7edb5e64)
  • feat(debug): 注册 onebot_debug_call_stream 命令,进度走 Channel 推给前端 (0c0b7042)
  • feat(debug): 流式调用编排只走内部通道:分块上传 / 下载收拢进度 / 本机文件预置 (94ca298d)
  • feat(onebot): SnowLuma 调试接口补 invoke-stream 与按需上传两块能力 (16ad2b32)
  • feat(onebot): WS 客户端支持流式调用(同一 echo 逐帧收取,背压不丢帧) (e703d1c2)
  • feat(debug): 定义流式调用的 IPC 类型(进度信封、本机文件占位、调用请求) (c4194d77)
  • feat(debug): 请求标签加「导出调用代码」,按当前动作、参数和生效通道生成 curl / JavaScript / Python 片段(token 打码) (0518ca3b)
  • feat(debug): 加好友 / 加群请求卡片加「同意 / 拒绝」,走现有调用链发 set_*_add_request,拒绝前二次确认 (4b8043ba)
  • docs(codemap): OneBot 调试台补 MCP 服务落点,开关铁律更到已接线 (1637f14b)
  • feat(ui): 功能开关接 apiDebug,设置页加 OneBot 调试台项,设置往返带 mcp 段 (47ab6eac)
  • feat(tauri): 启动与设置保存时按落盘值接线调试台/MCP 开关(M7) (f7a93e94)
  • feat(mcp): 新增 ncd-mcp,把 OneBot 调试台开成本机 agent 的 MCP 服务 (63770c12)
  • feat(debug): 调用历史收录 MCP 来源的调用 (ed56a997)
  • feat(domain): 调试台开关 apiDebug 与 MCP 服务设置落盘,调用来源加 mcp (e29aeb5d)
  • feat(debug): 完整消息构建器接入聊天输入框(段拼装、双向转换、实时预览) (0f6a9448)
  • feat(debug): 消息事件详情气泡加「回复 / 撤回 / 查发送者」快捷操作,在中栏开一个预填好参数的请求标签 (283a6e7b)
  • docs(codemap): 记调试台弹出窗的命令 / 窗口壳 / 单窗共存策略落点 (23257101)
  • feat(debug): 顶栏「弹出为独立窗口」与调试台的单窗共存 (db60d1f6)
  • feat(debug): 调试台弹出窗的前端壳 (2f6b6e1f)
  • feat(window): 调试台弹出窗的窗口命令与关窗放行 (b669a7c4)
  • refactor(debug): 输入框草稿升级为 ComposerEntry,发送链路支持构建器段 (94cb45ba)
  • feat(debug): 新增完整消息构建器域逻辑(草稿拼装/拆回/校验)与单测 (718458ca)
  • feat(debug): 接口目录主名剥掉上游简介里的参数括注和分号补充(完整简介留在悬停提示和文档页) (05182a1a)
  • feat(debug): 接口目录行改用中文简介作主名,字段名只在没有简介时显示(悬停提示和右键菜单里仍有) (27426ee6)
  • feat(apps): Koishi 控制台功能原生化,不再跳 WebUI:控制台 WS 扩 explorer/entry/database 推送、沙盒消息缓冲与 sandbox/request 应答、entry-data 就地合并;新增试聊(私聊/群聊,发消息前 sandbox/get-user 建档)、指令(别名/权限/冷却/次数,走 command/aliases 与 command/update)、数据库(表目录+翻页只读,dataview 序列化按上游格式编解码)、文件(树+文本编辑/图片预览/新建改名删除)四页;页头「试聊」与概览工具直达指原生页;真机协议探针对着真实例验证通过 (baf388dc)
  • fix(apps): Koishi 体验打磨:插件原文 JSON 换 CodeMirror 编辑器(着色/补全/诊断,空配置按 schema 默认值预填、写回清到默认值不落盘,无 schema 给空态不再摊空编辑器);日志按 Koishi 全年月日+单字母等级格式拆时间/等级/来源名上色;CopyCodeBlock 单行时文本和复制钮上下不对齐改居中紧凑钮;InfoBarStack 不再把内部 visible 透传到 DOM (aadf3a29)
  • feat(debug): 调试台界面松绑:参数行报错/提示/说明并成一行、通道行和测试连通合成一张卡、左栏搜索收进标题行图标(点按或 / 展开)、接收指示挪到右侧操作组、右栏收起补回退场动画 (f6c42b33)
  • feat(debug): OneBot 调试台第一期:三栏工作台、三种通道、NC/SL 统一目录与事件流 (5a5e1988)
  • fix(apps): 云崽渲染页「自动」选项不再让页面崩掉 (17769fb5)
  • docs(codemap): 记 Koishi 应用端的后端 / 前端 / 运行期 / 冒烟落点 (ce77991d)
  • chore(mock): 浏览器预览里加一个云崽实例 (acd3d7f4)
  • feat(apps): 云崽详情页:概览、基础 / 主人与权限 / 群聊 / 渲染、插件、连接 (a126a983)
  • feat(app-store): 商店可按分类筛选;推荐标签可改名;装不了的条目给「手动装」 (4bdf5c6a)
  • feat(ui): 配置原文编辑器给 YAML 着色 (27911e6a)
  • fix(appframework): 云崽单独设置里沿用默认的项不再序列化成 null (637651bd)
  • test(apps): Koishi 真机冒烟:koishi_real_smoke 真下整包、装 OneBot 适配器、对接、起、控制台首页 200、状态接口通、冒充 NapCat 握反向 WS 101、控制台里看到 Bot、停后无残留进程且端口释放;koishi_live_smoke 对着在跑的实例走控制台 / 表单 / 跑着对接;进程扫描函数从 MaiBot 冒烟里提出来两边共用;registry 测试的未注册例子换成 yunzai (2a5447e6)
  • feat(apps): Koishi 应用端前端:概览(状态卡 + 运行信息 + 当前设置 + 控制台入口)、服务器、全局设置、插件树(分组可折叠、悬停出小开关、核心插件上锁、按 Schemastery schema 画表单:交叉分段、标签联合按判别键展开成分支自己的段、数组 / 字典 / 元组 / JSON 兜底)、添加已装插件、插件市场齿轮跳到插件配置、连接页;mock 模式整套可走 (bc315607)
  • style: rustfmt 新加的云崽 / git / redis / yaml_patch 代码 (c470249b)
  • feat(appframework): 第五个应用端框架 TRSS-Yunzai(云崽) (29b71665)
  • feat(app-store): 商店目录可以分几份文件拉;单文件插件同名多源依次回落 (8830588b)
  • feat(app): 停应用实例前先请它自己退,等不到再收整棵树 (59e891b0)
  • feat(appframework): yaml_patch 按键路径改 YAML,保留注释、行尾注释和没见过的键 (f2663a97)
  • feat(component): 新增 git / redis 运行时依赖组件,给云崽用 (2d8df92c)
  • feat(apps): Koishi 应用端后端(官方整包安装 + 反向 WS 对接 + koishi.yml 插件树 + 控制台 WebSocket + 插件市场) (db43ef1f)
  • ci(release): watch 发版 make_latest=false、Desktop 发版显式 make_latest=true,仓库首页的 Latest 不再被 ncd-watch 顶掉 (0233dc04)
  • docs(release): ncd-watch 0.2.6 发版说明(Docker 发送方现查端口映射、QQ 消息通知换发送方重试,#137) (1493258b)
  • fix(watch): Docker Bot 当 OneBot 发送方时不再把容器内端口直接写给 ncd-watch:只认监听在通配地址的 HTTP 服务,按部署规则换成宿主机口,规则里没有就带上容器名和容器内端口,由 ncd-watch 发送前 docker inspect 现查;直接运行的 Bot 第一个是远程地址时接着找下一个;ncd-watch 一个发送方整体失败就换下一个,部分成功不重发;docker inspect 端口解析挪到 ncd-domain 两边共用(#137) (11f20640)
  • feat(settings): 设置加「功能」页,可选模块能整块关掉:协议端 NapCat / SnowLuma 分开开关(至少留一个),应用端总开关 + Karin / NoneBot2 / AstrBot / MaiBot 各自开关,容器页、远端值守 ncd-watch、内嵌终端;关掉的从侧栏和各页入口里拿掉,并且后台少干活:应用端实例不再随桌面端启动、不探远端 Docker、组件目录不列也不探测关掉的组件、不挂终端面板并关掉开着的终端、不写 ncd-watch 心跳;心跳另外只写给装了 ncd-watch 的远端(先 stat 一次,省掉每 45 秒四五次 SFTP 写);会让东西没处管的由设置页拦住(有 Bot 用的协议端、有实例的框架、在跑的应用端、装着 ncd-watch 的远端);开关存 app-settings.json 的 features(FeatureToggles,缺字段当开),codemap 记落点 (5378d909)
  • perf(ui): xterm 单拆 vendor-xterm,跟着懒加载的 TerminalDock 走,不再进启动预加载的 vendor(vendor 1088 KB → 581 KB,xterm 506 KB 只在终端面板挂上时加载) (f58b854c)
  • fix(docker): 远端 Docker Bot 的 WebUI / noVNC 隧道和 ncd-watch 的 webuiPort 改按 docker inspect 读容器实际端口映射(network_mode=host 用容器内端口),读不到才按 6099+QQ%500 推;推出来的口标成推测值,不盖掉 notify.json 里已有的口,导入的自建容器不再对不上(#137) (edcf3b16)
  • fix(ui): 暗色主题扫码登录的二维码改成浅底深码(最深底色的码 + 正文色的底),弹窗码区外圈也铺码的底色当静区;默认暗色和 Catppuccin 暗色三味原来是深底深码,对比度只有 1.4:1,拍屏模拟(反光 + 轻微失焦)下 WeChat 引擎 20 次只扫出 1~3 次,改后 20/20;单测卡住所有主题二维码对比度 ≥ 3.5 且必须浅底深码 (2ab5b358)
  • feat(ui): 外观主题加 20 个社区主题(Rosé Pine、Tokyo Night、Dracula、Nord、One、GitHub、Gruvbox、Solarized、Everforest、Kanagawa、Monokai),每个只写一份调色板,由 core/design/themes 展开成整套 token 注入;主题选择器按族分组拼行、弹层按可用高度滚动;跟随系统的暗色样式只在没写 data-theme 时生效,修掉系统暗色下 Latte 混进暗色 InfoBar 等变量;样式按 data-theme-scheme / data-theme-flat 分支,不再逐个列主题名 (93045473)
  • docs(user): 补 ncd-watch 用户文档(安装位置、systemd 与 linger、watch.json / notify.json 字段、掉线判断、Docker 部署没通知的排查:容器名、docker 权限、WebUI 端口规则、防火墙、桌面端在线时不发);常见问题补「远端 WebUI 改的连接被还原」和 ncd-watch 入口(#137) (93dd2b7c)
  • feat(bot): 远端 Bot 的连接页加「从远端读取」,读回远端当前的 onebot 网络配置,弹框列出增删改,确认后只填进表单、保存仍走保存条;后端 BotManager::fetch_remote_network 从 bot.json 推主机和容器名,复用导入时的读取(#137) (f0186ac1)
  • docs(release): 补上 v3.2.2 的策展正文(新版式,条目带领域前缀,说明应用端实例默认随桌面端启动) (82ed95e1)
  • feat(ui): 应用内更新日志跳过发布正文里的下载块和页脚标记,只显示本版重点和改动 (15764bc7)
  • feat(release): 发布说明换新版式:开头一句本版重点,下载直链放最前(MSI、固定文件名包、SHA256SUMS),分类带图标、条目标领域、#issue 自动成链接,全部提交折叠,末尾给反馈渠道和完整变更对比;README 同步版式说明 (7fdd7119)
  • refactor(task-queue): 任务的取消、删除、清空已结束收进 hooks/task-queue/useTaskQueueActions,任务队列页、列表项和详情不再直连 deploymentTaskService;frontend.md 的直连清单只留还没拆的几处并写明原因 (6c1db1f1)
  • refactor(components): QQ 依赖的探测、安装和记住 sudo 密码收进 hooks/components/useQqDependencyOps,组件页和依赖弹框不再直连 componentService;Docker 安装选项的类型从 useDockerHosts 拿 (dfec7058)
  • refactor(settings): 运行环境页探测本机 Node、关于页检查更新、配置导入向导的挑包 / 预览 / 导入都经 hook,这三处不再直连 service (4b9d1f0b)
  • refactor(remote): 扫本机 SSH 私钥、读 ssh config 主机和批量导入收进 hooks/remote/useLocalSsh,远端档案列表抽成 useServerProfiles 给 Bot 卡片用;添加服务器、从 SSH 配置导入两个弹框和 BotCard 不再直连 serverService (dcf86762)
  • refactor(ui): SnowLuma 协议载荷和 QQ 进程信息改用 ts-rs 生成的类型,bot.service 里手写的两份删掉;协议弹框、Bot 列表页、投递记录和 OneBot 发送方选择器的类型从 generated 引,不再为拿类型去碰 service (a96b615b)
  • refactor(tray): 托盘面板的调窗高、进轻量、退出和启停 Bot 收进 hooks/desktop/useTrayPanel,tray_panel_* 命令名回到 desktop.service,面板不再动态 import transport 直接 invoke (71adddad)
  • refactor(ui): 窗口拖放收进 transport 的 onFileDragDrop(坐标先换成逻辑像素),hooks 里的 useFileDragDrop 统一订阅和退订,文件拖放、终端拖放和设置页导入向导都走它,不再各自 import @tauri-apps;设置页那份原来关得比订阅回来早时会漏退一个监听;启动门显示主窗口改走 desktop.service (1388efa7)
  • fix(tauri): build.rs 运行时取 CARGO_MANIFEST_DIR 找 tauri.conf.json,不再用 env! 写死编译 build script 时的路径;target 被别的 checkout 编过时读不到配置,产品版本号注入不进去,自更新会拿 0.1.0 当当前版本 (d719a81a)
  • refactor(apps): 应用实例的停止和自动启动不再拿调用结果回写列表,交给 app_instance_changed 事件桥;新建、导入、启动、重新探测留着,注明事件管不到的情况 (1d767ea2)
  • chore(host): 去掉 Cargo.toml 里说 M5 要启用 winget/choco PackageManager 的旧注释和注释掉的 winreg / which 依赖,那个 trait 早已删掉 (ca8b6007)
  • fix(apps): local_port_free 自己也连一下 127.0.0.1 看有没有人在听:runtime 分配新实例口和改口时的 ensure_port_free 直接调它,原来只试 bind 回环,别的程序在 0.0.0.0 上听着时照样判成空闲;PortUsage 的本机分支改为直接用它,加一条对 local_port_free 的 0.0.0.0 测试 (b032391b)
  • fix(ui): 外链打不开统一弹「无法打开链接」:useOpenExternal 拆出 openExternalOrReport,终端和组件页的 Docker 下载页都走它,原来组件页把被拒的 Promise 吞掉没人报;错误条带 key,连点几次只留一条 (0a8c0664)
  • fix(components): 组件行在后端标了停不住的任务跑起来后不给「取消」,和任务详情一样看快照的 cancellable;排队、等输入和没有任务快照的(Desktop 自更新)照旧能取消 (9f37804e)
  • fix(config): LocalConfigStore 写文件时备份改成拷贝、临时文件直接原子替换上去,不再先把原文件挪成 .bak:读不排写锁,挪走到换上之间来读的会报 NotFound;加一条边写边读的测试,旧写法稳定复现 (6d03f054)
  • refactor(host): 远端缺 tar / unzip 自动补装只留 ncd_host::linux_pkg 一份(plan_missing_command + install_missing_command),解压和组件页的系统包任务都走它;刷索引加装包一条命令,上限统一 600 秒,原来解压那边 180 秒在全新机器慢镜像上不够,任务那边 300 + 600 秒又要干等一刻钟 (e8146373)
  • refactor(deploy): Docker bot 项目目录的 HOME 探测只留 ncd-deploy 一份并公开 docker_project_dir,runtime 渲染配置时调它;探测失败的原因带上退出码和 stderr (5ecc8c83)
  • refactor(runtime): 应用端日志尾巴的远端 tail 改用 ncd_host::remote_tail_lines,helper 加可选超时参数;这里仍给 15 秒上限并滤掉空行 (edecdce0)
  • refactor(tauri): 去掉已没有前端调用的 count_local_active_bots 命令,退出拦截和数据目录迁移直接调 BotManager (528adc6c)
  • refactor(ui): 删掉 errorBarCopy 里没人用的 briefAppError / appErrorBarContent 两个旧别名 (0339a845)
  • fix(tray): 托盘面板点「显示主窗口」不再自己调窗口 hide():面板的 capability 不给 hide,这句一直被拒,收面板已由后端 window_show 做 (a33ab8b4)
  • docs(context): lessons 补上审查后期修出来的几个坑:缓存作废漏了持久化副本、端口只 bind 回环、失败路径不发收尾事件、超时不杀子进程、共享配置并发写、测试抢端口和定时器活过环境 (19edcc09)
  • test(snowluma): 选 WebUI 端口的顺序和上限用假的空闲判断测,不再真去绑一段临时端口和并行的测试抢;真实探测只测自己攥着的口会被跳过 (5e8ab457)
  • test(ui): 测试环境的帧定时器统一在 setup 里收:没到的帧自己记着,文件跑完全撤掉、之后不再排,GSAP ticker 不会在 jsdom 拆掉后再要一帧报 window is not defined;各测试文件里零散的 ticker.sleep 去掉 (cdfcc618)
  • fix(config): LocalConfigStore 的整笔事务和单文件原子写排队进行,克隆出来的共用同一把锁:批量启动多个 NapCat Bot 时每个 Bot 的渲染都写共享的 napcat.json,同一秒的事务还共用一个备份目录,一边刚看到文件在、另一边已把它挪去当备份,或两边往备份目录拷同名快照撞上占用,随机有一个 Bot 报 configuration I/O failed(os error 2 / 32)起不来;bot_manager 的 batch_start 测试因此约三成会挂,main 上一样。加一条多线程同时写共享文件的测试,去掉锁时稳定复现;batch_start 测试先断言 failed 为空并打印原因 (a94bc563)
  • fix(host): 本机 run_to_string 超时时按进程树强杀命令,和 run_streaming 一样:原来 wait_with_output 拿走了 child,超时只是这边不等了,命令和它起的子进程照样跑完,还攥着本进程当时可继承的句柄;测试里超时的 cmd /c ping -n 60 这样活满一分钟,握着同时建的 ConPTY 输出管道,三条内嵌终端测试等不到退出码,整个测试二进制也要跑 60 秒;加一条超时后命令确实被收掉的测试 (2ceb8c9e)
  • test(snowluma): daemon 的 spawn 失败测试在临时 runtime_root 里放一个起不来的 node.exe:包里没有 node.exe 时 resolve_node_exe 会落到 PATH 上找,装了 Node 的机器上 spawn 真成功、mock 的 wait_ready 放行后 daemon 进了 Ready,两条回滚测试就挂;解析停在假文件上后 spawn 在哪都失败,第一条再断言错误确实是 Spawn (86f0b6d4)
  • test(ui): vitest 里 @gsap/react 指到它的 ESM 入口,测试进程只加载一份 gsap:vitest 不认 module 字段,原来 @gsap/react 走 UMD 包 require 进另一份 CJS 的 gsap,那份 ticker 一加载就醒、测试里 sleep 停不到,环境拆掉后还在要下一帧,全量跑时 listEnter 偶发 window is not defined 让 test:unit 退出 1;useGSAP 的 context 也因此收不到业务那份 gsap 建的动画,和打包后的行为对不上 (6bb54279)
  • docs(context): capabilities.md 末尾那句 AppState 说准:挂的是 runtime 里各 Manager / 执行器的句柄,缓存和任务表归它们自己;设置副本只经 ncd_runtime::desktop 的函数改 (bb708d1c)
  • docs(ui): frontend.md 自检 grep 也扫 src-ui/app,并加一条查动态 import(),托盘面板动态 import transport 直接 invoke 的三处和 hidePanel 那句被 capability 拒掉的 hide() 记进现存偏差;外链记下 openDownloadPage 交出裸 Promise、组件页再把它吞掉,terminalIo 抄了一份 useOpenExternal,useOpenExternal 的错误条没带 key;手写载荷的例子去掉已换成生成类型的 LogSnapshot;文头指到 capabilities.md 和 lessons.md (dd437454)
  • docs(context): codemap 逐条核对路径:commands/components、docker 和 NapCat 的 login_poller、webui_client 改成现在的目录,tray_menu.rs 换成 tray_panel.rs,登录态 plan 指向 archive,package_manager.rs 换成 linux_pkg.rs / pkg_output.rs;补上 AppManager 拆出的 manager/ 子模块、组件执行器 / 远端库存 / 启动预检、挪进 ncd-domain 的 IPC 类型、app-settings 的 runtime 写入口、shell 引号和端口探测、退出收尾和窗口通知、托盘面板 capability,去掉已删的 AppRuntime 和 NoneBot2 商店 / 配置表单的旧名;依赖图按 Cargo.toml 重画,验证命令改用 pnpm (e21cfdea)
  • docs(context): lessons.md 里 L4 状态那条改准:当初挂在 AppState 上的是远端库存缓存和活跃任务表,执行器是每个命令现建的;现在执行器启动时建一份、缓存和任务表归它,AppState 只放句柄 (95bdc2b1)
  • docs(context): 找回误删的 capabilities.md 并按现在的 crate 重写:先列最常被重写的小工具(shell 引号、which / command_exists、LinuxPackageManager、端口探测、远端读文件、known_hosts 匹配、host_id 互转、远端库存、app-settings 读写、退出收尾),再按 crate 列已有的 Manager、适配器钩子和组件;去掉早已删掉的 PackageManager trait、AppRuntime 和锁死的 QQ 版本 (6bfaeabd)
  • fix(apps): 正向对接的桌面端隧道也走 ensure_desktop_tunnel 那一份复用、开完再核一遍、登记:启动对账和用户重新对接同时开隧道时,后开的不再直接顶掉先开的那条(它的口可能已经写进适配器配置),两条 -L / -R 与正向隧道现在同一套流程 (4eb35382)
  • refactor(apps): AppManager 启动时经 with_component_executor 接上组件执行器,安装、插件装卸更、盯安装任务都用它和它那条任务队列;install_instance / submit_store_op / track_install 不再每次由命令层递进执行器和队列,命令只转 id 和参数,也不会有人递进一条和 track_install 盯的不是同一条的队列 (c4a5e1db)
  • refactor(apps): 插件任务和 WebUI 编排挪进 AppManager 后,只剩它自己在用的 run_app_plugin_task、join_webui_url 不再从 ncd-runtime 对外 re-export,run_app_plugin_task 收成 pub(crate)、track_install 收成 pub(super),新命令没法绕过 install_instance / submit_store_op 再自己拼一遍 (aa65a0ac)
  • fix(apps): WebUI 账号面板在读不到落盘账号时,用户名也按「桌面端记下的,没有就用框架首启默认名」给(AstrBot 给 astrbot),和登录代填同一个兜底,不再面板上显示空用户名、登录却填 astrbot;webui_account 里三段一样的兜底分支合成一个 (1f1a3426)
  • fix(apps): 本机挑应用端口时除了试 bind 回环,再连一下 127.0.0.1 看有没有人在听:别的进程(比如已在跑的 AstrBot dashboard)在 0.0.0.0 上听着时,Windows 照样允许再 bind 回环,原来的检查会把这个口当空闲,第二个 AstrBot 实例就分到同一个 dashboard 口;加了一条占着 0.0.0.0 的测试,改之前在 Windows 上确实判成空闲 (39a0b2d2)
  • fix(astrbot): 展开插件 zip 时子项名只挡挪不了的(空名、. / ..、带路径分隔符),notes..txt 这种名字里带 .. 的照常挪上来,不再因此整个插件装不上;zip 解包、展开或读 metadata.yaml 失败时把解到一半的插件目录和临时 zip 一起删掉,重试不再一上来就报「已存在」、更新也不会一直撞同一个错 (b6846868)
  • refactor(deploy): NativeDeployment::tail_log 直接返回 L1 的 LogSnapshot,删掉字段一模一样的 NativeLogSnapshot 和它的两处 re-export,本机、远端两个适配器不再逐字段抄一遍 (e514ad06)
  • style(traits): LogSnapshot 的 re-export 单独成一组、说明紧贴在它上面,cargo fmt 不会再把它排走、把那句「导出 TS、留原路径」留在 BotStatus 头上 (33a2f2c9)
  • fix(tray): window_show 先由后端收起托盘面板(轻量模式下照旧销毁),面板「显示主窗口」不再靠主窗抢到焦点才消失:面板的 capability 不给窗口 hide,前端那句 hide() 一直被 ACL 拒掉,主窗没拿到焦点(前台锁、轻量模式重建 WebView 期间)时面板会一直置顶浮着;也不必为此给面板加窗口权限 (f515a688)
  • perf(docker): 开了指标的 Docker Bot 启动时,项目目录直接用刚探到的 HOME 经 docker_bot_project_dir 拼,不再为它再跑一趟 echo $HOME (deb80731)
  • fix(ssh): 从本机 OpenSSH known_hosts 抄指纹时跳过用户 @revoked 过的公钥,不管那行写的是哪台主机(通配符、哈希主机名都不解析,宁可多排除几把退回确认框);之前 @ 开头的行一律跳过,同一把 key 另有一行普通条目时,吊销过的 key 会被当成可信抄进应用 (2064c585)
  • fix(ssh): known_hosts 主机字段只剩 ncd_host::remote::known_hosts_host_matches 一份,应用自己的 known_hosts 校验也按它比:裸主机名只算 22 端口、别的端口只认 [host]:port、主机名不分大小写、同行 !host 排除。之前应用那份裸 IP 条目对任何端口都算数,NAT 转发的同 IP 另一台机器会被判成指纹变了、连不上也抄不进 OpenSSH 里对的那把;行解析也收成 parse_known_hosts_line 一处,ncd-server 读 OpenSSH known_hosts 不再自己抄一份 (68e77b78)
  • fix(terminal): 文件栏打开文本前看大小改走新加的 Host::file_size(跟着链接取目标大小,本机一次 metadata、远端一次 SFTP stat,默认给不出是 None),不再远端多开一个 exec 跑 stat -L、本机把整个父目录每项都查一遍 metadata;本机指向大文件的符号链接也能在读进内存前就拒掉。测试替身改为覆写 file_size,不再认 stat 这个程序名;补上传文件夹的测试:里面指回上层的目录链接(Windows 用 junction)不跟进去、不会转圈,指向文件的链接照常传内容 (46a717d6)
  • refactor(component): LinuxQQ 解包前探 dpkg-deb / rpm2cpio / cpio 改用 Host::command_exists,删掉 qq.rs 里自己拼 sh -c "command -v" 的循环体和 command_available;同一个函数里不再两种探法并存,命令名也按 Host 的规矩转义 (61d49314)
  • fix(ncd-watch): 远端 HOME 带空格或引号时 ncd-watch 也能正常停、起:pkill -f 的匹配路径整条只加一层单引号(原来转义结果外面又套一层单引号,带空格时 pkill 拿到两个参数、旧进程停不掉),nohup 那行的二进制和 --root 也加引号,systemd unit 的 ExecStart 按 systemd 的规矩给两个路径加双引号并转义 % / $ (f77acd54)
  • refactor(host): 远端取文件大小、从偏移读一段、读末尾几行收进 ncd_host::remote_file(remote_file_size / remote_read_from / remote_tail_lines,跟随日志的单次上限 LOG_FOLLOW_CHUNK_BYTES 定义一处),删掉 SnowLuma daemon 日志、远端 Bot 日志跟随、应用端运行时、应用端日志尾巴、远端 NapCat 日志里逐字抄的四份 wc -c、三份 tail -c | head -c、两份 tail -n;脚本文本不变,两个后端 crate 仍只依赖 ncd-host,互不引用 (b6ea30f5)
  • fix(host): 一条 sh -c 里「先刷索引再装」改成刷新失败也接着装,成败只看安装那句:远端解压缺 unzip / tar 自动补装、补装 compose 插件时,某个第三方源连不上导致 apt-get update 非零不再让整次安装跳过,和组件任务里分两条命令跑的补装一个口径;Alpine 不再先跑一遍 apk update,apk add --no-cache 自己会拉索引,也免得一个源不通就把安装拦下 (ffc319db)
  • refactor(components): 本机 Node 候选探测和「这个 node.exe 能不能用」的判定挪进 ComponentExecutor(probe_local_node_candidates / probe_node_binary),NodeJs 组件落点按 data_root_to_host_path 加 NodeJsComponent 的二进制路径算,自定义路径走 snowluma_node_override;两个命令只转发 (9cd0a7de)
  • refactor(settings): 本机 SnowLuma 自定义 Node 路径的取值收成 L1 的 AppSettings::snowluma_node_override,启动、保存设置、组件构建输入都调它,不再从组件执行器模块里借一个自由函数;factory 里对已经取好的值再判空白、再 trim 的那一层删掉 (bd29fea4)
  • style: cargo fmt (6d926a9d)
  • refactor(components): 删掉命令层只剩 qq_deps 在用的 executor(&state) 转发壳,直接用 state.components;应用端安装早已由 AppManager::install_instance 编排,这里不再有别的调用方 (a92749fd)
  • refactor(components): 组件执行器从 host_id 取 server_id 的三处改用 ncd_domain::server_id_of_host,和库存缓存的键出自同一个前缀常量,不再各自手写 "remote:" (973ddeb4)
  • fix(components): 用户点「安装 QQ 依赖」时安装器直接报错(包管理器不是 apt / dnf、探不到包管理器、SSH 出错)也把原因写进步骤日志并补发 StepEnd / Finished,任务详情不再挂着一个转圈的「安装 QQ 系统依赖」却看不到为什么失败 (b60fa682)
  • refactor(launch): Bot 启动路由取远端选中路径改用组件执行器那份 RemoteInventoryService,不再自己抄一遍找档案、判过期、现探、写回;装卸后的重探标记对启动也生效。BotManager 加 with_remote_inventory,没接上时照旧读档案 / 现探 (32c48010)
  • fix(remote): 组件动作后 invalidate 真的让下一次探测重探:除了丢内存副本还记一个标记,ensure 看到标记就不拿档案里 6 小时内的旧库存,装卸后 home、布局、选中路径、needs_sudo 不再停在装之前;重探失败时回落档案那份,SSH 抖一下不至于让探测报错。每台机器加一把探测锁,冷缓存时组件页并发的七八个 detect 排队,拿锁后先看前一个探到的,只探一次;测试补上真实档案(之前没档案 set_inventory 悄悄失败才让 invalidate 看起来有效)、失败回落和并发只探一次 (401e6e69)
  • refactor(desktop): trayService 删掉没人调的 hideMainWindow、countLocalActiveBots、requestExit,request_exit_app 和 window_hide_to_tray 只剩 exit.service、windowControlService 各一处在用,托盘面板只用得到打开主窗 (14f8d63f)
  • refactor(ipc): 应用端和 Bot 两份 mock 的日志快照、应用端日志 store 单测里的那份,都改标生成的 LogSnapshot,不再手写 { lines, total_lines },后端加字段时报错落在 mock 本身 (9a4434e2)
  • refactor(desktop): 退出闸门的窗口通知订阅、问后端能不能退、发退出请求和对话框状态挪进 hooks/desktop/useDesktopExitGate,DesktopExitGate 只管渲染对话框,不再直接碰 core/services 和 transport;订阅改成挂好时已卸载就当场退掉,StrictMode 双挂载不再漏一份监听。PrepareExitDesktopResponse 改由 core/ipc/types 转出,exit.service 不再替它转;frontend.md 的现存偏差去掉已经收口的 DesktopExitGate 和那几路监听,hook 速查表补上 (298825d8)
  • fix(settings): 配置导入在设置写锁里提交事务,写完把内存里的 app 设置换成盘上的新值(本机 SnowLuma 包类型留内存那份),重启前装卸 SnowLuma 的回写不再拿旧副本把导入的设置盖回去;读 app-settings.json 收进 ncd_runtime::desktop(load_app_settings / read_app_settings_file),删掉命令层的文件名常量和两个读取函数,Bot 指标偏好的两处手写读取改用同一个;八个 normalize 收成 AppSettings::normalize 一个入口,设置页保存和导入共用 (6fea67c0)
  • fix(desktop-update): 应用内更新 Desktop 后退出改走 exit::shutdown_and_exit,和菜单、托盘退出同一份收尾:本机 Karin / AstrBot / MaiBot 实例和终端跟着停,不再更新完留下没人管的孤儿进程;本机 Bot 闸门的计数也改用 exit::local_active_bots (14af6d6d)
  • refactor(apps): 删掉只给 pushErrorBar 起别名的 hooks/apps/pushAppErrorBar.ts,应用端 13 个 hook 和详情页 3 个组件改直接用 hooks/ui/pushErrorBar,同一个函数不再两个名字;frontend.md 里两处把别名写成约定的说法一并去掉 (6aac1852)
  • docs(ui): component / settings 服务头注释不再列一份早就不全的命令名清单,改成本域命令名只在此文件出现,删掉「后端工单 3」那句;BotPage 路由壳的头注释换成现在的四个视图,去掉 Step 7 / 8 / 9 和 log 还走 Fluent 旧树这类过时的过程说明 (57a3e6c0)
  • fix(apps): 导入对话框的检查结果改为直接读 mutation 的 data,不再另抄一份到 state;改框架、主机、目录或开关对话框时 reset 掉路上那次检查,结果和提示条都改走 mutate 的单次回调,晚到的旧结果不会再把「导入」点亮、拿旧目录配新主机去接管,关掉后才失败的检查也不再弹条。加单测钉住 reset 之后旧结果不进 data、回调不触发 (1b223b0f)
  • refactor(components): Desktop 自更新改用 register 登记活跃任务,靠 guard 在任何一条返回路上摘掉条目,删掉七处手写的 remove;ActiveTasks 的 insert / remove 收成私有,登记只剩 register 一个口,往后加的提前返回也不会留下让轻量模式一直以为还有活在跑的死条目 (00849d81)
  • fix(apps): 对接对话框关掉、或认出选的是 Docker Bot 时,把还在生成的对接计划请求挂到一个空键上,让它没了观察者被取消;只关 enabled 键不变,请求不算作废,晚到的失败会在对话框已经关掉后弹出「无法生成对接计划」。补一条关掉后才失败不弹条的单测 (d58aad0d)
  • fix(components): 取消组件任务先交给任务队列定:队列里的任务只走队列的取消,正在跑的不可取消任务(装系统包那类)被拒时 ActionCtx 不再已经被掐停;队列不认识的 id(Desktop 自更新)才去活跃表里找,找不到报任务不存在,取消自更新不再先成功再冒一条 task not found (8f996703)
  • refactor(apps): useAppInstances 不再往外给没人用的 patch,也不再转出 APP_INSTANCES_KEY;只剩对接一处用的 Bot 配置失效直接写进 useAppLink,useAppInstanceConfig 改从 appInstancesCache 取键,对接 hook 不再为此把挂日志订阅的 useAppInstances 一起带进来,单测也不用再 mock 它 (2bab02cf)
  • refactor(apps): 对接、解绑成功后不再拿调用结果回写实例列表、也不再让应用端配置缓存失效,这两件由根上的事件桥跟着 linked / unlinked 事件做,免得晚到的调用结果盖掉更新的事件;只留 Bot 配置缓存的失效(事件桥不管 Bot 那边)。frontend.md 现存偏差里记下 useAppInstances 其余几个操作还在回写 (4f2ec202)
  • style: cargo fmt (ac7c3c33)
  • chore(clippy): 清掉这条分支改过的文件里的 clippy 警告:能 derive 的 Default 改 derive,多余的 return / 借用 / to_string / into / 闭包去掉,map_err 里只做清理的改 inspect_err,测试模块挪到文件末尾,测试里的变体、构造函数改名;nonebot2 写 pyproject 的两处 expect 改成 if let / let else,ensure_table_path 和启动期的三处 expect 保留并写明为什么不会或只能 panic,参数多的函数和 Win32 盘符枚举按仓库惯例加 allow;关窗隐藏到托盘失败从 eprintln 改成写 tracing 日志 (7bf8f986)
  • chore(ipc): 删掉没有 Rust 来源的生成文件 generated/domain/DeployedContainer.ts(Rust 那边早就改成 DockerImageReady 的类型别名,ts-rs 不再生成它),前端 re-export 直接给 DockerImageReady 起别名;重跑 ts-bindings 以及 ncd-config、ncd-backend-snowluma、ncd-update 的导出,其余生成文件与 Rust 一致,没有漂移 (838f795c)
  • fix(tauri): 托盘面板窗口改用自己的 capability,只给 core:default 和按 http/https 打开链接(打开 WebUI / noVNC 要用);主窗那份不再覆盖 tray-panel,面板不再顺带拿到选文件、另存为、在资源管理器里定位文件、通知和窗口最大化拖动这些它用不上的权限 (d3fd5e35)
  • refactor(tauri): 退出闸门的 IPC 补齐类型:prepare_exit_desktop 的返回改用 ts-rs 生成,前端不再手写;三条窗口通知的名字在前端收进 desktop.service 一处,退出闸门和托盘面板改经 windowEventService 订阅,载荷按生成的 WindowSignal / DesktopExitBlocked 声明;信封版本收成 WINDOW_EVENT_VERSION,并加测试读前端文件核对事件名和前端自己发的 v 与后端一致 (a4cfefc8)
  • refactor(domain): AppInstanceWebUi、AppConfigErrorKind、AppConfigError 的 TS 导出挪到 generated/domain,和 app_framework.rs 里其它类型放在一起,删掉根目录下的旧生成文件,前端 re-export 跟着改路径 (97bcacce)
  • refactor(domain): LogSnapshot 挪进 ncd-domain 并导出 TS,ncd-traits 原路径改为 re-export;前端 Bot 日志、Desktop 日志、应用端实例日志三处手写的形状改用生成的类型,后端改字段时前端能跟着报错 (f8b6af0b)
  • fix(server): 从本机 OpenSSH known_hosts 抄指纹只按连接用的 host 和端口找,不再拿档案显示名去对(OpenSSH 记的是 HostName 替换后的主机名),非 22 端口只认 [host]:port、裸主机名只算 22 端口,主机名不分大小写、同行 !host 排除;读 known_hosts 改用 tokio::fs,扫描 ~/.ssh/config(跟着 Include 读文件、列目录)挪到 spawn_blocking (e51e2648)
  • refactor(terminal): 导出终端输出的写盘和 .txt / .log 限制挪进 TerminalManager::export_text,terminal_export_text 只转参数和错误 (fc1c7e7a)
  • fix(terminal): 文件栏打开文本前先看大小,远端 stat -L、本机查父目录列表,超过 2 MB 不再整个读进内存才拒;上传文件夹时里面指向目录的链接(含 junction)不跟进去,免得指回上层转不出来或把别处整棵树再传一遍;列子目录出错直接报出来,不再悄悄少传 (09cad854)
  • refactor(deploy): Docker 部署的 compose 项目目录收成 ncd_domain::remote_paths::docker_bot_project_dir 一处,部署、导入迁移、终端进部署目录不再各自拼 {home}/.napcat-bots;bot 容器可能叫的两个名字由 bot_docker_container_candidates 给,查容器、清旧容器、终端进容器共用;终端远端原生 Bot 没探测过路径时按 desktop_default_install_paths 猜,NapCat 猜的是默认布局里 NapCat 真正所在的目录而不是 QQ 安装根 ~/Napcat (253e65d1)
  • fix(host): Host::which 在 PATH 里找不到时,同一趟探测里接着看 /usr/local/bin、/usr/bin、/bin 等几个常见目录,远端按连接记住找到的路径;SnowLuma 解析远端 bash 不再自己另跑一条 test -x /bin/bash,非交互 SSH 的 PATH 里没有 bash 的机器每条短脚本不用再多两趟 exec。command_exists 仍只看 PATH,按名字跑不起来的不算有 (564c38e0)
  • refactor(component): QQ 依赖、LinuxQQ 解包工具、Docker compose 插件的安装提示和补装命令都改由 LinuxPackageManager 拼,不再手写 apt-get / dnf 字符串:依赖报告里给用户复制的那行按发行版挑管理器、包名逐个转义,不像包名的(有的来自远端 ldd 输出)不放进去;缺 dpkg-deb / rpm2cpio / cpio 或缺 compose 插件时现探一次包管理器,提示给这台机能直接跑的命令;补装 compose 插件先探 apt / dnf / yum 再跑一条先刷索引再装的脚本 (f6da5c7d)
  • refactor(host): 远端解压缺 unzip / tar 时的自动补装改用 LinuxPackageManager,删掉 remote/linux.rs 里私有的 PackageManagerKindLite(apt 装包因此带上 DEBIAN_FRONTEND=noninteractive,包名按 shell 转义);新增 refresh_and_install_script 给要一条 sh -c 先刷索引再装的调用方;删掉没人读的 PkgMgrFamily、PkgLineParse::family 和 LinuxPackageManager::family,进度解析本来就只按行内容认阶段 (b17ea247)
  • refactor(host): 删掉没人实现也没人调的 PackageManager trait、PackageManagerKind / PackageInfo 和 Host::pkg_manager(每台主机都返回 None),各处测试替身里跟着实现的那一行一并去掉;Linux 装包本来就都走 LinuxPackageManager (7ae0d914)
  • refactor(host): POSIX 单引号转义收成 ncd_host::shell_single_quote 一份,BashShell 的 escape 也借它包;删掉应用端、NapCat、SnowLuma、组件、runtime 里各自抄的十几份(含几处内联的 replace),原来就一律加引号的照旧用它,ncd-component 那层转交 BashShell 的包装拿掉、调用处直接用 escape,拼出的命令文本不变;里面带单引号时统一写成 ''' 而不是 '"'"',外面再套一层双引号时也不会把引号提前截断 (66b8be20)
  • docs(context): 找回误删的 lessons.md(CLAUDE.md 一直让规划前按 §0 自查),补一节这两个月提交审查里踩到的坑 (e744fd85)
  • Revert "docs(release): 补回 v3.2.2 的策展发布说明(正文取自已发布的 GitHub Release)" (65a30d0d)
  • docs(release): 补回 v3.2.2 的策展发布说明(正文取自已发布的 GitHub Release) (d015aab1)
  • refactor(apps): 应用端安装、插件装更卸排任务、打开 WebUI 的编排挪进 AppManager(install_instance / submit_store_op / open_webui),命令只转参数和错误;任务标题里的框架名改取清单的 display_name;删掉命令里只为预热 SSH 的 resolve_host_with_autoconnect,AppManager 的主机解析器本来就会现连 (b919fb44)
  • test(apps): 麦麦远端真机冒烟只用 AppManager 的公开接口,挪到 ncd-runtime/tests/maibot_remote_smoke.rs,和 ncd-host 的真机冒烟一样按 --test 单独跑,照旧默认 ignore (d27e5ca6)
  • fix(astrbot): 展开插件 zip 时暂存目录名避开顶层和子项里已有的名字;子项里有挪不了的文件名、或和顶层已有项重名时,动手前就报错,不再挪完别的再把它跟暂存目录一起删掉 (816d2fa8)
  • refactor(apps): 导入快照改用 tokio::fs 读写;实例表写盘挪到阻塞线程,调用方照旧拿着缓存写锁等写完,写盘任务另带一把锁,调用方中途被取消也不会让新旧两版落盘顺序颠倒 (e22c3942)
  • refactor(astrbot): apply_ai_patch 的十个参数收成 AstrBotAiPatch,两处调用经 AstrBotInstanceConfig::ai_patch 取;模块注释写明为什么在上游文档上做投影:逐字段宽松读、写回不丢不认得的键也不打乱顺序 (4e54fb46)
  • test(astrbot): 给 AI 投影写回补特征测试:不认得的键原样留着、顶层键顺序不变、类型化的值写进文档再读回来不走样 (02346e47)
  • fix(apps): 应用端挑口、查口的占用探测收成 ncd_appframework::ports 一份:本机统一 bind 回环,远端一次读 /proc/net/tcp 比对全部候选口,不再逐口起 python(几十次 SSH 往返),机器上没 python 时也不再一律当成空闲 (846cd647)
  • refactor(apps): 桌面端隧道的「先看能不能复用、开完再核一遍」收成 ensure_desktop_tunnel,本机到远端、远端到本机两条共用;正向那条的复用检查也走同一个函数,开完后照旧直接登记 (c0ec4178)
  • refactor(apps): 麦麦运行期调用改由 maibot_session 一次给出接口和会话,接口借自注册表,是不是麦麦只查一遍;四十多个转发不再各自 maibot_api 再查一次 (16fd0155)
  • refactor(apps): WebUI 登录用户名的兜底改由适配器给(AstrBot 给它首启写的 astrbot),通用代码里不再写死 astrbot;别的框架没有约定时给空 (11f90722)
  • refactor(appframework): 删掉没有实现者的 AppRuntime trait、没人用的 is_legacy_bot_py 和 Dashboard 登录响应里不读的 username 字段;注释里的「R12」换成原因本身,Cargo.toml 的依赖说明补上 network (65c5ebcf)
  • refactor(domain): ComponentId 和依赖图的 IPC 类型(DependencyPlan / RuntimeReadiness / RequirementStatus 等)挪进 ncd-domain,生成的 TS 不变;按 semver 比版本号留在 ncd-component,改成 VersionMatch / all_versions_match (41d72d2c)
  • docs(ui): 找回前端分层文档并对齐现状:路径改成现在的树,蓝绿模式标为已退役,写下这一轮定的落点约定(纯逻辑进 core/domain、服务端数据走 react-query、外链和选目录经 hook、模块之间走 shared 或模块入口),列出还没收掉的直连 (9e10e367)
  • refactor(runtime): 本机 SnowLuma 自定义 Node 路径的取值口径收成 local_snowluma_node_path 一处,启动、保存设置和组件探测共用 (ea550897)
  • fix(runtime): 非 Linux 主机缺系统命令时直接说不支持自动安装,不再报「未识别到包管理器」;QQ 依赖安装等 installer 的进度转完再推结果,Finished 总是最后一条 (c7d0fece)
  • refactor(runtime): 依赖图和组件工厂改用启动时建的那份应用端注册表,不再每次调用现建;未注册的组件返回错误,不再 expect / panic (146c754e)
  • refactor(ui): Desktop 协议对话框的载荷类型直接取生成的定义,shared 层不再 import 服务文件 (e25a4d02)
  • refactor(ui): 麦麦试聊挑图、表情包上传、知识库导入选文件改经 hook 调服务;读不出本机文件时弹错误条,不再是没人接的 Promise 报错 (ed048599)
  • refactor(ui): 日志 Tab 开页对账、插件配置文件列表、AstrBot 拉模型列表都挪进 hook;日志接不上时弹错误条,不再悄悄吞掉 (a88db181)
  • fix(runtime): 组件任务跑完就收掉取消转发的 watcher,不再每个任务留一个永远等着的 task;活跃任务表改用 guard 登记,任何提前返回都会摘掉条目 (a9a4ed89)
  • refactor(ui): 对接对话框的生成计划和应用对接挪进 useAppLink,页面里不再手搓 fetch 和取消标记;重新生成的途中不给旧计划 (bae9f600)
  • refactor(runtime): Bot 启动预检挪进 ncd-runtime,和组件页 resolve_runtime_readiness 共用 ComponentExecutor::runtime_readiness;删掉 L4 的 bot_runtime_gate (6b49e029)
  • refactor(ui): 新建、导入实例对话框不再直接调服务和 transport:默认安装目录、导入前检查项目、选本机目录都经 hook,选目录框打不开时弹错误条 (7d09f48d)
  • refactor(runtime): 组件执行器启动时建一份放进 AppState,活跃任务表和远端库存缓存归它持有;命令只转发,不再每次现建执行器、自己拼构建输入 (1f30ef87)
  • refactor(ui): 应用端的条款原文、WebUI 账号框和商店卡片主页链接改走 useOpenExternal,被拒的链接会弹错误条,不再静默没反应 (23d316f7)
  • refactor(ui): 进度行挪进 shared/components,组件页要的新建、导入实例对话框改走 modules/apps 入口,这两处不再伸进别的模块的内部文件 (f584152c)
  • docs(ui): 服务层和事件类型注释里的「R3」「R14」换成原因本身:命令名只在服务文件里出现是为了后端改名只改一处,事件带 v 是为了按版本认形状 (ef8d29e4)
  • refactor(ui): AppConfigError 的 kind 表按生成的联合类型逐个列,后端新加一种 kind 前端没跟上时 typecheck 直接报错 (492cbfc1)
  • refactor(ui): 只在本文件里用的常量和小函数不再导出:商店格子尺寸、详情页外壳 Tab、AstrBot 各小节默认值、安装任务目标名、插件文件名截取 (c3e4ce07)
  • refactor(ui): 删掉没人引用的文件:应用端错误文案的空壳转出口、hooks/desktop 下重复的 useOpenExternal、托盘只剩测试在用的报错小函数、组件页两个早就不挂的 SnowLuma 对话框 (9c85aa86)
  • refactor(snowluma): 远端 bash 路径不再存进程级 static,改由 Host::which 按连接记住;command_exists 的命令名也转义 (8b189d54)
  • refactor(apps): 商店目录缓存从模块级 OnceLock 挪进 AppManager,拉目录用它手里的注册表,不再每次现建一份 (c9536631)
  • refactor(ui): 四个框架的配置表单 hook 合成 useAppConfigForm,各框架只给一份校验和保存文案;issuesByPath 挪出 karinConfig (e106f26a)
  • refactor(appframework): AstrBot Dashboard 的登录态不再放进程级 static,归 AstrBotAdapter 持有,运行期接口和跑着改配置共用一份 (3ccc4739)
  • refactor(ui): 商店页的工具条、槽位 id 和卸载确认合成一份,Karin 插件页和应用端商店页共用 (0ed5c5ff)
  • refactor(apps): AppManager 按职责拆成 manager/ 下的子模块(WebUI、生命周期、对接、配置、商店、隧道、安装目录、AstrBot、麦麦),manager.rs 只留结构体和共用的小工具 (c88a51c9)
  • refactor(ui): 通用商店页改名 AppStoreTab 挪到 detail 根下,hook / 模型跟着叫 useAppStore / appStore (8dfbb926)
  • refactor(ui): 两个插件商店的目录规则和任务处理合成一份,Karin 市场和应用端商店共用 (e526c38f)
  • refactor(ui): 插件目录错误文案去掉没用上的 stripped 和两条一样的兜底返回 (272214bb)
  • fix(ui): 相对时间在 28、29 天和 360 多天不再显示「0 个月前」「0 年前」 (3463b835)
  • chore: 忽略 Python 字节码缓存,移出误提交的 scripts/maibot/pycache (d00cf668)
  • refactor(ui): 「N 分钟前」的相对时间合成一份,Bot 卡和两个插件商店共用 (1a30b6d9)
  • fix(ui): 退出闸门按新的 DesktopExitBlocked 信封声明类型,前端自己发的 desktop-request-close 也带 v (cd3dd3f9)
  • fix(apps): app-instances.json 读不出来时先把原件改名挪开再空表起步,不再靠 .bak 轮转保它(几次保存后就被删) (08f48995)
  • refactor(ui): 应用端的纯逻辑挪进 core/domain/apps,hooks 不再反过来 import modules (a6df3729)
  • fix(settings): app-settings.json 只剩一个写入口,内存和文件在同一把锁里改;读设置页不再顺手写盘,SnowLuma 包类型改在启动时补记,保存设置不会再把它冲掉 (4d25677e)
  • fix(component): uv 默认版本钉住各发行包 sha256 再下载;新文件先攒在 .new 里装齐再换,装到一半失败不丢旧 uv (27539dc0)
  • fix(host): ConPTY 属性表初始化失败时不再对没初始化的表调 DeleteProcThreadAttributeList (9b2378a6)
  • fix(tauri): 托盘退出和主菜单退出共用一套收尾,托盘退出也会停本机应用端实例;几条窗口通知带上 v 信封 (35b2bcc0)
  • fix(host): 装包脚本里每个包名单独转义,QQ 依赖安装先校验包名再提权 (47ee42aa)
  • fix(appframework): AstrBot 插件 zip 展开改用 Host 改名,不再把 zip 里的目录名拼进 sh -c (a1152fe6)
  • feat(ui): 终端文件栏换目录有滑动(进子目录从右、回上级从左)、路径栏可点的面包屑、Windows 此电脑换盘;命令菜单重做:顶上筛选、两行条目、紧凑的添加表单(回车存、Esc 收) (fb45e7d7)
  • feat(host): Host::list_drives 列本机盘符(GetLogicalDrives,不碰盘本身);终端文件栏在盘根再往上是「此电脑」,能换盘 (07d1a757)
  • feat(ui): 终端动效:面板开合带退场、最大化 / 还原整块推上推下(落定才重排行列)、当前标签底色滑动、新标签 / 分屏 / 文件栏 / 搜索条 / sudo 按钮 / 活动点进场,悬浮按钮跟着面板滑,标题栏计数滚动;跟动效开关和减少动态效果走 (2c7caa25)
  • feat(ui): 终端面板改成浮在页面上的卡片,不再挤占页面高度;打开时上浮进场,悬浮按钮按面板顶边抬高;「+」菜单补 key (99b43a78)
  • docs(codemap): 新增「内嵌终端」域 (06f11083)
  • fix(ui): 页面贴底的悬浮按钮和批量操作条跟着终端面板抬高,面板最大化时藏起来 (900b062b)
  • feat(settings): 终端 Tab:字号、行高、配色、光标、关键字高亮、显卡加速、默认 shell、右键行为、选中即复制、多行粘贴确认、回滚行数和快捷键一览,改了立刻生效 (80f70f91)
  • feat(ui): 终端入口:标题栏开关(Ctrl+`),Bot 卡片(Docker 进容器 / 宿主机部署目录)、远端主机卡片、应用端卡片和详情页一键开终端;终端里按 Ctrl+S 不触发页面保存 (7661b818)
  • feat(ui): 底部终端面板:xterm 6 多标签 / 分屏 / 搜索 / 命令成败标记与跳转 / 多行粘贴确认 / sudo 代填 / 文件栏(可拖宽、双击改小文本)/ 服务器状态条 / 拖文件上传 (23451d4f)
  • feat(ui): 终端状态:会话和标签(一个标签可分两块)、面板开关与最大化、偏好和布局、最近命令、文件栏跟着当前目录、状态条轮询、拖文件落点 (b9f9cd2b)
  • feat(ui): 终端服务层:打开 / 接输出(Channel 原始字节)/ 写入 / 改大小 / 确认 / 文件栏 / 状态条走 IPC,浏览器预览里给一个假 shell (5350a50e)
  • feat(ui): 终端的纯逻辑:shell 命令标记(OSC 633 / 133 / 7 / 9)解析、关键字高亮状态机、sudo 提示识别、路径加引号与 cd 命令、状态条数值格式、暖色配色 (010de5d8)
  • fix(runtime): 终端标签名里实例名已带主机(「麦麦 · 本机」这种)就不再接一遍主机名 (959a4695)
  • feat(tauri): 终端命令薄壳:输出走 Channel 原始字节、状态走带 v 的 JSON 通道,文件栏 / 状态条 / sudo 代填 / 导出,右键粘贴读剪贴板;退出时全关,进轻量模式先摘前端 (73b02a2a)
  • feat(runtime): 终端 detach_all:网页要销毁时摘掉前端,输出照常收进回放 (ef50eb93)
  • feat(runtime): 内嵌终端会话层:会话表 / 回放 / 攒批 / 按确认流控 / 按回车重开,本机 shell 探测,bash 与 PowerShell 命令标记,Bot / 实例 / 主机的开法,服务器状态条,文件栏,系统终端打开 (c7912e2b)
  • feat(apps): AppManager::terminal_context 给终端要实例所在主机、目录和框架接上的环境 (e172374d)
  • refactor(domain): 终端事件的「重开」改成通用的会话信息更新,标题、功能、状态一次换齐 (cf732557)
  • feat(apps): 应用端实例终端的环境:uv 系接好 .venv 和 uv,Karin 接好 node、私有 pnpm 和 karin 命令,各带几条常用命令 (0e563040)
  • feat(domain): 内嵌终端的跨边界类型:开到哪、会话状态与事件信封、文件栏、服务器状态条 (334fa265)
  • feat(host): 列目录带上修改时间、权限位和符号链接标记,终端文件栏要用 (950668bc)
  • feat(host): 交互终端契约 Host::open_pty:本机 ConPTY(运行时取函数,老系统不至于起不来),远端在现有 SSH 会话上开 pty 通道 (1fe7a33a)
  • docs(codemap): 麦麦远端的代码落点:正向跨机隧道、Docker Bot 不对接、WebUI 口令缓存、远端预检和代装 Python (3353d091)
  • test(apps): 远端麦麦真机冒烟:连一台 Linux 真装 uv 和麦麦、对接同机、经隧道开 WebUI、按进程组停,默认不跑 (ed517c4d)
  • feat(apps-ui): 对接框里麦麦也能选别的机器上的 Bot,预览写清应用端经隧道连过去 (7f7767ac)
  • feat(apps): 正向对接放开跨机:远端 Bot 连本机麦麦走桌面端 -L,本机 Bot 连远端麦麦走 -R,两台远端应用机常驻 ssh -L (180f24a9)
  • fix(apps): 麦麦行为页的时间按麦麦所在主机的时区折算,远端服务器是 UTC 也不再差几个小时 (f2a2c9de)
  • feat(apps): 远端麦麦装插件由桌面端走镜像下 tar.gz 再写上去,服务器不用连 GitHub、不用 unzip (acabbec7)
  • fix(apps): Docker 部署的协议 Bot 不再给对接应用端:容器里的 127.0.0.1 不是宿主机,对接框置灰并说明 (7ae891af)
  • feat(apps): 远端建实例、改端口、分正向听口时避开服务器上正在监听的口(读 /proc/net/tcp) (9636145b)
  • feat(apps): 麦麦装之前查主机 glibc / 架构 / 剩余空间,缺 Python 3.12 先装好,远端下不动由桌面端下好传上去 (973b2820)
  • fix(component): 远端装 uv 按 uname -m 选包,ARM 服务器不再传上去一个跑不起来的 x86_64 (c89424af)
  • perf(apps): 应用端 WebUI 口和口令按实例记住,麦麦接口共用连接池,远端不再每调一次读两遍配置 (6b0eb703)
  • docs(codemap): 应用端日志每轮另起、上色换行和自启开关的代码落点 (84a1c80a)
  • feat(apps-ui): 实例详情「更多」里加「随桌面端启动」开关 (2a5c0a93)
  • feat(apps-ui): 应用端日志照上游颜色上色、长行换行,重启清空上一轮 (be20da37)
  • feat(apps): 应用端每次启动另起一份日志,上一轮留在 .1,颜色码原样推给前端 (c9acc419)
  • fix(ui): 列表进场途中指针扫过卡片,卡片不再停在半透明或消失 (b3c4cdb9)
  • docs(codemap): MaiBot 数据页(提示词 / 学到的 / 人物 / 表情包 / 知识库 / 行为)和试聊的代码落点 (e093afbd)
  • feat(apps-ui): MaiBot「试聊」页:在桌面端直接和麦麦说话 (112e5441)
  • feat(apps): MaiBot 试聊:用 Cookie 换一次性连接票,清空桌面端这段私聊 (975b00b6)
  • feat(apps-ui): MaiBot「行为」页:情境 → 做法 → 结果,分数和每次反馈 (c0b1b7d2)
  • feat(apps): MaiBot 学到的行为:列表、概况、单条的观察和反馈记录,走 WebUI 接口,只读 (5e6dab20)
  • feat(apps-ui): MaiBot「知识库」页:导入 / 浏览 / 图谱 (953dcea1)
  • feat(apps-ui): 知识库的数据层:服务、mock、hooks、图谱布局 (a78f10e1)
  • feat(apps): MaiBot 长期记忆:状态、导入(粘贴 / 本机文件)与任务、查记忆、按来源删、删除恢复、记忆图谱,走 WebUI 接口 (c8807469)
  • feat(apps-ui): MaiBot「表情包」「人物」页 (78981ee0)
  • refactor(apps-ui): 麦麦资源页的操作 mutation 挪到 maibotResourceAction,提示条能接一句补充 (bb8e6f27)
  • fix(ui): 标签输入框在输入法选字时按回车不再提前加上 (4fe4f570)
  • feat(apps): MaiBot 人物、表情包:列表、概况、改删、收下丢弃、缩略图、本机图片上传,走 WebUI 接口 (cdecefd4)
  • feat(apps-ui): MaiBot「表达方式」「黑话」页,侧栏加「资源」组 (ad16e4ea)
  • feat(apps-ui): 资源页骨架:工具条、搜索、带条数的分段筛选、翻页、多选浮条 (4f32994c)
  • fix(ui): 弹窗打开时焦点落进弹窗里 (690f061c)
  • feat(apps): MaiBot 学到的表达方式、黑话:列表、概况、增改删和批量,走 WebUI 接口 (328b923d)
  • feat(apps-ui): MaiBot「提示词」页:模板列表 + 编辑、参数校验、对比默认、版本 (a87b588d)
  • feat(ui): 代码编辑器加提示词模式(参数画成小标签)、正文字体、光标处插入 (49d23f42)
  • feat(apps): MaiBot 提示词模板:跑着走 WebUI 接口,停着直接改盘上文件 (9a7c064e)
  • feat(apps-ui): 应用端配置页 Ctrl+S 保存 (76ebe184)
  • refactor(apps-ui): 实体行 / 空态 / 确认删除 / 表单对话框挪到 detail/entityParts,AstrBot 转导出 (5a51f875)
  • feat(apps-ui): MaiBot「高级选项」从页顶开关挪到各小节标题右边,各节自己展开 (e63d59ce)
  • test(apps): MaiBot 插件商店真下载冒烟(默认 ignore,手动 --ignored 跑) (bb0291a9)
  • docs(codemap): MaiBot 深度配置、运行期接口、插件商店的代码落点 (ec7e8859)
  • fix(apps): MaiBot 子进程把 HOST / PORT / WEBUI_HOST / WEBUI_PORT 置空 (9cecaf41)
  • feat(apps): MaiBot 在桌面端把模型配好就标记 WebUI 首次配置完成 (48d607a5)
  • feat(apps-ui): MaiBot 详情加「插件」页,复用应用端商店;桌面端管的插件只读 (c627b506)
  • feat(apps): MaiBot 插件商店:官方 plugin-repo 市场,装 / 更 / 卸 / 启停,NapCat 适配器锁定 (0c0945cf)
  • feat(apps-ui): MaiBot 配置页挂上 WebUI 数据页直达:学到的表达 / 黑话 / 行为、记忆图谱、提示词模板 (bd3686d3)
  • feat(apps-ui): MaiBot 运行中:概览看状态和用量、试聊 / 重启,模型页测连接拉模型,MCP 看连接 (1aab464e)
  • feat(apps): MaiBot 运行期接口:状态、用量、会话、提供商与 MCP 探测,走它自己的 WebUI (87b6c7e3)
  • feat(apps-ui): MaiBot 模型页加提供商从预设里挑,接口地址和类型直接填好 (9afa7404)
  • feat(apps-ui): MaiBot 配置页全覆盖:模型、人格、记忆、表达学习、回复、会话规则、MCP、高级 (11006d56)
  • feat(apps-ui): MaiBot 界面 schema 挪进 core/domain,前端校验照后端全套规则 (605669d2)
  • feat(ui): 共享多行文本框 TextAreaField,随内容长高到上限 (49f0c3fc)
  • feat(apps): MaiBot 运行中改配置走它自己的 WebUI 接口,不和它自己的写入打架 (dc0bbf58)
  • feat(apps): MaiBot 实例配置接上两份主配置全字段,停止时差量写文件 (d120c940)
  • feat(apps): MaiBot 两份配置全字段强类型,从上游 pydantic 类生成 (f5b1595c)
  • feat(apps): 类型化配置差量写回 TOML,只动改了的键,保注释和不认识的键 (78472dc4)
  • fix(apps-ui): 实例事件挪到根上常驻,装完不再卡在安装中;安装中只留一个进度 (74650fe3)
  • fix(apps): 安装状态只认任务结果,不再被半成品目录提前翻成已安装 (a1a3ba69)
  • test(apps): 加 MaiBot 本机真装冒烟测试(默认 ignore) (0004d3b1)
  • test(apps): MaiBot 编排测试各用各的实例 id,并行时正向听口探测不再互相挤 (4a81b478)
  • test(runtime): 组件依赖图金样补上 maibot (9886892a)
  • docs(context): codemap 应用端一节补正向对接、上游条款和 MaiBot 落点 (17e110d8)
  • fix(apps-ui): MaiBot 概览名单条件写清还差什么,连接页没对接时不显示上游默认地址 (932cec50)
  • feat(apps-ui): MaiBot 详情页、新建时同意上游条款、启动前条款更新确认 (cada6190)
  • fix(apps): MaiBot 配置校验路径改用斜杠,和其他框架、前端跳页规则一致 (bfbc4fd8)
  • feat(apps): 接入 MaiBot 应用端(源码安装 + 正向对接 + 窄配置 + 上游条款核对) (44686d34)
  • feat(host): Host 加 rename,本机走 tokio::fs::rename、远端 mv -f (47b5386e)
  • feat(apps-ui): 对接对话框认得正向,跨机的配对直接置灰 (a755c4df)
  • feat(apps): 对接支持正向 WS,协议 Bot 开服务端、应用端连过来 (589c83b8)
  • fix(apps): 停应用实例连子进程一起收,不再留孤儿 (c93f7ba6)
  • fix(ui): Select 下拉打开时面板反复从透明重播 (33a5758f)
  • fix(ui): 页面退场动画真正上合成线程,visibility 挪出关键帧 (80717138)
  • 另有 16 条,见完整变更

💬 遇到问题

  • 先看使用文档,里面有常见问题
  • 到 Issues 反馈,附上版本号和日志会快很多;也可以来 QQ 群 问
  • watch-v 开头的发布是远端 Linux 监控组件 ncd-watch,不是桌面安装包

完整变更:v3.2.2...v3.3.0

v3.2.2

查看更新收起

热修版:新版 AstrBot 能登上 WebUI 了,NapCat 反检测开关终于真正生效;打开桌面端时,已装好的应用端实例会跟着启动。

热修版:新版 AstrBot 能登上 WebUI 了,NapCat 反检测开关终于真正生效;打开桌面端时,已装好的应用端实例会跟着启动。

✨ 新增

  • 应用端 — 打开桌面端时,已安装的 Karin / NoneBot2 / AstrBot 实例会自动启动,不用再一个个点(#136)

🐛 修复

  • AstrBot — 4.28 及以上登不上 WebUI。新版把密码存成了 PBKDF2 哈希,桌面端之前把这串哈希当密码提交。现在能认出哈希,桌面端不知道明文时会直接说明,并提示去浏览器手动登录,或停掉实例后重置密码(#136)
  • NapCat — 反检测开关在桌面端打开后,WebUI「系统配置」里还是关着,启动时也没生效。NapCat 启动期和 WebUI 读的是共用的 napcat.json,桌面端之前只写了按 QQ 号分的那份;现在两份一起写,状态一致(#135)

📌 说明

  • 应用端实例随桌面端启动默认开着,之前装好的实例升级后也会跟着启动
提交与发布信息

📦 下载

⬇️ Windows 安装包(x64 · MSI)

适用于 Windows 10 / Server 2016 及以上。已装旧版的直接覆盖安装,Bot、远端主机和配置都会保留;也可以在应用里「检查更新」一键升级。

文件名固定的同款安装包:NapCatQQ-Desktop-x64.msi(给脚本用) · 校验和:SHA256SUMS


  • fix: GitHub #136 - AstrBot 登录修复 + 开机自启实例 (bdd03f55)
  • fix: shared napcat.json for WebUI system config and startup bypass (#135) (8bf9417e)

💬 遇到问题

  • 先看使用文档,里面有常见问题
  • 到 Issues 反馈,附上版本号和日志会快很多;也可以来 QQ 群 问
  • watch-v 开头的发布是远端 Linux 监控组件 ncd-watch,不是桌面安装包

完整变更:v3.2.1...v3.2.2

v3.2.1

查看更新收起

NapCatQQ Desktop 3.2.1

NapCatQQ Desktop 3.2.1

NapCatQQ Desktop 3.2.1

应用端可以当实例来管:Karin、NoneBot2、AstrBot 能在桌面里创建、启停、看日志、对接 Bot。已经在跑的项目可以导入接管;Bot 和应用不在同一台机器也能连。3.2.0 没打出安装包,本版是相对 3.1.14 的首次 3.2 公开发布。

更新内容

新增

  • 应用端 — 侧栏多了一栏:列表、详情、启停、日志。Karin / NoneBot2 / AstrBot 各自带运行依赖(Node.js、uv 等),和协议 Bot 用 OneBot 反向 WebSocket 对接
  • Karin — 创建时可自选安装目录,也可一并装渲染器;详情里有官方插件市场,插件配置能按表单填,也能看源码
  • NoneBot2 — 官方适配器店和插件店,另有连接页;商店里装的适配器按项目配置注册
  • AstrBot — 可创建实例、管 WebUI 账号;详情里配模型提供商、对话默认值、人格、知识库、会话规则和子代理。实例在跑且能登录 Dashboard 时即时写入,停着只改配置
  • 提供商预设 — OpenAI、DeepSeek、智谱 GLM、Gemini、Ollama 等按上游模板添加,再填密钥
  • 跨机对接 — 同一台、本机 Bot 连远端应用、远端 Bot 连本机应用、两台远端互连都开了。跨机走 SSH 隧道(本机侧由桌面拨号,远端对远端在应用机上常驻)
  • 导入已有项目 — 选目录即可识别 Karin / NoneBot2 / AstrBot,接管启停和日志;目录里已经对上某台 Bot 时会认领这条对接。导入的目录不会被脚手架改写,删实例默认不拆项目

改进

  • NoneBot2 商店切 Tab 不再整表重拉
  • 已经对接过的实例,改端口或 token 会更新这条对接,不会再插一条
  • AstrBot 控制面改成紧凑列表,点进去再编辑;各配置页共用顶部保存条,空态能跳到对应页
  • 运行失败改成短提示,并指去看日志
  • 配置原文用 CodeMirror 高亮,长文件在框里滚,不再把整页撑开
  • 概览问候和吉祥物台词更口语
  • 设置、机器人、应用端、组件等页收紧了一轮常驻说明

修复

  • 启动 Bot 时配置冲突一多,底部「应用并启动」会被裁掉,或被右下角加号挡住
  • 配置页保存遇到冲突时,按钮不再写成「启动」
  • 应用详情页开着时点侧栏可能没反应
  • 展开 / 收起动画偶尔卡在半道

说明

  • 3.2.0 发版构建没过,没有上架安装包。上面这些是相对 3.1.14 的 3.2 能力,不是只修了构建。若要看完整提交,请对比 v3.1.14...v3.2.1
  • 人格 / 知识库 / 会话规则要 AstrBot 在跑、Dashboard 能登录才会即时落库;没启动时先改配置、保存后再开
  • 关掉桌面会停本机应用实例;远端应用实例不跟着停
  • 既有 Bot 与覆盖升级路径不变

安装

  1. 下载 NapCatQQ-Desktop-3.2.1-x64.msi(或同内容别名 NapCatQQ-Desktop-x64.msi)
  2. 双击安装并启动
  3. 按提示完成协议 / 引导(如有)

系统要求: Windows 10 / Server 2016+ · x64
名字带 watch-v 的是远端监控小工具,不是 桌面安装包。

升级说明

  • 与旧版 同一 UpgradeCode,可直接覆盖安装
  • 生产数据根:%ProgramData%\NapCatQQ Desktop(配置与程序分离)
  • 建议升级前导出一次配置备份;装完后确认 Bot 列表与远端档案仍在

资源

文件 说明
NapCatQQ-Desktop-3.2.1-x64.msi 推荐下载 · 版本化 MSI
NapCatQQ-Desktop-x64.msi 同内容别名(脚本可用固定文件名)
SHA256SUMS 校验和

说明

  • 应用内「检查更新」从本仓库 GitHub Release 下载 MSI 安装
  • 远端监控组件 ncd-watch 使用独立 tag watch-v*,不包含在本 MSI 内

支持


完整提交记录: https://github.com/NapNeko/NapCatQQ-Desktop/compare/v3.2.0...v3.2.1

Tag v3.2.1 · docs/releases

v3.1.14

查看更新收起

NapCatQQ Desktop 3.1.14

NapCatQQ Desktop 3.1.14

NapCatQQ Desktop 3.1.14

定时自动重启终于真的会重启,还能定到具体时刻;首屏和吉祥物大换新;Bot 启动前先把依赖查清楚,并修掉几处误报与闪窗。

更新内容

新增

  • 定时自动重启真正生效 — 之前这个开关只是存进配置、显示在卡片上,并没有东西去执行。现在 Bot 运行中会按计划自动重启,周期从每次进入运行状态或上次重启起算;改了计划不会立刻触发一次
  • 定到具体时刻 — 除了「每隔 N 分钟 / 小时 / 天」,新增「每天 / 每周 / 每月 + 时刻」,也可以直接写 cron 表达式(本地时区)。编辑时会即时校验并显示接下来几次触发时间;表达式写错保存时直接拦住
  • 随时段变化的首屏 — 概览 Hello 卡变成一片天幕:早晨、正午、傍晚、深夜各有配色,白天飘云、夜里有星星和流星,问候语逐字出现,页面角落柔光也跟着时段变色
  • 会动的吉祥物 — 三双眼睛各自眨、眼珠跟着鼠标看;戳一下会蹦、歪头、点头或把猫举起来,配一句话和一个表情;实例出问题或上线时她会主动提醒;久不操作会打瞌睡,一有动静就醒
  • Bot 启动预检 — 启动前按依赖关系检查框架和运行依赖(QQ、Node.js 等),缺什么直接说明是缺失、不可用还是未能确认,不再进入「启动中 → 崩溃」;探测本身失败不会拦启动
  • 安装排队提示 — 组件安装排队时会说明在等什么(等待前置组件、等待包管理器空闲)

改进

  • 主题切换过场重做:从点击处先蓄力,再以光波揭开新主题
  • 启动闪屏重做:主窗口等首帧真正画好再显示,不再先闪一下边框阴影
  • 概览通知切页回来仍在,不会被日志刷掉
  • Bot 卡片上的重启计划改成一句话(如「每天 04:00 · 离线时」)
  • 组件列表对「已安装但不可用」的 Node.js 给出明确徽章(版本不符 / 无法运行),不再当成未安装
  • 所有新动效都遵循动效档位设置与系统「减少动态效果」偏好

修复

  • 指标页 OneBot 出入站消息计数恒为 0:探针改挂 Node 核心网络模块,NapCat 与 SnowLuma 的正向、反向连接都能统计
  • 用户协议 / 隐私政策同意不再因安装版与本地构建之间的换行差异反复弹出,只有协议版本升级才需要重新同意
  • Windows 下 Node.js 探测路径错误导致误判未安装
  • 运行设置页探测 Node.js 时闪现命令行窗口
  • SnowLuma 未手改的配置被误报为「配置漂移」;冲突对话框差异项较多时无法滚动

说明

  • 升级前请看一眼各 Bot 的「定时自动重启」开关:以前打开了也不会生效,这版开始会真的按计划重启。不需要的请关掉
  • 旧配置不用改:没有新字段的 autoRestartSchedule 仍按「每隔 N 单位」读取
  • 组件安装与依赖解析的编排在后端重构(统一依赖图与执行器),不影响既有配置与覆盖升级

安装

  1. 下载 NapCatQQ-Desktop-3.1.14-x64.msi(或同内容别名 NapCatQQ-Desktop-x64.msi)
  2. 双击安装并启动
  3. 按提示完成协议 / 引导(如有)

系统要求: Windows 10 / Server 2016+ · x64
名字带 watch-v 的是远端监控小工具,不是 桌面安装包。

升级说明

  • 与旧版 同一 UpgradeCode,可直接覆盖安装
  • 生产数据根:%ProgramData%\NapCatQQ Desktop(配置与程序分离)
  • 建议升级前导出一次配置备份;装完后确认 Bot 列表与远端档案仍在

资源

文件 说明
NapCatQQ-Desktop-3.1.14-x64.msi 推荐下载 · 版本化 MSI
NapCatQQ-Desktop-x64.msi 同内容别名(脚本可用固定文件名)
SHA256SUMS 校验和

说明

  • 应用内「检查更新」从本仓库 GitHub Release 下载 MSI 安装
  • 远端监控组件 ncd-watch 使用独立 tag watch-v*,不包含在本 MSI 内

支持


完整提交记录: https://github.com/NapNeko/NapCatQQ-Desktop/compare/v3.1.13...v3.1.14

Tag v3.1.14 · docs/releases

v3.1.13

查看更新收起

NapCatQQ Desktop 3.1.13

NapCatQQ Desktop 3.1.13

NapCatQQ Desktop 3.1.13

本次更新聚焦交互细节与设置页一致性。

更新内容

交互体验

  • 右键菜单增加平滑的出现与收起动画,并随动效档位和速度设置调整
  • 动效会遵循系统“减少动态效果”偏好,也支持在应用中关闭

设置

  • 统一关于页各项操作按钮的宽度和文案,列表对齐更整洁

安装

  1. 下载 NapCatQQ-Desktop-3.1.13-x64.msi(或同内容别名 NapCatQQ-Desktop-x64.msi)
  2. 双击安装并启动
  3. 按提示完成协议 / 引导(如有)

系统要求: Windows 10 / Server 2016+ · x64
名字带 watch-v 的是远端监控小工具,不是 桌面安装包。

升级说明

  • 与旧版 同一 UpgradeCode,可直接覆盖安装
  • 生产数据根:%ProgramData%\NapCatQQ Desktop(配置与程序分离)
  • 建议升级前导出一次配置备份;装完后确认 Bot 列表与远端档案仍在

资源

文件 说明
NapCatQQ-Desktop-3.1.13-x64.msi 推荐下载 · 版本化 MSI
NapCatQQ-Desktop-x64.msi 同内容别名(脚本可用固定文件名)
SHA256SUMS 校验和

说明

  • 应用内「检查更新」从本仓库 GitHub Release 下载 MSI 安装
  • 远端监控组件 ncd-watch 使用独立 tag watch-v*,不包含在本 MSI 内

支持


完整提交记录: https://github.com/NapNeko/NapCatQQ-Desktop/compare/v3.1.12...v3.1.13

Tag v3.1.13 · docs/releases

v3.1.12

查看更新收起

NapCatQQ Desktop 3.1.12

NapCatQQ Desktop 3.1.12

NapCatQQ Desktop 3.1.12

Windows 桌面控制台更新(NapCat / SnowLuma 管理)。

更新内容

新增

  • 增加远端 SnowLuma 重建 WebUI 与 noVNC 连接入口
  • 暴露 retry_snowluma_ui 命令以支持手动重建远端 UI 隧道
  • 增加远端 SnowLuma UI 隧道重建方法并在路由获取时刷新 Host 会话
  • 增加自绘托盘面板、拖拽排序与卡片定高呼吸感排版
  • 实现自绘托盘面板与轻量模式彻底释放进程
  • 快照列表查询默认按 bot_id 稳定排序

修复

  • 托盘面板支持直接展示 Bot 启停失败错误提示
  • 托盘面板对齐点击所在显示器工作区并添加越界保护

安装

  1. 下载 NapCatQQ-Desktop-3.1.12-x64.msi(或同内容别名 NapCatQQ-Desktop-x64.msi)
  2. 双击安装并启动
  3. 按提示完成协议 / 引导(如有)

系统要求: Windows 10 / Server 2016+ · x64
名字带 watch-v 的是远端监控小工具,不是 桌面安装包。

升级说明

  • 与旧版 同一 UpgradeCode,可直接覆盖安装
  • 生产数据根:%ProgramData%\NapCatQQ Desktop(配置与程序分离)
  • 建议升级前导出一次配置备份;装完后确认 Bot 列表与远端档案仍在

资源

文件 说明
NapCatQQ-Desktop-3.1.12-x64.msi 推荐下载 · 版本化 MSI
NapCatQQ-Desktop-x64.msi 同内容别名(脚本可用固定文件名)
SHA256SUMS 校验和

说明

  • 应用内「检查更新」从本仓库 GitHub Release 下载 MSI 安装
  • 远端监控组件 ncd-watch 使用独立 tag watch-v*,不包含在本 MSI 内

支持


完整提交记录: https://github.com/NapNeko/NapCatQQ-Desktop/compare/v3.1.11...v3.1.12

Tag v3.1.12 · docs/releases

v3.1.11

查看更新收起

NapCatQQ Desktop 3.1.11

NapCatQQ Desktop 3.1.11

NapCatQQ Desktop 3.1.11

Windows 桌面控制台更新(NapCat / SnowLuma 管理)。

更新内容

新增

  • 升级启动动效、溶图过渡与主界面律动展开
  • 统一任务与软件日志右键多行复制与选区持久化
  • 优化标题栏按键交互并引入全局 Title Tooltip 拦截器
  • 接入全局自定义右键上下文菜单与多场景交互
  • 持久化 SnowLuma 包类型偏好
  • 重塑首页 7:5 纯净布局与性能图表科技感流式渲染
  • 重构配置漂移对话框 Diff 与选用体验
  • 运行设置增加 SnowLuma Node.js 环境选择
  • 本机 SnowLuma 安装走 Full/Lite 与 Node 环境选择
  • 映射 Node 环境探测类型与 snowlumaNodePath 设置
  • 接线 Node 探测命令与 SnowLuma daemon 路径覆盖
  • daemon 按覆盖路径解析 Node 入口
  • SnowLuma 启动计划按优先级解析 Node
  • Windows SnowLuma Lite 编排独立 Node 依赖
  • Windows SnowLuma 支持 Full/Lite 发行物
  • 支持本机 Windows Node.js 安装与环境探测
  • 新增 Node 环境探测模型与 SnowLuma Node 路径配置
  • 增强桌面同意对话框,添加滚动进度指示和文档阅读状态

修复

  • 精简 SnowLuma 与 Node.js 描述并区分已安装状态
  • 修复侧边栏展开态收起按钮位置溢出问题
  • 修复概览页组件卡片未安装状态与可更新徽标门禁
  • 回填旧版 SnowLuma 包类型标记
  • 统一 SnowLuma Lite 本机门禁
  • 明确 Lite 外部 Node 缺失提示
  • 保留 Linux 包类型并兼容旧本机安装
  • 持久化 SnowLuma 包类型并分离 Node 运行时
  • 本机 SnowLuma daemon 未就绪时跳过协议加载

安装

  1. 下载 NapCatQQ-Desktop-3.1.11-x64.msi(或同内容别名 NapCatQQ-Desktop-x64.msi)
  2. 双击安装并启动
  3. 按提示完成协议 / 引导(如有)

系统要求: Windows 10 / Server 2016+ · x64
名字带 watch-v 的是远端监控小工具,不是 桌面安装包。

升级说明

  • 与旧版 同一 UpgradeCode,可直接覆盖安装
  • 生产数据根:%ProgramData%\NapCatQQ Desktop(配置与程序分离)
  • 建议升级前导出一次配置备份;装完后确认 Bot 列表与远端档案仍在

资源

文件 说明
NapCatQQ-Desktop-3.1.11-x64.msi 推荐下载 · 版本化 MSI
NapCatQQ-Desktop-x64.msi 同内容别名(脚本可用固定文件名)
SHA256SUMS 校验和

说明

  • 应用内「检查更新」从本仓库 GitHub Release 下载 MSI 安装
  • 远端监控组件 ncd-watch 使用独立 tag watch-v*,不包含在本 MSI 内

支持


完整提交记录: https://github.com/NapNeko/NapCatQQ-Desktop/compare/v3.1.10...v3.1.11

Tag v3.1.11 · docs/releases

v3.1.10

查看更新收起

NapCatQQ Desktop v3.1.10 发布,重点改进远端 Linux 主机的 Bot 发现与导入:自动探测远端已安装的 NapCat / SnowLuma、一键导入运行态 Bot 并迁移网络配置,同时支持从本机 SSH 配置勾选导入远端主机;并修掉一批远端 SnowLuma 连接稳定性问题。

NapCatQQ Desktop 3.1.10

NapCatQQ Desktop v3.1.10 发布,重点改进远端 Linux 主机的 Bot 发现与导入:自动探测远端已安装的 NapCat / SnowLuma、一键导入运行态 Bot 并迁移网络配置,同时支持从本机 SSH 配置勾选导入远端主机;并修掉一批远端 SnowLuma 连接稳定性问题。

更新内容

新增

  • 远端主机页支持从本机 SSH 配置(known_hosts / config)勾选导入:自动发现已连接过的远端主机并写入指纹,省去手动填地址。
  • 自动探测远端 Linux 已安装的 NapCat / SnowLuma 并展示安装库存:在远端页能看到主机上装了哪些 Bot、装在哪,不用再凭记忆填路径。
  • 支持从远端库存一键导入运行态 Bot:连同 onebot 网络配置一起迁移,导入后在连接页直接可用,不用重新配地址与端口。
  • SnowLuma 全局 WebUI 支持密码接管:配置页可填 WebUI 接管密码,远端启动时自动用该密码登录并接管,不用每次手动登录。
  • 主题切换改用 View Transitions 圆形扩散揭示动画。

改进

  • Bot 列表卡上的「运行位置」改显示主机名与档案名,不再露出内部 id。
  • SnowLuma 卡片探测失败时给出更明确的中文文案,并移除了无意义的 UIN 副标题。

修复

  • 修了远端 SnowLuma / NapCat 配置热推送在 SSH 断开后死隧道刷屏的问题;现在重连后会拆掉旧 WebUI 隧道再建新的。
  • 停止远端 SnowLuma Bot 时先停 poller 再换 SSH Host,避免残留进程占端口。
  • 冷启动复用远端 QQ pidfile 前会核对账号是否对得上,防止串号复用。
  • SnowLuma WebUI 登录改为单飞:密码错误或触发 429 后停止重试,不再无脑刷屏。
  • 启动失败只弹一条提示,不再重复弹窗;门禁改为读库存包形态,缺包时提示更清楚。
  • 外来安装的 SnowLuma secret 路径不在 workspace 下时回退探测,不再误判为缺失。

安装

  1. 下载 NapCatQQ-Desktop-3.1.10-x64.msi(或同内容别名 NapCatQQ-Desktop-x64.msi)
  2. 双击安装并启动
  3. 按提示完成协议 / 引导(如有)

系统要求: Windows 10 / Server 2016+ · x64
名字带 watch-v 的是远端监控小工具,不是 桌面安装包。

升级说明

  • 与旧版 同一 UpgradeCode,可直接覆盖安装
  • 生产数据根:%ProgramData%\NapCatQQ Desktop(配置与程序分离)
  • 建议升级前导出一次配置备份;装完后确认 Bot 列表与远端档案仍在

资源

文件 说明
NapCatQQ-Desktop-3.1.10-x64.msi 推荐下载 · 版本化 MSI
NapCatQQ-Desktop-x64.msi 同内容别名(脚本可用固定文件名)
SHA256SUMS 校验和

说明

  • 应用内「检查更新」从本仓库 GitHub Release 下载 MSI 安装
  • 远端监控组件 ncd-watch 使用独立 tag watch-v*,不包含在本 MSI 内

支持


完整提交记录: https://github.com/NapNeko/NapCatQQ-Desktop/compare/v3.1.9...v3.1.10

Tag v3.1.10 · docs/releases

v3.1.9

查看更新收起

NapCatQQ Desktop v3.1.9 发布,重做 Windows 本机 QQ 的安装与卸载链路:安装包本地缓存复用、支持普通权限下通过 UAC 提权安装,新增直接卸载 QQ 的能力;同时修复停止 SnowLuma Bot 后 WebUI 进程残留的问题。

NapCatQQ Desktop 3.1.9

NapCatQQ Desktop v3.1.9 发布,重做 Windows 本机 QQ 的安装与卸载链路:安装包本地缓存复用、支持普通权限下通过 UAC 提权安装,新增直接卸载 QQ 的能力;同时修复停止 SnowLuma Bot 后 WebUI 进程残留的问题。

更新内容

改进

  • QQ 安装包不再每次重新下载:安装包保存到数据目录的缓存文件夹(固定文件名),重复安装或上次失败后重试时直接复用已有安装包;只有安装成功才会清理。
  • 普通权限运行 Desktop 时安装 QQ 会弹出 UAC 提权确认;若提权被取消或失败,会明确提示「以管理员身份运行后重试」,且已下载的安装包保留,重试无需重新下载。
  • 安装包下载改用切片下载,大文件场景速度更稳。

新增

  • Windows 上可以直接在本程序内卸载 QQ:自动定位官方卸载器并静默完成卸载,不再要求手动去系统「应用和功能」操作;未安装 QQ 时执行卸载会直接视为已完成。

修复

  • 停止本机 SnowLuma Bot 后,WebUI 对应的 node 进程现在会真正退出,不再残留占用端口;此前再次启动会因端口被占而探活失败(需先手动结束 node)。
  • Windows 主机上探测 Docker 不再触发多余的 UAC 提权弹窗(此前误走了 Linux 的 sudo 兜底逻辑)。

安装

  1. 下载 NapCatQQ-Desktop-3.1.9-x64.msi(或同内容别名 NapCatQQ-Desktop-x64.msi)
  2. 双击安装并启动
  3. 按提示完成协议 / 引导(如有)

系统要求: Windows 10 / Server 2016+ · x64
名字带 watch-v 的是远端监控小工具,不是 桌面安装包。

升级说明

  • 与旧版 同一 UpgradeCode,可直接覆盖安装
  • 生产数据根:%ProgramData%\NapCatQQ Desktop(配置与程序分离)
  • 建议升级前导出一次配置备份;装完后确认 Bot 列表与远端档案仍在

资源

文件 说明
NapCatQQ-Desktop-3.1.9-x64.msi 推荐下载 · 版本化 MSI
NapCatQQ-Desktop-x64.msi 同内容别名(脚本可用固定文件名)
SHA256SUMS 校验和

说明

  • 应用内「检查更新」从本仓库 GitHub Release 下载 MSI 安装
  • 远端监控组件 ncd-watch 使用独立 tag watch-v*,不包含在本 MSI 内

支持


完整提交记录: https://github.com/NapNeko/NapCatQQ-Desktop/compare/v3.1.8...v3.1.9

Tag v3.1.9 · docs/releases

v3.1.8

查看更新收起

NapCatQQ Desktop v3.1.8 发布,修复 Webhook 通知测试需要先保存两次才能生效的体验问题。

NapCatQQ Desktop 3.1.8

NapCatQQ Desktop v3.1.8 发布,修复 Webhook 通知测试需要先保存两次才能生效的体验问题。

更新内容

修复

  • 通知页编辑 Webhook 通道时,点「发送测试」即可用当前正在编辑的配置直接测试,无需先「完成」再「保存设置」。新建通道也能直接测试,不必再走「添加 → 关闭 → 重新编辑」绕一圈。
  • 去掉了测试成功提示里「若刚改过配置,请先保存设置」的误导文案;现在报错就是真的配置有问题。

改进

  • 「发送测试」按钮从密钥字段下方移到编辑弹窗底部,放在取消与添加/完成之间,更容易发现。

安装

  1. 下载 NapCatQQ-Desktop-3.1.8-x64.msi(或同内容别名 NapCatQQ-Desktop-x64.msi)
  2. 双击安装并启动
  3. 按提示完成协议 / 引导(如有)

系统要求: Windows 10 / Server 2016+ · x64
名字带 watch-v 的是远端监控小工具,不是 桌面安装包。

升级说明

  • 与旧版 同一 UpgradeCode,可直接覆盖安装
  • 生产数据根:%ProgramData%\NapCatQQ Desktop(配置与程序分离)
  • 建议升级前导出一次配置备份;装完后确认 Bot 列表与远端档案仍在

资源

文件 说明
NapCatQQ-Desktop-3.1.8-x64.msi 推荐下载 · 版本化 MSI
NapCatQQ-Desktop-x64.msi 同内容别名(脚本可用固定文件名)
SHA256SUMS 校验和

说明

  • 应用内「检查更新」从本仓库 GitHub Release 下载 MSI 安装
  • 远端监控组件 ncd-watch 使用独立 tag watch-v*,不包含在本 MSI 内

支持


完整提交记录: https://github.com/NapNeko/NapCatQQ-Desktop/compare/v3.1.7...v3.1.8

Tag v3.1.8 · docs/releases

v3.1.7

查看更新收起

NapCatQQ Desktop v3.1.7 发布,集中修复 NapCat 与 SnowLuma 登录状态卡片更新滞后、旧状态残留和误报掉线的问题。

NapCatQQ Desktop 3.1.7

NapCatQQ Desktop v3.1.7 发布,集中修复 NapCat 与 SnowLuma 登录状态卡片更新滞后、旧状态残留和误报掉线的问题。

更新内容

修复

  • WebUI、SSH 隧道或网络探测暂时失败时,登录状态会回到“探测登录”,不再直接误报 QQ 掉线,也不会因此触发离线通知或自动重启。
  • NapCat 在线转离线增加连续样本确认,并正确识别“会话仍存在但暂时离线”的上游状态,减少瞬时抖动造成的误判。
  • SnowLuma 对齐最新上游 Hook 状态语义:扫码前可及时显示“等待扫码”,注入异常不再当作掉线,停止状态观察也不会伪造离线事件。
  • SnowLuma daemon 状态按本机和各远端服务器隔离,单台远端主机异常不再污染其它 Bot 的卡片、WebUI 按钮和告警。
  • 刷新页面或重新打开窗口时以后端快照为准,及时清除已停止、已删除或探测失效 Bot 遗留的绿色登录状态。

说明

  • “探测登录”表示 Desktop 暂时无法确认 QQ 登录状态,并不代表已经掉线;探测恢复后卡片会自动更新为可信状态。

安装

  1. 下载 NapCatQQ-Desktop-3.1.7-x64.msi(或同内容别名 NapCatQQ-Desktop-x64.msi)
  2. 双击安装并启动
  3. 按提示完成协议 / 引导(如有)

系统要求: Windows 10 / Server 2016+ · x64
名字带 watch-v 的是远端监控小工具,不是 桌面安装包。

升级说明

  • 与旧版 同一 UpgradeCode,可直接覆盖安装
  • 生产数据根:%ProgramData%\NapCatQQ Desktop(配置与程序分离)
  • 建议升级前导出一次配置备份;装完后确认 Bot 列表与远端档案仍在

资源

文件 说明
NapCatQQ-Desktop-3.1.7-x64.msi 推荐下载 · 版本化 MSI
NapCatQQ-Desktop-x64.msi 同内容别名(脚本可用固定文件名)
SHA256SUMS 校验和

说明

  • 应用内「检查更新」从本仓库 GitHub Release 下载 MSI 安装
  • 远端监控组件 ncd-watch 使用独立 tag watch-v*,不包含在本 MSI 内

支持


完整提交记录: https://github.com/NapNeko/NapCatQQ-Desktop/compare/v3.1.6...v3.1.7

Tag v3.1.7 · docs/releases

v3.1.6

查看更新收起

NapCatQQ Desktop v3.1.6 发布,改进应用内更新体验:安装可见进度,装完自动重新打开。

NapCatQQ Desktop 3.1.6

NapCatQQ Desktop v3.1.6 发布,改进应用内更新体验:安装可见进度,装完自动重新打开。

更新内容

修复

  • 修复应用内更新 Desktop 时几乎无安装界面、装完也不会自动重启的问题(#126)。
  • 安装阶段改为显示系统进度条(/passive),不再完全静默。
  • 安装完成后会自动重新打开 Desktop(等待旧进程退出且新版本落盘后再启动)。
  • 启动时若检测到上次更新成功 / 未完成 / 失败,会给出一次性提示。

说明

  • 更新前仍需先停止本机正在运行的 Bot。
  • 若 UAC 被取消或安装失败,可到「设置 · 关于」重新检查更新;也可查看安装日志。

安装

  1. 下载 NapCatQQ-Desktop-3.1.6-x64.msi(或同内容别名 NapCatQQ-Desktop-x64.msi)
  2. 双击安装并启动
  3. 按提示完成协议 / 引导(如有)

系统要求: Windows 10 / Server 2016+ · x64
名字带 watch-v 的是远端监控小工具,不是 桌面安装包。

升级说明

  • 与旧版 同一 UpgradeCode,可直接覆盖安装
  • 生产数据根:%ProgramData%\NapCatQQ Desktop(配置与程序分离)
  • 建议升级前导出一次配置备份;装完后确认 Bot 列表与远端档案仍在

资源

文件 说明
NapCatQQ-Desktop-3.1.6-x64.msi 推荐下载 · 版本化 MSI
NapCatQQ-Desktop-x64.msi 同内容别名(脚本可用固定文件名)
SHA256SUMS 校验和

说明

  • 应用内「检查更新」从本仓库 GitHub Release 下载 MSI 安装
  • 远端监控组件 ncd-watch 使用独立 tag watch-v*,不包含在本 MSI 内

支持


完整提交记录: https://github.com/NapNeko/NapCatQQ-Desktop/compare/v3.1.5...v3.1.6

Tag v3.1.6 · docs/releases

v3.1.5

查看更新收起

NapCatQQ Desktop v3.1.5 发布,修复 SnowLuma 有头模式停用后 node.exe 残留导致重启多开的问题。

NapCatQQ Desktop 3.1.5

NapCatQQ Desktop v3.1.5 发布,修复 SnowLuma 有头模式停用后 node.exe 残留导致重启多开的问题。

更新内容

修复

  • 修复本机 SnowLuma 共享 daemon:最后一个 Bot 停用后会正确关闭 node.exe,避免再次启动时多开(#125)。
  • 多 Bot 仍共享同一 daemon;仅全部本机 SL Bot 停用后才结束 node 进程。
  • 修正本机协议弹窗取消路径,避免误减 daemon 引用计数。

说明

  • 远端 SnowLuma 原本已在引用归零时停止 daemon,本版将本机语义与之对齐。

安装

  1. 下载 NapCatQQ-Desktop-3.1.5-x64.msi(或同内容别名 NapCatQQ-Desktop-x64.msi)
  2. 双击安装并启动
  3. 按提示完成协议 / 引导(如有)

系统要求: Windows 10 / Server 2016+ · x64
名字带 watch-v 的是远端监控小工具,不是 桌面安装包。

升级说明

  • 与旧版 同一 UpgradeCode,可直接覆盖安装
  • 生产数据根:%ProgramData%\NapCatQQ Desktop(配置与程序分离)
  • 建议升级前导出一次配置备份;装完后确认 Bot 列表与远端档案仍在

资源

文件 说明
NapCatQQ-Desktop-3.1.5-x64.msi 推荐下载 · 版本化 MSI
NapCatQQ-Desktop-x64.msi 同内容别名(脚本可用固定文件名)
SHA256SUMS 校验和

说明

  • 应用内「检查更新」从本仓库 GitHub Release 下载 MSI 安装
  • 远端监控组件 ncd-watch 使用独立 tag watch-v*,不包含在本 MSI 内

支持


完整提交记录: https://github.com/NapNeko/NapCatQQ-Desktop/compare/v3.1.4...v3.1.5

Tag v3.1.5 · docs/releases

v3.1.4

查看更新收起

NapCatQQ Desktop v3.1.4 发布,修复 MSI 打包失败并恢复正式安装包发布。

NapCatQQ Desktop 3.1.4

NapCatQQ Desktop v3.1.4 发布,修复 MSI 打包失败并恢复正式安装包发布。

更新内容

修复

  • 修复 WiX 3 不支持的 RegistryValue NeverOverwrite 属性导致 candle 失败、v3.1.3 无法产出 MSI 的问题。
  • 修复 MSI 布局断言脚本语法损坏,避免打包后校验步骤中断。
  • 修复 QQ 宿主版本比较:本地 9.9.32-50969 与官方简写 9.9.32 不再被误判为可更新。

说明

  • v3.1.3 因上述打包问题未成功发布安装包;请直接使用本版本。
  • 数据根迁移仍以用户级(HKCU)指针为准;机器级 HKLM 默认值仅作回退。

安装

  1. 下载 NapCatQQ-Desktop-3.1.4-x64.msi(或同内容别名 NapCatQQ-Desktop-x64.msi)
  2. 双击安装并启动
  3. 按提示完成协议 / 引导(如有)

系统要求: Windows 10 / Server 2016+ · x64
名字带 watch-v 的是远端监控小工具,不是 桌面安装包。

升级说明

  • 与旧版 同一 UpgradeCode,可直接覆盖安装
  • 生产数据根:%ProgramData%\NapCatQQ Desktop(配置与程序分离)
  • 建议升级前导出一次配置备份;装完后确认 Bot 列表与远端档案仍在

资源

文件 说明
NapCatQQ-Desktop-3.1.4-x64.msi 推荐下载 · 版本化 MSI
NapCatQQ-Desktop-x64.msi 同内容别名(脚本可用固定文件名)
SHA256SUMS 校验和

说明

  • 应用内「检查更新」从本仓库 GitHub Release 下载 MSI 安装
  • 远端监控组件 ncd-watch 使用独立 tag watch-v*,不包含在本 MSI 内

支持


完整提交记录: https://github.com/NapNeko/NapCatQQ-Desktop/compare/v3.1.3...v3.1.4

Tag v3.1.4 · docs/releases

v3.1.1

查看更新收起

3.1.0 聚焦运行时可观测性与 Docker 部署体验:看清本机/远端资源与 Bot 指标,镜像拉取更可控。

NapCatQQ Desktop 3.1.1

3.1.0 聚焦运行时可观测性与 Docker 部署体验:看清本机/远端资源与 Bot 指标,镜像拉取更可控。

更新内容

新增

  • 运行时指标 — 指标页总览与历史趋势;Bot 列表 / 设置可查看实例指标
  • 主机资源 — 本机与远端展示内存、CPU、磁盘(远端经 host-stats / SSH)
  • Desktop 退出后仍可续采 — 配合 ncd-watch 保留 Bot 指标历史(需已部署对应 watch)
  • Docker 镜像源 — 部署时可选择镜像源 / 镜像站优先,减轻拉取失败
  • Docker 拉取可取消 — 拉取任务支持取消;卡死场景可换源重试并给出明确分类提示
  • 强制停止反馈 — Docker 相关强制停止操作有更清晰的进度与结果反馈

修复

  • 指标轮询不再带动刷新按钮与 Tooltip 抽搐
  • 远端指标是否过期改用主机时钟判断,减少误报 stale
  • SnowLuma WebUI 端口被占用时自动换口,并按日志重连
  • NapCat 正向 / 反向 WebSocket 文案对齐
  • 选择基座鲁棒性增强
  • 组件与版本检查:按 semver 选最新 Release;强制刷新可绕过查询缓存
  • 流式命令支持取消,并在需要时强杀本机 / 远端进程
  • Desktop 协议门禁改为应用级 host 单例,避免多入口状态不一致
  • Windows 下 QQ 无法下载的情况

说明

  • 本版含内部模块拆分与目录整理,不影响既有配置与覆盖升级路径
  • 发版说明改为仓库内策展文件(docs/releases/);应用内更新说明仍读 GitHub Release 正文

安装

  1. 下载 NapCatQQ-Desktop-3.1.1-x64.msi(或同内容别名 NapCatQQ-Desktop-x64.msi)
  2. 双击安装并启动
  3. 按提示完成协议 / 引导(如有)

系统要求: Windows 10 / Server 2016+ · x64
名字带 watch-v 的是远端监控小工具,不是 桌面安装包。

升级说明

  • 与旧版 同一 UpgradeCode,可直接覆盖安装
  • 生产数据根:%ProgramData%\NapCatQQ Desktop(配置与程序分离)
  • 建议升级前导出一次配置备份;装完后确认 Bot 列表与远端档案仍在

资源

文件 说明
NapCatQQ-Desktop-3.1.1-x64.msi 推荐下载 · 版本化 MSI
NapCatQQ-Desktop-x64.msi 同内容别名(脚本可用固定文件名)
SHA256SUMS 校验和

说明

  • 应用内「检查更新」从本仓库 GitHub Release 下载 MSI 安装
  • 远端监控组件 ncd-watch 使用独立 tag watch-v*,不包含在本 MSI 内

支持


完整提交记录: https://github.com/NapNeko/NapCatQQ-Desktop/compare/v3.1.0...v3.1.1

Tag v3.1.1 · docs/releases

v3.0.0

查看更新收起

V3 正式版。 从 Python / PySide6 重写为 Rust + Tauri + React 的 Windows 桌面控制台,用于管理 NapCatQQ 与 SnowLuma。

NapCatQQ Desktop 3.0.0

V3 正式版。 从 Python / PySide6 重写为 Rust + Tauri + React 的 Windows 桌面控制台,用于管理 NapCatQQ 与 SnowLuma。

装完就能管 Bot:本机起停、远端部署、看日志、装组件,一个窗口搞定。

Highlights

  • 整栈重写 — 安装包更干净,杀软误报更少,冷启动与批量启停更轻
  • 本机 + 远端 — 本机 Native;远端 Linux 经 SSH 部署与管理
  • 双框架 — NapCat / SnowLuma 创建、启动、停止、日志与 WebUI
  • 组件自助装 — Node、QQ、框架等在组件页安装与更新
  • 配置与程序分离 — 数据在 %ProgramData%\NapCatQQ Desktop,重装不易丢设置
  • 旧版可覆盖升 — 与 V2 同一 UpgradeCode,直接装新 MSI 即可

Install

  1. 下载 NapCatQQ-Desktop-3.0.0-x64.msi(或同内容别名 NapCatQQ-Desktop-x64.msi)
  2. 双击安装并启动
  3. 按提示完成协议 / 引导(如有)

Requirements: Windows 10 / Server 2016+ · x64
名字带 watch-v 的是远端监控小工具,不是 桌面安装包。

Upgrade from V2

  1. (建议)在旧版里导出一次配置备份
  2. 直接安装本 MSI 覆盖
  3. 按提示完成配置迁移
  4. 确认 Bot 列表、远端主机档案仍在

生产数据根:%ProgramData%\NapCatQQ Desktop。

Assets

File Description
NapCatQQ-Desktop-3.0.0-x64.msi 推荐下载 · 版本化安装包
NapCatQQ-Desktop-x64.msi 同内容别名(脚本可用固定文件名)
SHA256SUMS 校验和

Notes

  • 应用内「检查更新」从 GitHub Release 拉取 MSI 安装;不是 tauri-plugin-updater 的 latest.json / .sig 签名通道
  • 远端主机侧监控 ncd-watch 使用独立 tag watch-v*,不包含在本 MSI 内
  • 旧 Python 实现归档在 v1 分支;当前主线为 main

Changelog

Compared to v2.2.8 · full rewrite + ongoing fixes on main.

Full history: https://github.com/NapNeko/NapCatQQ-Desktop/compare/v2.2.8...v3.0.0

V2 → V3 跨度极大(约 700+ commits)。细节请看 compare;本页以用户向说明为主。

Support


Tag v3.0.0 · commit 5362e503 · MSI from Build MSI Package #29225561784

v2.2.8

查看更新收起

NapCatQQ Desktop v2.2.8

🚀 NapCatQQ Desktop 更新日志(v2.2.8)

Tips

  • v2.0 起为破坏性更新,旧版无法直接更新,请手动下载新版安装包。
  • 安装完成后,可在设置页面迁移或重新导入旧版本配置。

🐛 修复功能

  • 修复打包或精简环境下 httpx 证书缺失导致的闪退问题,并重构证书异常防御补丁,对底层 ssl.create_default_context 进行更健壮的修补
  • 修复状态轮询线程在 QObject 销毁后触发的异常崩溃

⚠️ 重要提醒

  • 如果遇到问题,请通过 GitHub Issue 反馈。

v2.2.7

查看更新收起

NapCatQQ Desktop v2.2.7

🚀 NapCatQQ Desktop 更新日志(v2.2.7)

Tips

  • v2.0 起为破坏性更新,旧版无法直接更新,请手动下载新版安装包。
  • 安装完成后,可在设置页面迁移或重新导入旧版本配置。

✨ 新增功能

  • 新增 QQ 登录探测模块,自动检测已登录的 QQ 账号
  • 在 PID 选择器中显示探测到的 QQ UIN

⚠️ 重要提醒

  • 如果遇到问题,请通过 GitHub Issue 反馈。

v2.2.6

查看更新收起

NapCatQQ Desktop v2.2.6

🚀 NapCatQQ Desktop 更新日志(v2.2.6)

Tips

  • v2.0 起为破坏性更新,旧版无法直接更新,请手动下载新版安装包。
  • 安装完成后,可在设置页面迁移或重新导入旧版本配置。

🐛 修复功能

  • 修复关闭/退出仅阻止本地 Bot,远端 Bot 不再阻止退出
  • 修复 SnowLuma 停止后立即重启导致的 Signal source has been deleted 崩溃
  • 修复 SnowLuma 停止过程中快速重复操作引发的竞态问题,新增“关闭中…”状态防护

✨ 新增功能

  • 远端 Bot 状态透传 elapsed_seconds 字段
  • 启动期间自动重新附加远端 Bot 状态,并补建 SnowLuma 隧道
  • 远端 SnowLuma Bot 卡片新增“打开 VNC 工具”按钮

🔧 优化功能

  • 优化 NapCatQQLoginState 日志文案,统一使用中性词“Bot WebUI”

⚠️ 重要提醒

  • 如果遇到问题,请通过 GitHub Issue 反馈。

v2.2.5

查看更新收起

NapCatQQ Desktop v2.2.5

🚀 NapCatQQ Desktop 更新日志(v2.2.5)

Tips

  • v2.0 起为破坏性更新,旧版无法直接更新,请手动下载新版安装包。
  • 安装完成后,可在设置页面迁移或重新导入旧版本配置。

🐛 修复功能

  • 修复引导窗口背景色随主题切换的问题
  • 更新 GitHub 加速镜像站列表
  • 修复 InfoBar 长文案与硬编码 NapCat 的问题

✨ 新增功能

  • 接入 GitHub API HMAC 签名中转代理
  • 改用 GitHub releases API 进行 SHA256 校验

🔧 优化功能

  • 优化 VersionService 启动逻辑,单例化避免重复请求
  • 移除 UI 文案中的彩色 emoji,统一标点符号

⚠️ 重要提醒

  • 如果遇到问题,请通过 GitHub Issue 反馈。

v2.2.4

查看更新收起

NapCatQQ Desktop v2.2.4

🚀 NapCatQQ Desktop 更新日志(v2.2.4)

Tips

  • v2.0 起为破坏性更新,旧版无法直接更新,请手动下载新版安装包。
  • 安装完成后,可在设置页面迁移或重新导入旧版本配置。

🔧 优化功能

  • 更新 qrc 资源文件,新增预加载包回退机制

⚠️ 重要提醒

  • 如果遇到问题,请通过 GitHub Issue 反馈。

v2.2.3

查看更新收起

NapCatQQ Desktop v2.2.3

🚀 NapCatQQ Desktop 更新日志(v2.2.3)

Tips

  • v2.0 起为破坏性更新,旧版无法直接更新,请手动下载新版安装包。
  • 安装完成后,可在设置页面迁移或重新导入旧版本配置。

✨ 新增功能

  • 新增 SnowLuma 后端部署UI支持
  • 新增 SnowLuma.Framework 及 LinuxQQ 版本检测功能

⚠️ 重要提醒

  • 如果遇到问题,请通过 GitHub Issue 反馈。

v2.2.2

查看更新收起

NapCatQQ Desktop v2.2.2

🚀 NapCatQQ Desktop 更新日志(v2.2.2)

Tips

  • v2.0 起为破坏性更新,旧版无法直接更新,请手动下载新版安装包。
  • 安装完成后,可在设置页面迁移或重新导入旧版本配置。

✨ 新增功能

  • 迁移至 GitHub releases 动态下载 SnowLuma.Framework

⚠️ 重要提醒

  • 如果遇到问题,请通过 GitHub Issue 反馈。

v2.2.1

查看更新收起

NapCatQQ Desktop v2.2.1

🚀 NapCatQQ Desktop 更新日志(v2.2.1)

Tips

  • v2.0 起为破坏性更新,旧版无法直接更新,请手动下载新版安装包。
  • 安装完成后,可在设置页面迁移或重新导入旧版本配置。

🐛 修复功能

  • 修复组件页面 hash 弹窗父控件引用错误

⚠️ 重要提醒

  • 如果遇到问题,请通过 GitHub Issue 反馈。

v2.2.0

查看更新收起

NapCatQQ Desktop v2.2.0

🚀 NapCatQQ Desktop 更新日志(v2.2.0)

Tips

  • v2.0 起为破坏性更新,旧版无法直接更新,请手动下载新版安装包。
  • 安装完成后,可在设置页面迁移或重新导入旧版本配置。

✨ 新增功能

  • 全新引入 SnowLuma 框架,支持远程后端管理与 daemon 驱动层
  • Bot 页面新增 SnowLuma 启动与运行状态展示
  • 添加远程部署脚本资源,简化远程部署流程
  • 实现 SnowLuma 远程管理核心功能,包括 SSH 连接、会话管理、VNC 启动等
  • 添加 SnowLuma 远程后端与运行时支持,实现本地回退机制
  • 新增 SnowLuma 远程管理 UI 组件,提供可视化操作界面
  • 内置 SnowLuma.Framework 版本号,便于版本追踪
  • 完善 SnowLuma 后端支持,覆盖配置渲染、状态轮询、WebUI 客户端等

⚠️ 重要提醒

  • 如果遇到问题,请通过 GitHub Issue 反馈。

v2.1.1

查看更新收起

NapCatQQ Desktop v2.1.1

🚀 NapCatQQ Desktop 更新日志(v2.1.1)

Tips

  • v2.0 起为破坏性更新,旧版无法直接更新,请手动下载新版安装包。
  • 安装完成后,可在设置页面迁移或重新导入旧版本配置。

✨ 新增功能

  • 添加发行版矩阵和本地 NapCat 回退支持 (66e54fa)
  • 增强 SSH 客户端和密钥管理 (2990005)
  • 增强部署流程和错误处理 (a4c65e8)
  • 增强 SSH 主机密钥确认对话框 (6eadc27)
  • 增强远程管理页面和部署控制台 (94191ad)
  • 更新远程安装脚本 (3d20900)

🔧 优化功能

  • 清理源码注释与 docstring 中的中文标点 (e858fbe)
  • 添加 SSH known_hosts 配置 (fcd3194)

⚠️ 重要提醒

  • 如果遇到问题,请通过 GitHub Issue 反馈。

v2.1.0

查看更新收起

NapCatQQ Desktop v2.1.0

🚀 NapCatQQ Desktop 更新日志(v2.1.0)

Tips

  • v2.0 起为破坏性更新,旧版无法直接更新,请手动下载新版安装包。
  • 安装完成后,可在设置页面迁移或重新导入旧版本配置。

🐛 修修补补

  • 离线检测不再延迟,假在线 bug 终于修了 (a854326)
  • 登录轮询卡顿,调好了 (c6339df)
  • 性能页的 SpinBox 和布局对齐问题搞定,BotCard 信号也稳了 (7c7d905)
  • 远端内存计算:从单进程改成进程树累加,总算准了 (d962fa8)
  • 状态概览弹窗不会再花式刷新跳出 (62bc116)
  • 保存配置时 WebUI 外部变更不会搞丢了 (92ad97f)

✨ 新玩意儿

  • 远程 SSH 管理正式落地:可一键连接远端服务器,完成环境探测、工作区初始化、NapCat 部署,全程图形化操作
  • 新增密码 keyring 持久化存储 + 主机密钥确认,远程连接安全又省心
  • 支持批量操作远端 Bot,启动/停止一行搞定
  • 持久数据迁移支持断点续传,大文件迁移更稳定
  • 资源监控上线:首页直接看远端 CPU/内存,状态一目了然
  • 后台任务聚合中心 + 进度条桥接,操作流程清晰可见
  • 远程管理有了独立设置页,配置更顺手

🔧 优化体验

  • 远程页面顶部工具栏改成浮动按钮,布局更清爽
  • 远程配置异步化,启动不再卡界面
  • 服务器编辑对话框交互重构,拖拽更丝滑

⚠️ 重要提醒

  • 如果遇到问题,请通过 GitHub Issue 反馈。

v2.0.22

查看更新收起

NapCatQQ Desktop v2.0.22

🚀 NapCatQQ Desktop 更新日志(v2.0.22)

Tips

  • v2.0 起为破坏性更新,旧版无法直接更新,请手动下载新版安装包。
  • 安装完成后,可在设置页面迁移或重新导入旧版本配置。

✨ 新增功能

  • 新增「性能」设置页:可配置主页 CPU / 内存采样频率,并支持完全关闭性能监控
  • 新增 Bot 登录态检查间隔与内存监控刷新间隔的可配置项,支持降低后台 CPU 占用

🐛 修复功能

  • 修复未登录 Bot 在较大检查间隔下首次登录二维码加载缓慢的问题
  • 修复 Bot 卡片销毁瞬间调整内存监控间隔可能引发的崩溃风险

🔧 优化功能

  • 性能页改用带步进与单位的数字输入框替代滑块,支持精确数值输入
  • 性能页布局对齐其他设置子页,消除视觉边界差异

🙏 致谢

  • 感谢 @venti1112 在 #100 中贡献本次性能监控配置功能

⚠️ 重要提醒

  • 如果遇到问题,请通过 GitHub Issue 反馈。

v2.0.21

查看更新收起

NapCatQQ Desktop v2.0.21

🚀 NapCatQQ Desktop 更新日志(v2.0.21)

Tips

  • v2.0 起为破坏性更新,旧版无法直接更新,请手动下载新版安装包。
  • 安装完成后,可在设置页面迁移或重新导入旧版本配置。

🐛 修复功能

  • 修复登录二维码弹窗的交互逻辑问题

📦 测试更新

  • 新增并完善了登录二维码弹窗、机器人卡片及其移除保护功能的自动化测试

⚠️ 重要提醒

  • 如果遇到问题,请通过 GitHub Issue 反馈。

v2.0.20

查看更新收起

NapCatQQ Desktop v2.0.20

🚀 NapCatQQ Desktop 更新日志(v2.0.20)

Tips

  • v2.0 起为破坏性更新,旧版无法直接更新,请手动下载新版安装包。
  • 安装完成后,可在设置页面迁移或重新导入旧版本配置。

🐛 修复功能

  • 修复运行时离线检测延迟与假在线状态问题
  • 修复保存配置时 WebUI 外部配置变更被覆盖的问题

🔧 优化功能

  • 优化配置操作模块,提升健壮性
  • 重构并优化 Bot 配置页面逻辑

⚠️ 重要提醒

  • 如果遇到问题,请通过 GitHub Issue 反馈。

v2.0.19

查看更新收起

NapCatQQ Desktop v2.0.19

🚀 NapCatQQ Desktop 更新日志(v2.0.19)

Tips

  • v2.0 起为破坏性更新,旧版无法直接更新,请手动下载新版安装包。
  • 安装完成后,可在设置页面迁移或重新导入旧版本配置。

🐛 修复功能

  • 修复掉线邮件通知失效的问题,并优化通知配置体验
  • 修复安装时未检查目标目录是否已存在的问题

✨ 新增功能

  • 新增配置导出功能,支持将当前配置保存为文件
  • 新增配置导出对话框,提供便捷的导出操作入口
  • 新增文件拖放区域组件,支持文件拖拽和自定义提示文本
  • 新增组件页面操作状态管理,优化下载控制逻辑

🔧 优化功能

  • 重构下载器模块,优化网络错误处理和重试逻辑
  • 重构配置导入功能,提升导入稳定性和用户体验
  • 重构 AI 变更日志生成工具和发布工作流,提升自动化效率

⚠️ 重要提醒

  • 如果遇到问题,请通过 GitHub Issue 反馈。

v2.0.18

查看更新收起

NapCatQQ Desktop v2.0.18

🚀 NapCatQQ Desktop 更新日志(v2.0.18)

Tips

  • v2.0 起为破坏性更新,旧版无法直接更新,请手动下载新版安装包。
  • 安装完成后,可在设置页面迁移或重新导入旧版本配置。

🐛 修复功能

  • 修复删除 Bot 时的卡片失效崩溃
  • 禁止删除运行中的 Bot

🔧 优化功能

  • 重构发布脚本并提取公共逻辑

🧰 其他更新

  • 重构构建和发布工作流
  • 更新变更日志并添加发布工作流文档
  • 更新版本发布测试用例

⚠️ 重要提醒

  • 以上发布说明由发布脚本根据 Git 提交自动整理,发布前应人工复核一次。
  • 如果遇到问题,请通过 GitHub Issue 反馈。

v2.0.17

查看更新收起

Tips: v2.0开始是破坏性更新,旧版无法直接更新,请手动下载更新喔,安装完成后到设置里迁移配置就可以了(直接把旧版文件夹往里拖就可以了)

🚀 NapCatQQ Desktop v2.0.17 更新日志

Tips: v2.0开始是破坏性更新,旧版无法直接更新,请手动下载更新喔,安装完成后到设置里迁移配置就可以了(直接把旧版文件夹往里拖就可以了)

🐛 修复

  1. 修复登录状态检查异常未捕获导致程序崩溃的问题 (21f3c4a)( #96 )

✨ 新增

  1. 实现 Bot 自动启动功能 (e2b7e50)
  2. 为 Bot 卡片添加 WebUI 快速访问按钮 (e4cd583)

🔧 优化

  1. 优化 MSI 安装包更新流程,增强日志记录 (fc7f4d1)
  2. 更新 MSI 安装脚本,避免误触发维护模式 (86f3d2f)
  3. 修复 MSI 更新脚本启动后立即退出的问题 (208481d)

📦 依赖

  1. 更新 Qt 资源版本至 6.10.2 (11db81e)

💡 升级提示:v2.0.0 起统一使用 MSI 安装包,旧版便携版用户请手动迁移配置后重新安装!

⚠️ 重要提醒

💡 此版本包含全面的界面优化和功能增强,强烈建议更新以获得更好体验!
😊 如果您遇到任何问题,请通过 GitHub Issue 反馈给我

v2.0.16

查看更新收起

Tips: v2.0开始是破坏性更新,旧版无法直接更新,请手动下载更新喔,安装完成后到设置里迁移配置就可以了(直接把旧版文件夹往里拖就可以了)

🚀 NapCatQQ Desktop 更新日志

Tips: v2.0开始是破坏性更新,旧版无法直接更新,请手动下载更新喔,安装完成后到设置里迁移配置就可以了(直接把旧版文件夹往里拖就可以了)

✨ 主要新功能

1. API 调试工作台

  • 全新接口文档调试功能,支持请求构建、响应展示、Schema 可视化
  • 拆分模块化组件:目录面板、详情面板、调试卡片、Schema 卡片
  • 新增 HTTP 方法徽章组件、搜索对话框、公共工具模块
  • 统一文案术语从"接口调试"改为"接口文档"
  • 支持工作台状态持久化、重试机制和错误处理

2. MSI 安装与自动更新

  • 统一使用 MSI 安装包发布,移除便携版
  • 应用内自动更新:检测、下载、静默安装完整闭环
  • 安装类型识别(MSI vs 便携版)和迁移支持
  • 更新脚本增强:参数注入、提权命令、进程等待、错误处理
  • 临时目录回退机制,解决权限不足问题

🔧 系统重构与优化

项目结构重构

  • 重构 bot_page、setup_page、home_page、component_page 模块结构
  • 清理冗余导出定义,移除多个模块的 __all__ 声明
  • 删除废弃的更新脚本、文档目录和过时文件
  • 更新核心模块和 UI 层导入路径

配置系统增强

  • 配置模型增强,支持事务写入
  • Bot 配置系统完善,支持配置保存前校验
  • 新增遗留配置导入兼容模块,支持从旧版本迁移
  • 新增拖拽文件夹组件、遗留导入对话框

日志系统升级

  • 新增 TRACE 日志级别,支持详细诊断输出
  • 代码编辑器增强:日志高亮、平滑滚动、主题适配
  • 新增崩溃通知中心模块,支持脱敏崩溃诊断包导出
  • 日志模块集成通知中心,支持实时输出通知

UI/UX 改进

  • 主题系统:支持 QFluentWidgets 主题配置绑定
  • 新增骨架屏组件,优化加载体验
  • 通知服务增强,支持通知时间线展示
  • 桌面日志页面,支持日志实时查看和高亮

🐛 关键修复

构建与打包

  • 修复 PyInstaller 入口路径错误
  • 修复 Windows PowerShell 命令解析问题
  • 优化 PyInstaller 构建:集合过滤器、资源准备、图像处理钩子
  • 修复 MSI 构建配置:UpgradeCode、依赖缓存

下载与更新

  • 下载器增加原子写入(.part 文件),防止中断残留
  • 细化异常处理,区分已知错误和未知错误
  • 修复下载器完成信号与状态校验问题

安装类型检测

  • 增强注册表权限处理(PermissionError)
  • 修复 Windows 路径大小写敏感问题
  • 使用 os.path.normcase 替代 resolve() 避免符号链接副作用

UI 修复

  • 修复跨平台字体渲染和高 DPI 显示问题
  • 修复删除 Bot 时的状态清理
  • 修复配置加载与事务写入问题
  • 修复空 JSON 配置回填问题

📦 构建与 CI/CD

GitHub Actions

  • 重构发布流程为纯 MSI 发布
  • 移除便携版构建逻辑
  • 添加 MSI 和便携版(已移除)构建工作流
  • 制品保留期改为 1 周

PyInstaller 优化

  • 添加集合过滤器,优化构建大小
  • 过滤未使用的 Qt 二进制文件(QML、PDF、VirtualKeyboard 等)
  • 运行时资源准备和图像处理钩子
  • 图标生成助手,支持动态图标

🧪 测试覆盖

  • 补充核心模块测试基座
  • 新增 API 调试工作台测试用例
  • 更新桌面更新测试、下载器行为测试
  • 补充样式路径回退测试、TRACE 日志相关测试
  • 配置 pytest-cov 与测试产物目录

📝 重要变更与迁移指南

安装方式变更

项目 旧版(v1.7.x) 新版(v2.0.0+)
安装包 ZIP 便携版 MSI 安装包
安装位置 任意文件夹 C:\Program Files\NapCatQQ Desktop\
配置存储 应用目录 %ProgramData%\NapCatQQ-Desktop\
更新方式 手动下载替换 应用内自动更新

升级建议

  1. 备份配置:导出旧版本配置(如果有重要设置)
  2. 卸载旧版:删除旧版便携版文件夹
  3. 安装新版:下载 MSI 安装包双击安装
  4. 配置迁移:如有遗留配置,使用导入功能迁移

开发者变更

  • 新增开发者模式启动参数
  • 新增开发者诊断页面入口
  • TRACE 日志支持详细诊断输出

💡 升级提示:v2.0.0 起统一使用 MSI 安装包,旧版便携版用户请手动迁移配置后重新安装!

⚠️ 重要提醒

💡 此版本包含全面的界面优化和功能增强,强烈建议更新以获得更好体验!
😊 如果您遇到任何问题,请通过 GitHub Issue 反馈给我

v1.7.28

查看更新收起

大家好!NapCatQQ-Desktop 从 2026 年 3 月 恢复更新以来,这周也没闲着,持续在搞事情~

NapCatQQ Desktop Release v1.7.28

🚀 v1.7.28 - 累积更新


【恢复更新公告】NapCatQQ-Desktop 持续更新中 🎉

大家好!NapCatQQ-Desktop 从 2026 年 3 月 恢复更新以来,这周也没闲着,持续在搞事情~

本周干了啥(3月16日 - 3月22日,狂肝 166 个提交):

这周主要围绕"让桌面端更好用"这个目标在努力:

  • UI 体验优化:加了骨架屏让加载不那么枯燥,做了拖拽文件夹组件方便大家选路径,代码编辑器也支持日志高亮和主题切换了,看日志舒服多了
  • 老用户福利:做了遗留配置导入功能,之前用过的朋友升级后可以一键迁移旧配置,不用重新配一遍
  • 问题定位更友好:加了崩溃通知中心,程序出问题能更快知道原因;还做了脱敏诊断包导出,遇到问题方便抓 bug
  • 更新更稳了:桌面更新链路重构完成,支持 MSI 安装包更新了,更新过程应该更顺滑
  • 代码整理:把几个页面模块的结构重新梳理了一下,删了一堆冗余代码,现在清爽多了
  • 测试补完:接入了 pytest-cov,补了一批测试

一些 bug 修复: 配置保存、Bot 删除、WebHook 发送、下载器状态这些小问题都修了一波,应该用起来更顺了。

现在啥情况?

项目已经彻底活过来了,不是"只维护不更新"的状态了。新版安装包正在打包测试,很快就能发出来!

接下来打算搞啥

  • 继续打磨 UI 组件,让界面更统一好看
  • 日志查看体验再优化一下
  • 版本检测逻辑再完善完善

总之就是在为后面的版本打基础,先把底子做扎实。

遇到啥问题随时来 GitHub Issues 找我,看到都会回的!

NapNeko组织 - AQiaoYo

2026年3月22日


Tips

建议旧版本 1.6.17 及以下, 选择手动更新喔(不然真的可能出奇怪的问题)

😭 修复功能

  • 修复QQ下载链接获取逻辑,从统一位置获取远程链接与版本
  • 修复QQ版本获取不到的问题

📝 使用须知

⚠️ 系统要求与注意事项

  • 🖥️ 兼容系统:仅支持 Windows Server 2016 / Windows 10 及以上版本
  • 📂 安装建议:
    • 请将软件放置于目标管理文件夹内运行
    • ❗ 避免直接放在桌面或系统目录运行
  • ⚠️ 特别注意:
    • 首次运行时请仔细阅读 EULA 协议
    • 建议右键「以管理员身份运行」获得完整权限

💡 升级提示:此版本包含界面重大更新,建议备份现有配置后再进行更新!

⚠️ 重要提醒

💡 此版本包含全面的界面优化和功能增强,强烈建议更新以获得更好体验!
😊 如果您遇到任何问题,请通过 QQ Group 或 GitHub Issue 反馈给我们

v1.7.27

查看更新收起

⚠️ 系统要求与注意事项 - 🖥️ 兼容系统:仅支持 Windows Server 2016 / Windows 10 及以上版本 - 📂 安装建议: - 请将软件放置于目标管理文件夹内运行 - ❗ 避免直接放在桌面或系统目录运行 - ⚠️ 特别注意: - 首次运行时请仔细阅读 EULA 协议 - 建议右键「以管理员身份运行」获得完整权限

NapCatQQ Desktop Release v1.7.27

🚀 v1.7.27 - 累积更新

Tips

建议旧版本 1.6.17 及以下, 选择手动更新喔(不然真的可能出奇怪的问题)

😭 修复功能

  • 修复QQ版本获取不到的问题

📝 使用须知

⚠️ 系统要求与注意事项

  • 🖥️ 兼容系统:仅支持 Windows Server 2016 / Windows 10 及以上版本
  • 📂 安装建议:
    • 请将软件放置于目标管理文件夹内运行
    • ❗ 避免直接放在桌面或系统目录运行
  • ⚠️ 特别注意:
    • 首次运行时请仔细阅读 EULA 协议
    • 建议右键「以管理员身份运行」获得完整权限

💡 升级提示:此版本包含界面重大更新,建议备份现有配置后再进行更新!

⚠️ 重要提醒

💡 此版本包含全面的界面优化和功能增强,强烈建议更新以获得更好体验!
😊 如果您遇到任何问题,请通过 QQ Group 或 GitHub Issue 反馈给我们

v1.7.26

查看更新收起

⚠️ 系统要求与注意事项 - 🖥️ 兼容系统:仅支持 Windows Server 2016 / Windows 10 及以上版本 - 📂 安装建议: - 请将软件放置于目标管理文件夹内运行 - ❗ 避免直接放在桌面或系统目录运行 - ⚠️ 特别注意: - 首次运行时请仔细阅读 EULA 协议 - 建议右键「以管理员身份运行」获得完整权限

NapCatQQ Desktop Release v1.7.26

🚀 v1.7.17 - 累积更新

Tips

建议旧版本 1.6.17 及以下, 选择手动更新喔(不然真的可能出奇怪的问题)

✌️ 新增功能

  • 累积更新

😭 修复功能

  • Bug修复和性能优化

📝 使用须知

⚠️ 系统要求与注意事项

  • 🖥️ 兼容系统:仅支持 Windows Server 2016 / Windows 10 及以上版本
  • 📂 安装建议:
    • 请将软件放置于目标管理文件夹内运行
    • ❗ 避免直接放在桌面或系统目录运行
  • ⚠️ 特别注意:
    • 首次运行时请仔细阅读 EULA 协议
    • 建议右键「以管理员身份运行」获得完整权限

💡 升级提示:此版本包含界面重大更新,建议备份现有配置后再进行更新!

⚠️ 重要提醒

💡 此版本包含全面的界面优化和功能增强,强烈建议更新以获得更好体验!
😊 如果您遇到任何问题,请通过 QQ Group 或 GitHub Issue 反馈给我们

v1.7.25

查看更新收起

⚠️ 系统要求与注意事项 - 🖥️ 兼容系统:仅支持 Windows Server 2016 / Windows 10 及以上版本 - 📂 安装建议: - 请将软件放置于目标管理文件夹内运行 - ❗ 避免直接放在桌面或系统目录运行 - ⚠️ 特别注意: - 首次运行时请仔细阅读 EULA 协议 - 建议右键「以管理员身份运行」获得完整权限

NapCatQQ Desktop Release v1.7.25

🚀 v1.7.25 - 累积更新

Tips

建议旧版本 1.6.17 及以下, 选择手动更新喔(不然真的可能出奇怪的问题)

😭 修复功能

  • Bug修复和性能优化

📝 使用须知

⚠️ 系统要求与注意事项

  • 🖥️ 兼容系统:仅支持 Windows Server 2016 / Windows 10 及以上版本
  • 📂 安装建议:
    • 请将软件放置于目标管理文件夹内运行
    • ❗ 避免直接放在桌面或系统目录运行
  • ⚠️ 特别注意:
    • 首次运行时请仔细阅读 EULA 协议
    • 建议右键「以管理员身份运行」获得完整权限

💡 升级提示:此版本包含界面重大更新,建议备份现有配置后再进行更新!

⚠️ 重要提醒

💡 此版本包含全面的界面优化和功能增强,强烈建议更新以获得更好体验!
😊 如果您遇到任何问题,请通过 QQ Group 或 GitHub Issue 反馈给我们

v1.7.16

查看更新收起

⚠️ 系统要求与注意事项 - 🖥️ 兼容系统:仅支持 Windows Server 2016 / Windows 10 及以上版本 - 📂 安装建议: - 请将软件放置于目标管理文件夹内运行 - ❗ 避免直接放在桌面或系统目录运行 - ⚠️ 特别注意: - 首次运行时请仔细阅读 EULA 协议 - 建议右键「以管理员身份运行」获得完整权限

NapCatQQ Desktop Release v1.7.16

🚀 v1.7.16 - 累积更新

Tips

建议旧版本 1.6.17 及以下, 选择手动更新喔(不然真的可能出奇怪的问题)

😭 修复功能

  • 修正引导窗体模块路径和创建方法参数

📝 使用须知

⚠️ 系统要求与注意事项

  • 🖥️ 兼容系统:仅支持 Windows Server 2016 / Windows 10 及以上版本
  • 📂 安装建议:
    • 请将软件放置于目标管理文件夹内运行
    • ❗ 避免直接放在桌面或系统目录运行
  • ⚠️ 特别注意:
    • 首次运行时请仔细阅读 EULA 协议
    • 建议右键「以管理员身份运行」获得完整权限

💡 升级提示:此版本包含界面重大更新,建议备份现有配置后再进行更新!

⚠️ 重要提醒

💡 此版本包含全面的界面优化和功能增强,强烈建议更新以获得更好体验!
😊 如果您遇到任何问题,请通过 QQ Group 或 GitHub Issue 反馈给我们

v1.7.8

查看更新收起

⚠️ 系统要求与注意事项 - 🖥️ 兼容系统:仅支持 Windows Server 2016 / Windows 10 及以上版本 - 📂 安装建议: - 请将软件放置于目标管理文件夹内运行 - ❗ 避免直接放在桌面或系统目录运行 - ⚠️ 特别注意: - 首次运行时请仔细阅读 EULA 协议 - 建议右键「以管理员身份运行」获得完整权限

NapCatQQ Desktop Release v1.7.8

🚀 v1.7.8 - 累积更新

Tips

建议旧版本 1.6.17 及以下, 选择手动更新喔(不然真的可能出奇怪的问题)

✌️ 新增功能

  • 字体选择(妈妈再也不用担心我的字体出现奇怪的问题了) #74
  • 版本信息展示 #75
  • Bot 离线自动重启(这与发送离线通知互斥,当此项生效离线通知将不再生效)
  • Bot 页面顶部面包屑功能可以使用啦

😭 修复功能

  • 双击时能启动多个NCD的问题
  • 消失的引导(忘了这茬了)
  • 删除连接配置时没反应的问题
  • 点击添加连接配置选择 Client 出现 Server 的问题
  • 间隔配置中默认配置与UI占位符默认配置不符的问题
  • 刷新 Bot 列表时可能崩溃的情况

😘 优化功能

  • 更新功能更加完善 #80
  • 优化Bot卡片的按钮图标以及添加工具提示 #79

📝 使用须知

⚠️ 系统要求与注意事项

  • 🖥️ 兼容系统:仅支持 Windows Server 2016 / Windows 10 及以上版本
  • 📂 安装建议:
    • 请将软件放置于目标管理文件夹内运行
    • ❗ 避免直接放在桌面或系统目录运行
  • ⚠️ 特别注意:
    • 首次运行时请仔细阅读 EULA 协议
    • 建议右键「以管理员身份运行」获得完整权限

💡 升级提示:此版本包含界面重大更新,建议备份现有配置后再进行更新!

⚠️ 重要提醒

💡 此版本包含全面的界面优化和功能增强,强烈建议更新以获得更好体验!
😊 如果您遇到任何问题,请通过 QQ Group 或 GitHub Issue 反馈给我们

v1.7.7

查看更新收起

⚠️ 系统要求与注意事项 - 🖥️ 兼容系统:仅支持 Windows Server 2016 / Windows 10 及以上版本 - 📂 安装建议: - 请将软件放置于目标管理文件夹内运行 - ❗ 避免直接放在桌面或系统目录运行 - ⚠️ 特别注意: - 首次运行时请仔细阅读 EULA 协议 - 建议右键「以管理员身份运行」获得完整权限

NapCatQQ Desktop Release v1.7.7

🚀 v1.7.7 - 累积更新

Tips

建议旧版本 1.6.17 及以下, 选择手动更新喔(不然真的可能出奇怪的问题)

✌️ 新增功能

  • 字体选择(妈妈再也不用担心我的字体出现奇怪的问题了) #74
  • 版本信息展示 #75
  • Bot 离线自动重启(这与发送离线通知互斥,当此项生效离线通知将不再生效)
  • Bot 页面顶部面包屑功能可以使用啦

😭 修复功能

  • 双击时能启动多个NCD的问题
  • 消失的引导(忘了这茬了)
  • 删除连接配置时没反应的问题
  • 点击添加连接配置选择 Client 出现 Server 的问题
  • 间隔配置中默认配置与UI占位符默认配置不符的问题

😘 优化功能

  • 更新功能更加完善 #80
  • 优化Bot卡片的按钮图标以及添加工具提示 #79

📝 使用须知

⚠️ 系统要求与注意事项

  • 🖥️ 兼容系统:仅支持 Windows Server 2016 / Windows 10 及以上版本
  • 📂 安装建议:
    • 请将软件放置于目标管理文件夹内运行
    • ❗ 避免直接放在桌面或系统目录运行
  • ⚠️ 特别注意:
    • 首次运行时请仔细阅读 EULA 协议
    • 建议右键「以管理员身份运行」获得完整权限

💡 升级提示:此版本包含界面重大更新,建议备份现有配置后再进行更新!

⚠️ 重要提醒

💡 此版本包含全面的界面优化和功能增强,强烈建议更新以获得更好体验!
😊 如果您遇到任何问题,请通过 QQ Group 或 GitHub Issue 反馈给我们

v1.7.6

查看更新收起

⚠️ 系统要求与注意事项 - 🖥️ 兼容系统:仅支持 Windows Server 2016 / Windows 10 及以上版本 - 📂 安装建议: - 请将软件放置于目标管理文件夹内运行 - ❗ 避免直接放在桌面或系统目录运行 - ⚠️ 特别注意: - 首次运行时请仔细阅读 EULA 协议 - 建议右键「以管理员身份运行」获得完整权限

NapCatQQ Desktop Release v1.7.6

🚀 v1.7.5 - 累积更新

Tips

建议旧版本 1.6.17 及以下, 选择手动更新喔(不然真的可能出奇怪的问题)

✌️ 新增功能

  • 字体选择(妈妈再也不用担心我的字体出现奇怪的问题了) #74
  • 版本信息展示 #75
  • Bot 离线自动重启(这与发送离线通知互斥,当此项生效离线通知将不再生效)
  • Bot 页面顶部面包屑功能可以使用啦

😭 修复功能

  • 双击时能启动多个NCD的问题
  • 消失的引导(忘了这茬了)
  • 删除连接配置时没反应的问题
  • 点击添加连接配置选择 Client 出现 Server 的问题

😘 优化功能

  • 更新功能更加完善 #80
  • 优化Bot卡片的按钮图标以及添加工具提示 #79

📝 使用须知

⚠️ 系统要求与注意事项

  • 🖥️ 兼容系统:仅支持 Windows Server 2016 / Windows 10 及以上版本
  • 📂 安装建议:
    • 请将软件放置于目标管理文件夹内运行
    • ❗ 避免直接放在桌面或系统目录运行
  • ⚠️ 特别注意:
    • 首次运行时请仔细阅读 EULA 协议
    • 建议右键「以管理员身份运行」获得完整权限

💡 升级提示:此版本包含界面重大更新,建议备份现有配置后再进行更新!

⚠️ 重要提醒

💡 此版本包含全面的界面优化和功能增强,强烈建议更新以获得更好体验!
😊 如果您遇到任何问题,请通过 QQ Group 或 GitHub Issue 反馈给我们

v1.7.5

查看更新收起

⚠️ 系统要求与注意事项 - 🖥️ 兼容系统:仅支持 Windows Server 2016 / Windows 10 及以上版本 - 📂 安装建议: - 请将软件放置于目标管理文件夹内运行 - ❗ 避免直接放在桌面或系统目录运行 - ⚠️ 特别注意: - 首次运行时请仔细阅读 EULA 协议 - 建议右键「以管理员身份运行」获得完整权限

NapCatQQ Desktop Release v1.7.5

🚀 v1.7.5 - 累积更新

Tips

建议旧版本 1.6.17 及以下, 选择手动更新喔(不然真的可能出奇怪的问题)

✌️ 新增功能

  • 字体选择(妈妈再也不用担心我的字体出现奇怪的问题了) #74
  • 版本信息展示 #75
  • Bot 离线自动重启(这与发送离线通知互斥,当此项生效离线通知将不再生效)
  • Bot 页面顶部面包屑功能可以使用啦

😭 修复功能

  • 双击时能启动多个NCD的问题
  • 消失的引导(忘了这茬了)
  • 删除连接配置时没反应的问题

😘 优化功能

  • 更新功能更加完善 #80
  • 优化Bot卡片的按钮图标以及添加工具提示 #79

📝 使用须知

⚠️ 系统要求与注意事项

  • 🖥️ 兼容系统:仅支持 Windows Server 2016 / Windows 10 及以上版本
  • 📂 安装建议:
    • 请将软件放置于目标管理文件夹内运行
    • ❗ 避免直接放在桌面或系统目录运行
  • ⚠️ 特别注意:
    • 首次运行时请仔细阅读 EULA 协议
    • 建议右键「以管理员身份运行」获得完整权限

💡 升级提示:此版本包含界面重大更新,建议备份现有配置后再进行更新!

⚠️ 重要提醒

💡 此版本包含全面的界面优化和功能增强,强烈建议更新以获得更好体验!
😊 如果您遇到任何问题,请通过 QQ Group 或 GitHub Issue 反馈给我们

v1.7.4

查看更新收起

⚠️ 系统要求与注意事项 - 🖥️ 兼容系统:仅支持 Windows Server 2016 / Windows 10 及以上版本 - 📂 安装建议: - 请将软件放置于目标管理文件夹内运行 - ❗ 避免直接放在桌面或系统目录运行 - ⚠️ 特别注意: - 首次运行时请仔细阅读 EULA 协议 - 建议右键「以管理员身份运行」获得完整权限

NapCatQQ Desktop Release v1.7.4

🚀 v1.7.4 - 累积更新

Tips

建议旧版本 1.6.17 及以下, 选择手动更新喔(不然真的可能出奇怪的问题)

✌️ 新增功能

  • 字体选择(妈妈再也不用担心我的字体出现奇怪的问题了) #74
  • 版本信息展示 #75
  • Bot 离线自动重启(这与发送离线通知互斥,当此项生效离线通知将不再生效)

😭 修复功能

  • 双击时能启动多个NCD的问题
  • 消失的引导(忘了这茬了)

📝 使用须知

⚠️ 系统要求与注意事项

  • 🖥️ 兼容系统:仅支持 Windows Server 2016 / Windows 10 及以上版本
  • 📂 安装建议:
    • 请将软件放置于目标管理文件夹内运行
    • ❗ 避免直接放在桌面或系统目录运行
  • ⚠️ 特别注意:
    • 首次运行时请仔细阅读 EULA 协议
    • 建议右键「以管理员身份运行」获得完整权限

💡 升级提示:此版本包含界面重大更新,建议备份现有配置后再进行更新!

⚠️ 重要提醒

💡 此版本包含全面的界面优化和功能增强,强烈建议更新以获得更好体验!
😊 如果您遇到任何问题,请通过 QQ Group 或 GitHub Issue 反馈给我们

v1.7.3

查看更新收起

⚠️ 系统要求与注意事项 - 🖥️ 兼容系统:仅支持 Windows Server 2016 / Windows 10 及以上版本 - 📂 安装建议: - 请将软件放置于目标管理文件夹内运行 - ❗ 避免直接放在桌面或系统目录运行 - ⚠️ 特别注意: - 首次运行时请仔细阅读 EULA 协议 - 建议右键「以管理员身份运行」获得完整权限

NapCatQQ Desktop Release v1.7.3

🚀 v1.7.3 - 累积更新

Tips

建议旧版本 1.6.17 及以下, 选择手动更新喔(不然真的可能出奇怪的问题)

✌️ 新增功能

  • 字体选择(妈妈再也不用担心我的字体出现奇怪的问题了) #74
  • 版本信息展示 #75

😭 修复功能

  • 双击时能启动多个NCD的问题
  • 消失的引导(忘了这茬了)

📝 使用须知

⚠️ 系统要求与注意事项

  • 🖥️ 兼容系统:仅支持 Windows Server 2016 / Windows 10 及以上版本
  • 📂 安装建议:
    • 请将软件放置于目标管理文件夹内运行
    • ❗ 避免直接放在桌面或系统目录运行
  • ⚠️ 特别注意:
    • 首次运行时请仔细阅读 EULA 协议
    • 建议右键「以管理员身份运行」获得完整权限

💡 升级提示:此版本包含界面重大更新,建议备份现有配置后再进行更新!

⚠️ 重要提醒

💡 此版本包含全面的界面优化和功能增强,强烈建议更新以获得更好体验!
😊 如果您遇到任何问题,请通过 QQ Group 或 GitHub Issue 反馈给我们

v1.6.20

查看更新收起

⚠️ 系统要求与注意事项 - 🖥️ 兼容系统:仅支持 Windows Server 2016 / Windows 10 及以上版本 - 📂 安装建议: - 请将软件放置于目标管理文件夹内 再运行(将自动生成配置文件于同级目录) - ❗ 避免直接放在桌面或系统目录运行 - ⚠️ 特别注意: - 首次运行时请关闭杀毒软件(如有误报) - 建议右键「以管理员身份运行」获得完整权限

NapCatQQ Desktop Release v1.6.20

🚀 v1.6.20 - 累积更新!

注意!!

v1.6.14 ~ v1.6.17 版本从软件中更新可能导致失败,请手动更新

🛠 修复与优化

  • 🐛 修复离线通知[邮箱]无效的问题
  • 🐛 修复文件名命名错误的问题
  • 🐛 修复点击添加离线配置时,对话框异常的问题 [#44]
  • 🐛 修复图标缺失的问题
  • 🐛 修复未安装 NapCatQQ 时, 页面仍然显示更新按钮的问题
  • 🐛 修复亮色主题下, CodeEditor | QTextBrowser 字体颜色显示不正常的问题
  • 🐛 修复 v1.6.17 无法点击 bot 卡片的问题以及安装 QQ 失败的问题
  • 🐛 修复对话框实例化和配置填充的引用错误 [#65]
  • 🐛 修复对话框实例顺序问题 [#66]
  • 🌟 优化离线通知操作逻辑
  • 🌟 优化大量操作逻辑
  • 💡 使用 QRunnable 重构版本检查逻辑 [#49]
  • 💡 使用 QRunnable 重构安装模块和下载的线程逻辑 [#50]

✨ 新增与调整

  • ✨ 新增离线通知[邮箱]操作界面
  • ✨ 新增离线通知[Webhook]功能
  • ✨ 添加配置解析时验证配置是否合法
  • ✨ 添加自动重启 Bot 功能
  • ✨ 添加退出提示(当机器人仍在运行时,在关闭应用程序时警告用户) [#58]
  • ✨ 添加未安装 NapCatQQ 时 添加机器人添加限制(防呆) [#58]
  • ✨ 添加运行时文件路径并实现自动迁移功能(v1.6.14起文件结构发生变化) [#61]
  • 💥 调整 JS 文件写入逻辑, 运行时创建

📝 使用须知

⚠️ 系统要求与注意事项

  • 🖥️ 兼容系统:仅支持 Windows Server 2016 / Windows 10 及以上版本
  • 📂 安装建议:
    • 请将软件放置于目标管理文件夹内 再运行(将自动生成配置文件于同级目录)
    • ❗ 避免直接放在桌面或系统目录运行
  • ⚠️ 特别注意:
    • 首次运行时请关闭杀毒软件(如有误报)
    • 建议右键「以管理员身份运行」获得完整权限

💡 小提示:配置文件生成后,移动主程序时请同步移动配置文件!

⚠️ 注意事项

💡 此版本包含多项重要更新与改进,强烈建议立即更新以获得最佳体验! 😭 如果您遇到问题,请下载debug版本,放在同级目录下运行,复现操作将问题, 通过 QQ Group 或者 issue 反馈给我

v1.6.15

查看更新收起

⚠️ 系统要求与注意事项 - 🖥️ 兼容系统:仅支持 Windows Server 2016 / Windows 10 及以上版本 - 📂 安装建议: - 请将软件放置于目标管理文件夹内 再运行(将自动生成配置文件于同级目录) - ❗ 避免直接放在桌面或系统目录运行 - ⚠️ 特别注意: - 首次运行时请关闭杀毒软件(如有误报) - 建议右键「以管理员身份运行」获得完整权限

NapCatQQ Desktop Release v1.6.15

🚀 v1.6.15 - 累积更新!

🛠 修复与优化

  • 🐛 修复离线通知[邮箱]无效的问题
  • 🐛 修复文件名命名错误的问题
  • 🐛 修复点击添加离线配置时,对话框异常的问题 [#44]
  • 🐛 修复图标缺失的问题
  • 🐛 修复未安装 NapCatQQ 时, 页面仍然显示更新按钮的问题
  • 🌟 优化离线通知操作逻辑
  • 🌟 优化大量操作逻辑
  • 💡 使用 QRunnable 重构版本检查逻辑 [#49]
  • 💡 使用 QRunnable 重构安装模块和下载的线程逻辑 [#50]

✨ 新增与调整

  • ✨ 新增离线通知[邮箱]操作界面
  • ✨ 新增离线通知[Webhook]功能
  • ✨ 添加配置解析时验证配置是否合法
  • ✨ 添加自动重启 Bot 功能
  • ✨ 添加退出提示(当机器人仍在运行时,在关闭应用程序时警告用户) [#58]
  • ✨ 添加未安装NapCatQQ时 添加机器人添加限制(防呆) [#58]
  • ✨ 添加运行时文件路径并实现自动迁移功能(v1.6.14起文件结构发生变化) [#61]
  • 💥 调整 JS 文件写入逻辑, 运行时创建

📝 使用须知

⚠️ 系统要求与注意事项

  • 🖥️ 兼容系统:仅支持 Windows Server 2016 / Windows 10 及以上版本
  • 📂 安装建议:
    • 请将软件放置于目标管理文件夹内 再运行(将自动生成配置文件于同级目录)
    • ❗ 避免直接放在桌面或系统目录运行
  • ⚠️ 特别注意:
    • 首次运行时请关闭杀毒软件(如有误报)
    • 建议右键「以管理员身份运行」获得完整权限

💡 小提示:配置文件生成后,移动主程序时请同步移动配置文件!

⚠️ 注意事项

💡 此版本包含多项重要更新与改进,强烈建议立即更新以获得最佳体验! 😭 如果您遇到问题,请下载debug版本,放在同级目录下运行,复现操作将问题, 通过 QQ Group 或者 issue 反馈给我

v1.6.14

查看更新收起

⚠️ 系统要求与注意事项 - 🖥️ 兼容系统:仅支持 Windows Server 2016 / Windows 10 及以上版本 - 📂 安装建议: - 请将软件放置于目标管理文件夹内 再运行(将自动生成配置文件于同级目录) - ❗ 避免直接放在桌面或系统目录运行 - ⚠️ 特别注意: - 首次运行时请关闭杀毒软件(如有误报) - 建议右键「以管理员身份运行」获得完整权限

NapCatQQ Desktop Release v1.6.14

🚀 v1.6.14 - 累积更新!

🛠 修复与优化

  • 🐛 修复离线通知[邮箱]无效的问题
  • 🐛 修复文件名命名错误的问题
  • 🐛 修复点击添加离线配置时,对话框异常的问题 [#44]
  • 🐛 修复图标缺失的问题
  • 🐛 修复未安装 NapCatQQ 时, 页面仍然显示更新按钮的问题
  • 🌟 优化离线通知操作逻辑
  • 🌟 优化大量操作逻辑
  • 💡 使用 QRunnable 重构版本检查逻辑 [#49]
  • 💡 使用 QRunnable 重构安装模块和下载的线程逻辑 [#50]

✨ 新增与调整

  • ✨ 新增离线通知[邮箱]操作界面
  • ✨ 新增离线通知[Webhook]功能
  • ✨ 添加配置解析时验证配置是否合法
  • ✨ 添加自动重启 Bot 功能
  • ✨ 添加退出提示(当机器人仍在运行时,在关闭应用程序时警告用户) [#58]
  • ✨ 添加未安装NapCatQQ时 添加机器人添加限制(防呆) [#58]
  • ✨ 添加运行时文件路径并实现自动迁移功能(v1.6.14起文件结构发生变化) [#61]

📝 使用须知

⚠️ 系统要求与注意事项

  • 🖥️ 兼容系统:仅支持 Windows Server 2016 / Windows 10 及以上版本
  • 📂 安装建议:
    • 请将软件放置于目标管理文件夹内 再运行(将自动生成配置文件于同级目录)
    • ❗ 避免直接放在桌面或系统目录运行
  • ⚠️ 特别注意:
    • 首次运行时请关闭杀毒软件(如有误报)
    • 建议右键「以管理员身份运行」获得完整权限

💡 小提示:配置文件生成后,移动主程序时请同步移动配置文件!

⚠️ 注意事项

💡 此版本包含多项重要更新与改进,强烈建议立即更新以获得最佳体验! 😭 如果您遇到问题,请下载debug版本,放在同级目录下运行,复现操作将问题, 通过 QQ Group 或者 issue 反馈给我

v1.6.12

查看更新收起

⚠️ 系统要求与注意事项 - 🖥️ 兼容系统:仅支持 Windows Server 2016 / Windows 10 及以上版本 - 📂 安装建议: - 请将软件放置于目标管理文件夹内 再运行(将自动生成配置文件于同级目录) - ❗ 避免直接放在桌面或系统目录运行 - ⚠️ 特别注意: - 首次运行时请关闭杀毒软件(如有误报) - 建议右键「以管理员身份运行」获得完整权限

NapCatQQ Desktop Release v1.6.12

🚀 v1.6.12 - 累积更新!

🛠 修复与优化

  • 🐛 修复离线通知[邮箱]无效的问题
  • 🐛 修复文件名命名错误的问题
  • 🐛 修复点击添加离线配置时,对话框异常的问题 #44
  • 🐛 修复图标缺失的问题
  • 🐛 修复未安装 NapCatQQ 时, 页面仍然显示更新按钮的问题
  • 🌟 优化离线通知操作逻辑
  • 🌟 优化大量操作逻辑
  • 💡 使用 QRunnable 重构版本检查逻辑 #49
  • 💡 使用 QRunnable 重构安装模块和下载的线程逻辑 [#50]

✨ 新增与调整

  • ✨ 新增离线通知[邮箱]操作界面
  • ✨ 新增离线通知[Webhook]功能
  • ✨ 添加配置解析时验证配置是否合法
  • ✨ 添加自动重启 Bot 功能
  • ✨ 添加退出提示(当机器人仍在运行时,在关闭应用程序时警告用户) [#58]
  • ✨ 添加未安装NapCatQQ时 添加机器人添加限制(防呆) [#58]

📝 使用须知

⚠️ 系统要求与注意事项

  • 🖥️ 兼容系统:仅支持 Windows Server 2016 / Windows 10 及以上版本
  • 📂 安装建议:
    • 请将软件放置于目标管理文件夹内 再运行(将自动生成配置文件于同级目录)
    • ❗ 避免直接放在桌面或系统目录运行
  • ⚠️ 特别注意:
    • 首次运行时请关闭杀毒软件(如有误报)
    • 建议右键「以管理员身份运行」获得完整权限

💡 小提示:配置文件生成后,移动主程序时请同步移动配置文件!

⚠️ 注意事项

💡 此版本包含多项重要更新与改进,强烈建议立即更新以获得最佳体验! 😭 如果您遇到问题,请下载debug版本,放在同级目录下运行,复现操作将问题, 通过 QQ Group 或者 issue 反馈给我

v1.6.4

查看更新收起

⚠️ 系统要求与注意事项 - 🖥️ 兼容系统:仅支持 Windows Server 2016 / Windows 10 及以上版本 - 📂 安装建议: - 请将软件放置于目标管理文件夹内 再运行(将自动生成配置文件于同级目录) - ❗ 避免直接放在桌面或系统目录运行 - ⚠️ 特别注意: - 首次运行时请关闭杀毒软件(如有误报) - 建议右键「以管理员身份运行」获得完整权限

NapCatQQ Desktop Release v1.6.4

🚀 v1.6.4 - 累积更新!

🛠 修复与优化

  • 🐛 修复离线通知[邮箱]无效的问题
  • 🐛 修复文件名命名错误的问题
  • 🐛 修复点击添加离线配置时,对话框异常的问题 #44
  • 🐛 修复图标缺失的问题
  • 🐛 修复未安装 NapCatQQ 时, 页面仍然显示更新按钮的问题
  • 🌟 优化离线通知操作逻辑
  • 🌟 优化大量操作逻辑
  • 💡 使用 QRunnable 重构版本检查逻辑 #49
  • 💡 使用 QRunnable 重构安装模块和下载的线程逻辑 [#50]

✨ 新增与调整

  • ✨ 新增离线通知[邮箱]操作界面
  • ✨ 新增离线通知[Webhook]功能
  • ✨ 添加配置解析时验证配置是否合法
  • ✨ 添加自动重启 Bot 功能

📝 使用须知

⚠️ 系统要求与注意事项

  • 🖥️ 兼容系统:仅支持 Windows Server 2016 / Windows 10 及以上版本
  • 📂 安装建议:
    • 请将软件放置于目标管理文件夹内 再运行(将自动生成配置文件于同级目录)
    • ❗ 避免直接放在桌面或系统目录运行
  • ⚠️ 特别注意:
    • 首次运行时请关闭杀毒软件(如有误报)
    • 建议右键「以管理员身份运行」获得完整权限

💡 小提示:配置文件生成后,移动主程序时请同步移动配置文件!

什么是累积更新

在当前大版本(如 v1.6)中,小版本号(如 v1.6.4)的更新是累积进行的。每个小版本均基于前一个小版本构建,即 v1.6.4 包含 v1.6.0 的全部更新内容,并在此基础之上添加本次的新增内容与修复。

⚠️ 注意事项

💡 此版本包含多项重要更新与改进,强烈建议立即更新以获得最佳体验! 😭 如果您遇到问题,请下载debug版本,放在同级目录下运行,复现操作将问题, 通过 QQ Group 或者 issue 反馈给我

v1.6.3

查看更新收起

⚠️ 系统要求与注意事项 - 🖥️ 兼容系统:仅支持 Windows Server 2016 / Windows 10 及以上版本 - 📂 安装建议: - 请将软件放置于目标管理文件夹内 再运行(将自动生成配置文件于同级目录) - ❗ 避免直接放在桌面或系统目录运行 - ⚠️ 特别注意: - 首次运行时请关闭杀毒软件(如有误报) - 建议右键「以管理员身份运行」获得完整权限

NapCatQQ Desktop Release v1.6.3

🚀 v1.6.3 - 累积更新!

🛠 修复与优化

  • 🐛 修复离线通知[邮箱]无效的问题
  • 🐛 修复文件名命名错误的问题
  • 🐛 修复点击添加离线配置时,对话框异常的问题 #44
  • 🐛 修复图标缺失的问题
  • 🌟 优化离线通知操作逻辑
  • 🌟 优化大量操作逻辑
  • 💡 使用 QRunnable 重构版本检查逻辑 #50

✨ 新增与调整

  • ✨ 新增离线通知[邮箱]操作界面
  • ✨ 新增离线通知[Webhook]功能
  • ✨ 添加配置解析时验证配置是否合法
  • ✨ 添加自动重启 Bot 功能

📝 使用须知

⚠️ 系统要求与注意事项

  • 🖥️ 兼容系统:仅支持 Windows Server 2016 / Windows 10 及以上版本
  • 📂 安装建议:
    • 请将软件放置于目标管理文件夹内 再运行(将自动生成配置文件于同级目录)
    • ❗ 避免直接放在桌面或系统目录运行
  • ⚠️ 特别注意:
    • 首次运行时请关闭杀毒软件(如有误报)
    • 建议右键「以管理员身份运行」获得完整权限

💡 小提示:配置文件生成后,移动主程序时请同步移动配置文件!

什么是累积更新

在当前大版本(如 v1.6)中,小版本号(如 v1.6.3)的更新是累积进行的。每个小版本均基于前一个小版本构建,即 v1.6.3 包含 v1.6.0 的全部更新内容,并在此基础之上添加本次的新增内容与修复。

⚠️ 注意事项

💡 此版本包含多项重要更新与改进,强烈建议立即更新以获得最佳体验! 😭 如果您遇到问题,请下载debug版本,放在同级目录下运行,复现操作将问题, 通过 QQ Group 或者 issue 反馈给我

v1.6.2

查看更新收起

⚠️ 系统要求与注意事项 - 🖥️ 兼容系统:仅支持 Windows Server 2016 / Windows 10 及以上版本 - 📂 安装建议: - 请将软件放置于目标管理文件夹内 再运行(将自动生成配置文件于同级目录) - ❗ 避免直接放在桌面或系统目录运行 - ⚠️ 特别注意: - 首次运行时请关闭杀毒软件(如有误报) - 建议右键「以管理员身份运行」获得完整权限

NapCatQQ Desktop Release v1.6.2

🚀 v1.6.2 - 累积更新!

🛠 修复与优化

  • 🐛 修复离线通知[邮箱]无效的问题
  • 🐛 修复文件名命名错误的问题
  • 🐛 修复点击添加离线配置时,对话框异常的问题 #44
  • 🌟 优化离线通知操作逻辑
  • 🌟 优化大量操作逻辑
  • 💡 使用 QRunnable 重构版本检查逻辑

✨ 新增与调整

  • ✨ 新增离线通知[邮箱]操作界面
  • ✨ 新增离线通知[Webhook]功能
  • ✨ 添加配置解析时验证配置是否合法
  • ✨ 添加自动重启 Bot 功能

📝 使用须知

⚠️ 系统要求与注意事项

  • 🖥️ 兼容系统:仅支持 Windows Server 2016 / Windows 10 及以上版本
  • 📂 安装建议:
    • 请将软件放置于目标管理文件夹内 再运行(将自动生成配置文件于同级目录)
    • ❗ 避免直接放在桌面或系统目录运行
  • ⚠️ 特别注意:
    • 首次运行时请关闭杀毒软件(如有误报)
    • 建议右键「以管理员身份运行」获得完整权限

💡 小提示:配置文件生成后,移动主程序时请同步移动配置文件!

什么是累积更新

在当前大版本(如 v1.6)中,小版本号(如 v1.6.2)的更新是累积进行的。每个小版本均基于前一个小版本构建,即 v1.6.2 包含 v1.6.0 的全部更新内容,并在此基础之上添加本次的新增内容与修复。

⚠️ 注意事项

💡 此版本包含多项重要更新与改进,强烈建议立即更新以获得最佳体验! 😭 如果您遇到问题,请下载debug版本,放在同级目录下运行,复现操作将问题, 通过 QQ Group 或者 issue 反馈给我

v1.6.1

查看更新收起

⚠️ 系统要求与注意事项 - 🖥️ 兼容系统:仅支持 Windows Server 2016 / Windows 10 及以上版本 - 📂 安装建议: - 请将软件放置于目标管理文件夹内 再运行(将自动生成配置文件于同级目录) - ❗ 避免直接放在桌面或系统目录运行 - ⚠️ 特别注意: - 首次运行时请关闭杀毒软件(如有误报) - 建议右键「以管理员身份运行」获得完整权限

NapCatQQ Desktop Release v1.6.1

🚀 v1.6.1 - 累积更新!

🛠 修复与优化

  • 🐛 修复离线通知[邮箱]无效的问题
  • 🐛 修复文件名命名错误的问题
  • 🐛 修复点击添加离线配置时,对话框异常的问题 #44
  • 🌟 优化离线通知操作逻辑
  • 🌟 优化大量操作逻辑

✨ 新增与调整

  • ✨ 新增离线通知[邮箱]操作界面
  • ✨ 新增离线通知[Webhook]功能
  • ✨ 添加配置解析时验证配置是否合法
  • ✨ 添加自动重启 Bot 功能

📝 使用须知

⚠️ 系统要求与注意事项

  • 🖥️ 兼容系统:仅支持 Windows Server 2016 / Windows 10 及以上版本
  • 📂 安装建议:
    • 请将软件放置于目标管理文件夹内 再运行(将自动生成配置文件于同级目录)
    • ❗ 避免直接放在桌面或系统目录运行
  • ⚠️ 特别注意:
    • 首次运行时请关闭杀毒软件(如有误报)
    • 建议右键「以管理员身份运行」获得完整权限

💡 小提示:配置文件生成后,移动主程序时请同步移动配置文件!

⚠️ 注意事项

💡 此版本包含多项重要更新与改进,强烈建议立即更新以获得最佳体验! 😭 如果您遇到问题,请下载debug版本,放在同级目录下运行,复现操作将问题通过 QQ Group 或者 issue 反馈给我

v1.6.0

查看更新收起

⚠️ 系统要求与注意事项 - 🖥️ 兼容系统:仅支持 Windows Server 2016 / Windows 10 及以上版本 - 📂 安装建议: - 请将软件放置于目标管理文件夹内 再运行(将自动生成配置文件于同级目录) - ❗ 避免直接放在桌面或系统目录运行 - ⚠️ 特别注意: - 首次运行时请关闭杀毒软件(如有误报) - 建议右键「以管理员身份运行」获得完整权限

NapCatQQ Desktop Release v1.6.0

🚀 v1.6.0 - 累积更新!

🛠 修复与优化

  • 🐛 修复离线通知[邮箱]无效的问题
  • 🐛 修复文件名命名错误的问题
  • 🐛 修复点击添加离线配置时,对话框异常的问题 #44
  • 🌟 优化离线通知操作逻辑
  • 🌟 大量操作逻辑

✨ 新增与调整

  • ✨ 新增离线通知[邮箱]操作界面
  • ✨ 新增离线通知[Webhook]功能
  • ✨ 添加配置解析时验证配置是否合法

📝 使用须知

⚠️ 系统要求与注意事项

  • 🖥️ 兼容系统:仅支持 Windows Server 2016 / Windows 10 及以上版本
  • 📂 安装建议:
    • 请将软件放置于目标管理文件夹内 再运行(将自动生成配置文件于同级目录)
    • ❗ 避免直接放在桌面或系统目录运行
  • ⚠️ 特别注意:
    • 首次运行时请关闭杀毒软件(如有误报)
    • 建议右键「以管理员身份运行」获得完整权限

💡 小提示:配置文件生成后,移动主程序时请同步移动配置文件!

⚠️ 注意事项

💡 此版本包含多项重要更新与改进,强烈建议立即更新以获得最佳体验!

v1.5.4

查看更新收起

👀 我应该下载哪个文件? - 正常使用: 下载 NapCatQQ-Desktop.exe - 遇到问题: 下载 NapCatQQ-Desktop-debug.exe

NapCatQQ Desktop Release v1.5.4

🚀 v1.5.4 - 累积更新!

🛠 修复与优化

  • 🐛 修复未安装NapCatQQ时获取不到远程更新日志的问题
  • 🐛 修复QQ版本格式化不一致的问题
  • 🐛 修复已有机器人卡片设置页面中连接设置空白的问题
  • 🐛 修复已有机器人卡片设置页面中连接设置无法添加配置的问题
  • 🐛 修复更新 NapCatQQ Desktop 失败的问题
  • 🐛 修复 packetBackend 缺少默认值的问题
  • 🐛 修复删除机器人配置时不会返回到列表的问题
  • 🐛 修复配置卡片编辑按钮不生效的问题
  • 🐛 修复邮件通知配置项显示不正确的问题
  • 🌟 优化切换页面动画表现

✨ 新增与调整

  • ✨ 新增关闭按钮行为设置
  • ✨ 新增引导窗体
  • ✨ 添加配置解析时验证配置是否合法
  • 🔎 调整组件页面左侧icon高度不一致的问题
  • 🔎 调整组件页面QQ介绍部分的内容
  • 🔎 调整托盘图标选项默认为中文
  • 🔎 调整NapCat为NapCatQQ(统一命名 👀)
  • 🔙 重新引入扫码弹窗
  • 🔙 重新引入DPI设置
  • 🗑️ 移除托盘图标添加机器人按钮
  • 🗑️ 移除托盘图标机器人列表图标

📝 使用须知

👀 我应该下载哪个文件?

  • 正常使用: 下载 NapCatQQ-Desktop.exe
  • 遇到问题: 下载 NapCatQQ-Desktop-debug.exe

⚠️ 系统要求与注意事项

  • 🖥️ 兼容系统:仅支持 Windows Server 2016 / Windows 10 及以上版本
  • 📂 安装建议:
    • 请将软件放置于目标管理文件夹内 再运行(将自动生成配置文件于同级目录)
    • ❗ 避免直接放在桌面或系统目录运行
  • ⚠️ 特别注意:
    • 首次运行时请关闭杀毒软件(如有误报)
    • 建议右键「以管理员身份运行」获得完整权限

💡 小提示:配置文件生成后,移动主程序时请同步移动配置文件!

⚠️ 注意事项

💡 此版本包含多项重要更新与改进,强烈建议立即更新以获得最佳体验! 😭 如果您遇到问题,请下载debug版本,放在同级目录下运行,复现操作将问题通过 QQ Group 或者 issue 反馈给我

v1.5.3

查看更新收起

⚠️ 系统要求与注意事项 - 🖥️ 兼容系统:仅支持 Windows Server 2016 / Windows 10 及以上版本 - 📂 安装建议: - 请将软件放置于目标管理文件夹内 再运行(将自动生成配置文件于同级目录) - ❗ 避免直接放在桌面或系统目录运行 - ⚠️ 特别注意: - 首次运行时请关闭杀毒软件(如有误报) - 建议右键「以管理员身份运行」获得完整权限

NapCatQQ Desktop Release v1.5.3

🚀 v1.5.3 - 累积更新!

🛠 修复与优化

  • 🐛 修复未安装NapCatQQ时获取不到远程更新日志的问题
  • 🔄 修复QQ版本格式化不一致的问题
  • 🖥 修复已有机器人卡片设置页面中连接设置空白的问题
  • ➕ 修复已有机器人卡片设置页面中连接设置无法添加配置的问题
  • ⬆️ 修复更新NapCatQQ Desktop失败的问题
  • ⚙️ 修复packetBackend缺少默认值的问题
  • ↩️ 修复删除机器人配置时不会返回到列表的问题
  • 🌟 优化切换页面动画表现

✨ 新增与调整

  • 🎯 新增关闭按钮行为设置
  • 🧭 新增引导窗体
  • 🎨 调整组件页面左侧icon高度不一致的问题
  • 📝 调整组件页面QQ介绍部分的内容
  • 🇨🇳 调整托盘图标选项默认为中文
  • 🔤 调整NapCat为NapCatQQ(统一命名 👀)
  • 📱 重新引入扫码弹窗
  • 🖥️ 重新引入DPI设置
  • ➖ 移除托盘图标添加机器人按钮
  • 🗑️ 移除托盘图标机器人列表图标

📝 使用须知

⚠️ 系统要求与注意事项

  • 🖥️ 兼容系统:仅支持 Windows Server 2016 / Windows 10 及以上版本
  • 📂 安装建议:
    • 请将软件放置于目标管理文件夹内 再运行(将自动生成配置文件于同级目录)
    • ❗ 避免直接放在桌面或系统目录运行
  • ⚠️ 特别注意:
    • 首次运行时请关闭杀毒软件(如有误报)
    • 建议右键「以管理员身份运行」获得完整权限

💡 小提示:配置文件生成后,移动主程序时请同步移动配置文件!

⚠️ 注意事项

💡 此版本包含多项重要更新与改进,强烈建议立即更新以获得最佳体验!

v1.5.2

查看更新收起

NapCatQQ Desktop Release v1.5.2

NapCatQQ Desktop Release v1.5.2

v1.5.2

修复与优化

  • 修复未安装NapCatQQ时导致获取不到远程更新日志的问题
  • 修复QQ版本格式化不一致的问题
  • 修复已有机器人卡片设置页面中连接设置空白的问题
  • 修复已有机器人卡片设置页面中连接设置无法添加配置的问题
  • 修复更新NapCatQQ Desktop失败的问题

新增与调整

  • 新增关闭按钮行为设置
  • 新增引导窗体
  • 调整组件页面左侧icon高度不一致的问题
  • 调整组件页面QQ介绍部分的内容
  • 调整托盘图标选项默认为中文
  • 调整NapCat为NapCatQQ(统一了命名👀)
  • 重新引入扫码弹窗
  • 重新引入DPI设置
  • 移除托盘图标添加机器人按钮
  • 移除托盘图标机器人列表图标

注意

此版本为重大更新,建议尽快更新到最新版本以获得更好的体验

v1.5.1

查看更新收起

NapCatQQ Desktop Release v1.5.1

NapCatQQ Desktop Release v1.5.1

v1.5.1

修复与优化

  • 修复未安装NapCatQQ时导致获取不到远程更新日志的问题
  • 修复QQ版本格式化不一致的问题
  • 修复已有机器人卡片设置页面中连接设置空白的问题
  • 修复已有机器人卡片设置页面中连接设置无法添加配置的问题

新增与调整

  • 新增关闭按钮行为设置
  • 新增引导窗体
  • 调整组件页面左侧icon高度不一致的问题
  • 调整组件页面QQ介绍部分的内容
  • 调整托盘图标选项默认为中文
  • 调整NapCat为NapCatQQ(统一了命名👀)
  • 重新引入扫码弹窗
  • 重新引入DPI设置
  • 移除托盘图标添加机器人按钮
  • 移除托盘图标机器人列表图标

注意

此版本为重大更新,建议尽快更新到最新版本以获得更好的体验

v1.5.0

查看更新收起

NapCatQQ Desktop Release v1.5.0

NapCatQQ Desktop Release v1.5.0

v1.5.0

修复与优化

  • 修复未安装NapCatQQ时导致获取不到远程更新日志的问题
  • 修复QQ版本格式化不一致的问题

新增与调整

  • 新增关闭按钮行为设置
  • 新增引导窗体
  • 调整组件页面左侧icon高度不一致的问题
  • 调整组件页面QQ介绍部分的内容
  • 调整托盘图标选项默认为中文
  • 调整NapCat为NapCatQQ(统一了命名👀)
  • 重新引入扫码弹窗
  • 重新引入DPI设置
  • 移除托盘图标添加机器人按钮
  • 移除托盘图标机器人列表图标

注意

此版本为重大更新,建议尽快更新到最新版本以获得更好的体验

v1.4.0

查看更新收起

适用于: NapCat v4.0.0+

NapCat Desktop Release v1.4.0

v1.4.0

适用于: NapCat v4.0.0+

修复与优化

  • 没有喔,一直在摸鱼

新增与调整

  • 移除内置DLC模块
  • 适配 NapCat 4.0.0+ 版本

注意

此版本为重大更新,建议尽快更新到最新版本以获得更好的体验

v1.3.0

查看更新收起

适用于: NapCat v3.0.0+

NapCat Desktop Release v1.3.0

v1.3.1

适用于: NapCat v3.0.0+

修复与优化

  • 优化启动机器人速度
  • 修复删除机器人配置时未删除NC配置的问题
  • 修复删除机器人后再次添加机器人导致 TabBar 无法正常添加的问题
  • 修复frida版本过高导致部分机型boon的问题

新增与调整

  • 新增内置模块 Packet 无须从 NapCat Release 下载即可使用
  • 新增设置界面显示 Debug Log 展示
  • 移除组件页面原有 NapCat DLC 下载页面

注意

此版本为重大更新,建议尽快更新到最新版本以获得更好的体验

v1.2.1

查看更新收起

适用于: NapCat v3.0.0+

NapCat Desktop Release v1.2.1

v1.2.1

适用于: NapCat v3.0.0+

修复与优化

  • 修复DLC安装错误的问题

新增与调整

v1.2.0

查看更新收起

适用于: NapCat v3.0.0+

NapCat Desktop Release v1.2.0

v1.2.0

适用于: NapCat v3.0.0+

来不及悼念 1.1.0, 现在是 1.2.0 了

修复与优化

  • 优化启动速度 #20

新增与调整

  • 新增: 机器人离线邮件通知 #19
  • 新增: NapCat DLC 安装与配置 #21

v1.1.0

查看更新收起

适用于: NapCat v2.6.14+

NapCat Desktop Release v1.1.0

v1.1.0

适用于: NapCat v2.6.14+

修复与优化

  • 优化窗体创建时产生的大量无用的变量

新增与调整

  • 调整窗体大小 由 930x630 调整为 1148x720
  • 暂时移除原有仪表盘页面
  • 新增 TabBar 功能,可快速切换到机器人页面(可在设置中选择开启) #11
  • 新增自定义窗体透明度功能,可在设置中调整窗体透明度 #12
  • 新增自定义每个页面的背景图片功能,可在设置中调整背景图片 #12

v1.0.5

查看更新收起

适用于: NapCat v2.6.14+

NapCat Desktop Release v1.0.5

v1.0.5

适用于: NapCat v2.6.14+

修复与优化

  • 72148e0375de5436371a9458cc5425d038da6da4 fix: 修复了在某时段无法下载/更新组件的问题 #14

新增与调整

  • 新增了对组件下载/更新的镜像站点支持

v1.0.4

查看更新收起

适用于: NapCat v2.6.14+

NapCat Desktop Release v1.0.4

v1.0.4

适用于: NapCat v2.6.14+

修复与优化

  1. 优化系统托盘逻辑

新增与调整

  1. 添加更新NCD时判断是否有 bot 正在运行检测

注意

此版本更新如果在NCD内进行,请事先关闭所有正在运行的 bot ,否则退出会导致 QQ 进程残留

v1.0.3

查看更新收起

适用于: NapCat v2.6.14+

NapCat Desktop Release v1.0.3

v1.0.3

适用于: NapCat v2.6.14+

修复与优化

  1. 修复退出 Desktop 时有 bot 在运行没有退出的问题
  2. 优化程序内接口逻辑

新增与调整

  1. 添加系统托盘中的新功能和样式
  2. 添加NapCat下载/更新时的防呆操作
  3. 调整 MsgBox 的样式

v1.0.2

查看更新收起

适用于: NapCat v2.6.14+

NapCat Desktop Release v1.0.2

v1.0.2

适用于: NapCat v2.6.14+

修复与优化

  1. 啥也没有欸~

新增与调整

  1. 添加了配置自启动 Bot 的功能 #8
  2. 添加了单实例检测, 防止多开 NCD 导致出现奇怪的问题

注意

此版本仅适用于NapCat v2.6.14及以上版本,请不要尝试手动退回以前的版本,会导致无法正常启动NapCat

v1.0.1

查看更新收起

适用于: NapCat v2.6.14+

NapCat Desktop Release v1.0.1

v1.0.1

适用于: NapCat v2.6.14+

修复与优化

  1. 修复 looger 缺失的问题
  2. 修复指定QQ安装位置后不能安装到路径的问题
  3. 修复对 objects.githubusercontent.com 的检测逻辑

新增与调整

  1. 添加了对指定QQ路径后,检测是否存在dbghelp.dll的检测

注意

此版本仅适用于NapCat v2.6.14及以上版本,请不要尝试手动退回以前的版本,会导致无法正常启动NapCat

v1.0.0

查看更新收起

适用于: NapCat v2.6.14+

NapCat Desktop Release v1.0.0

v1.0.0

适用于: NapCat v2.6.14+

修复与优化

  1. 一堆有的没的bug
  2. 优化一堆有的没的

新增与调整

  1. 调整配置文件的格式, 使其更加易读
  2. 调整页面

注意

此版本对配置文件有较大改动, 会清空旧版配置文件

此版本仅适用于NapCat v2.6.14及以上版本,请不要尝试手动退回以前的版本,会导致无法正常启动NapCat

v0.3.0

本版将值守引擎接入 Windows 原生远程代理,与 Desktop 3.5.0 配套。

  • Windows 原生宿主适配 — 由远程代理提供进程归属、登录状态、WebUI 读取和二维码操作,值守引擎复用现有通知与重登状态机。
  • 目标身份约束 — Windows 原生进程探测需要已认证的代理宿主,缺少宿主时返回未知状态,避免按无归属的 PID 或进程名接管任务。
  • Windows 指标采集 — 增加 Windows 内存、磁盘与进程资源采集路径;Linux 与 Docker 继续使用对应的平台探测。
  • 登录代数与二维码清理 — 原生宿主观测保留重置代数,关闭二维码会话时通知宿主清理辅助资源。

安装与验证范围

本 Release 继续提供 Linux x86_64 / aarch64 的 musl 二进制。Windows 使用 Desktop 3.5.0 随附的远程代理,不需要下载 Linux 二进制,也不单独安装 watch.exe。

相关代码与本机隔离回归已通过;Windows Server 2022 已测通基础 SSH 与代理探针,Windows 值守、用户会话恢复和 QQ 扫码尚未完成实机验收。

提交与发布信息

📦 下载

一般不用手动下:在桌面端「组件」页给远端主机装 NCD Watch 即可。手动部署时按 CPU 架构选:

  • x86_64(大多数服务器)
  • aarch64(ARM 服务器、树莓派 64 位)

静态链接 musl,常见发行版都能直接运行 · 校验和:SHA256SUMS


  • docs: 补充 Windows 远程管理与网络配置说明 (5c75b643)
  • build(windows): 打包独立 Agent 并接入 CI 资源门禁 (993ba49a)
  • feat(ui): 展示 Windows 远端托管与会话状态 (63bdb1be)
  • feat(settings): 新增代理与下载线路设置页 (a5d3323c)
  • refactor(ui): 统一 NapCat 与 SnowLuma 扫码弹窗 (933bbf8b)
  • style(ui): 调整三档圆角并对齐设置预览 (634d719e)
  • feat(ui): 统一密码与密钥字段的隐藏和显隐操作 (ed00ecea)
  • feat(tauri): 接入 Windows 管理与网络设置命令 (c7c0f635)
  • feat(runtime): 持久化并应用 Desktop 网络策略 (29f4022e)
  • feat(runtime): 串联 Windows 原生 Bot 与应用生命周期 (6c64c7e7)
  • feat(appframework): 适配 Windows 远端应用与运行时 (9b5a32a0)
  • feat(component): 支持 Windows 远端组件与代理部署 (3778485d)
  • feat(agent): 实现 Windows 服务与用户会话托管 (90b53c96)
  • feat(watch): 接入 Windows 原生宿主与指标采集 (036ff92f)
  • feat(host): 打通 Windows SSH 主机与平台识别 (0ac7cc03)
  • feat(network): 支持应用代理与可配置下载线路 (eece0e3b)
  • feat(domain): 扩展 Windows 托管与网络策略领域契约 (6adc0eea)

💬 遇到问题

  • 先看使用文档,里面有常见问题
  • 到 Issues 反馈,附上版本号和日志会快很多;也可以来 QQ 群 问
  • 这是远端 Linux 监控组件,不是桌面安装包;桌面端请看 v 开头的发布

完整变更:watch-v0.2.9...watch-v0.3.0

v0.2.9

查看更新收起

修复 SnowLuma 多账号值守中的登录状态判断和同机 OneBot 通知发送。

修复 SnowLuma 多账号值守中的登录状态判断和同机 OneBot 通知发送。

  • SnowLuma 掉线识别 — 正常登录与未登录状态按账号和进程归属判断;目标进程退回登录页时,能够继续处理掉线通知和重登二维码
  • 互助账号选择 — 在线 Bot 可以代发其他账号的通知,不再受自身掉线通知开关或重登值守方式影响
  • 通知发送结果 — 检查 OneBot 业务回包,发送失败时尝试下一个可用账号;已成功投递的目标不会重复收到通知
  • 自定义连接路径 — 保留 OneBot HTTP 的配置路径,并统一处理 WebSocket 路径,修复通知请求和指令连接打到错误地址的问题
提交与发布信息

📦 下载

一般不用手动下:在桌面端「组件」页给远端主机装 NCD Watch 即可。手动部署时按 CPU 架构选:

  • x86_64(大多数服务器)
  • aarch64(ARM 服务器、树莓派 64 位)

静态链接 musl,常见发行版都能直接运行 · 校验和:SHA256SUMS


  • fix(network): 修复 Windows 下载回归测试的响应截断 (e3d7f353)
  • fix(metrics): 修复 SnowLuma 多 Bot 流量统计与 watch 通信 (78ad71c0)
  • fix(network): 完善下载镜像测速与持续低速回退 (0be35350)
  • feat(settings): 支持使用个人 Token 直连 GitHub API (1bd1b034)
  • feat(data): 增加下载缓存清理与权限保护 (203fea4e)

💬 遇到问题

  • 先看使用文档,里面有常见问题
  • 到 Issues 反馈,附上版本号和日志会快很多;也可以来 QQ 群 问
  • 这是远端 Linux 监控组件,不是桌面安装包;桌面端请看 v 开头的发布

完整变更:watch-v0.2.8...watch-v0.2.9

v0.2.8

查看更新收起

配合 Desktop 3.4.4,新增远端同机重登互助。启用后,由远端 ncd-watch 持续处理掉线事件和管理员的二维码刷新请求,Desktop 关闭或断网后也能继续值守。

配合 Desktop 3.4.4,新增远端同机重登互助。启用后,由远端 ncd-watch 持续处理掉线事件和管理员的二维码刷新请求,Desktop 关闭或断网后也能继续值守。

  • 重登二维码通知 — 账号曾在线且持续掉线后,通过同机其他在线 Bot 私发通知和可用二维码。手动停止、首次等待登录或无法确认账号状态时,不自动发送重登码
  • 管理员刷新指令 — 支持回复重登通知「刷新二维码」,或使用 /ncd 刷新 QQ号或唯一名称 获取当前码。群内指令需要来自已配置管理员并 @ 互助 Bot,二维码回复仍走私聊
  • 避免重复投递 — 保存掉线事件、指令去重与投递结果,投递结果未知时避免立即切换互助 Bot 重复发送。账本不保存二维码,过期二维码也不会追加通知
  • 配置与状态查询 — 增加能力查询和重登状态查询,供 Desktop 确认配置是否已加载。没有在线互助方时,可尝试已配置的邮件与 Webhook 通知

升级说明

建议先升级 Desktop 3.4.4,再从组件管理更新远端 ncd-watch 并同步通知配置。在「设置 → 通知 → OneBot」配置同机互助 Bot、管理员 QQ 号以及「远端掉线后发送重登二维码」。互助方需要通用正向 WebSocket。

SnowLuma 取码仍依赖 QQ 的图形会话和扫码控件;控件或会话不可用时,需要通过 QQ / VNC 处理。刷新指令不会主动重启 QQ。

提交与发布信息

📦 下载

一般不用手动下:在桌面端「组件」页给远端主机装 NCD Watch 即可。手动部署时按 CPU 架构选:

  • x86_64(大多数服务器)
  • aarch64(ARM 服务器、树莓派 64 位)

静态链接 musl,常见发行版都能直接运行 · 校验和:SHA256SUMS


  • feat(ui): 统一组件卡片与主机切换布局 (65211529)
  • feat(ui): 优化 Bot 卡片操作层级与指标展示 (c5f230c8)
  • feat(ui): 优化 Bot 配置页身份与连接编辑布局 (de3315b4)
  • refactor(ui): 复用 Bot 头像与加载回退展示 (e541a6c3)
  • fix(ui): 自动更新过期二维码并解码重绘截图 (3d7fafed)
  • fix(chat): 登录状态变化时立即刷新聊天账号 (9a6fc97b)
  • refactor(tauri): 接入运行时的 VNC 与指标恢复接口 (15b9a8bf)
  • fix(runtime): 统一远端重连与扫码恢复编排 (5ceac015)
  • fix(snowluma): 恢复远端登录进程与共享服务会话 (6f501b0a)
  • fix(host): 避免 SSH 长命令阻塞同主机状态请求 (1b6510c3)
  • docs(relogin): 补充重登互助代码落点 (f065c074)
  • docs(docker): 说明资源管理能力与边界 (5418b1e3)
  • feat(ui): 扩展 Docker 资源管理页面 (432cc641)
  • feat(tauri): 暴露 Docker 资源管理命令 (1bc848ec)
  • feat(ui): 配置 OneBot 重登录通知 (b06430e7)
  • feat(ui): 支持主动刷新 Bot 运行状态 (4b010dc2)
  • feat(tauri): 同步重登录配置与值守状态 (674fc6e1)
  • feat(runtime): 接入重登录通知与运行状态恢复 (b0164164)
  • fix(snowluma): 串行化扫码取码并清理迟到状态 (8555ff6a)
  • feat(deploy): 管理 Docker 容器和资源 (21c508cf)
  • feat(domain): 扩展 Docker 资源管理契约 (1eee8915)
  • feat(watch): 增加远端重登录二维码值守 (cd899a7d)
  • feat(relogin): 新增重登录通知策略引擎 (2a1a879d)
  • feat(domain): 新增 OneBot 重登录配置契约 (6bac31da)
  • fix(ui): 按扫码状态收紧弹窗底部操作 (61190d84)
  • fix(ui): 按扫码状态收紧弹窗底部操作 (47a881e4)
  • docs(snowluma): 补充快捷登录与会话恢复说明 (d492668b)
  • fix(ui): 稳定扫码状态并隔离 Bot 登录快照 (33c467b3)
  • fix(snowluma): 支持 Windows 账号选择页切换扫码 (cf008ef1)
  • fix(snowluma): 恢复扫码通道并隔离远端 Bot 共享服务 (6c31c4f6)
  • docs(snowluma): 补充快捷登录与会话恢复说明 (14ab3bea)
  • fix(ui): 稳定扫码状态并隔离 Bot 登录快照 (b6c911ae)
  • fix(snowluma): 支持 Windows 账号选择页切换扫码 (b7583ac0)
  • fix(snowluma): 恢复扫码通道并隔离远端 Bot 共享服务 (8feb795c)
  • fix(snowluma): 避免将 OneBot 监听端口识别为 WebUI (fe5fa07d)
  • fix(snowluma): 避免将 OneBot 监听端口识别为 WebUI (465d1c49)
  • docs(snowluma): 补齐扫码指南入口并统一默认开启说明 (528aa25a)
  • docs(snowluma): 补齐扫码指南入口并统一默认开启说明 (0128c78c)
  • fix(snowluma): 断线时失效扫码会话并验证重连缓存 (8acff387)
  • docs(snowluma): 整理扫码路线并加入辅助程序检查 (8eda5c12)
  • feat(ui): 默认提供扫码入口并收紧确认与关闭状态 (b7cf34a6)
  • feat(runtime): 接入扫码生命周期与 SL 登录前后校验 (81d197d3)
  • feat(deploy): 为 SL 容器准备可回退的控件扫码环境 (b62007b7)
  • feat(snowluma): 通过系统控件实现 Windows 与 Linux 扫码 (c2022503)
  • feat(domain): 新增默认启用的 SL 扫码配置与状态契约 (47274f22)
  • docs(snowluma): 整理扫码路线并加入辅助程序检查 (b5499b9d)
  • feat(ui): 默认提供扫码入口并收紧确认与关闭状态 (7d1a4066)
  • feat(runtime): 接入扫码生命周期与 SL 登录前后校验 (585bee81)
  • feat(deploy): 为 SL 容器准备可回退的控件扫码环境 (3f0dd88c)
  • feat(snowluma): 通过系统控件实现 Windows 与 Linux 扫码 (341a1206)
  • feat(domain): 新增默认启用的 SL 扫码配置与状态契约 (c9f4161b)
  • docs: 完善项目介绍、使用指南与界面预览 (8e60125b)
  • docs: 完善项目介绍、使用指南与界面预览 (7d52aeea)
  • fix(ui): 保留 SnowLuma 探测失败快照并恢复登录徽章 (3b10f333)
  • fix(snowluma): 重建远端登录探测并按序处理主机重连 (a9c60f59)
  • test(chat): 等待转发弹窗完成聚焦与退场 (bbf6069b)
  • fix(chat): 改善账号选择悬停留白与状态辨识度 (7445ebad)
  • feat(chat): 根据会话列表位置切换消息翻页方向 (e393d91d)
  • docs(chat): 更新聊天交互与原生托盘实现索引 (214d0146)
  • perf(chat): 平滑切换会话并完善首次加载骨架屏 (50204b91)
  • fix(chat): 截断长文件名并提高文件卡片主题对比度 (2f0679e1)
  • fix(chat): 统一转发模式界面并保留退出动画内容 (74302090)
  • feat(chat): 用气泡旁进度环显示发送状态并支持取消 (6a914887)
  • feat(chat): 完善 Markdown 消息与内嵌键盘交互 (74f421bd)
  • fix(chat): 将转发消息标识绑定到预览节点 (56d48f1b)
  • fix(chat): 恢复自己发送和合并转发图片的本地来源 (07f006a0)
  • fix(desktop): 修复主窗口关闭后的托盘退出流程 (a52030c0)
  • perf(tauri): 使用原生合成动画平滑托盘展开和菜单切换 (949b1f90)
  • feat(chat): 完善附件、复制转发、重连与托盘交互 (c8cac0f2)

💬 遇到问题

  • 先看使用文档,里面有常见问题
  • 到 Issues 反馈,附上版本号和日志会快很多;也可以来 QQ 群 问
  • 这是远端 Linux 监控组件,不是桌面安装包;桌面端请看 v 开头的发布

完整变更:watch-v0.2.7...watch-v0.2.8

v0.2.7

查看更新收起

这版减少远端监控对 NapCat WebUI 的重复登录,配合 Desktop 3.4.2 处理 WebUI 鉴权失败和登录限流问题(#154)。

这版减少远端监控对 NapCat WebUI 的重复登录,配合 Desktop 3.4.2 处理 WebUI 鉴权失败和登录限流问题(#154)。

🐛 修复

  • 凭据复用 — 登录成功后,在后续探测中复用凭据,不再每轮都重新登录。token 或 WebUI 端口变化时会重新获取,凭据失效后也会重新登录
  • 登录退避 — 遇到 token 错误、登录限流或两步验证要求时暂停连续登录,稍后再重试,避免后台监控不断消耗登录次数
  • 错误识别 — 正确解析 WebUI 通过 HTTP 200 返回的业务错误,并保留 token 原始字符参与鉴权,避免把有效 token 处理成另一串值

升级说明

建议先升级 Desktop 3.4.2,再从组件管理更新远端 ncd-watch;Desktop 这版也修复了运行中二进制的替换和非 root 用户的启动流程。

本版没有新增配置字段,可继续使用现有监控配置。

提交与发布信息

📦 下载

一般不用手动下:在桌面端「组件」页给远端主机装 NCD Watch 即可。手动部署时按 CPU 架构选:

  • x86_64(大多数服务器)
  • aarch64(ARM 服务器、树莓派 64 位)

静态链接 musl,常见发行版都能直接运行 · 校验和:SHA256SUMS


  • docs(context): 补充 WebUI token 同步与鉴权退避落点 (40771c1e)
  • fix(ui): 展示 NapCat WebUI 鉴权失败与恢复状态 (585b0b0e)
  • fix(tauri): 在 WebUI 会话快照中回填鉴权状态 (812f6dcb)
  • fix(component): 暂存替换 ncd-watch 并检查启动结果 (5081929d)
  • fix(watch): 复用 WebUI 登录凭据并避让登录限流 (d2924920)
  • fix(runtime): 同步远端 Docker 的实际 WebUI token (4c18ed7d)
  • feat(deploy): 支持从运行中的 Docker 容器读取配置 (c375e121)
  • fix(napcat): 识别 WebUI 鉴权错误并退避重试 (fdb7db4b)
  • feat(domain): 定义 NapCat WebUI 鉴权状态与会话快照 (3a6f41df)
  • feat(ui): 截图新增「添加到聊天框」开关与应用级快捷键兜底 (d147fd34)
  • fix(tauri): 截图快捷键脱离聊天页注册并支持召回与仅剪贴板 (37050277)
  • feat(domain): 截图请求新增 addToChat 去向开关 (e3ac6b6b)
  • feat(overview): CPU / RAM 卡头加负载状态,端点换成小猫头 (5bc75a5f)
  • fix(ui): 终端面板打开时悬浮按钮留在原位并被面板盖住 (736afbb5)
  • fix(ui): 启动屏退场冲击波垫到 logo 之下 (c0201f49)
  • fix(ui): 占位文本过长统一单行省略 (327a6e41)
  • fix(ui): 弹窗关闭按钮改为固定正方形 (eef96f2a)
  • fix(ui): Select 选中项过长时单行省略 (f34fed7f)
  • fix(ui): 悬浮侧栏改为窄图标卡片 (33d1d24d)
  • test(debug): 等待输入焦点后验证命令面板键盘操作 (baa2bb49)
  • perf(ui): 按帧预览拖动尺寸并在松手时保存 (8331e93b)
  • perf(chat): 提升滚轮即时响应与反向接管 (4f0b2a87)
  • perf(ui): 收紧交互动画并修复中断残留 (2509f701)
  • perf(build): 限定更新模块构建脚本的失效输入 (31b64d24)
  • chore(ci): 移除临时缓存诊断开关 (b6d95de8)
  • fix(ci): 对齐缓存归档的输入时间精度 (a82e7ba2)
  • fix(ci): 补齐构建脚本跟踪的空环境输入 (d000a34d)
  • test(ui): 限定浮层焦点测试的查询范围 (9633e20a)
  • perf(ci): 复用完整测试产物并校验源码时间戳 (f7e6a2ba)
  • perf(ci): 合并重复构建并建立主分支共享缓存 (0bdd469b)
  • perf(tests): 限制本地并发并减少测试环境开销 (b3339744)
  • test(ui): 修复发版前端门禁的导航与缓存测试 (a4e81f2c)
  • docs(neobot): 记录桌面管理覆盖与验证结果 (a1df9031)
  • feat(ui): 补齐 NeoBot 桌面管理操作 (2c8c1e70)
  • feat(neobot): 完善面板转发与远端 SSH 隧道 (dd6d4a42)
  • fix(ui): 优化调试台布局与请求回包交互 (ad15f246)
  • fix(chat): 修复放大窗口后图片查看器缩放抖动 (769ea58a)
  • feat(ui): 增强 JSON 编辑器的输入与预览体验 (e2500099)
  • fix(chat): 让截图全局快捷键独立于聊天窗口生命周期 (fb51bece)
  • docs(chat): 记录聊天总开关的生命周期行为 (99c4acd6)
  • feat(ui): 将聊天接入功能开关与入口门控 (1d0262b3)
  • feat(tauri): 热更新聊天开关并回收窗口和截图入口 (0fac8f96)
  • feat(runtime): 支持聊天总开关与后台租约回收 (4439522b)
  • feat(domain): 新增聊天功能总开关配置 (234b0fe6)
  • fix(chat): 修复关窗迟滞与回收后的窗口唤起 (39102f6a)
  • feat(ui): 侧栏形态可切换——悬浮卡片 / 经典贴边 (91a8c9cc)
  • feat(domain): AppUiPreferences 新增 sidebarStyle 悬浮侧栏字段 (be4cea98)
  • fix(chat): 合并适配--useChatScreenshot 的 isTauri 改走 core/domain/runtime/env,消除 transport 直连 (be736c28)
  • fix(chat): 合并适配--AttachmentPreview 本地预览读取走 useChatSend 出口,截图测试补 QueryClient Provider (7f046b5a)
  • docs(ui): coverage 地板入 PR 自检清单 (dfa7d4ea)
  • refactor(ui): ChatSearch 拆分——搜索模型入 core/domain 带单测,工具栏/结果/展示件外提 (c371cbc2)
  • docs(chat): 记录原生截图和双向长截图功能落点 (e2bb90f7)
  • feat(ui): 将截图工具与快捷键设置接入聊天草稿 (f6bd5f55)
  • feat(tauri): 实现原生截图标注与双向滚动长截图 (c0b42a9d)
  • feat(runtime): 管理有界截图附件缓存与会话留存 (c1ae6344)
  • feat(domain): 定义截图请求、快捷键与草稿预览契约 (09811719)
  • fix(ui): useSplashExit 补 gsap import——开屏退场引用未导入的模块致浏览器预览整页崩 (44cc52c0)
  • refactor(ui): SegmentView 按段类型拆 segments/ 12 件;chatStore 豁免不拆(单类结构) (759becc8)
  • refactor(ui): ChatPage 拆分——Workspace/List/Conversation/SearchDialog 外提,连接标签与文件信号入 core/domain (2ba5ec6b)
  • test(ui): coverage v8 地板——core/domain+hooks lines 60/funcs 71/branches 79,test:coverage 脚本 (045935bb)
  • test(ui): ContextMenu 测试删 CSS 变量魔数断言,保留行为断言 (c9f5bbb7)
  • test(ui): domain/hooks 测试地板第一批——karin/connections/metrics-settings/config-transfer/paths/workingSet 语义外 15 套新测试 (a8d77402)
  • refactor(ui): SchemasteryForm 按字段类型拆目录,模型纯函数独立成文件 (19b1b68d)
  • refactor(ui): 引导页/开屏拆分——hero 文案与概览格式化入 core/domain,widget 外提 (15f8bd78)
  • refactor(ui): 组件页拆分——探测/发布查询纯逻辑入 core/domain,五组编排外提 co-located hooks (1e46bce6)
  • refactor(ui): 设置页拆分——_shared 断环,通知 Tab 按频道区块外提 (ded4b1ac)
  • refactor(ui): 调试台拆分——CollectionsPanel 拖拽落点纯逻辑入 core/domain,右/左栏区块件与 tabCycling 外提 (cb78c694)
  • refactor(ui): Bot 配置页拆分——保存/SnowLuma App/远程网络导入编排外提 co-located hooks (2e3f1e05)
  • refactor(ui): Bot 列表页与运行指标页拆分——启动编排进 hooks/bot/useBotStartFlow,指标展示纯逻辑入 core/domain (fb7ffef7)
  • refactor(ui): mock 三巨头拆表——app-config/app-framework/onebot-debug 按框架与接口域分目录,薄壳保导出面 (d411df1e)
  • build(ui): ESLint 分层禁令上 error 门禁,lint 并入 verify;测试限流 8 线程 (3bd1085c)
  • chore(ui): 清理 unused eslint-disable 指令与 ANSI 正则禁用注释位置 (cf7f51ed)
  • refactor(ui): 反向依赖清账——neobot 解析表与 isTauri/preferencesStore/mockHosts 下沉 core/domain (29ce3929)
  • fix(ui): 聊天视图恢复失败弹出 InfoBar 提示 (863346c2)
  • refactor(ui): debug 右栏媒体服务工厂经 hooks/chat 出口 (59099a32)
  • refactor(ui): Bot 趋势历史拉取迁移 react-query (f695b002)
  • refactor(ui): 聊天展示件下沉 shared/chat,debug 与 chat 共用同一套时间线组件 (cb7de56d)
  • refactor(ui): 聊天页/成员面板 service 直连迁到 hooks 层 react-query (56b82e4a)
  • refactor(ui): 新建 hooks/chat 分层,聊天 service 调用收口(消费方迁移下一提交) (2ee2dd2b)
  • chore(ui): ESLint 依赖与分层门禁配置就位(门禁批次启用) (caccc98e)
  • fix(ui): Bot 日志缓冲改模块级 store,切页期间事件不再丢失 (afe20c6d)
  • refactor(ui): 诊断台日志/资源监控迁移 react-query (bc8ce83c)
  • refactor(ui): terminal 手搓拉数迁移 react-query (3ed4a21f)
  • refactor(ui): 应用壳 service 直连收进 hooks/desktop 与 core/domain/windows (c156de2d)
  • refactor(ui): debug 页 FileField/TopBar 直连收进 hooks 层 (46e16d00)
  • refactor(ui): apps 详情页 service 直连收进 hooks/apps 分层 (46e7f1f6)
  • chore(ui): 删除 5 个无引用孤儿文件 (40ec6988)
  • chore(chat): 内置 QQ 表情缩略图并同步功能索引 (2ce1af3f)
  • feat(chat): 补齐日常聊天交互并优化发送与附件体验 (f2518a13)
  • feat(chat): 完善消息状态与媒体表情兼容 (c797ee6e)
  • fix(tauri): 重试被失焦打断的聊天窗口恢复 (d42394f8)
  • feat(runtime): 补齐聊天动作并校验群成员管理权限 (d7d8933b)
  • feat(domain): 新增聊天防撤回偏好 (c9da8e84)
  • fix(chat): 归档预算截断时保持最新消息段连续 (ff4942af)
  • docs(perf): 补充自动审查修复和集中验收结果 (caafa988)
  • fix(tauri): 门控操作系统触发的窗口恢复 (34e45a0c)
  • fix(chat): 对归档中的无 ID 事件保持回放幂等 (8aed709a)
  • fix(chat): 保留大图片发送结果并分离轻量归档副本 (c676898f)
  • fix(tauri): 确认 WebView 可见后再显示原生窗口 (0c4e856b)
  • test(tauri): 移除依赖外部配置隔离的产品验收入口 (47bf3a86)
  • docs(perf): 记录 Chat 双窗内存优化与验收边界 (e12c40e9)
  • test(tauri): 增加 Chat 内存对照和产品双窗验收入口 (566fffc6)
  • perf(tauri): 降低 Chat 绘制成本并修复双窗回收 (1ac5b95f)
  • perf(ui): 隔离 Chat 构建入口和重型依赖 (684405d6)
  • fix(ui): 清理卸载后才注册的窗口尺寸监听 (a5e08419)
  • docs(perf): 记录内存边界修复和验收结果 (b9ec6a20)
  • perf(ui): 限制转发缓存与媒体请求并发 (5b3f5c19)
  • perf(chat): 限制消息阅读工作集并批量摄入事件 (19fd2b12)
  • fix(tauri): 确认 WebView 调度结果并限制失败重试 (5319224c)
  • perf(onebot): 为事件缓存和待推队列增加字节预算 (efd3c794)
  • fix(tauri): 配对注销原生面板字体加载器 (178ae4a0)
  • feat(ui): 聊天群文件对话框与时间线文件下载 (848f6fe0)
  • feat(chat): 群文件浏览、整理与直链下载的后端 (267fa413)
  • style(ui): 全仓 prettier 重排 src-ui (ea767bcf)
  • chore(ui): 接 Prettier 并给 fmt:check 挂上 verify (1aa36ce5)
  • style(rust): 全仓 cargo fmt (40daa80f)
  • feat(ui): 组件卡片头像从只给应用端扩到全部组件 (b68636d9)
  • feat(bot): 会用系统 QQ 的 Bot 启动前先提醒一次 (a59cf542)
  • feat(qq): Windows QQ 改侧装解包安装,并能回答本机 Bot 会用哪份 QQ (6bd3e1cb)
  • docs(appframework): NeoBot 路径说明与 mock 同步到 app/data (4a26d560)
  • fix(appframework): 启动钉住 NeoBot 数据目录,旧对接自动搬到 app/data (0bd5ff5f)
  • fix(appframework): NeoBot 配置备份跟着改到 app/data (c456dcfe)
  • refactor(tauri): 移除 WebView 版托盘面板 (70b8771a)
  • fix(tauri): 原生托盘面板修菜单一进就消失,闲置 30 秒回收 (a01a2141)
  • feat(tauri): 托盘面板(主托盘 + 账号托盘)改原生 Direct2D 绘制 (3c475040)
  • feat(chat): 账号托盘右键菜单和悬停未读预览改成自绘面板(WebView 版) (2a7b1f5c)
  • perf(tauri): 主窗和调试台失焦 2 分钟后也降到 Low (8dffbce3)
  • perf(ui): 外壳入场动画只往前填,播完不再占合成层 (d55efdd5)
  • feat(tauri): WebView 调度器接管窗口显隐,藏起即休眠、聊天窗失焦降内存 (58e623ec)
  • style(chat): 聊天页重做视觉,嵌进主窗口时贴边排而不是一张卡片 (464a1e50)
  • feat(tauri): WebView 调度器第一步,按窗口统计内存 (114d3c8a)
  • perf(ui): 状态点呼吸和吉祥物 zz 换成 CSS 动画 (2bc6d80b)
  • perf(tauri): 主窗藏到托盘时 WebView 一起设不可见 (26d8a101)
  • fix(tauri): release 主线程栈调到 8 MB,修启动即栈溢出 (901a88c3)
  • chore(bindings): 同步 ts 绑定(数据目录注释改动进了生成的 JSDoc) (af900a8a)
  • fix(appframework): NeoBot 数据目录是 app/data 不是 data——修导入失败与写错文件 (35547a6f)
  • chore(build): 按 review 意见删掉 /STACK 兜底 (583dc738)
  • style: rustfmt 本 PR 引入了未格式化代码的文件 (0a9779a2)
  • chore: 版本号退回 3.3.1,交给发版流程统一处理 (01d6c073)
  • fix(ui): 新建实例真正默认不随桌面端启动,部署页认数字形式的 QQ (bd29a19e)
  • fix(runtime): 自重启接管只认 NeoBot,接手后的退出不再报成正常 (b6847227)
  • fix(runtime): 「原始文件」的 Bot 侧配置只读本机原生 NapCat (db70dbb4)
  • fix(appframework): NeoBot 面板转发拒绝远端实例,凭据错误分清连不上与密码错 (df322f61)
  • feat(ui): 所有图标小按钮都给气泡——全局机制回落 aria-label (6ed5f5ad)
  • feat: 原始文件含 Bot 侧配置、提示气泡配色随主题、更多按钮补描述 (b2a85086)
  • chore(release): 版本号 3.3.3 -> 3.3.4(并变基到最新 main) (bc0e5d8a)
  • feat: 实例默认不自启、版本管理独立成页、图标按钮补功能描述 (ad3b70e8)
  • fix(ui): 按 1.2.3 实机反馈修四处——版本闸门、滚动、404 话术、登录反馈 (98431ddc)
  • chore(release): 版本号 3.3.1 -> 3.3.3 (eee52062)
  • fix(build): 给主线程 16 MB 栈——上游深递归把启动顶炸了 (e6b73636)
  • fix: 按第二轮盲审结论修文档与文案(含 1 处与代码矛盾的旧注释) (35564d54)
  • feat(ui): 部署页可直达「机器人」页新建 Bot (bcdcad05)
  • fix(ui): 「机器人 QQ 填了没」对着面板的 defaults 判,不写死 '0' (a4249545)
  • docs(ui): 部署页说清 token 的覆盖关系 (be83d261)
  • feat(ui): NeoBot「部署」页——把「还差什么」列出来,并一键连上 QQ (84429eff)
  • feat(ui): 面板凭据改为「先探状态再指引」,不代替用户设密码 (6d19b933)
  • feat(ui): NeoBot 插件页接上管理动作(安装 / 启停 / 重载 / 卸载) (e12559eb)
  • feat(ui): NeoBot 模型 / 提示词 / 记忆 / 插件四页,并按盲审结论修缺陷与文案 (f7ca8ff6)
  • feat(ui): NeoBot 概览页——第一条真正读面板数据的通路 (c2b720bf)
  • feat(appframework): 面板凭据(记住面板密码)落库与 IPC (16dfa4d9)
  • feat(ui): NeoBot 应用端卡片加品牌头图 (88e881a0)
  • feat(appframework): NeoBot 面板会话缓存与受白名单约束的面板转发 (0b89af8a)
  • feat(ui): NeoBot 详情加「Web 控制台」页,标注面板完整能力 (67553906)
  • docs(appframework): 更正 NeoBot 不走桌面端商店的注释 (aacb379e)
  • fix(appframework): 应用自重启后继续跟踪,不再误判为已退出 (3982bcbf)
  • fix(runtime): 冷账号未读群加入 QQ 免打扰解析队列 (31185622)
  • fix(ui): 前端偏好恢复清掉快照缺省的白名单键 (7904bf76)
  • fix(tauri): 本地图片预览先查体积再截断读盘 (a0059aee)
  • fix(config): 导出覆盖改名兼容 Windows、导入拒绝实例共用安装目录 (1b85daf1)
  • fix(appframework): 配置备份不再收 koishi 可执行清单 package.json (2b4bc91e)
  • fix(appframework): AstrBot 插件 metadata.yaml 行内注释不再污染身份校验 (a66e15c9)
  • fix(config): Windows 短路径别名参与框架恢复预检 (e91dfc61)
  • feat(config): 完整配置备份与框架配置恢复 (57fc53f9)
  • chore: 同步聊天面板与消息归档相关变更 (6aafb4ce)
  • docs(context): 同步 AstrBot 代登录策略落点 (bab8256a)
  • feat(runtime): AstrBot 实例启动注入桌面托管会话密钥 (9ab671b7)
  • feat(appframework): AstrBot Dashboard 代登录支持 desktop-session 并兼容新旧密码协议 (d9118031)
  • fix(ui): 版本入口显隐贴合框架能力与实例状态 (cf096c75)
  • refactor(appframework): 清掉 NeoBot 接入留下的死代码 (a9aaf6f4)
  • fix(appframework): 两份配置收进同一次备份写 (79604574)
  • test(ui): 版本清单 mock 与真机口径对齐 (3718faca)
  • fix(ui): 详情页头部安装带上已选版本 (ee4d54ad)
  • fix(ui): loguru CRITICAL / SUCCESS 等级判定补齐 (fa5ddec3)
  • fix(ui): PEP 440 前端比较器同步后端同构修正 (f11ffa2a)
  • fix(runtime): 冷认领的 program 与启动写盘同口径 (d11a39cf)
  • fix(runtime): 应用端重装 / 换版本实际执行 (96037bbf)
  • fix(appframework): PEP 440 比较器 dev 方向与 pre 分隔符序号解析 (547b9310)
  • fix(appframework): 修正 NeoBot 安装重装与停止对接路径的实例边界 (e9bae01d)
  • fix(ui): Select 下拉限高并可滚动,选项多时不再选不到 (7b22976f)
  • test(appframework): 补 NeoBot 退出端点的 HTTP 请求路径测试 (f31bd1a2)
  • feat(appframework): NeoBot 接优雅关闭(走面板退出端点,带版本闸门) (bedf5242)
  • fix(appframework): 按其他框架规范化 NeoBot 简介,去掉自指测试 (65d944ef)
  • feat(ui): 实例列表卡片也提示可更新 (ec5d593b)
  • feat(ui): 应用端版本显示、可更新提示与「装任意版本」 (c7005bbd)
  • test(appframework): 加查 PyPI 的真机冒烟(默认 ignore) (99a02d05)
  • feat(appframework): 版本查询打通到 IPC 与前端服务层 (12a30d20)
  • feat(appframework): PyPI 版本清单查询(PEP 440 排序) (4769ad01)
  • feat(appframework): 安装时可按生态指定版本,并可传入 PyPI 镜像 (675de3d1)
  • fix(appframework): NeoBot 读真实版本号,不再返回字面量 "installed" (98214475)
  • test(ui): 补 NeoBot 的浏览器预览 mock (92258f7d)
  • fix(appframework): 修正 NeoBot 仓库地址并把交流群写进简介 (d3c806ba)
  • fix(ui): 日志解析支持裸 ISO 时间与竖线分隔等级 (8553d14e)
  • docs(context): 补全应用端框架名单并记下 NeoBot 的两个硬名单 (474bddcd)
  • feat(ui): NeoBot 显示名与 ts-rs 生成物 (b3a2244e)
  • feat(runtime): NeoBot 依赖图快照与进程识别 (b78dc6e3)
  • feat(appframework): NeoBot 适配器与注册 (c9a105a8)
  • feat(appframework): NeoBot 导入探测(probe_project) (31be02ed)
  • feat(appframework): NeoBot 类型化配置(两份 TOML) (3a21394c)
  • feat(appframework): NeoBot 对接计划(integration) (420d6032)
  • feat(appframework): NeoBot 组件(安装 / 探测 / 启动) (6a7f2b62)
  • feat(appframework): 新增 NeoBot 框架清单(manifest) (3bfe3d94)
  • feat(domain): ComponentId 新增 NeoBot 变体 (a74c1064)
  • docs: keep local agent work records out of version control (51a5b031)
  • fix(windows): 分离开发窗口任务栏图标身份 (ee41960a)
  • fix(chat): 打磨聊天媒体、搜索与会话交互 (3221b313)
  • fix(tauri): 补齐 macOS 与 Linux 应用图标资源 (e7ed39b7)
  • docs(ui): 补充聊天体验对照 Stapxs 的优化报告 (82b97d1b)
  • docs(context): 更新聊天列表与消息操作功能落点 (994ae8fd)
  • feat(ui): 会话列表键鼠直达与消息原地操作 (0ec1c894)
  • style(tauri): 补齐配置文件末尾换行 (3e3d9f6a)
  • chore(build): 忽略本地 pnpm 存储缓存 (ca1ab4cd)
  • docs(context): 更新聊天媒体与群盒子功能落点 (bf8cf280)
  • feat(ui): 完善聊天媒体与会话资料交互 (77a25e24)
  • feat(runtime): 支持聊天媒体动作与分级回包容量 (8290c536)
  • feat(ui): 雪花图标多击触发偏心旋转彩蛋 (1bd1a7d3)
  • docs(ui): 概览 SnowLuma 雪花彩蛋设计 (1bca95cf)
  • docs(ui): 概览 SnowLuma 雪花彩蛋设计 (c6e4b8c9)
  • feat(chat): 保存聊天档案并完善群盒子与历史分页 (77dbf95a)
  • fix(ui): 修复资料弹层透明遮挡与挂载时序 (e61043cd)
  • feat(ui): 完善原生聊天双栏与输入交互 (654ebc51)
  • fix(ui): 修复弹层重复打开与退场重开的焦点恢复 (f3830476)
  • docs(context): 补充原生聊天功能落点 (a6aed643)
  • feat(ui): 新增原生双栏聊天与账号会话交互 (2ad82a5a)
  • feat(tauri): 接入聊天命令和会话生命周期 (3280e2f1)
  • feat(runtime): 新增独立聊天会话与调试隔离 (294674a9)
  • feat(ui): 更新猫尾品牌图标与应用资源 (a7bb828a)
  • feat(component): 新增 VC++ 运行库组件,装 NapCat 自动补装、启动门禁拦截 (f73b6fed)
  • feat(component): 组件卸载能力显式声明,系统托管项引导至系统卸载页 (6029f7c5)
  • fix(scripts): 发布正文的提交标题转义 @,不再误提及 GitHub 用户 (708b8a7e)
  • fix(ci): 为 launch plan ColdStart 测试 stub QQ 注册表 (25f88f93)
  • fix(ci): rust-core 显式 setup-node 恢复 launch plan 测试环境 (9909d9d9)
  • fix(settings): 功能页顶栏说明整段去掉 (e4b4b64c)
  • fix(ci): Defender 排除步骤兼容空 RUSTUP_HOME (6f1a6f0d)
  • fix(ci): dispatch 套件不因 changes job 失败而挂 (307ea5b5)
  • perf(ci): 路径过滤与 Rust 双 job 并行,砍掉 PR 门禁墙钟 (07fe916a)
  • fix(window): 调试台弹出窗命令改 async——sync 命令跑在主线程执行器上,从 IPC 里建 WebView 窗体会把主事件循环卡死(点了没反应、主窗失去响应拖不动) (06d0a4de)
  • fix(ui): 验收修正——onebot-debug.service 找回 DebugCatalog 导入,设置草稿补 mcp 段的透传与脏检查 (f9e60c79)
  • fix(mcp): 验收修正——rpc 测试按引用传请求帧,ToolError derive Debug,bot.rs 测试夹具补上 AppState.mcp (085434a4)
  • fix(debug): 流式调用验收修正——WS 文本/二进制帧分发的 future 补上 await,call 走 call_with_token 的 result,空手 upload_file_stream 放行普通单帧,下载安全名剥掉前导下划线,单测断言不再要求句柄 Debug (1a0ad2c4)
  • chore(generated): ts-bindings 重新生成(流式调用与 MCP 服务的新类型、AppSettings.mcp、FeatureToggles.apiDebug、DebugCallOrigin+mcp),Cargo.lock 随 axum 引入更新 (87c32782)
  • fix(debug): 导出代码补「自动」通道占位分支,右栏 api 补依赖,对比框删掉过时注释 (70042ced)
  • feat(debug): 调用历史加「对比响应」,勾选同一个接口的两条记录并排看回包,按行 diff 高亮(自带 LCS 行 diff) (0ebbbcae)
  • docs(debug): codemap 第 16 节补流式调用编排与本机文件预置的落点 (7e053d5d)
  • feat(debug): 流式接口可调用——发送条进度、本机文件选择、解除四处「第二期」占位 (22939f88)
  • feat(debug): 前端流式调用通路与本机文件占位(服务、hook、domain、mock) (7edb5e64)
  • feat(debug): 注册 onebot_debug_call_stream 命令,进度走 Channel 推给前端 (0c0b7042)
  • feat(debug): 流式调用编排只走内部通道:分块上传 / 下载收拢进度 / 本机文件预置 (94ca298d)
  • feat(onebot): SnowLuma 调试接口补 invoke-stream 与按需上传两块能力 (16ad2b32)
  • feat(onebot): WS 客户端支持流式调用(同一 echo 逐帧收取,背压不丢帧) (e703d1c2)
  • feat(debug): 定义流式调用的 IPC 类型(进度信封、本机文件占位、调用请求) (c4194d77)
  • feat(debug): 请求标签加「导出调用代码」,按当前动作、参数和生效通道生成 curl / JavaScript / Python 片段(token 打码) (0518ca3b)
  • feat(debug): 加好友 / 加群请求卡片加「同意 / 拒绝」,走现有调用链发 set_*_add_request,拒绝前二次确认 (4b8043ba)
  • docs(codemap): OneBot 调试台补 MCP 服务落点,开关铁律更到已接线 (1637f14b)
  • feat(ui): 功能开关接 apiDebug,设置页加 OneBot 调试台项,设置往返带 mcp 段 (47ab6eac)
  • feat(tauri): 启动与设置保存时按落盘值接线调试台/MCP 开关(M7) (f7a93e94)
  • feat(mcp): 新增 ncd-mcp,把 OneBot 调试台开成本机 agent 的 MCP 服务 (63770c12)
  • feat(debug): 调用历史收录 MCP 来源的调用 (ed56a997)
  • feat(domain): 调试台开关 apiDebug 与 MCP 服务设置落盘,调用来源加 mcp (e29aeb5d)
  • feat(debug): 完整消息构建器接入聊天输入框(段拼装、双向转换、实时预览) (0f6a9448)
  • feat(debug): 消息事件详情气泡加「回复 / 撤回 / 查发送者」快捷操作,在中栏开一个预填好参数的请求标签 (283a6e7b)
  • docs(codemap): 记调试台弹出窗的命令 / 窗口壳 / 单窗共存策略落点 (23257101)
  • feat(debug): 顶栏「弹出为独立窗口」与调试台的单窗共存 (db60d1f6)
  • feat(debug): 调试台弹出窗的前端壳 (2f6b6e1f)
  • feat(window): 调试台弹出窗的窗口命令与关窗放行 (b669a7c4)
  • refactor(debug): 输入框草稿升级为 ComposerEntry,发送链路支持构建器段 (94cb45ba)
  • feat(debug): 新增完整消息构建器域逻辑(草稿拼装/拆回/校验)与单测 (718458ca)
  • feat(debug): 接口目录主名剥掉上游简介里的参数括注和分号补充(完整简介留在悬停提示和文档页) (05182a1a)
  • feat(debug): 接口目录行改用中文简介作主名,字段名只在没有简介时显示(悬停提示和右键菜单里仍有) (27426ee6)
  • feat(apps): Koishi 控制台功能原生化,不再跳 WebUI:控制台 WS 扩 explorer/entry/database 推送、沙盒消息缓冲与 sandbox/request 应答、entry-data 就地合并;新增试聊(私聊/群聊,发消息前 sandbox/get-user 建档)、指令(别名/权限/冷却/次数,走 command/aliases 与 command/update)、数据库(表目录+翻页只读,dataview 序列化按上游格式编解码)、文件(树+文本编辑/图片预览/新建改名删除)四页;页头「试聊」与概览工具直达指原生页;真机协议探针对着真实例验证通过 (baf388dc)
  • fix(apps): Koishi 体验打磨:插件原文 JSON 换 CodeMirror 编辑器(着色/补全/诊断,空配置按 schema 默认值预填、写回清到默认值不落盘,无 schema 给空态不再摊空编辑器);日志按 Koishi 全年月日+单字母等级格式拆时间/等级/来源名上色;CopyCodeBlock 单行时文本和复制钮上下不对齐改居中紧凑钮;InfoBarStack 不再把内部 visible 透传到 DOM (aadf3a29)
  • feat(debug): 调试台界面松绑:参数行报错/提示/说明并成一行、通道行和测试连通合成一张卡、左栏搜索收进标题行图标(点按或 / 展开)、接收指示挪到右侧操作组、右栏收起补回退场动画 (f6c42b33)
  • feat(debug): OneBot 调试台第一期:三栏工作台、三种通道、NC/SL 统一目录与事件流 (5a5e1988)
  • fix(apps): 云崽渲染页「自动」选项不再让页面崩掉 (17769fb5)
  • docs(codemap): 记 Koishi 应用端的后端 / 前端 / 运行期 / 冒烟落点 (ce77991d)
  • chore(mock): 浏览器预览里加一个云崽实例 (acd3d7f4)
  • feat(apps): 云崽详情页:概览、基础 / 主人与权限 / 群聊 / 渲染、插件、连接 (a126a983)
  • feat(app-store): 商店可按分类筛选;推荐标签可改名;装不了的条目给「手动装」 (4bdf5c6a)
  • feat(ui): 配置原文编辑器给 YAML 着色 (27911e6a)
  • fix(appframework): 云崽单独设置里沿用默认的项不再序列化成 null (637651bd)
  • test(apps): Koishi 真机冒烟:koishi_real_smoke 真下整包、装 OneBot 适配器、对接、起、控制台首页 200、状态接口通、冒充 NapCat 握反向 WS 101、控制台里看到 Bot、停后无残留进程且端口释放;koishi_live_smoke 对着在跑的实例走控制台 / 表单 / 跑着对接;进程扫描函数从 MaiBot 冒烟里提出来两边共用;registry 测试的未注册例子换成 yunzai (2a5447e6)
  • feat(apps): Koishi 应用端前端:概览(状态卡 + 运行信息 + 当前设置 + 控制台入口)、服务器、全局设置、插件树(分组可折叠、悬停出小开关、核心插件上锁、按 Schemastery schema 画表单:交叉分段、标签联合按判别键展开成分支自己的段、数组 / 字典 / 元组 / JSON 兜底)、添加已装插件、插件市场齿轮跳到插件配置、连接页;mock 模式整套可走 (bc315607)
  • style: rustfmt 新加的云崽 / git / redis / yaml_patch 代码 (c470249b)
  • feat(appframework): 第五个应用端框架 TRSS-Yunzai(云崽) (29b71665)
  • feat(app-store): 商店目录可以分几份文件拉;单文件插件同名多源依次回落 (8830588b)
  • feat(app): 停应用实例前先请它自己退,等不到再收整棵树 (59e891b0)
  • feat(appframework): yaml_patch 按键路径改 YAML,保留注释、行尾注释和没见过的键 (f2663a97)
  • feat(component): 新增 git / redis 运行时依赖组件,给云崽用 (2d8df92c)
  • feat(apps): Koishi 应用端后端(官方整包安装 + 反向 WS 对接 + koishi.yml 插件树 + 控制台 WebSocket + 插件市场) (db43ef1f)
  • ci(release): watch 发版 make_latest=false、Desktop 发版显式 make_latest=true,仓库首页的 Latest 不再被 ncd-watch 顶掉 (0233dc04)

💬 遇到问题

  • 先看使用文档,里面有常见问题
  • 到 Issues 反馈,附上版本号和日志会快很多;也可以来 QQ 群 问
  • 这是远端 Linux 监控组件,不是桌面安装包;桌面端请看 v 开头的发布

完整变更:watch-v0.2.6...watch-v0.2.7

v0.2.6

查看更新收起

远端 Linux 主机侧监控二进制(Desktop 退出后仍可 Webhook / 探活)。

远端 Linux 主机侧监控二进制(Desktop 退出后仍可 Webhook / 探活)。

🐛 修复

  • Docker 部署的 Bot 当 QQ 消息通知的发送方时,先用 docker inspect 查它的 OneBot HTTP 端口实际映射到宿主机哪里,不再只认 Desktop 按部署规则推出来的地址;自己用 compose 起、再导入 Desktop 的容器也能用

⚡ 改进

  • QQ 消息通知按顺序试发送方,一个完全发不出去就换下一个;已经有人收到的不会换发送方重发
  • 配合 Desktop 下一版:发送方的端口没映射到宿主机时,Desktop 不再写一个连不上的地址

与旧版 Desktop 兼容,没有新字段时行为和 0.2.5 一样。

提交与发布信息

📦 下载

一般不用手动下:在桌面端「组件」页给远端主机装 NCD Watch 即可。手动部署时按 CPU 架构选:

  • x86_64(大多数服务器)
  • aarch64(ARM 服务器、树莓派 64 位)

静态链接 musl,常见发行版都能直接运行 · 校验和:SHA256SUMS


  • docs(release): ncd-watch 0.2.6 发版说明(Docker 发送方现查端口映射、QQ 消息通知换发送方重试,#137) (1493258b)
  • fix(watch): Docker Bot 当 OneBot 发送方时不再把容器内端口直接写给 ncd-watch:只认监听在通配地址的 HTTP 服务,按部署规则换成宿主机口,规则里没有就带上容器名和容器内端口,由 ncd-watch 发送前 docker inspect 现查;直接运行的 Bot 第一个是远程地址时接着找下一个;ncd-watch 一个发送方整体失败就换下一个,部分成功不重发;docker inspect 端口解析挪到 ncd-domain 两边共用(#137) (11f20640)
  • feat(settings): 设置加「功能」页,可选模块能整块关掉:协议端 NapCat / SnowLuma 分开开关(至少留一个),应用端总开关 + Karin / NoneBot2 / AstrBot / MaiBot 各自开关,容器页、远端值守 ncd-watch、内嵌终端;关掉的从侧栏和各页入口里拿掉,并且后台少干活:应用端实例不再随桌面端启动、不探远端 Docker、组件目录不列也不探测关掉的组件、不挂终端面板并关掉开着的终端、不写 ncd-watch 心跳;心跳另外只写给装了 ncd-watch 的远端(先 stat 一次,省掉每 45 秒四五次 SFTP 写);会让东西没处管的由设置页拦住(有 Bot 用的协议端、有实例的框架、在跑的应用端、装着 ncd-watch 的远端);开关存 app-settings.json 的 features(FeatureToggles,缺字段当开),codemap 记落点 (5378d909)
  • perf(ui): xterm 单拆 vendor-xterm,跟着懒加载的 TerminalDock 走,不再进启动预加载的 vendor(vendor 1088 KB → 581 KB,xterm 506 KB 只在终端面板挂上时加载) (f58b854c)
  • fix(docker): 远端 Docker Bot 的 WebUI / noVNC 隧道和 ncd-watch 的 webuiPort 改按 docker inspect 读容器实际端口映射(network_mode=host 用容器内端口),读不到才按 6099+QQ%500 推;推出来的口标成推测值,不盖掉 notify.json 里已有的口,导入的自建容器不再对不上(#137) (edcf3b16)
  • fix(ui): 暗色主题扫码登录的二维码改成浅底深码(最深底色的码 + 正文色的底),弹窗码区外圈也铺码的底色当静区;默认暗色和 Catppuccin 暗色三味原来是深底深码,对比度只有 1.4:1,拍屏模拟(反光 + 轻微失焦)下 WeChat 引擎 20 次只扫出 1~3 次,改后 20/20;单测卡住所有主题二维码对比度 ≥ 3.5 且必须浅底深码 (2ab5b358)
  • feat(ui): 外观主题加 20 个社区主题(Rosé Pine、Tokyo Night、Dracula、Nord、One、GitHub、Gruvbox、Solarized、Everforest、Kanagawa、Monokai),每个只写一份调色板,由 core/design/themes 展开成整套 token 注入;主题选择器按族分组拼行、弹层按可用高度滚动;跟随系统的暗色样式只在没写 data-theme 时生效,修掉系统暗色下 Latte 混进暗色 InfoBar 等变量;样式按 data-theme-scheme / data-theme-flat 分支,不再逐个列主题名 (93045473)
  • docs(user): 补 ncd-watch 用户文档(安装位置、systemd 与 linger、watch.json / notify.json 字段、掉线判断、Docker 部署没通知的排查:容器名、docker 权限、WebUI 端口规则、防火墙、桌面端在线时不发);常见问题补「远端 WebUI 改的连接被还原」和 ncd-watch 入口(#137) (93dd2b7c)
  • feat(bot): 远端 Bot 的连接页加「从远端读取」,读回远端当前的 onebot 网络配置,弹框列出增删改,确认后只填进表单、保存仍走保存条;后端 BotManager::fetch_remote_network 从 bot.json 推主机和容器名,复用导入时的读取(#137) (f0186ac1)
  • docs(release): 补上 v3.2.2 的策展正文(新版式,条目带领域前缀,说明应用端实例默认随桌面端启动) (82ed95e1)
  • feat(ui): 应用内更新日志跳过发布正文里的下载块和页脚标记,只显示本版重点和改动 (15764bc7)
  • feat(release): 发布说明换新版式:开头一句本版重点,下载直链放最前(MSI、固定文件名包、SHA256SUMS),分类带图标、条目标领域、#issue 自动成链接,全部提交折叠,末尾给反馈渠道和完整变更对比;README 同步版式说明 (7fdd7119)
  • refactor(task-queue): 任务的取消、删除、清空已结束收进 hooks/task-queue/useTaskQueueActions,任务队列页、列表项和详情不再直连 deploymentTaskService;frontend.md 的直连清单只留还没拆的几处并写明原因 (6c1db1f1)
  • refactor(components): QQ 依赖的探测、安装和记住 sudo 密码收进 hooks/components/useQqDependencyOps,组件页和依赖弹框不再直连 componentService;Docker 安装选项的类型从 useDockerHosts 拿 (dfec7058)
  • refactor(settings): 运行环境页探测本机 Node、关于页检查更新、配置导入向导的挑包 / 预览 / 导入都经 hook,这三处不再直连 service (4b9d1f0b)
  • refactor(remote): 扫本机 SSH 私钥、读 ssh config 主机和批量导入收进 hooks/remote/useLocalSsh,远端档案列表抽成 useServerProfiles 给 Bot 卡片用;添加服务器、从 SSH 配置导入两个弹框和 BotCard 不再直连 serverService (dcf86762)
  • refactor(ui): SnowLuma 协议载荷和 QQ 进程信息改用 ts-rs 生成的类型,bot.service 里手写的两份删掉;协议弹框、Bot 列表页、投递记录和 OneBot 发送方选择器的类型从 generated 引,不再为拿类型去碰 service (a96b615b)
  • refactor(tray): 托盘面板的调窗高、进轻量、退出和启停 Bot 收进 hooks/desktop/useTrayPanel,tray_panel_* 命令名回到 desktop.service,面板不再动态 import transport 直接 invoke (71adddad)
  • refactor(ui): 窗口拖放收进 transport 的 onFileDragDrop(坐标先换成逻辑像素),hooks 里的 useFileDragDrop 统一订阅和退订,文件拖放、终端拖放和设置页导入向导都走它,不再各自 import @tauri-apps;设置页那份原来关得比订阅回来早时会漏退一个监听;启动门显示主窗口改走 desktop.service (1388efa7)
  • fix(tauri): build.rs 运行时取 CARGO_MANIFEST_DIR 找 tauri.conf.json,不再用 env! 写死编译 build script 时的路径;target 被别的 checkout 编过时读不到配置,产品版本号注入不进去,自更新会拿 0.1.0 当当前版本 (d719a81a)
  • refactor(apps): 应用实例的停止和自动启动不再拿调用结果回写列表,交给 app_instance_changed 事件桥;新建、导入、启动、重新探测留着,注明事件管不到的情况 (1d767ea2)
  • chore(host): 去掉 Cargo.toml 里说 M5 要启用 winget/choco PackageManager 的旧注释和注释掉的 winreg / which 依赖,那个 trait 早已删掉 (ca8b6007)
  • fix(apps): local_port_free 自己也连一下 127.0.0.1 看有没有人在听:runtime 分配新实例口和改口时的 ensure_port_free 直接调它,原来只试 bind 回环,别的程序在 0.0.0.0 上听着时照样判成空闲;PortUsage 的本机分支改为直接用它,加一条对 local_port_free 的 0.0.0.0 测试 (b032391b)
  • fix(ui): 外链打不开统一弹「无法打开链接」:useOpenExternal 拆出 openExternalOrReport,终端和组件页的 Docker 下载页都走它,原来组件页把被拒的 Promise 吞掉没人报;错误条带 key,连点几次只留一条 (0a8c0664)
  • fix(components): 组件行在后端标了停不住的任务跑起来后不给「取消」,和任务详情一样看快照的 cancellable;排队、等输入和没有任务快照的(Desktop 自更新)照旧能取消 (9f37804e)
  • fix(config): LocalConfigStore 写文件时备份改成拷贝、临时文件直接原子替换上去,不再先把原文件挪成 .bak:读不排写锁,挪走到换上之间来读的会报 NotFound;加一条边写边读的测试,旧写法稳定复现 (6d03f054)
  • refactor(host): 远端缺 tar / unzip 自动补装只留 ncd_host::linux_pkg 一份(plan_missing_command + install_missing_command),解压和组件页的系统包任务都走它;刷索引加装包一条命令,上限统一 600 秒,原来解压那边 180 秒在全新机器慢镜像上不够,任务那边 300 + 600 秒又要干等一刻钟 (e8146373)
  • refactor(deploy): Docker bot 项目目录的 HOME 探测只留 ncd-deploy 一份并公开 docker_project_dir,runtime 渲染配置时调它;探测失败的原因带上退出码和 stderr (5ecc8c83)
  • refactor(runtime): 应用端日志尾巴的远端 tail 改用 ncd_host::remote_tail_lines,helper 加可选超时参数;这里仍给 15 秒上限并滤掉空行 (edecdce0)
  • refactor(tauri): 去掉已没有前端调用的 count_local_active_bots 命令,退出拦截和数据目录迁移直接调 BotManager (528adc6c)
  • refactor(ui): 删掉 errorBarCopy 里没人用的 briefAppError / appErrorBarContent 两个旧别名 (0339a845)
  • fix(tray): 托盘面板点「显示主窗口」不再自己调窗口 hide():面板的 capability 不给 hide,这句一直被拒,收面板已由后端 window_show 做 (a33ab8b4)
  • docs(context): lessons 补上审查后期修出来的几个坑:缓存作废漏了持久化副本、端口只 bind 回环、失败路径不发收尾事件、超时不杀子进程、共享配置并发写、测试抢端口和定时器活过环境 (19edcc09)
  • test(snowluma): 选 WebUI 端口的顺序和上限用假的空闲判断测,不再真去绑一段临时端口和并行的测试抢;真实探测只测自己攥着的口会被跳过 (5e8ab457)
  • test(ui): 测试环境的帧定时器统一在 setup 里收:没到的帧自己记着,文件跑完全撤掉、之后不再排,GSAP ticker 不会在 jsdom 拆掉后再要一帧报 window is not defined;各测试文件里零散的 ticker.sleep 去掉 (cdfcc618)
  • fix(config): LocalConfigStore 的整笔事务和单文件原子写排队进行,克隆出来的共用同一把锁:批量启动多个 NapCat Bot 时每个 Bot 的渲染都写共享的 napcat.json,同一秒的事务还共用一个备份目录,一边刚看到文件在、另一边已把它挪去当备份,或两边往备份目录拷同名快照撞上占用,随机有一个 Bot 报 configuration I/O failed(os error 2 / 32)起不来;bot_manager 的 batch_start 测试因此约三成会挂,main 上一样。加一条多线程同时写共享文件的测试,去掉锁时稳定复现;batch_start 测试先断言 failed 为空并打印原因 (a94bc563)
  • fix(host): 本机 run_to_string 超时时按进程树强杀命令,和 run_streaming 一样:原来 wait_with_output 拿走了 child,超时只是这边不等了,命令和它起的子进程照样跑完,还攥着本进程当时可继承的句柄;测试里超时的 cmd /c ping -n 60 这样活满一分钟,握着同时建的 ConPTY 输出管道,三条内嵌终端测试等不到退出码,整个测试二进制也要跑 60 秒;加一条超时后命令确实被收掉的测试 (2ceb8c9e)
  • test(snowluma): daemon 的 spawn 失败测试在临时 runtime_root 里放一个起不来的 node.exe:包里没有 node.exe 时 resolve_node_exe 会落到 PATH 上找,装了 Node 的机器上 spawn 真成功、mock 的 wait_ready 放行后 daemon 进了 Ready,两条回滚测试就挂;解析停在假文件上后 spawn 在哪都失败,第一条再断言错误确实是 Spawn (86f0b6d4)
  • test(ui): vitest 里 @gsap/react 指到它的 ESM 入口,测试进程只加载一份 gsap:vitest 不认 module 字段,原来 @gsap/react 走 UMD 包 require 进另一份 CJS 的 gsap,那份 ticker 一加载就醒、测试里 sleep 停不到,环境拆掉后还在要下一帧,全量跑时 listEnter 偶发 window is not defined 让 test:unit 退出 1;useGSAP 的 context 也因此收不到业务那份 gsap 建的动画,和打包后的行为对不上 (6bb54279)
  • docs(context): capabilities.md 末尾那句 AppState 说准:挂的是 runtime 里各 Manager / 执行器的句柄,缓存和任务表归它们自己;设置副本只经 ncd_runtime::desktop 的函数改 (bb708d1c)
  • docs(ui): frontend.md 自检 grep 也扫 src-ui/app,并加一条查动态 import(),托盘面板动态 import transport 直接 invoke 的三处和 hidePanel 那句被 capability 拒掉的 hide() 记进现存偏差;外链记下 openDownloadPage 交出裸 Promise、组件页再把它吞掉,terminalIo 抄了一份 useOpenExternal,useOpenExternal 的错误条没带 key;手写载荷的例子去掉已换成生成类型的 LogSnapshot;文头指到 capabilities.md 和 lessons.md (dd437454)
  • docs(context): codemap 逐条核对路径:commands/components、docker 和 NapCat 的 login_poller、webui_client 改成现在的目录,tray_menu.rs 换成 tray_panel.rs,登录态 plan 指向 archive,package_manager.rs 换成 linux_pkg.rs / pkg_output.rs;补上 AppManager 拆出的 manager/ 子模块、组件执行器 / 远端库存 / 启动预检、挪进 ncd-domain 的 IPC 类型、app-settings 的 runtime 写入口、shell 引号和端口探测、退出收尾和窗口通知、托盘面板 capability,去掉已删的 AppRuntime 和 NoneBot2 商店 / 配置表单的旧名;依赖图按 Cargo.toml 重画,验证命令改用 pnpm (e21cfdea)
  • docs(context): lessons.md 里 L4 状态那条改准:当初挂在 AppState 上的是远端库存缓存和活跃任务表,执行器是每个命令现建的;现在执行器启动时建一份、缓存和任务表归它,AppState 只放句柄 (95bdc2b1)
  • docs(context): 找回误删的 capabilities.md 并按现在的 crate 重写:先列最常被重写的小工具(shell 引号、which / command_exists、LinuxPackageManager、端口探测、远端读文件、known_hosts 匹配、host_id 互转、远端库存、app-settings 读写、退出收尾),再按 crate 列已有的 Manager、适配器钩子和组件;去掉早已删掉的 PackageManager trait、AppRuntime 和锁死的 QQ 版本 (6bfaeabd)
  • fix(apps): 正向对接的桌面端隧道也走 ensure_desktop_tunnel 那一份复用、开完再核一遍、登记:启动对账和用户重新对接同时开隧道时,后开的不再直接顶掉先开的那条(它的口可能已经写进适配器配置),两条 -L / -R 与正向隧道现在同一套流程 (4eb35382)
  • refactor(apps): AppManager 启动时经 with_component_executor 接上组件执行器,安装、插件装卸更、盯安装任务都用它和它那条任务队列;install_instance / submit_store_op / track_install 不再每次由命令层递进执行器和队列,命令只转 id 和参数,也不会有人递进一条和 track_install 盯的不是同一条的队列 (c4a5e1db)
  • refactor(apps): 插件任务和 WebUI 编排挪进 AppManager 后,只剩它自己在用的 run_app_plugin_task、join_webui_url 不再从 ncd-runtime 对外 re-export,run_app_plugin_task 收成 pub(crate)、track_install 收成 pub(super),新命令没法绕过 install_instance / submit_store_op 再自己拼一遍 (aa65a0ac)
  • fix(apps): WebUI 账号面板在读不到落盘账号时,用户名也按「桌面端记下的,没有就用框架首启默认名」给(AstrBot 给 astrbot),和登录代填同一个兜底,不再面板上显示空用户名、登录却填 astrbot;webui_account 里三段一样的兜底分支合成一个 (1f1a3426)
  • fix(apps): 本机挑应用端口时除了试 bind 回环,再连一下 127.0.0.1 看有没有人在听:别的进程(比如已在跑的 AstrBot dashboard)在 0.0.0.0 上听着时,Windows 照样允许再 bind 回环,原来的检查会把这个口当空闲,第二个 AstrBot 实例就分到同一个 dashboard 口;加了一条占着 0.0.0.0 的测试,改之前在 Windows 上确实判成空闲 (39a0b2d2)
  • fix(astrbot): 展开插件 zip 时子项名只挡挪不了的(空名、. / ..、带路径分隔符),notes..txt 这种名字里带 .. 的照常挪上来,不再因此整个插件装不上;zip 解包、展开或读 metadata.yaml 失败时把解到一半的插件目录和临时 zip 一起删掉,重试不再一上来就报「已存在」、更新也不会一直撞同一个错 (b6846868)
  • refactor(deploy): NativeDeployment::tail_log 直接返回 L1 的 LogSnapshot,删掉字段一模一样的 NativeLogSnapshot 和它的两处 re-export,本机、远端两个适配器不再逐字段抄一遍 (e514ad06)
  • style(traits): LogSnapshot 的 re-export 单独成一组、说明紧贴在它上面,cargo fmt 不会再把它排走、把那句「导出 TS、留原路径」留在 BotStatus 头上 (33a2f2c9)
  • fix(tray): window_show 先由后端收起托盘面板(轻量模式下照旧销毁),面板「显示主窗口」不再靠主窗抢到焦点才消失:面板的 capability 不给窗口 hide,前端那句 hide() 一直被 ACL 拒掉,主窗没拿到焦点(前台锁、轻量模式重建 WebView 期间)时面板会一直置顶浮着;也不必为此给面板加窗口权限 (f515a688)
  • perf(docker): 开了指标的 Docker Bot 启动时,项目目录直接用刚探到的 HOME 经 docker_bot_project_dir 拼,不再为它再跑一趟 echo $HOME (deb80731)
  • fix(ssh): 从本机 OpenSSH known_hosts 抄指纹时跳过用户 @revoked 过的公钥,不管那行写的是哪台主机(通配符、哈希主机名都不解析,宁可多排除几把退回确认框);之前 @ 开头的行一律跳过,同一把 key 另有一行普通条目时,吊销过的 key 会被当成可信抄进应用 (2064c585)
  • fix(ssh): known_hosts 主机字段只剩 ncd_host::remote::known_hosts_host_matches 一份,应用自己的 known_hosts 校验也按它比:裸主机名只算 22 端口、别的端口只认 [host]:port、主机名不分大小写、同行 !host 排除。之前应用那份裸 IP 条目对任何端口都算数,NAT 转发的同 IP 另一台机器会被判成指纹变了、连不上也抄不进 OpenSSH 里对的那把;行解析也收成 parse_known_hosts_line 一处,ncd-server 读 OpenSSH known_hosts 不再自己抄一份 (68e77b78)
  • fix(terminal): 文件栏打开文本前看大小改走新加的 Host::file_size(跟着链接取目标大小,本机一次 metadata、远端一次 SFTP stat,默认给不出是 None),不再远端多开一个 exec 跑 stat -L、本机把整个父目录每项都查一遍 metadata;本机指向大文件的符号链接也能在读进内存前就拒掉。测试替身改为覆写 file_size,不再认 stat 这个程序名;补上传文件夹的测试:里面指回上层的目录链接(Windows 用 junction)不跟进去、不会转圈,指向文件的链接照常传内容 (46a717d6)
  • refactor(component): LinuxQQ 解包前探 dpkg-deb / rpm2cpio / cpio 改用 Host::command_exists,删掉 qq.rs 里自己拼 sh -c "command -v" 的循环体和 command_available;同一个函数里不再两种探法并存,命令名也按 Host 的规矩转义 (61d49314)
  • fix(ncd-watch): 远端 HOME 带空格或引号时 ncd-watch 也能正常停、起:pkill -f 的匹配路径整条只加一层单引号(原来转义结果外面又套一层单引号,带空格时 pkill 拿到两个参数、旧进程停不掉),nohup 那行的二进制和 --root 也加引号,systemd unit 的 ExecStart 按 systemd 的规矩给两个路径加双引号并转义 % / $ (f77acd54)
  • refactor(host): 远端取文件大小、从偏移读一段、读末尾几行收进 ncd_host::remote_file(remote_file_size / remote_read_from / remote_tail_lines,跟随日志的单次上限 LOG_FOLLOW_CHUNK_BYTES 定义一处),删掉 SnowLuma daemon 日志、远端 Bot 日志跟随、应用端运行时、应用端日志尾巴、远端 NapCat 日志里逐字抄的四份 wc -c、三份 tail -c | head -c、两份 tail -n;脚本文本不变,两个后端 crate 仍只依赖 ncd-host,互不引用 (b6ea30f5)
  • fix(host): 一条 sh -c 里「先刷索引再装」改成刷新失败也接着装,成败只看安装那句:远端解压缺 unzip / tar 自动补装、补装 compose 插件时,某个第三方源连不上导致 apt-get update 非零不再让整次安装跳过,和组件任务里分两条命令跑的补装一个口径;Alpine 不再先跑一遍 apk update,apk add --no-cache 自己会拉索引,也免得一个源不通就把安装拦下 (ffc319db)
  • refactor(components): 本机 Node 候选探测和「这个 node.exe 能不能用」的判定挪进 ComponentExecutor(probe_local_node_candidates / probe_node_binary),NodeJs 组件落点按 data_root_to_host_path 加 NodeJsComponent 的二进制路径算,自定义路径走 snowluma_node_override;两个命令只转发 (9cd0a7de)
  • refactor(settings): 本机 SnowLuma 自定义 Node 路径的取值收成 L1 的 AppSettings::snowluma_node_override,启动、保存设置、组件构建输入都调它,不再从组件执行器模块里借一个自由函数;factory 里对已经取好的值再判空白、再 trim 的那一层删掉 (bd29fea4)
  • style: cargo fmt (6d926a9d)
  • refactor(components): 删掉命令层只剩 qq_deps 在用的 executor(&state) 转发壳,直接用 state.components;应用端安装早已由 AppManager::install_instance 编排,这里不再有别的调用方 (a92749fd)
  • refactor(components): 组件执行器从 host_id 取 server_id 的三处改用 ncd_domain::server_id_of_host,和库存缓存的键出自同一个前缀常量,不再各自手写 "remote:" (973ddeb4)
  • fix(components): 用户点「安装 QQ 依赖」时安装器直接报错(包管理器不是 apt / dnf、探不到包管理器、SSH 出错)也把原因写进步骤日志并补发 StepEnd / Finished,任务详情不再挂着一个转圈的「安装 QQ 系统依赖」却看不到为什么失败 (b60fa682)
  • refactor(launch): Bot 启动路由取远端选中路径改用组件执行器那份 RemoteInventoryService,不再自己抄一遍找档案、判过期、现探、写回;装卸后的重探标记对启动也生效。BotManager 加 with_remote_inventory,没接上时照旧读档案 / 现探 (32c48010)
  • fix(remote): 组件动作后 invalidate 真的让下一次探测重探:除了丢内存副本还记一个标记,ensure 看到标记就不拿档案里 6 小时内的旧库存,装卸后 home、布局、选中路径、needs_sudo 不再停在装之前;重探失败时回落档案那份,SSH 抖一下不至于让探测报错。每台机器加一把探测锁,冷缓存时组件页并发的七八个 detect 排队,拿锁后先看前一个探到的,只探一次;测试补上真实档案(之前没档案 set_inventory 悄悄失败才让 invalidate 看起来有效)、失败回落和并发只探一次 (401e6e69)
  • refactor(desktop): trayService 删掉没人调的 hideMainWindow、countLocalActiveBots、requestExit,request_exit_app 和 window_hide_to_tray 只剩 exit.service、windowControlService 各一处在用,托盘面板只用得到打开主窗 (14f8d63f)
  • refactor(ipc): 应用端和 Bot 两份 mock 的日志快照、应用端日志 store 单测里的那份,都改标生成的 LogSnapshot,不再手写 { lines, total_lines },后端加字段时报错落在 mock 本身 (9a4434e2)
  • refactor(desktop): 退出闸门的窗口通知订阅、问后端能不能退、发退出请求和对话框状态挪进 hooks/desktop/useDesktopExitGate,DesktopExitGate 只管渲染对话框,不再直接碰 core/services 和 transport;订阅改成挂好时已卸载就当场退掉,StrictMode 双挂载不再漏一份监听。PrepareExitDesktopResponse 改由 core/ipc/types 转出,exit.service 不再替它转;frontend.md 的现存偏差去掉已经收口的 DesktopExitGate 和那几路监听,hook 速查表补上 (298825d8)
  • fix(settings): 配置导入在设置写锁里提交事务,写完把内存里的 app 设置换成盘上的新值(本机 SnowLuma 包类型留内存那份),重启前装卸 SnowLuma 的回写不再拿旧副本把导入的设置盖回去;读 app-settings.json 收进 ncd_runtime::desktop(load_app_settings / read_app_settings_file),删掉命令层的文件名常量和两个读取函数,Bot 指标偏好的两处手写读取改用同一个;八个 normalize 收成 AppSettings::normalize 一个入口,设置页保存和导入共用 (6fea67c0)
  • fix(desktop-update): 应用内更新 Desktop 后退出改走 exit::shutdown_and_exit,和菜单、托盘退出同一份收尾:本机 Karin / AstrBot / MaiBot 实例和终端跟着停,不再更新完留下没人管的孤儿进程;本机 Bot 闸门的计数也改用 exit::local_active_bots (14af6d6d)
  • refactor(apps): 删掉只给 pushErrorBar 起别名的 hooks/apps/pushAppErrorBar.ts,应用端 13 个 hook 和详情页 3 个组件改直接用 hooks/ui/pushErrorBar,同一个函数不再两个名字;frontend.md 里两处把别名写成约定的说法一并去掉 (6aac1852)
  • docs(ui): component / settings 服务头注释不再列一份早就不全的命令名清单,改成本域命令名只在此文件出现,删掉「后端工单 3」那句;BotPage 路由壳的头注释换成现在的四个视图,去掉 Step 7 / 8 / 9 和 log 还走 Fluent 旧树这类过时的过程说明 (57a3e6c0)
  • fix(apps): 导入对话框的检查结果改为直接读 mutation 的 data,不再另抄一份到 state;改框架、主机、目录或开关对话框时 reset 掉路上那次检查,结果和提示条都改走 mutate 的单次回调,晚到的旧结果不会再把「导入」点亮、拿旧目录配新主机去接管,关掉后才失败的检查也不再弹条。加单测钉住 reset 之后旧结果不进 data、回调不触发 (1b223b0f)
  • refactor(components): Desktop 自更新改用 register 登记活跃任务,靠 guard 在任何一条返回路上摘掉条目,删掉七处手写的 remove;ActiveTasks 的 insert / remove 收成私有,登记只剩 register 一个口,往后加的提前返回也不会留下让轻量模式一直以为还有活在跑的死条目 (00849d81)
  • fix(apps): 对接对话框关掉、或认出选的是 Docker Bot 时,把还在生成的对接计划请求挂到一个空键上,让它没了观察者被取消;只关 enabled 键不变,请求不算作废,晚到的失败会在对话框已经关掉后弹出「无法生成对接计划」。补一条关掉后才失败不弹条的单测 (d58aad0d)
  • fix(components): 取消组件任务先交给任务队列定:队列里的任务只走队列的取消,正在跑的不可取消任务(装系统包那类)被拒时 ActionCtx 不再已经被掐停;队列不认识的 id(Desktop 自更新)才去活跃表里找,找不到报任务不存在,取消自更新不再先成功再冒一条 task not found (8f996703)
  • refactor(apps): useAppInstances 不再往外给没人用的 patch,也不再转出 APP_INSTANCES_KEY;只剩对接一处用的 Bot 配置失效直接写进 useAppLink,useAppInstanceConfig 改从 appInstancesCache 取键,对接 hook 不再为此把挂日志订阅的 useAppInstances 一起带进来,单测也不用再 mock 它 (2bab02cf)
  • refactor(apps): 对接、解绑成功后不再拿调用结果回写实例列表、也不再让应用端配置缓存失效,这两件由根上的事件桥跟着 linked / unlinked 事件做,免得晚到的调用结果盖掉更新的事件;只留 Bot 配置缓存的失效(事件桥不管 Bot 那边)。frontend.md 现存偏差里记下 useAppInstances 其余几个操作还在回写 (4f2ec202)
  • style: cargo fmt (ac7c3c33)
  • chore(clippy): 清掉这条分支改过的文件里的 clippy 警告:能 derive 的 Default 改 derive,多余的 return / 借用 / to_string / into / 闭包去掉,map_err 里只做清理的改 inspect_err,测试模块挪到文件末尾,测试里的变体、构造函数改名;nonebot2 写 pyproject 的两处 expect 改成 if let / let else,ensure_table_path 和启动期的三处 expect 保留并写明为什么不会或只能 panic,参数多的函数和 Win32 盘符枚举按仓库惯例加 allow;关窗隐藏到托盘失败从 eprintln 改成写 tracing 日志 (7bf8f986)
  • chore(ipc): 删掉没有 Rust 来源的生成文件 generated/domain/DeployedContainer.ts(Rust 那边早就改成 DockerImageReady 的类型别名,ts-rs 不再生成它),前端 re-export 直接给 DockerImageReady 起别名;重跑 ts-bindings 以及 ncd-config、ncd-backend-snowluma、ncd-update 的导出,其余生成文件与 Rust 一致,没有漂移 (838f795c)
  • fix(tauri): 托盘面板窗口改用自己的 capability,只给 core:default 和按 http/https 打开链接(打开 WebUI / noVNC 要用);主窗那份不再覆盖 tray-panel,面板不再顺带拿到选文件、另存为、在资源管理器里定位文件、通知和窗口最大化拖动这些它用不上的权限 (d3fd5e35)
  • refactor(tauri): 退出闸门的 IPC 补齐类型:prepare_exit_desktop 的返回改用 ts-rs 生成,前端不再手写;三条窗口通知的名字在前端收进 desktop.service 一处,退出闸门和托盘面板改经 windowEventService 订阅,载荷按生成的 WindowSignal / DesktopExitBlocked 声明;信封版本收成 WINDOW_EVENT_VERSION,并加测试读前端文件核对事件名和前端自己发的 v 与后端一致 (a4cfefc8)
  • refactor(domain): AppInstanceWebUi、AppConfigErrorKind、AppConfigError 的 TS 导出挪到 generated/domain,和 app_framework.rs 里其它类型放在一起,删掉根目录下的旧生成文件,前端 re-export 跟着改路径 (97bcacce)
  • refactor(domain): LogSnapshot 挪进 ncd-domain 并导出 TS,ncd-traits 原路径改为 re-export;前端 Bot 日志、Desktop 日志、应用端实例日志三处手写的形状改用生成的类型,后端改字段时前端能跟着报错 (f8b6af0b)
  • fix(server): 从本机 OpenSSH known_hosts 抄指纹只按连接用的 host 和端口找,不再拿档案显示名去对(OpenSSH 记的是 HostName 替换后的主机名),非 22 端口只认 [host]:port、裸主机名只算 22 端口,主机名不分大小写、同行 !host 排除;读 known_hosts 改用 tokio::fs,扫描 ~/.ssh/config(跟着 Include 读文件、列目录)挪到 spawn_blocking (e51e2648)
  • refactor(terminal): 导出终端输出的写盘和 .txt / .log 限制挪进 TerminalManager::export_text,terminal_export_text 只转参数和错误 (fc1c7e7a)
  • fix(terminal): 文件栏打开文本前先看大小,远端 stat -L、本机查父目录列表,超过 2 MB 不再整个读进内存才拒;上传文件夹时里面指向目录的链接(含 junction)不跟进去,免得指回上层转不出来或把别处整棵树再传一遍;列子目录出错直接报出来,不再悄悄少传 (09cad854)
  • refactor(deploy): Docker 部署的 compose 项目目录收成 ncd_domain::remote_paths::docker_bot_project_dir 一处,部署、导入迁移、终端进部署目录不再各自拼 {home}/.napcat-bots;bot 容器可能叫的两个名字由 bot_docker_container_candidates 给,查容器、清旧容器、终端进容器共用;终端远端原生 Bot 没探测过路径时按 desktop_default_install_paths 猜,NapCat 猜的是默认布局里 NapCat 真正所在的目录而不是 QQ 安装根 ~/Napcat (253e65d1)
  • fix(host): Host::which 在 PATH 里找不到时,同一趟探测里接着看 /usr/local/bin、/usr/bin、/bin 等几个常见目录,远端按连接记住找到的路径;SnowLuma 解析远端 bash 不再自己另跑一条 test -x /bin/bash,非交互 SSH 的 PATH 里没有 bash 的机器每条短脚本不用再多两趟 exec。command_exists 仍只看 PATH,按名字跑不起来的不算有 (564c38e0)
  • refactor(component): QQ 依赖、LinuxQQ 解包工具、Docker compose 插件的安装提示和补装命令都改由 LinuxPackageManager 拼,不再手写 apt-get / dnf 字符串:依赖报告里给用户复制的那行按发行版挑管理器、包名逐个转义,不像包名的(有的来自远端 ldd 输出)不放进去;缺 dpkg-deb / rpm2cpio / cpio 或缺 compose 插件时现探一次包管理器,提示给这台机能直接跑的命令;补装 compose 插件先探 apt / dnf / yum 再跑一条先刷索引再装的脚本 (f6da5c7d)
  • refactor(host): 远端解压缺 unzip / tar 时的自动补装改用 LinuxPackageManager,删掉 remote/linux.rs 里私有的 PackageManagerKindLite(apt 装包因此带上 DEBIAN_FRONTEND=noninteractive,包名按 shell 转义);新增 refresh_and_install_script 给要一条 sh -c 先刷索引再装的调用方;删掉没人读的 PkgMgrFamily、PkgLineParse::family 和 LinuxPackageManager::family,进度解析本来就只按行内容认阶段 (b17ea247)
  • refactor(host): 删掉没人实现也没人调的 PackageManager trait、PackageManagerKind / PackageInfo 和 Host::pkg_manager(每台主机都返回 None),各处测试替身里跟着实现的那一行一并去掉;Linux 装包本来就都走 LinuxPackageManager (7ae0d914)
  • refactor(host): POSIX 单引号转义收成 ncd_host::shell_single_quote 一份,BashShell 的 escape 也借它包;删掉应用端、NapCat、SnowLuma、组件、runtime 里各自抄的十几份(含几处内联的 replace),原来就一律加引号的照旧用它,ncd-component 那层转交 BashShell 的包装拿掉、调用处直接用 escape,拼出的命令文本不变;里面带单引号时统一写成 ''' 而不是 '"'"',外面再套一层双引号时也不会把引号提前截断 (66b8be20)
  • docs(context): 找回误删的 lessons.md(CLAUDE.md 一直让规划前按 §0 自查),补一节这两个月提交审查里踩到的坑 (e744fd85)
  • Revert "docs(release): 补回 v3.2.2 的策展发布说明(正文取自已发布的 GitHub Release)" (65a30d0d)
  • docs(release): 补回 v3.2.2 的策展发布说明(正文取自已发布的 GitHub Release) (d015aab1)
  • refactor(apps): 应用端安装、插件装更卸排任务、打开 WebUI 的编排挪进 AppManager(install_instance / submit_store_op / open_webui),命令只转参数和错误;任务标题里的框架名改取清单的 display_name;删掉命令里只为预热 SSH 的 resolve_host_with_autoconnect,AppManager 的主机解析器本来就会现连 (b919fb44)
  • test(apps): 麦麦远端真机冒烟只用 AppManager 的公开接口,挪到 ncd-runtime/tests/maibot_remote_smoke.rs,和 ncd-host 的真机冒烟一样按 --test 单独跑,照旧默认 ignore (d27e5ca6)
  • fix(astrbot): 展开插件 zip 时暂存目录名避开顶层和子项里已有的名字;子项里有挪不了的文件名、或和顶层已有项重名时,动手前就报错,不再挪完别的再把它跟暂存目录一起删掉 (816d2fa8)
  • refactor(apps): 导入快照改用 tokio::fs 读写;实例表写盘挪到阻塞线程,调用方照旧拿着缓存写锁等写完,写盘任务另带一把锁,调用方中途被取消也不会让新旧两版落盘顺序颠倒 (e22c3942)
  • refactor(astrbot): apply_ai_patch 的十个参数收成 AstrBotAiPatch,两处调用经 AstrBotInstanceConfig::ai_patch 取;模块注释写明为什么在上游文档上做投影:逐字段宽松读、写回不丢不认得的键也不打乱顺序 (4e54fb46)
  • test(astrbot): 给 AI 投影写回补特征测试:不认得的键原样留着、顶层键顺序不变、类型化的值写进文档再读回来不走样 (02346e47)
  • fix(apps): 应用端挑口、查口的占用探测收成 ncd_appframework::ports 一份:本机统一 bind 回环,远端一次读 /proc/net/tcp 比对全部候选口,不再逐口起 python(几十次 SSH 往返),机器上没 python 时也不再一律当成空闲 (846cd647)
  • refactor(apps): 桌面端隧道的「先看能不能复用、开完再核一遍」收成 ensure_desktop_tunnel,本机到远端、远端到本机两条共用;正向那条的复用检查也走同一个函数,开完后照旧直接登记 (c0ec4178)
  • refactor(apps): 麦麦运行期调用改由 maibot_session 一次给出接口和会话,接口借自注册表,是不是麦麦只查一遍;四十多个转发不再各自 maibot_api 再查一次 (16fd0155)
  • refactor(apps): WebUI 登录用户名的兜底改由适配器给(AstrBot 给它首启写的 astrbot),通用代码里不再写死 astrbot;别的框架没有约定时给空 (11f90722)
  • refactor(appframework): 删掉没有实现者的 AppRuntime trait、没人用的 is_legacy_bot_py 和 Dashboard 登录响应里不读的 username 字段;注释里的「R12」换成原因本身,Cargo.toml 的依赖说明补上 network (65c5ebcf)
  • refactor(domain): ComponentId 和依赖图的 IPC 类型(DependencyPlan / RuntimeReadiness / RequirementStatus 等)挪进 ncd-domain,生成的 TS 不变;按 semver 比版本号留在 ncd-component,改成 VersionMatch / all_versions_match (41d72d2c)
  • docs(ui): 找回前端分层文档并对齐现状:路径改成现在的树,蓝绿模式标为已退役,写下这一轮定的落点约定(纯逻辑进 core/domain、服务端数据走 react-query、外链和选目录经 hook、模块之间走 shared 或模块入口),列出还没收掉的直连 (9e10e367)
  • refactor(runtime): 本机 SnowLuma 自定义 Node 路径的取值口径收成 local_snowluma_node_path 一处,启动、保存设置和组件探测共用 (ea550897)
  • fix(runtime): 非 Linux 主机缺系统命令时直接说不支持自动安装,不再报「未识别到包管理器」;QQ 依赖安装等 installer 的进度转完再推结果,Finished 总是最后一条 (c7d0fece)
  • refactor(runtime): 依赖图和组件工厂改用启动时建的那份应用端注册表,不再每次调用现建;未注册的组件返回错误,不再 expect / panic (146c754e)
  • refactor(ui): Desktop 协议对话框的载荷类型直接取生成的定义,shared 层不再 import 服务文件 (e25a4d02)
  • refactor(ui): 麦麦试聊挑图、表情包上传、知识库导入选文件改经 hook 调服务;读不出本机文件时弹错误条,不再是没人接的 Promise 报错 (ed048599)
  • refactor(ui): 日志 Tab 开页对账、插件配置文件列表、AstrBot 拉模型列表都挪进 hook;日志接不上时弹错误条,不再悄悄吞掉 (a88db181)
  • fix(runtime): 组件任务跑完就收掉取消转发的 watcher,不再每个任务留一个永远等着的 task;活跃任务表改用 guard 登记,任何提前返回都会摘掉条目 (a9a4ed89)
  • refactor(ui): 对接对话框的生成计划和应用对接挪进 useAppLink,页面里不再手搓 fetch 和取消标记;重新生成的途中不给旧计划 (bae9f600)
  • refactor(runtime): Bot 启动预检挪进 ncd-runtime,和组件页 resolve_runtime_readiness 共用 ComponentExecutor::runtime_readiness;删掉 L4 的 bot_runtime_gate (6b49e029)
  • refactor(ui): 新建、导入实例对话框不再直接调服务和 transport:默认安装目录、导入前检查项目、选本机目录都经 hook,选目录框打不开时弹错误条 (7d09f48d)
  • refactor(runtime): 组件执行器启动时建一份放进 AppState,活跃任务表和远端库存缓存归它持有;命令只转发,不再每次现建执行器、自己拼构建输入 (1f30ef87)
  • refactor(ui): 应用端的条款原文、WebUI 账号框和商店卡片主页链接改走 useOpenExternal,被拒的链接会弹错误条,不再静默没反应 (23d316f7)
  • refactor(ui): 进度行挪进 shared/components,组件页要的新建、导入实例对话框改走 modules/apps 入口,这两处不再伸进别的模块的内部文件 (f584152c)
  • docs(ui): 服务层和事件类型注释里的「R3」「R14」换成原因本身:命令名只在服务文件里出现是为了后端改名只改一处,事件带 v 是为了按版本认形状 (ef8d29e4)
  • refactor(ui): AppConfigError 的 kind 表按生成的联合类型逐个列,后端新加一种 kind 前端没跟上时 typecheck 直接报错 (492cbfc1)
  • refactor(ui): 只在本文件里用的常量和小函数不再导出:商店格子尺寸、详情页外壳 Tab、AstrBot 各小节默认值、安装任务目标名、插件文件名截取 (c3e4ce07)
  • refactor(ui): 删掉没人引用的文件:应用端错误文案的空壳转出口、hooks/desktop 下重复的 useOpenExternal、托盘只剩测试在用的报错小函数、组件页两个早就不挂的 SnowLuma 对话框 (9c85aa86)
  • refactor(snowluma): 远端 bash 路径不再存进程级 static,改由 Host::which 按连接记住;command_exists 的命令名也转义 (8b189d54)
  • refactor(apps): 商店目录缓存从模块级 OnceLock 挪进 AppManager,拉目录用它手里的注册表,不再每次现建一份 (c9536631)
  • refactor(ui): 四个框架的配置表单 hook 合成 useAppConfigForm,各框架只给一份校验和保存文案;issuesByPath 挪出 karinConfig (e106f26a)
  • refactor(appframework): AstrBot Dashboard 的登录态不再放进程级 static,归 AstrBotAdapter 持有,运行期接口和跑着改配置共用一份 (3ccc4739)
  • refactor(ui): 商店页的工具条、槽位 id 和卸载确认合成一份,Karin 插件页和应用端商店页共用 (0ed5c5ff)
  • refactor(apps): AppManager 按职责拆成 manager/ 下的子模块(WebUI、生命周期、对接、配置、商店、隧道、安装目录、AstrBot、麦麦),manager.rs 只留结构体和共用的小工具 (c88a51c9)
  • refactor(ui): 通用商店页改名 AppStoreTab 挪到 detail 根下,hook / 模型跟着叫 useAppStore / appStore (8dfbb926)
  • refactor(ui): 两个插件商店的目录规则和任务处理合成一份,Karin 市场和应用端商店共用 (e526c38f)
  • refactor(ui): 插件目录错误文案去掉没用上的 stripped 和两条一样的兜底返回 (272214bb)
  • fix(ui): 相对时间在 28、29 天和 360 多天不再显示「0 个月前」「0 年前」 (3463b835)
  • chore: 忽略 Python 字节码缓存,移出误提交的 scripts/maibot/pycache (d00cf668)
  • refactor(ui): 「N 分钟前」的相对时间合成一份,Bot 卡和两个插件商店共用 (1a30b6d9)
  • fix(ui): 退出闸门按新的 DesktopExitBlocked 信封声明类型,前端自己发的 desktop-request-close 也带 v (cd3dd3f9)
  • fix(apps): app-instances.json 读不出来时先把原件改名挪开再空表起步,不再靠 .bak 轮转保它(几次保存后就被删) (08f48995)
  • refactor(ui): 应用端的纯逻辑挪进 core/domain/apps,hooks 不再反过来 import modules (a6df3729)
  • fix(settings): app-settings.json 只剩一个写入口,内存和文件在同一把锁里改;读设置页不再顺手写盘,SnowLuma 包类型改在启动时补记,保存设置不会再把它冲掉 (4d25677e)
  • fix(component): uv 默认版本钉住各发行包 sha256 再下载;新文件先攒在 .new 里装齐再换,装到一半失败不丢旧 uv (27539dc0)
  • fix(host): ConPTY 属性表初始化失败时不再对没初始化的表调 DeleteProcThreadAttributeList (9b2378a6)
  • fix(tauri): 托盘退出和主菜单退出共用一套收尾,托盘退出也会停本机应用端实例;几条窗口通知带上 v 信封 (35b2bcc0)
  • fix(host): 装包脚本里每个包名单独转义,QQ 依赖安装先校验包名再提权 (47ee42aa)
  • fix(appframework): AstrBot 插件 zip 展开改用 Host 改名,不再把 zip 里的目录名拼进 sh -c (a1152fe6)
  • feat(ui): 终端文件栏换目录有滑动(进子目录从右、回上级从左)、路径栏可点的面包屑、Windows 此电脑换盘;命令菜单重做:顶上筛选、两行条目、紧凑的添加表单(回车存、Esc 收) (fb45e7d7)
  • feat(host): Host::list_drives 列本机盘符(GetLogicalDrives,不碰盘本身);终端文件栏在盘根再往上是「此电脑」,能换盘 (07d1a757)
  • feat(ui): 终端动效:面板开合带退场、最大化 / 还原整块推上推下(落定才重排行列)、当前标签底色滑动、新标签 / 分屏 / 文件栏 / 搜索条 / sudo 按钮 / 活动点进场,悬浮按钮跟着面板滑,标题栏计数滚动;跟动效开关和减少动态效果走 (2c7caa25)
  • feat(ui): 终端面板改成浮在页面上的卡片,不再挤占页面高度;打开时上浮进场,悬浮按钮按面板顶边抬高;「+」菜单补 key (99b43a78)
  • docs(codemap): 新增「内嵌终端」域 (06f11083)
  • fix(ui): 页面贴底的悬浮按钮和批量操作条跟着终端面板抬高,面板最大化时藏起来 (900b062b)
  • feat(settings): 终端 Tab:字号、行高、配色、光标、关键字高亮、显卡加速、默认 shell、右键行为、选中即复制、多行粘贴确认、回滚行数和快捷键一览,改了立刻生效 (80f70f91)
  • feat(ui): 终端入口:标题栏开关(Ctrl+`),Bot 卡片(Docker 进容器 / 宿主机部署目录)、远端主机卡片、应用端卡片和详情页一键开终端;终端里按 Ctrl+S 不触发页面保存 (7661b818)
  • feat(ui): 底部终端面板:xterm 6 多标签 / 分屏 / 搜索 / 命令成败标记与跳转 / 多行粘贴确认 / sudo 代填 / 文件栏(可拖宽、双击改小文本)/ 服务器状态条 / 拖文件上传 (23451d4f)
  • feat(ui): 终端状态:会话和标签(一个标签可分两块)、面板开关与最大化、偏好和布局、最近命令、文件栏跟着当前目录、状态条轮询、拖文件落点 (b9f9cd2b)
  • feat(ui): 终端服务层:打开 / 接输出(Channel 原始字节)/ 写入 / 改大小 / 确认 / 文件栏 / 状态条走 IPC,浏览器预览里给一个假 shell (5350a50e)
  • feat(ui): 终端的纯逻辑:shell 命令标记(OSC 633 / 133 / 7 / 9)解析、关键字高亮状态机、sudo 提示识别、路径加引号与 cd 命令、状态条数值格式、暖色配色 (010de5d8)
  • fix(runtime): 终端标签名里实例名已带主机(「麦麦 · 本机」这种)就不再接一遍主机名 (959a4695)
  • feat(tauri): 终端命令薄壳:输出走 Channel 原始字节、状态走带 v 的 JSON 通道,文件栏 / 状态条 / sudo 代填 / 导出,右键粘贴读剪贴板;退出时全关,进轻量模式先摘前端 (73b02a2a)
  • feat(runtime): 终端 detach_all:网页要销毁时摘掉前端,输出照常收进回放 (ef50eb93)
  • feat(runtime): 内嵌终端会话层:会话表 / 回放 / 攒批 / 按确认流控 / 按回车重开,本机 shell 探测,bash 与 PowerShell 命令标记,Bot / 实例 / 主机的开法,服务器状态条,文件栏,系统终端打开 (c7912e2b)
  • feat(apps): AppManager::terminal_context 给终端要实例所在主机、目录和框架接上的环境 (e172374d)
  • refactor(domain): 终端事件的「重开」改成通用的会话信息更新,标题、功能、状态一次换齐 (cf732557)
  • feat(apps): 应用端实例终端的环境:uv 系接好 .venv 和 uv,Karin 接好 node、私有 pnpm 和 karin 命令,各带几条常用命令 (0e563040)
  • feat(domain): 内嵌终端的跨边界类型:开到哪、会话状态与事件信封、文件栏、服务器状态条 (334fa265)
  • feat(host): 列目录带上修改时间、权限位和符号链接标记,终端文件栏要用 (950668bc)
  • feat(host): 交互终端契约 Host::open_pty:本机 ConPTY(运行时取函数,老系统不至于起不来),远端在现有 SSH 会话上开 pty 通道 (1fe7a33a)
  • docs(codemap): 麦麦远端的代码落点:正向跨机隧道、Docker Bot 不对接、WebUI 口令缓存、远端预检和代装 Python (3353d091)
  • test(apps): 远端麦麦真机冒烟:连一台 Linux 真装 uv 和麦麦、对接同机、经隧道开 WebUI、按进程组停,默认不跑 (ed517c4d)
  • feat(apps-ui): 对接框里麦麦也能选别的机器上的 Bot,预览写清应用端经隧道连过去 (7f7767ac)
  • feat(apps): 正向对接放开跨机:远端 Bot 连本机麦麦走桌面端 -L,本机 Bot 连远端麦麦走 -R,两台远端应用机常驻 ssh -L (180f24a9)
  • fix(apps): 麦麦行为页的时间按麦麦所在主机的时区折算,远端服务器是 UTC 也不再差几个小时 (f2a2c9de)
  • feat(apps): 远端麦麦装插件由桌面端走镜像下 tar.gz 再写上去,服务器不用连 GitHub、不用 unzip (acabbec7)
  • fix(apps): Docker 部署的协议 Bot 不再给对接应用端:容器里的 127.0.0.1 不是宿主机,对接框置灰并说明 (7ae891af)
  • feat(apps): 远端建实例、改端口、分正向听口时避开服务器上正在监听的口(读 /proc/net/tcp) (9636145b)
  • feat(apps): 麦麦装之前查主机 glibc / 架构 / 剩余空间,缺 Python 3.12 先装好,远端下不动由桌面端下好传上去 (973b2820)
  • fix(component): 远端装 uv 按 uname -m 选包,ARM 服务器不再传上去一个跑不起来的 x86_64 (c89424af)
  • perf(apps): 应用端 WebUI 口和口令按实例记住,麦麦接口共用连接池,远端不再每调一次读两遍配置 (6b0eb703)
  • docs(codemap): 应用端日志每轮另起、上色换行和自启开关的代码落点 (84a1c80a)
  • feat(apps-ui): 实例详情「更多」里加「随桌面端启动」开关 (2a5c0a93)
  • feat(apps-ui): 应用端日志照上游颜色上色、长行换行,重启清空上一轮 (be20da37)
  • feat(apps): 应用端每次启动另起一份日志,上一轮留在 .1,颜色码原样推给前端 (c9acc419)
  • fix(ui): 列表进场途中指针扫过卡片,卡片不再停在半透明或消失 (b3c4cdb9)
  • docs(codemap): MaiBot 数据页(提示词 / 学到的 / 人物 / 表情包 / 知识库 / 行为)和试聊的代码落点 (e093afbd)
  • feat(apps-ui): MaiBot「试聊」页:在桌面端直接和麦麦说话 (112e5441)
  • feat(apps): MaiBot 试聊:用 Cookie 换一次性连接票,清空桌面端这段私聊 (975b00b6)
  • feat(apps-ui): MaiBot「行为」页:情境 → 做法 → 结果,分数和每次反馈 (c0b1b7d2)
  • feat(apps): MaiBot 学到的行为:列表、概况、单条的观察和反馈记录,走 WebUI 接口,只读 (5e6dab20)
  • feat(apps-ui): MaiBot「知识库」页:导入 / 浏览 / 图谱 (953dcea1)
  • feat(apps-ui): 知识库的数据层:服务、mock、hooks、图谱布局 (a78f10e1)
  • feat(apps): MaiBot 长期记忆:状态、导入(粘贴 / 本机文件)与任务、查记忆、按来源删、删除恢复、记忆图谱,走 WebUI 接口 (c8807469)
  • feat(apps-ui): MaiBot「表情包」「人物」页 (78981ee0)
  • refactor(apps-ui): 麦麦资源页的操作 mutation 挪到 maibotResourceAction,提示条能接一句补充 (bb8e6f27)
  • fix(ui): 标签输入框在输入法选字时按回车不再提前加上 (4fe4f570)
  • feat(apps): MaiBot 人物、表情包:列表、概况、改删、收下丢弃、缩略图、本机图片上传,走 WebUI 接口 (cdecefd4)
  • feat(apps-ui): MaiBot「表达方式」「黑话」页,侧栏加「资源」组 (ad16e4ea)
  • feat(apps-ui): 资源页骨架:工具条、搜索、带条数的分段筛选、翻页、多选浮条 (4f32994c)
  • fix(ui): 弹窗打开时焦点落进弹窗里 (690f061c)
  • feat(apps): MaiBot 学到的表达方式、黑话:列表、概况、增改删和批量,走 WebUI 接口 (328b923d)
  • feat(apps-ui): MaiBot「提示词」页:模板列表 + 编辑、参数校验、对比默认、版本 (a87b588d)
  • feat(ui): 代码编辑器加提示词模式(参数画成小标签)、正文字体、光标处插入 (49d23f42)
  • feat(apps): MaiBot 提示词模板:跑着走 WebUI 接口,停着直接改盘上文件 (9a7c064e)
  • feat(apps-ui): 应用端配置页 Ctrl+S 保存 (76ebe184)
  • refactor(apps-ui): 实体行 / 空态 / 确认删除 / 表单对话框挪到 detail/entityParts,AstrBot 转导出 (5a51f875)
  • feat(apps-ui): MaiBot「高级选项」从页顶开关挪到各小节标题右边,各节自己展开 (e63d59ce)
  • test(apps): MaiBot 插件商店真下载冒烟(默认 ignore,手动 --ignored 跑) (bb0291a9)
  • docs(codemap): MaiBot 深度配置、运行期接口、插件商店的代码落点 (ec7e8859)
  • fix(apps): MaiBot 子进程把 HOST / PORT / WEBUI_HOST / WEBUI_PORT 置空 (9cecaf41)
  • feat(apps): MaiBot 在桌面端把模型配好就标记 WebUI 首次配置完成 (48d607a5)
  • feat(apps-ui): MaiBot 详情加「插件」页,复用应用端商店;桌面端管的插件只读 (c627b506)
  • feat(apps): MaiBot 插件商店:官方 plugin-repo 市场,装 / 更 / 卸 / 启停,NapCat 适配器锁定 (0c0945cf)
  • feat(apps-ui): MaiBot 配置页挂上 WebUI 数据页直达:学到的表达 / 黑话 / 行为、记忆图谱、提示词模板 (bd3686d3)
  • feat(apps-ui): MaiBot 运行中:概览看状态和用量、试聊 / 重启,模型页测连接拉模型,MCP 看连接 (1aab464e)
  • feat(apps): MaiBot 运行期接口:状态、用量、会话、提供商与 MCP 探测,走它自己的 WebUI (87b6c7e3)
  • feat(apps-ui): MaiBot 模型页加提供商从预设里挑,接口地址和类型直接填好 (9afa7404)
  • feat(apps-ui): MaiBot 配置页全覆盖:模型、人格、记忆、表达学习、回复、会话规则、MCP、高级 (11006d56)
  • feat(apps-ui): MaiBot 界面 schema 挪进 core/domain,前端校验照后端全套规则 (605669d2)
  • feat(ui): 共享多行文本框 TextAreaField,随内容长高到上限 (49f0c3fc)
  • feat(apps): MaiBot 运行中改配置走它自己的 WebUI 接口,不和它自己的写入打架 (dc0bbf58)
  • feat(apps): MaiBot 实例配置接上两份主配置全字段,停止时差量写文件 (d120c940)
  • feat(apps): MaiBot 两份配置全字段强类型,从上游 pydantic 类生成 (f5b1595c)
  • feat(apps): 类型化配置差量写回 TOML,只动改了的键,保注释和不认识的键 (78472dc4)
  • fix(apps-ui): 实例事件挪到根上常驻,装完不再卡在安装中;安装中只留一个进度 (74650fe3)
  • fix(apps): 安装状态只认任务结果,不再被半成品目录提前翻成已安装 (a1a3ba69)
  • test(apps): 加 MaiBot 本机真装冒烟测试(默认 ignore) (0004d3b1)
  • test(apps): MaiBot 编排测试各用各的实例 id,并行时正向听口探测不再互相挤 (4a81b478)
  • test(runtime): 组件依赖图金样补上 maibot (9886892a)
  • docs(context): codemap 应用端一节补正向对接、上游条款和 MaiBot 落点 (17e110d8)
  • fix(apps-ui): MaiBot 概览名单条件写清还差什么,连接页没对接时不显示上游默认地址 (932cec50)
  • feat(apps-ui): MaiBot 详情页、新建时同意上游条款、启动前条款更新确认 (cada6190)
  • fix(apps): MaiBot 配置校验路径改用斜杠,和其他框架、前端跳页规则一致 (bfbc4fd8)
  • feat(apps): 接入 MaiBot 应用端(源码安装 + 正向对接 + 窄配置 + 上游条款核对) (44686d34)
  • feat(host): Host 加 rename,本机走 tokio::fs::rename、远端 mv -f (47b5386e)
  • feat(apps-ui): 对接对话框认得正向,跨机的配对直接置灰 (a755c4df)
  • feat(apps): 对接支持正向 WS,协议 Bot 开服务端、应用端连过来 (589c83b8)
  • fix(apps): 停应用实例连子进程一起收,不再留孤儿 (c93f7ba6)
  • fix(ui): Select 下拉打开时面板反复从透明重播 (33a5758f)
  • fix(ui): 页面退场动画真正上合成线程,visibility 挪出关键帧 (80717138)
  • perf(ui): 概览 CPU/RAM 曲线滚入交给合成线程,采样不再带着整页重渲 (bb1ae648)
  • test(ui): cssEase 测试结束时让 GSAP ticker 睡下 (f4084375)
  • perf(ui): 页面切换动画改 WAAPI,交给合成线程 (84ccf777)
  • perf(ui): 吉祥物分层 SVG 只装配一次 (57052e85)
  • perf(ui): 常驻循环动画从 GSAP 改 CSS,吉祥物呼吸挪到外层容器 (65ae1211)
  • perf(ui): hero 云朵横飘去掉容器单位,交回合成线程 (d6b50b9d)
  • perf(ui): 根组件不再因任务进度 / 提示条带着整页重渲 (2c8fe818)
  • fix(astrbot-ui): 概览改成 hero 状态卡 + 设置卡片,去掉左右割裂 (b0506098)
  • docs(codemap): 应用端详情改成左侧分组导航后的落点,补上 AstrBot (eb3a7d23)
  • feat(apps): 填错的页在侧栏亮红点,保存条能跳过去 (a7c4fb6b)
  • feat(astrbot-ui): 概览页替代顶部提示条,默认落在概览 (e860dc82)
  • feat(apps): 实例详情换成左侧分组导航,保存条挪到底部 (1269e8ac)
  • feat(ui): Tabs 加竖排 TabsSideList / TabsSideTrigger (d58ea459)
  • refactor(astrbot-ui): 回复设置铺开四个分区,每个设置只留一个入口 (a00fa51b)
  • refactor(astrbot-ui): 提供商编辑抽成共用件,模型页顶部定默认 / 备用模型 (13921729)
  • refactor(astrbot-ui): 上手判定换成 astrbotSetup,去掉连接页顶部提示条 (07375adb)
  • fix: GitHub #136 - AstrBot 登录修复 + 开机自启实例 (bdd03f55)
  • fix: shared napcat.json for WebUI system config and startup bypass (#135) (8bf9417e)
  • fix(ipc): 把 AppConfigError 迁到 domain,修好 ts-rs 相对路径 (7bcd1799)
  • chore: 忽略本机 .cursor 目录 (c1218637)
  • chore(ui): 收紧 WebUI 账号与插件表单文案 (8dd85e5b)
  • fix(ui): 配置冲突对话框钉住页脚,避免被悬浮钮挡住 (7d8a1a1e)
  • fix(ui): 侧栏点击导航不再走 startTransition (163819c1)
  • feat(ui): AstrBot 控制面改为列表加对话框并统一保存条 (6d32880b)
  • feat(ui): 接线 AstrBot Dashboard 配置、service 与 mock (452ea3cb)
  • chore(ipc): 导出 AstrBot Dashboard 与 AI 设置绑定 (50870ccd)
  • feat(tauri): 接线 AstrBot Dashboard 命令 (51d6cd51)
  • feat(runtime): 编排 AstrBot Dashboard 读写与门禁 (2af2f331)
  • feat(appframework): 接入 AstrBot Dashboard 与 AI 控制面 (ce0c9d1b)
  • feat(traits): 增加 AstrBot Dashboard 控制面错误 (50c38a30)
  • feat(ui): AstrBot 详情页、账号弹窗与 schema 插件表单 (1f2a848a)
  • feat(ui): 接线 AstrBot 配置、WebUI 账号校验与 mock (e0cf583e)
  • chore(ipc): 导出 AstrBot、WebUI 账号与插件 schema 绑定 (b7bd803c)
  • feat(tauri): 接线 WebUI 账号与插件 schema 命令 (6019fc83)
  • feat(runtime): 编排 AstrBot 实例、WebUI 密钥与进程识别 (743f4b96)
  • feat(appframework): 接入 AstrBot 适配器 (d6ec591c)
  • feat(domain): 应用清单增加 WebUI 账号与插件配置 schema (09d4b883)
  • chore(ui): 收紧引导与任务队列文案 (ab78b093)
  • chore(ui): 收紧应用端、组件与远端文案 (8c18d82a)
  • chore(ui): 收紧机器人配置与运行指标文案 (d6af4b1d)
  • chore(ui): 收紧设置页常驻文案 (7369343a)
  • feat(ui): 概览问候与吉祥物台词改成人话并加花样 (2cec721a)
  • perf(ui): 商店目录切 Tab 不再重拉 (29089313)
  • feat(ui): 导入已有应用实例并接管启停 (96b84542)
  • chore(ipc): 导出应用导入探测与来源绑定 (b9522bab)
  • feat(tauri): 接线应用导入、日志回看与主机恢复监听 (1d2c7b8e)
  • feat(runtime): 导入接管、认领已有对接并回挂日志 (67bc168d)
  • feat(appframework): 探测并领养已有 NoneBot2 / Karin 项目 (037e090a)
  • feat(domain): 应用实例增加导入来源与探测模型 (b9367730)
  • feat(ui): 详情页按框架注册表挂 Tab (4f7337ac)
  • refactor(runtime): 工厂、依赖图与商店编排改为注册表驱动 (14796fdf)
  • refactor(appframework): 把商店与端口差异收进适配器 (29b6a418)
  • feat(domain): 清单增加商店资源与渲染器能力位 (f4695030)
  • chore: 去掉 ncd-network 构建提示与未使用导入 (435056a4)
  • docs: 同步 NoneBot2 商店与常驻对接落点 (1a421872)
  • 另有 247 条,见完整变更

💬 遇到问题

  • 先看使用文档,里面有常见问题
  • 到 Issues 反馈,附上版本号和日志会快很多;也可以来 QQ 群 问
  • 这是远端 Linux 监控组件,不是桌面安装包;桌面端请看 v 开头的发布

完整变更:watch-v0.2.5...watch-v0.2.6

v0.2.5

查看更新收起

远端 Linux 主机侧监控二进制(Desktop 退出后仍可 Webhook / 探活)。 静态链接 musl,不打进 Windows MSI;与 Desktop v 发版分流。

ncd-watch 0.2.5

远端 Linux 主机侧监控二进制(Desktop 退出后仍可 Webhook / 探活)。 静态链接 musl,不打进 Windows MSI;与 Desktop v* 发版分流。

Install

  • 推荐:Desktop 组件页安装 NCD Watch
  • 或本机 cargo build -p ncd-watch --release 后由 Desktop 上传到远端

Assets

File Target
ncd-watch-0.2.5-x86_64-unknown-linux-musl x86_64 Linux musl
ncd-watch-0.2.5-aarch64-unknown-linux-musl aarch64 Linux musl
SHA256SUMS 校验和

Changelog

No previous watch-v* tag found.

Support


Tag watch-v0.2.5 · built by Release ncd-watch

v0.2.4

查看更新收起

远端 Linux 主机侧监控二进制(Desktop 退出后仍可 Webhook / 探活)。 静态链接 musl,不打进 Windows MSI;与 Desktop v 发版分流。

ncd-watch 0.2.4

远端 Linux 主机侧监控二进制(Desktop 退出后仍可 Webhook / 探活)。 静态链接 musl,不打进 Windows MSI;与 Desktop v* 发版分流。

Install

  • 推荐:Desktop 组件页安装 NCD Watch
  • 或本机 cargo build -p ncd-watch --release 后由 Desktop 上传到远端

Assets

File Target
ncd-watch-0.2.4-x86_64-unknown-linux-musl x86_64 Linux musl
ncd-watch-0.2.4-aarch64-unknown-linux-musl aarch64 Linux musl
SHA256SUMS 校验和

Changelog

No previous watch-v* tag found.

Support


Tag watch-v0.2.4 · built by Release ncd-watch

v0.2.3

查看更新收起

远端 Linux 主机侧监控(Desktop 退出后 Webhook)。静态链接 musl,不打进 Windows MSI。

ncd-watch 0.2.3

远端 Linux 主机侧监控(Desktop 退出后 Webhook)。静态链接 musl,不打进 Windows MSI。

Assets

文件 目标
ncd-watch-0.2.3-x86_64-unknown-linux-musl x86_64
ncd-watch-0.2.3-aarch64-unknown-linux-musl aarch64
SHA256SUMS 校验和

Tag: watch-v0.2.3(与 Desktop v* 分流)

安装:组件页安装 NCD Watch,或本机 cargo build -p ncd-watch 后由 Desktop 上传。

v0.2.2

查看更新收起

远端 Linux 主机侧监控(Desktop 退出后 Webhook)。静态链接 musl,不打进 Windows MSI。

ncd-watch 0.2.2

远端 Linux 主机侧监控(Desktop 退出后 Webhook)。静态链接 musl,不打进 Windows MSI。

Assets

文件 目标
ncd-watch-0.2.2-x86_64-unknown-linux-musl x86_64
ncd-watch-0.2.2-aarch64-unknown-linux-musl aarch64
SHA256SUMS 校验和

Tag: watch-v0.2.2(与 Desktop v* 分流)

安装:组件页安装 NCD Watch,或本机 cargo build -p ncd-watch 后由 Desktop 上传。

v0.2.1

查看更新收起

远端 Linux 主机侧监控(Desktop 退出后 Webhook)。静态链接 musl,不打进 Windows MSI。

ncd-watch 0.2.1

远端 Linux 主机侧监控(Desktop 退出后 Webhook)。静态链接 musl,不打进 Windows MSI。

Assets

文件 目标
ncd-watch-0.2.1-x86_64-unknown-linux-musl x86_64
ncd-watch-0.2.1-aarch64-unknown-linux-musl aarch64
SHA256SUMS 校验和

Tag: watch-v0.2.1(与 Desktop v* 分流)

安装:组件页安装 NCD Watch,或本机 cargo build -p ncd-watch 后由 Desktop 上传。

v0.2.0

查看更新收起

远端 Linux 主机侧监控(Desktop 退出后 Webhook)。静态链接 musl,不打进 Windows MSI。

ncd-watch 0.2.0

远端 Linux 主机侧监控(Desktop 退出后 Webhook)。静态链接 musl,不打进 Windows MSI。

Assets

文件 目标
ncd-watch-0.2.0-x86_64-unknown-linux-musl x86_64
ncd-watch-0.2.0-aarch64-unknown-linux-musl aarch64
SHA256SUMS 校验和

Tag: watch-v0.2.0(与 Desktop v* 分流)

安装:组件页安装 NCD Watch,或本机 cargo build -p ncd-watch 后由 Desktop 上传。

v0.1.0

查看更新收起

远端 Linux 主机侧监控(Desktop 退出后 Webhook)。静态链接 musl,不打进 Windows MSI。

ncd-watch 0.1.0

远端 Linux 主机侧监控(Desktop 退出后 Webhook)。静态链接 musl,不打进 Windows MSI。

Assets

文件 目标
ncd-watch-0.1.0-x86_64-unknown-linux-musl x86_64
ncd-watch-0.1.0-aarch64-unknown-linux-musl aarch64
SHA256SUMS 校验和

Tag: watch-v0.1.0(与 Desktop v* 分流)

安装:组件页安装 NCD Watch,或本机 cargo build -p ncd-watch 后由 Desktop 上传。

已到最早版本