5.9 KiB
真寻可安装预览包
接入边界
全部图片采用统一整数编码质量(1~95,默认75)。真寻网页配置名称为 “农场图片质量”,普通NoneBot接入使用FARM_IMAGE_QUALITY。真寻请求时 读取配置;无效值明确拒绝并保留已有有效配置,不静默夹取范围。 只有“我的农场 高清”可覆盖默认尺寸至1536宽,质量max(配置值,85)。 地块编号、详情、种子商店、我的种子和我的作物拒绝高清参数,保留既有 分页和仓库文字查询。编码质量随各类渲染输入传递并进入图片缓存键。 PNG继续无损输出,质量参数不改变PNG清晰度。默认其他图片尺寸不变。
Scenario: 全局图片质量及仅农场高清 Acceptance: A19 配置1和95可用;0、96、布尔及小数拒绝。所有图片按配置编码且不同质量 不共享成图。农场高清为1536宽,质量至少85且不低于配置;其他命令高清 返回明确参数错误,仓库分页和文字仍可用,帮助不再宣称其他命令支持高清。
本 capability 验收真寻接入;NoneBot/AstrBot 已有独立接入与打包, 不将其当前存在误报为未实现。业务和图片仍来自主仓库共享源码。接入层加载插件 私有_vendor命名空间,渲染层对farm_core的引用在构建时改为私有相对 导入,不修改开发源码、不污染全局sys.path或sys.modules别名。 命令不增加测试前缀,沿用开通农场、我的农场、农场帮助、我的种子、 我的作物、购买种子、播种、收获、铲除、作物加锁、作物解锁、出售作物 等原指令,覆盖帮助、注册、我的农场、仓库、购买、 播种、收获、铲除、锁定/解锁和出售;复用已有规则,不移植旧损坏模块。 部署标识由配置给出,同一平台玩家在本预览部署内共享农场,不跨平台 绑定;测试数据位置与旧版不同。事件标识包含机器人、平台、用户及 原消息标识;无法获得稳定消息标识时写操作明确拒绝,不能随机重试。 在启动时初始化存储、渲染器,在关闭时等待任务排空后关闭存储;字体 支持显式配置合法中文字体,或校验下载原版小赖字体及完整许可。 资源源可选 Github、Gitea、farm_service,默认 Github;服务地址独立 保留。缺少资源或字体时保留文字功能,日志明确原因。头像失败降级, 不让头像下载无限等待。本次不包含作物目录远程更新。
Scenario: 真寻命令与生命周期 Acceptance: A14 模拟宿主验证命令路由、身份/幂等标识、异常反馈与启动关闭,使用独立库; 不把模拟宿主测试报告为真实平台发图成功。
产物
scripts/build_zhenxun.py按白名单复制真寻接入、farm_core、farm_render、 对应轻量数据、升级土地素材、LICENSE及NOTICE;大型图片及字体 ZIP 不进入插件包。ZIP含单一插件根目录,仓库导出目录 可作为真寻发布仓库根。生成来源manifest与独立SHA256附件,清单不 自包含哈希;本地工作区脏时标识dirty,不能冒充源HEAD的纯净构建。 输入版本严格校验,ZIP排序/时间固定,目标存在则拒绝或显式选择新路径。 不打包其他适配器、运行库、凭据、缓存、legacy或全局字体。
Scenario: 可复现白名单打包 Acceptance: A15 重复构建内容相同,独立目录导入私有模块成功,无旧目录和其他框架依赖。
安装验证
独立verify脚本校验manifest中每个文件与ZIP精确一致,拒绝多余/重复项、 绝对路径、反斜线穿越、符号链接、不可信插件根名、哈希错误。 安装器只安装到用户显式提供的插件父目录,既有目标拒绝覆盖,不删旧 插件、不接触旧数据、不安装依赖、不启动/重启机器人;先校验再写入, 失败清理自己新建的临时目录。提供明确安装步骤和停止机器人提示。
Scenario: 安全校验与安装 Acceptance: A16 临时目录测试有效包可安装,坏包/穿越/已有目标均拒绝且不留下半成品。
工作流和发布
主仓库CI在PR/push及手动触发时执行检查,构建ZIP/清单/校验附件并上传 Actions artifact。工作流权限默认只读;不可信PR不触发跨仓库写入。 跨仓库同步依当前工作流,在 main 的 push 或显式 publish 手动输入时 执行,PR 不触发;使用专用 Secret/受保护 environment,固定目标为 Shu-Ying/zhenxun_plugin_farm 的 main 分支。脚本默认 dry-run,只有显式 发布才联网;只进行普通更新,不 force、不修改旧标签;并发分支改变 时失败。此次本地归档不执行发布。发布仓库只含生成的 可安装内容、来源和验证工具,以及验证工作流,不在那里维护业务源码。 下载ZIP测试不要求先同步仓库,不要求用户先给令牌。
Scenario: 测试附件与可控同步 Acceptance: A17 静态检查工作流触发/权限和输入边界;模拟服务验证固定目标、冲突保护、 令牌不落盘与默认dry-run。此任务不执行真实GitHub发布。
兼容与文档
真寻本地配置要求Pillow>=10,<11,本预览使用与其相交的>=10.4版本; CI测试最低10.4和本项目支持当前版本,Windows/Linux。不得静默强制 升级宿主到12。文档列出本机实际检查、模拟与真实宿主的差别,并提供 主仓库生成、发布仓库布局、下载/依赖安装、字体、数据库、测试命令、 与旧版避免冲突、备份/卸载和可选同步的凭据最小权限步骤。沿用原 指令时必须由用户停用旧插件,不静默更名指令,不自动禁用旧插件。
Scenario: 可复现的真寻测试交付 Acceptance: A18 产物可离线验证,文档能按步骤启动人工测试;明确真实机器人与GitHub 工作流仍未实际执行,不宣称已经上线或已兼容全部平台。