Files
main_plugin_farm/docs/comet/specs/zhenxun-preview/spec.md
T

97 lines
5.9 KiB
Markdown
Raw Normal View History

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