Skip to content

Releases: ExpertKT/notice-hub

群务台 1.1.0 测试版(beta.9)

Choose a tag to compare

@ExpertKT ExpertKT released this 24 Oct 00:26

群务台 1.1.0 测试版(beta.9)

国内下载慢、或者 GitHub 打不开? 直接走 Gitee 镜像,和这里是同一份包、SHA-256 完全一致:

这一版解决「新用户找不到二维码」,并修了几处数据和状态上的问题。

修复

学习通 Cookie 不再被误判过期:以前某个子站(作业页、通知页)返回登录页就把整个登录标成过期,现在会先回主站复核——主站正常就只提示「部分子站返回登录页」,不影响使用。这也解释了「刚存完正常、约 25 秒后突然变过期」的怪现象(程序在串行扫 22 门课的作业页)。

同一条消息不会再生成两条任务:自动建任务和手动升级任务原来用两种标识,同一条消息走两条路会各建一条。现已统一。

摘要超限不再静默丢弃:单次摘要默认最多展开 30 条,超出的以前无声丢掉。现在推送第一行会写「另有 K 条超出单次上限未展开」。

任务统计与日历导出不再被截断:界面列表仍默认 800 条(避免卡顿),但统计和订阅日历导出改为全量。

任务同步失败不再连累推送:以前建任务出错会整批中断,而消息已标记处理、摘要已存档,结果摘要没推、任务也没建。现在建任务失败只记日志,摘要照常推送。

更新装完自动拉起更可靠:覆盖安装后做 3 次健康检查(间隔 2 秒),端口跟着配置走;都失败才提示手动启动。

暗色下折叠标题看得清了:「登录二维码」「高级:手动粘贴 Cookie」「账号与设备说明」的对比度从 2.07 / 1.87 / 1.22 提升到 16.1。

新增:新用户不再找不到二维码

以前冷启动打开页面:首装向导盖住整屏 → 关掉后停在待办页 → 二维码在右栏下方(要滚 1000 多像素)→ 那里还写着「二维码暂不可用」,新用户基本找不到入口。

现在:

  • 向导点「进入主界面」后自动定位到二维码并高亮 2 秒(开了「减少动态效果」就只滚动不闪)。
  • NapCat 没启动时,二维码位置显示**「启动 NapCat 并获取二维码」按钮**,点一下就走接入流程,不再是「暂不可用」。
  • 没有任何数据时,待办页顶部出现**「首次使用?先完成 QQ 接入 →」**引导条,可关闭,有数据后自动消失。

新增:实验室(四个实验功能,默认关闭)

全部默认关闭,在 .env 里开启对应开关并重启后,设置页会出现「实验室」:

功能 开关
群消息全文搜索 QQ_DIGEST_LAB_SEARCH=1
待回清单 QQ_DIGEST_LAB_REPLIES=1
时间地点提取 QQ_DIGEST_LAB_EVENTS=1
自动化规则引擎 QQ_DIGEST_LAB_RULES=1
  • 群消息全文搜索:本地 SQLite 全文索引,按群/时间过滤;中文三字以上走索引,两字自动走兜底匹配。
  • 待回清单:识别 @我、疑问句、截止时间、要求确认的消息,列成清单,回完点「标记已回」。规则版,不做 AI。
  • 时间地点提取:从消息里抽时间和地点,只生成候选,不会自动写入日历。
  • 规则引擎:关键词/正则/@我/指定群 → 标重要、建待办等。目前是内核,界面下版上。

新增:一键诊断包

python main.py doctor --bundle

生成一个脱敏 zip:版本、配置项键名(值一律不写)、路径可写性、数据库完整性、最近日志末 200 行(token/Cookie 等已打码)。出问题直接把它发过来,不用来回问环境。

稳定性

  • 托管启停加了互斥:双击「开始托管」不会起两个 NapCat。
  • hosting.json 原子写,断电/并发不会写坏。
  • 启动器和服务不再互相覆盖更新状态字段。
  • 日志自动轮转(服务 5 MB × 5 份,启动器 2 MB × 3 份)。

升级

