Skip to content

Releases: g1331/tenko

v4.0.0-rc51

v4.0.0-rc51 Pre-release
Pre-release

Choose a tag to compare

@g1331 g1331 released this 28 Oct 10:07

新增

  • 宿主升级重启后,已经打开的面板页面会在顶栏提示“面板已更新,点此刷新”。以前旧页面会继续跑升级前的前端,可能把新版后端不认的数据提交上去,例如保存违禁词时报“值类型不正确”。页面读到的宿主版本和打开时不同就会提示,点击即重新载入。

说明

  • 当前版本都是预发布版本,需要 channel = "prerelease" 才能检查到更新。
  • 本次没有升级依赖,不需要重新安装浏览器。
  • 这个提示只对升级到本版本之后打开的页面生效;升级前打开的页面仍需手动刷新一次。

按既有 tag-only 流程发布预览版本,不包含生产环境部署。

v4.0.0-rc50

v4.0.0-rc50 Pre-release
Pre-release

Choose a tag to compare

@g1331 g1331 released this 27 Oct 17:03

新增

  • 插件配置里的字符串列表能在面板编辑:例如 AI群友的违禁词、唤醒词,在插件配置抽屉里一行一个地填,保存时去掉空行和首尾空格。以前这类项只读,只能改配置文件。
  • 用 default_factory 声明默认值的配置项(多为列表)也能“恢复默认”:面板从插件的配置模型补上默认值,没写进配置文件时显示默认值而不是空。

说明

  • 当前版本都是预发布版本,需要 channel = "prerelease" 才能检查到更新。
  • 本次没有升级依赖,不需要重新安装浏览器。

按既有 tag-only 流程发布预览版本,不包含生产环境部署。

v4.0.0-rc49

v4.0.0-rc49 Pre-release
Pre-release

Choose a tag to compare

@g1331 g1331 released this 26 Oct 06:39

修复

  • 加群申请可能被丢掉:QQ 只把加群申请推给群主和管理员,群里有多个 bot 号时,选路选中的号不一定是管理员、根本收不到申请,而真正收到申请的管理员号又因为没被选中被过滤,插件看不到这次申请。现在加群申请和机器人被邀请进群一样不参与选路,收到的号都交给插件处理(被禁言的号除外,黑名单和调试白名单照常生效);几个管理员号都收到时由插件自己去重,例如战地一查询 0.1.8 的入群审核。

说明

  • 当前版本都是预发布版本,需要 channel = "prerelease" 才能检查到更新。
  • 本次没有升级依赖,不需要重新安装浏览器。

按既有 tag-only 流程发布预览版本,不包含生产环境部署。

v4.0.0-rc48

v4.0.0-rc48 Pre-release
Pre-release

Choose a tag to compare

@g1331 g1331 released this 26 Oct 03:48

修复

  • 扩展插件热更新后 /帮助 报错:新版本改了命令定义时(如 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

v4.0.0-rc47 Pre-release
Pre-release

Choose a tag to compare

@g1331 g1331 released this 25 Oct 06:58

新增

  • 不用 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

v4.0.0-rc46 Pre-release
Pre-release

Choose a tag to compare

@g1331 g1331 released this 25 Oct 05:32

修复

  • 升级版本源解析失败(没装 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

v4.0.0-rc45 Pre-release
Pre-release

Choose a tag to compare

@g1331 g1331 released this 25 Oct 03:19

新功能

  • 插件配置恢复默认值:配置抽屉里每个有默认值的项都可以“恢复默认”,底部还有“全部恢复默认”。点击后先在表单里填回默认值,保存才生效;恢复的项会从 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

v4.0.0-rc44 Pre-release
Pre-release

Choose a tag to compare

@g1331 g1331 released this 24 Oct 06:18

新功能

  • 插件市场可切换已装插件的版本:详情抽屉里已安装的插件现在可以选择目录里任意可用版本,按钮显示“切换到 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

v4.0.0-rc43 Pre-release
Pre-release

Choose a tag to compare

@g1331 g1331 released this 24 Oct 06:00

修复

  • 插件市场详情的版本状态:已安装的插件,版本列表里对应版本此前仍显示“可安装”。现在标为“已安装”;其他可用版本标为“兼容”(已安装时需到“扩展插件”页更新,不能在这里直接装);未安装的插件仍显示“可安装”。

验证

  • WebUI 构建与类型检查通过,静态资源已随版本提交。

预览版,仅打标签,未部署生产。

v4.0.0-rc42

v4.0.0-rc42 Pre-release
Pre-release

Choose a tag to compare

@g1331 g1331 released this 24 Oct 04:51

修复

  • 撤回已退群成员的消息不再刷堆栈:成员退群后,他的旧消息被撤回时,OneBot 适配器补查成员信息会失败(NapCat 返回 1200“成员不存在”),之前每次撤回都会打一整段 ERROR 堆栈。现在只打一行 WARNING,事件照常按内部事件转发,行为不变。其他解析异常仍保留完整堆栈。

验证

  • Ruff 通过;完整测试 747 通过(排除 1 个本地环境相关用例,CI 干净环境覆盖)。

预览版,仅打标签,未部署生产。