Repository navigation
Releases: g1331/tenko
Releases · g1331/tenko
Release list
v4.0.0-rc51
新增
- 宿主升级重启后,已经打开的面板页面会在顶栏提示“面板已更新,点此刷新”。以前旧页面会继续跑升级前的前端,可能把新版后端不认的数据提交上去,例如保存违禁词时报“值类型不正确”。页面读到的宿主版本和打开时不同就会提示,点击即重新载入。
说明
- 当前版本都是预发布版本,需要
channel = "prerelease"才能检查到更新。 - 本次没有升级依赖,不需要重新安装浏览器。
- 这个提示只对升级到本版本之后打开的页面生效;升级前打开的页面仍需手动刷新一次。
按既有 tag-only 流程发布预览版本,不包含生产环境部署。
v4.0.0-rc50
新增
- 插件配置里的字符串列表能在面板编辑:例如 AI群友的违禁词、唤醒词,在插件配置抽屉里一行一个地填,保存时去掉空行和首尾空格。以前这类项只读,只能改配置文件。
- 用
default_factory声明默认值的配置项(多为列表)也能“恢复默认”:面板从插件的配置模型补上默认值,没写进配置文件时显示默认值而不是空。
说明
- 当前版本都是预发布版本,需要
channel = "prerelease"才能检查到更新。 - 本次没有升级依赖,不需要重新安装浏览器。
按既有 tag-only 流程发布预览版本,不包含生产环境部署。
v4.0.0-rc49
修复
- 加群申请可能被丢掉:QQ 只把加群申请推给群主和管理员,群里有多个 bot 号时,选路选中的号不一定是管理员、根本收不到申请,而真正收到申请的管理员号又因为没被选中被过滤,插件看不到这次申请。现在加群申请和机器人被邀请进群一样不参与选路,收到的号都交给插件处理(被禁言的号除外,黑名单和调试白名单照常生效);几个管理员号都收到时由插件自己去重,例如战地一查询 0.1.8 的入群审核。
说明
- 当前版本都是预发布版本,需要
channel = "prerelease"才能检查到更新。 - 本次没有升级依赖,不需要重新安装浏览器。
按既有 tag-only 流程发布预览版本,不包含生产环境部署。
v4.0.0-rc48
修复
- 扩展插件热更新后
/帮助报错:新版本改了命令定义时(如 AI群友 0.1.32),热更新后按名字查不到这条命令,/帮助和插件命令文档会抛出ValueError;命令本身仍能使用。现在热更新和配置重载后会把这些命令重新登记。
依赖
- satori-python 升级到 1.3.11,OneBot 11 适配器升级到 0.6.0,包含上游修复:登录前收到事件不再中断接收循环、qq-client 账号的平台判断、群名片只放在 Member 上;图片、语音、视频、文件消息段保留 OneBot 的附加字段。
- alembic 升级到 1.20.1;开发工具 ruff 0.17.2、pre-commit 4.7.0、pytest-asyncio 1.4.1;WebUI 构建工具 vite 8.3.5、prettier 3.9.10、oxlint 1.89。
说明
- 当前版本都是预发布版本,需要
channel = "prerelease"才能检查到更新。 - 升级会按新的
uv.lock同步依赖;playwright 和 SQLAlchemy 本次未升级,不需要重新安装浏览器。
按既有 tag-only 流程发布预览版本,不包含生产环境部署。
v4.0.0-rc47
新增
- 不用 Git 也能升级:每个版本的 Release 会自动附上源码包
tenko-<版本>.tar.gz,github_release版本源下载后按 GitHub 提供的 SHA-256 校验再安装。配置模板默认改用github_release(github_repository = "g1331/tenko"),git clone 和下载压缩包两种部署都能检查和安装更新;已有部署的配置不受影响。 - 宿主配置实时生效:在面板保存后,图片渲染、限流、聊天记录、异常报告缓冲、通知群、插件目录地址、日志级别、调试模式、更新渠道、更新策略、检查间隔立即应用到运行中的 bot,不用重启;只有“启用检查更新”仍需重启。限流的冷却和黑名单、未写入数据库的聊天记录不会因保存而丢失。
- 宿主配置恢复默认:每项可单独恢复默认,也可一键全部恢复;恢复的项从配置文件删除,以后跟随默认值。
文档
- README 补充不用 Git 的安装方式;升级与配置文档说明
github_release版本源和面板里即时生效的升级配置项。 - 配置模板更正
git_tag的说明:压缩包部署时把repository改填完整地址(仍需 Git)。
说明
- 当前版本都是预发布版本,需要
channel = "prerelease"才能检查到更新。 - 没有源码包附件的旧版本对
github_release版本源不可见。
按既有 tag-only 流程发布预览版本,不包含生产环境部署。
v4.0.0-rc46
修复
- 升级版本源解析失败(没装 git、不是 git clone 部署、Windows 上 git 的 safe.directory 拒绝访问、没有 origin 远端等)时不再阻止 bot 启动;日志记一条警告,
/检查更新和面板会显示具体原因。 - Windows 部署:
- 重启/升级守护进程改用
psutil.pid_exists探测旧进程(Windows 上os.kill(pid, 0)会发 Ctrl-C); - 重启命令只在 Linux/macOS 上使用
scripts/launcher.sh; - 升级后切换版本在 Windows 上改为启动子进程并等待,不再用
os.execve导致终端提前返回。
- 重启/升级守护进程改用
已知限制
- Windows 上升级或安装插件时,若要替换已加载的编译扩展(
.pyd),可能因文件占用失败并回滚,需要先停止 bot 再操作。
v4.0.0-rc45
新功能
- 插件配置恢复默认值:配置抽屉里每个有默认值的项都可以“恢复默认”,底部还有“全部恢复默认”。点击后先在表单里填回默认值,保存才生效;恢复的项会从
tenko.toml删除,以后插件改了默认值也会跟着变。没有默认值的项(如 API key)不会被重置。
修复
- Windows 部署:面板读取
tenko.toml时按系统编码(中文 Windows 为 GBK)读取,配置里有中文就报'gbk' codec can't decode,插件配置页打不开。现在固定按 UTF-8 读取。 - 宿主读取 uv、git、健康检查等子进程输出时同样固定按 UTF-8 解码,不再依赖系统编码。
验证
- Ruff 通过;完整测试 751 通过(排除 1 个本地环境相关用例);新增配置重置的后端测试和浏览器测试。未在真实 Windows 环境验证,Windows 用户仍建议设置
PYTHONUTF8=1。
预览版,仅打标签,未部署生产。
v4.0.0-rc44
新功能
- 插件市场可切换已装插件的版本:详情抽屉里已安装的插件现在可以选择目录里任意可用版本,按钮显示“切换到 X”或“降级到 X”。降级会二次确认,并提示旧版本可能读不了新版本留下的数据、数据库结构不会退回;出问题可在“扩展插件”页撤销。指定版本同样固定到目录登记的哈希,撤回或不兼容的版本会被拒绝。运行中的插件只换了自己的包时照常原子重载,新版本加载或迁移失败会回到原版本。
文档
- 主仓库、tenko-api、插件模板的文档与当前代码对齐:
declare()签名、限流提示、@rate_limit、插件库运行中迁移、feature_required私聊规则、完整导出清单、[plugin_config.<ID>]配置节、WebUI 页面说明等。 - 插件模板改为用
/安装插件安装(不再建议uv pip install),补充收录到插件目录的硬性要求,模板 CI 增加 Python 3.13。
验证
- Ruff 通过;完整测试 749 通过(排除 1 个本地环境相关用例);新增后端接口测试和浏览器降级流程测试。
预览版,仅打标签,未部署生产。
v4.0.0-rc43
修复
- 插件市场详情的版本状态:已安装的插件,版本列表里对应版本此前仍显示“可安装”。现在标为“已安装”;其他可用版本标为“兼容”(已安装时需到“扩展插件”页更新,不能在这里直接装);未安装的插件仍显示“可安装”。
验证
- WebUI 构建与类型检查通过,静态资源已随版本提交。
预览版,仅打标签,未部署生产。
v4.0.0-rc42
修复
- 撤回已退群成员的消息不再刷堆栈:成员退群后,他的旧消息被撤回时,OneBot 适配器补查成员信息会失败(NapCat 返回 1200“成员不存在”),之前每次撤回都会打一整段 ERROR 堆栈。现在只打一行 WARNING,事件照常按内部事件转发,行为不变。其他解析异常仍保留完整堆栈。
验证
- Ruff 通过;完整测试 747 通过(排除 1 个本地环境相关用例,CI 干净环境覆盖)。
预览版,仅打标签,未部署生产。