老版本会自动更新到这一版。也可以手动下载 QQ-Notice-Hub.zip,解压覆盖到原安装目录,保留原来的 .env 和 data 目录,然后重启 QQ-Notice-Hub.exe;网页记得 Ctrl+F5 强刷一次。

  • 包大小:50,722,341 字节
  • SHA-256:d6a4fb07ec46d64b7ed2e746469ad8545af7d4acfc44c94c291b682a47380bce

这是测试版。稳定版仍是 v1.0.0,稳定通道不会自动升到测试版。

群务台 1.1.0 测试版(beta.11)

Choose a tag to compare

@ExpertKT ExpertKT released this 24 Oct 15:33

国内下载更快:Gitee 镜像 → https://gitee.com/ExpertKT/notice-hub-mirror/releases

电脑版下载:本页下方 QQ-Notice-Hub.zip(50,757,062 B,sha256 2ade3385c928a7e18f179751e7173b834ed4a31ef405598275dd535394d583d8)
安卓 APK:QQ-Notice-Hub-1.1.0-beta.11.apk(1,854,387 B,sha256 fcda7684ead45cb24edb2525edd5ca85132ac0dad9cafee35a0c70ce55568436,Release 附件)

这版主要修「装机与扫码卡住」

1. 「未找到电脑版 QQ」,以前只能干瞪眼

NapCat 只是一层壳,本身不含 QQ.exe,必须先装官方 QQ——这句话以前不在界面上,用户看到一段报错就卡住了。

  • 报错改成三步自助:下载官方 QQ → 装完不用打开 → 回来点「重新检测」,都是页面里的按钮和链接。
  • 检测不再只认注册表和几个写死路径:现在会读腾讯自己写的 Install 注册表项、读你正在运行的 QQ 的路径,再看各盘根目录的常见位置。QQ 装在 D 盘、绿色版、装给另一个 Windows 用户,都能找到。
  • 「找到了 QQ 但写不进去」是另一条错:QQ 装在 C:\Program Files 时写加载器要管理员权限,这条单独提示,不再和「找不到 QQ」混在一起。

2. 扫了二维码之后没反应

以前状态只有「连上 / 连不上」:OneBot 端口要等登录成功才监听,所以扫码后这段时间接口永远报「连不上」,页面只能显示一句不变的话,用户以为卡死。

  • 现在有明确阶段:未安装 / 没启动 / 等你扫码 / 已登录,并显示已经等了多少秒。
  • 二维码过期或换新会提示「扫最新的那张」;等 90 秒还没动静会提示点「重启引擎」。
  • 自己双击启动过 NapCat 的用户,不会再被误判成「没启动」而把二维码藏起来。

3. 首装的风险提示窗

以前是「我已阅读并理解 + 稍后再说」两个按钮:看着像要你同意,可不同意也能照用。现在只有一个 「我知道了,开始使用」,关掉就记下,不会再弹。

4. 学习通「重试自动获取」点了没反应

页面上缺了 setCxStep 这个函数,点「重试自动获取」时直接抛 ReferenceError——请求根本没发出去,按钮就永久变灰了。现在补上,步骤状态会正常更新(已登录 / 未找到 / 已加密 等),按钮点完会恢复。

顺手治了两件「我们自己会踩的坑」

  • 会改本机网络的两个接口(开公网、放行防火墙)现在必须显式确认(请求体带 confirm: true)才执行;测试/只读模式下直接 403 拒绝;每次执行都记一条 host-actions.log 审计。以前一个测试动作就能把公网开出去。
  • 文档与断言跟上:新增 NapCat 状态接口契约 docs/api-napcat-status.md、错误文案审计 docs/qa/error-message-audit.md,并把这版的新行为钉进 tests/test_page_beta11.py,避免以后被顺手删掉。

升级

托盘右键「重启并更新」,或在设置里检查更新。会保留 .env 与 data。

群务台 1.1.0 测试版(beta.10)

Pre-release

Choose a tag to compare

@ExpertKT ExpertKT released this 24 Oct 10:08

国内下载更快:Gitee 镜像 → https://gitee.com/ExpertKT/notice-hub-mirror/releases

电脑版下载:本页下方 QQ-Notice-Hub.zip(约 48.4 MB)
安卓 APK:群务台-1.1.0-beta.10.apk(Gitee 附件里也叫这个名)

这一版解决的三件烦人事

1. 托盘菜单不会再永久变灰

「开始托管 / 结束托管」是耗时操作,期间会把整个托盘设成忙、菜单变灰防误点。之前只要那次操作卡住(等 NapCat 起来、探测端口没返回),忙碌标志就永远停在忙——「重启并更新」点不了就是这个原因。

现在:忙状态有 90 秒上限,超时自动复位并记一条警告,菜单立刻恢复;托盘里所有菜单项的可用性都改成实时判断。真卡住时也会提示「托管操作超时,已恢复菜单」。

2. 手机连不上,现在点一下就修

  • 防火墙没放行:配对卡片里会出现「一键放行防火墙」,点一下弹一次管理员权限,命令自动执行,不用再复制 netsh 命令。启动时也会只读检查一次,缺规则才提示(24 小时内最多烦一次)。手动办法仍折叠在「手动办法」里。

  • 公网访问(异地、手机用流量):点「开通公网入口」后全自动——没装 Tailscale 就下载官方安装包并以管理员静默安装(UAC 一次)→ 没登录就自动拉起登录 → 登录完自动开 Funnel → 直接显示公网地址和「复制公网地址」。

    唯一要你自己做的是登录 Tailscale 账号(免费注册)。公网通道必须绑一个账号,这点任何方案都替代不了。整个过程都在页面里,有进度、可取消、失败有「重试」,不会卡住页面。

3. 公告到得更快,还有专门入口

  • 顶部「本地运行」左边新增公告铃铛:有未读就显示数字,点开是公告面板(按日期倒序、可「全部标为已读」、Esc 关闭、手机窄屏铺满)。
  • 公告缓存从 6 小时缩到 15 分钟;页面也从每 6 小时拉一次改成 15 分钟,打开铃铛时再强制刷新一次(30 秒防抖)。
  • 新增一条常驻公告「手机连不上?三步排查」,所有版本都能看到。

其它

  • 修复:首次使用向导打开时,NapCat 封号风险提示会被推迟到第二次访问才看到。
  • 暗色下三处折叠标题(登录二维码、手动粘贴 Cookie、账号与设备说明)对比度从 2.07 / 1.87 / 1.22 提到 16.1。
  • 滚动到头像和二维码时,吸顶栏不再切掉上方内容;顶部两条横幅间距拉开,不再看着像一条。

升级

托盘右键「重启并更新」,或在设置里检查更新。升级会保留 .env 与 data(数据库、待办、订阅群)。

已跑全量测试:Ran 1101 tests,OK (skipped=1)。

群务台 1.1.0 测试版(beta.8)

Choose a tag to compare

@ExpertKT ExpertKT released this 23 Oct 12:04

群务台 1.1.0 测试版(beta.8)

国内下载慢、或者 GitHub 打不开? 直接走 Gitee 镜像,和这里是同一份包、SHA-256 完全一致:

这一版主要修「手机连不上」和「微信待办找不到微信」。

手机连不上:三个原因都堵上了

防火墙:以前从来没有检查过 Windows 防火墙。Windows 默认阻止外部设备访问 8766 端口,所以局域网里手机连不上是常态。现在配对页会先查一次:如果 8766 没被放行,就显示明确警告和一条可复制的命令(管理员 PowerShell 执行一次即可)。install-task.ps1 也会在注册计划任务时自动放行(它本来就需要管理员权限),非管理员运行不会报错,只提示。

网卡选错:以前程序会把「本机能用到的地址」直接给手机,其中包括 Tailscale、VMware、VirtualBox、WSL 这些虚拟网卡。常见的情况是虚拟网卡被改名成「以太网 4」,光看名字看不出是虚拟的,但手机永远连不上。现在优先用真实的无线/有线网卡,并排除已知虚拟网卡和它们的地址段。

公网开通失败不说原因:以前点「开通公网入口」失败只报一句「开通失败」。现在会明确告诉你卡在哪:tailscale 没安装、没登录、没启用,还是需要在 Tailscale 后台配置访问权限。

微信待办:自动找数据目录

以前的微信数据目录被写死成 D:\Wechat files\xwechat_files——只有恰好装在这个位置的机器能读到。别人装在默认位置(C:\Users\用户名\Documents\xwechat_files)就会提示「未找到微信」。

现在按顺序自动探测:

  1. .env 里的 QQ_DIGEST_WECHAT_DIR(手动指定,优先级最高)
  2. 注册表里微信自己记录的数据目录
  3. Documents\xwechat_files(微信 4.0 默认)
  4. Documents\WeChat Files(旧版默认)

全都找不到时,错误提示会列出「试过哪些路径」以及怎么手动指定,不再只说找不到。

注意:只支持微信 4.0(进程名 Weixin.exe)。3.x 的 WeChat.exe 数据库格式不同,读不了——现在会明确提示版本不支持,而不是笼统报错。

稳定性

  • 更新状态文件写入的重试从固定 10ms 改成退避(10/20/40/80/160ms),减少 Windows 上杀毒/索引短暂锁文件导致的偶发失败;最终失败会记录具体路径。
  • 测试产生的临时目录现在自动清理,不再堆在程序目录里。
  • 清理了一批因为合并失误留下的重复代码(不影响功能,但曾经藏着「一旦被修好就会挪窗口」的隐患)。

升级

老版本会自动更新到这一版。也可以手动下载 QQ-Notice-Hub.zip,解压覆盖到原安装目录,保留原来的 .env 和 data 目录,然后重启 QQ-Notice-Hub.exe;网页记得 Ctrl+F5 强刷一次。

  • 包大小:50,689,459 字节
  • SHA-256:04b0426bd1746c2e849e6694433abfe1f8b05a05b5172e11189858897422ff25

这是测试版。稳定版仍是 v1.0.0,稳定通道不会自动升到测试版。

群务台 1.1.0 测试版(beta.7)

Choose a tag to compare

@ExpertKT ExpertKT released this 23 Oct 01:28

群务台 1.1.0 测试版(beta.7)

国内下载慢、或者 GitHub 打不开? 直接走 Gitee 镜像,和这里是同一份包、SHA-256 完全一致:

这一版修的是「卡住」和「装一半」这两类最让人难受的问题。

下载更新包不再无限转圈

下载进度条现在有两道上限:连续 90 次轮询没有进展(约 63 秒零字节),或总时长超过 300 秒,就会停止轮询并提示「下载超时,可重新点『下载更新包』重试」。判断依据是已下载字节数有没有增长,网络慢但有进展不会被误杀。

下载按钮旁边新增**「放弃本次下载」**:点了立刻停止轮询、恢复按钮、状态显示已放弃,不会再出现「正在下载」永远挂在那里。

同时修掉三条同类死路:下载失败、状态异常、轮询请求失败,以前都会让按钮永久变灰。

覆装前先检查文件占用,被占用就整包不动

以前安装脚本直接 Expand-Archive -Force 展开到正在运行的安装目录。如果某个文件被占用——最常见的是 NapCat 子进程锁着 VCRUNTIME140.dll——会逐个覆盖到一半然后失败,留下半新半旧的安装。

现在解压前会逐个探活「将被覆盖的既有文件」:只要有一个打不开,就整包跳过、一个文件都不改,报告「更新未开始」并保留原状。结束进程的范围也从「只看安装目录」扩展到按镜像名识别 NapCat 子进程,避免它在安装目录之外锁文件。

另外,更新失败时的文案不再谎称「已回退旧版」——以前根本没回退。现在如实说明是「未开始」还是「可能已部分覆盖,请重装或手动覆盖安装」。

所有请求都有超时兜底

页面里的请求以前没有超时:后端一旦卡住,对应面板就停在「加载中」,按钮永远灰着。现在默认 30 秒超时,超时后显示「请求超时,请重试」并恢复按钮。安装、启动、更新下载这些本来就慢的操作按需放宽到 2 分钟,微信/钉钉拉群放宽到 10 分钟。

拉群可以取消了

微信/钉钉首次拉群要 3–6 分钟,以前只能看着按钮变灰。现在旁边有「取消拉取」,点了立刻停止等待、按钮恢复正常。

其它

  • 公告拉取失败不再静默,横幅会提示「公告暂时无法更新,稍后会自动重试」。
  • 修掉同一份更新状态文件还剩的一处锁不一致。
  • .env 的默认查找位置改到 exe 所在目录:以前只经启动器启动才读得到,直接运行服务本体时读不到配置。

升级

老版本会自动更新到这一版。也可以手动下载 QQ-Notice-Hub.zip,解压覆盖到原安装目录,保留原来的 .env 和 data 目录,然后重启 QQ-Notice-Hub.exe;网页记得 Ctrl+F5 强刷一次。

这是测试版。稳定版仍是 v1.0.0,稳定通道不会自动升到测试版。

群务台 1.1.0 测试版(beta.6)

Choose a tag to compare

@ExpertKT ExpertKT released this 22 Oct 23:53

群务台 1.1.0 测试版(beta.6)

这一版主要修三件事:国内下载慢、偶发丢失更新检查状态、几个能让服务卡死的输入。

更新包下载优先走 Gitee 镜像

以前更新默认从 GitHub 下载,部分网络下很慢甚至卡住。现在:两个源报告同一个版本、且 SHA-256 完全一致时,主下载地址自动切到 Gitee 镜像,GitHub 降为备用。SHA-256 不一致或缺失时仍保持 GitHub 主源,不会下到错包。

修复偶发丢失「更新检查状态」

更新检查与公告刷新会同时读写 data/updates/state.json,以前用的固定临时文件名 + 两把不同的锁,并发时可能丢一次写入,表现是「明明有新版本却不提示」。现在临时文件名唯一、写盘统一到一把锁,并对 Windows 文件占用加了重试。

请求体校验

/api/tasks/<id>、/api/onboarding/accept 收到合法 JSON 但不是对象(数组、null、字符串)时,以前会抛异常、把处理线程打崩、客户端连接直接断开。现在返回 400 并说明原因,服务不受影响。

空 token 时拒绝「开到公网」

空 token 的部署里,鉴权只放行本机来源。此时点「开到公网」会把整站反代出去,而转发回来的请求源地址正是本机——等于把全站 API 无鉴权暴露到公网。现在会先拦截并提示先设访问令牌。

主机名解析不再卡住请求

_lan_hosts() 以前同步解析本机主机名,没有超时。系统 DNS/mDNS 慢的时候,点「接入」会卡 5 秒以上;macOS 上还会让测试超时。现在解析放到后台线程、最多等 1 秒,结果缓存复用。

升级

老版本会自动更新到这一版(版本号已升到 1.1.0-beta.6)。也可以手动下载 QQ-Notice-Hub.zip,解压覆盖到原安装目录,保留原来的 .env 和 data 目录,然后重启 QQ-Notice-Hub.exe;网页记得 Ctrl+F5 强刷一次。

这是测试版。稳定版仍是 v1.0.0,稳定通道不会自动升到测试版。

群务台 1.1.0-beta.5(测试版 · 热修复)

Choose a tag to compare

@ExpertKT ExpertKT released this 22 Oct 14:14

群务台 1.1.0 测试版(beta.5)· 热修复

修的是 beta.4 里一个很要命的问题:新用户点完「启动并登录」,页面上找不到登录二维码。

修了什么

  • 二维码挪到按钮正下方并默认展开:以前它被折叠在「需要重新登录时」那一行里,还排在页面很靠下的位置,看着就是「没有二维码」。
  • 未登录时自动展开,登录成功后自动收起:不会再出现「登录状态还没好,二维码却收起来了」。
  • 点「启动并登录 / 一键接入 / 刷新二维码」时二维码滚进视野:不用再自己往下翻找。
  • 二维码加载失败时会自动把折叠条撑开,并显示「二维码暂不可用」而不是空白。

升级

老版本会自动更新到这一版(版本号已升到 1.1.0-beta.5)。也可以手动下载 QQ-Notice-Hub.zip,解压覆盖到原安装目录,保留原来的 .env 和 data 目录,然后重启 QQ-Notice-Hub.exe;网页记得 Ctrl+F5 强刷一次。

这是测试版。稳定版仍是 v1.0.0,稳定通道不会自动升到测试版。

下载慢怎么办

应用内更新默认走 GitHub,部分网络下会很慢。可以直接下 Gitee 镜像包(SHA-256 与 GitHub 版一致,b8cf3b019d50cf80553752668d3fbba205b3788122d4e81256008f60e73c7305):
https://gitee.com/ExpertKT/notice-hub-mirror/releases/download/v1.1.0-beta.5/QQ-Notice-Hub.zip

群务台 1.1.0-beta.4(测试版)

Choose a tag to compare

@ExpertKT ExpertKT released this 21 Oct 17:12

本次更新(1.1.0-beta.4):

  • 新增 Linux 与 macOS 源码运行支持:一键安装脚本、systemd / LaunchAgent 模板与平台文档
  • 非 Windows 默认只监听 127.0.0.1;POSIX 上更新改为提示手动下载安装
  • 网页首屏修复:提示条位置、窄屏排列、月历标题折行、暗色复选框与学习通过期提示条配色
  • 钉钉本地库接入(只接收);学习通 Cookie 自检与手动粘贴入口
  • 群列表后台常驻刷新;首次启动全屏配置向导;一键备份数据库
  • 更新支持 GitHub 优先、Gitee 镜像兜底,sha256 校验不变

群务台 1.1.0 测试版(beta.2)

Pre-release

Choose a tag to compare

@ExpertKT ExpertKT released this 17 Oct 12:50

群务台 1.1.0 测试版(beta.2)

这一版把 1.1.0 测试线的内容合并到一起发布:设置页的毛病、学习通接入、以及更新链路的防降级。

本次改动

  • 顶部显示详细版本号:通道标带当前版本,如 BETA 测试版 · 1.1.0-beta.2;取不到版本时只显示通道名
  • 设置页修复:学习通、微信的「启用」勾上即保存,关浏览器再回来不会丢;保存按钮失败时会显示原因,并有 20 秒超时兜底,不再一直停在「保存中…」
  • 学习通只留两条路:①「浏览器自动获取」(推荐)②托盘右键「读取学习通 Cookie」/「从剪贴板导入学习通 Cookie」。手工粘贴那套容易卡住、也拿不到 HttpOnly 登录态的入口已移除
  • Cookie 读取更稳:先复制浏览器 Cookie 库快照再解密;被占用时会明确提示先完全退出浏览器
  • 自检与月历:自检列表「消息推送」那行不再错位;月历事项改为单行省略,字的下缘不再被裁出锯齿
  • 订阅二维码:新增「刷新二维码」,会重新取一次订阅地址;地址没变时如实提示「二维码内容与上次相同」
  • 更新防降级:版本比较改成判断高低而不是「是否不同」,本机比线上新时不会再被提示「有更新」;稳定通道仍然只认不带 - 的正式 tag

验证

  • python -m unittest discover -s tests -t . — 830 项通过
  • 重建后覆盖安装,桌面实测 295 个文件与构建包一致;服务重启后 8765/8766 正常
  • 页面实读确认:版本号 1.1.0-beta.2、手工粘贴入口已不存在、托盘提示文案在
  • 自动更新链路独立复核:网页对「本机比线上新」明确提示无需更新;通道筛选、待安装记录、托盘「重启并更新」文案均正确

升级说明

下载 QQ-Notice-Hub.zip,解压覆盖到原安装目录,保留原来的 .env 和 data 目录,然后重启 QQ-Notice-Hub.exe。网页需要 Ctrl+F5 强刷一次;托盘菜单要退出托盘程序再打开才会出现新项。

这是测试版。钉钉 / 学习通 / 微信三个消息来源目前只有单元测试覆盖,没有在真实账号上做端到端验证。

群务台 1.1.0 测试版(beta.1)

Pre-release

Choose a tag to compare

@ExpertKT ExpertKT released this 15 Oct 12:02

群务台 1.1.0 测试版(beta.1)

v1.1.0 线的第一个测试版,在 v1.0.0 基础上收进整条 1.1.0 开发线。

本次改动

  • 多来源:除 QQ 群外,新增钉钉群、学习通、微信群三个消息来源(默认关闭,需在设置里开启)
  • 更新通道:设置页可检查更新,正式版 / 测试版两个通道
  • 服务自检:设置页列出 8 项状态,每项都给出下一步该做什么
  • AI 摘要:设置页直接选服务商、填 Key,不用再改 .env
  • 推送通道:新增钉钉、企业微信、飞书群机器人
  • 手机 App:修复扫码闪退、断线自救、扫码页跟随手机方向

下载

平台 文件
Windows QQ-Notice-Hub.zip
Android notice-hub-android-1.1.0-beta.1.apk

升级说明

覆盖安装时保留原来的 .env 和 data 目录。

测试版,仅供试装。稳定版仍在 v1.0.0;本版不会推送到正式版通道。