Xingyu (Estrella) Pan
|
b7d82fb2a9
|
Merge pull request #1137 from EstrellaXD/fix/plugin-manual-pick-sha
fix(plugins): manual-pick 的 sha256 改为排除 web-src 后的 zip
plugins
|
2026-10-09 17:00:29 +02:00 |
|
Estrella Pan
|
065fed1a5c
|
fix(plugins): manual-pick 的 sha256 改为排除 web-src 后的 zip
PR 检查用的是 base 分支的 ab_sdk,那时 pack 还没有排除 web-src,
算出的 715b… 包含了前端源码。合并后构建得到 08caa4…。
|
2026-10-09 16:59:38 +02:00 |
|
Xingyu (Estrella) Pan
|
e7ac456a81
|
Merge pull request #1133 from EstrellaXD/feat/4.0-plugin-market
feat(plugins): 插件市场索引与签名发布流水线
|
2026-10-09 16:58:14 +02:00 |
|
Estrella Pan
|
5fc7f749d7
|
Merge remote-tracking branch 'origin/4.0-dev' into feat/4.0-plugin-market
|
2026-10-09 13:00:21 +02:00 |
|
Xingyu (Estrella) Pan
|
27c30478ff
|
Merge pull request #1134 from EstrellaXD/fix/4.0-ui-polish
fix(webui): 4.0 界面审查修复
|
2026-10-09 12:57:11 +02:00 |
|
Estrella Pan
|
cc2148204f
|
fix(plugins): manual-pick 的 sha256 改用 Linux 上打出的值
签名在 Linux runner 上进行,带前端的插件在 macOS 上构建的字节与之不同。
|
2026-10-09 12:45:08 +02:00 |
|
Estrella Pan
|
ee3ee0a6ab
|
fix(webui): 4.0 界面审查第二轮修复
- 通知渠道列表测试:已保存且未改动的行按下标测试后端保存的配置(掩码密钥
不再导致失败,插件渠道的自带字段得以保留),未保存的行按当前配置测试;
后端下标改为对应完整渠道列表(含停用项)
- 插件配置表单:草稿深拷贝 options,编辑嵌套行后保存按钮可用
- 插件配置表单:数字字段清空后保持空白,Optional 字段清空为 null
- 标签输入:失焦(focusout)时添加未确认的输入;输入法组字时的回车不添加标签
- 下载器:切回已保存的类型时恢复保存的配置,不再清空凭据
- 插件挂载点加载失败时改为刷新页面,提示文案同步
- 移动端导航:同一插件只显示一个入口,导航项不收缩、可横向滚动
- 插件页面无匹配挂载点时标题回退为插件 id
|
2026-10-09 12:11:30 +02:00 |
|
Estrella Pan
|
2ed46695a2
|
feat(plugins): 条目以 sha256 绑定审查过的 zip
PR 检查打出的 zip 的 sha256 写进条目。合并后在独立 job 中重新打包的 zip、
签名 job 汇总的 zip(含复用的旧 zip)都必须与它一致才签名,构建在 PR 与
合并后产出不同字节时发布失败,不会签下未审查的内容。条目缺少或写错 sha256
时,PR 检查在摘要中给出应填的值。
|
2026-10-09 12:02:02 +02:00 |
|
Estrella Pan
|
d664122af8
|
fix(plugins): 按 Codex 审查加固插件市场流水线
- 拒绝符号链接形式的条目;PR 检查纳入类型变更(T)
- PR 头部先解析为固定 SHA,作者代码不能借 FETCH_HEAD 换掉被检查的 commit
- 使用已发布的 catalog 前先验签,篡改的 release 资源不会被重新签名
- 全部下架时签发空目录
|
2026-10-09 10:31:55 +02:00 |
|
Estrella Pan
|
5e15c5cf17
|
fix(webui): 4.0 界面审查修复
按 4.0 UI 审查确认的问题修复(设计规范、状态与流程、无障碍与手机端、文案):
- 插件卡片:加载失败可重试、未保存标记、开关与保存分开忙碌状态、停用或卸载
仍在使用的插件前确认、扩展点与权限显示为译名、tags 字段改用 ab-tags-input
- 插件表单:必填与范围校验、删除非空行前确认、清空数字恢复默认值、稳定的行 key
- 插件页面与挂载点:加载骨架、失败原因与重试;手机底栏可进入插件页面
- 下载器:按类型显示字段、切换类型重置选项、id 规则提示、类型名称
- 通知:测试结果按列表 / 对话框分开、插件渠道提示、rename_skipped 显示方法名
- 规则编辑与添加 RSS:高级区改用 ab-field / ab-select,补充可访问名称
|
2026-10-09 10:23:16 +02:00 |
|
Estrella Pan
|
c77f437fc7
|
fix(plugins): 插件市场流水线按审查意见加固
- 插件公钥移入 module/plugin/,随在线更新包分发,旧镜像更新后也能验签目录
- 合并后每个插件在独立的 job 中构建;签名 job 自己下载复用的 zip 并校验
sha256,逐个核对新 zip 的 id 与来源,单个插件的构建篡改不到别的插件
- 发布只从 4.0-dev 运行;PR 检查使用 base 分支的脚本与 ab_sdk
- 复用判断加入 path,手动触发可全部重新打包
- 打包前拒绝符号链接;摘要转义作者控制的输出;单个条目出错不影响整份摘要
- 已上架版本以已发布的 catalog 为准,不再拉取旧 commit
- 修复 git diff 把提交范围当作路径的问题
|
2026-10-09 10:22:55 +02:00 |
|
Estrella Pan
|
eb1598c21e
|
feat(plugins): 插件市场索引与签名发布流水线
- plugins/registry/<id>.toml 指向作者仓库的固定 commit(repo、commit、path)
- scripts/plugin_registry.py:check 在 PR 上校验改动的条目、运行作者测试、
从 web-src/ 构建前端并写审查摘要;build 在合并后增量打包(commit 未变的
条目复用已发布的 zip)
- plugin-registry.yml:check / build 不读 secret,sign 只用 PLUGIN_SIGNING_KEY
签名,不运行作者代码;发布到 release plugins 并删除下架的资源
- 插件目录改用独立的插件公钥 ab_plugin_pubkey.pem,与在线更新密钥分开
- catalog 条目新增 authors、permissions、has_web、repo、commit、readme
- 6 个示例插件上架;上架文档(中 / 英 / 日)、PR 模板与 CODEOWNERS
|
2026-10-09 10:13:30 +02:00 |
|
Estrella Pan
|
f3359b17fd
|
feat(examples): manual-pick 前端改由 web-src/ 构建,补充测试
插件市场要求带前端的插件以 web-src/ 源码提交、至少有 1 个测试。ab-plugin pack
不再打包 web-src/,运行时只需要构建出的 web/。
|
2026-10-09 10:07:37 +02:00 |
|
Estrella Pan
|
a421814ab8
|
chore(release): 准备 4.0.0-beta.1
4.0.0-beta.1
|
2026-10-08 17:55:01 +02:00 |
|
Xingyu (Estrella) Pan
|
22ef01f94a
|
Merge pull request #1131 from EstrellaXD/docs/4.0-site
docs(4.0): 新 README、4.0 文档与 GitHub Pages 部署
|
2026-10-08 17:54:22 +02:00 |
|
Xingyu (Estrella) Pan
|
93c4b8dc01
|
Merge pull request #1130 from EstrellaXD/refactor/4.0-final
fix(4.0): 发布前总评审修复、清理与遗留项
|
2026-10-08 17:54:14 +02:00 |
|
Xingyu (Estrella) Pan
|
029ed09efb
|
Merge pull request #1129 from EstrellaXD/refactor/4.0-p7-ecosystem
feat(4.0-P7): ab-plugin CLI、契约测试、示例插件、签名目录与 SDK 发布
|
2026-10-08 17:54:06 +02:00 |
|
Xingyu (Estrella) Pan
|
3baf301f95
|
Merge pull request #1128 from EstrellaXD/refactor/4.0-p6-frontend-plugins
feat(4.0-P6): 前端插件挂载点、AbHost 桥接与 @autobangumi/plugin-ui
|
2026-10-08 17:53:59 +02:00 |
|
Xingyu (Estrella) Pan
|
2cd9ef47e4
|
Merge pull request #1127 from EstrellaXD/refactor/4.0-p2.5-multi-downloader
feat(4.0-P2.5): 多下载器实例、按订阅选择下载器与 3.3 配置迁移
|
2026-10-08 17:53:50 +02:00 |
|
Xingyu (Estrella) Pan
|
c129b9410b
|
Merge pull request #1126 from EstrellaXD/refactor/4.0-p4-organize
feat(4.0-P4): 整理扩展点、内置 rename / hardlink 插件与 renamer 拆分
|
2026-10-08 17:53:43 +02:00 |
|
Xingyu (Estrella) Pan
|
1158a4d737
|
Merge pull request #1125 from EstrellaXD/refactor/4.0-p5-events-api
feat(4.0-P5): 系统事件上总线、插件路由 / MCP 工具 / 通知模板
|
2026-10-08 17:53:35 +02:00 |
|
Xingyu (Estrella) Pan
|
6d05dc827c
|
Merge pull request #1124 from EstrellaXD/refactor/4.0-p3-ingest
feat(4.0-P3): ingest 流水线扩展点与内置种子过滤插件
|
2026-10-08 17:53:27 +02:00 |
|
Xingyu (Estrella) Pan
|
01cf60a772
|
Merge pull request #1123 from EstrellaXD/refactor/4.0-p2-extension-points
feat(4.0-P2): 下载器/通知/LLM/搜索/定时任务扩展点与插件管理界面
|
2026-10-08 17:53:20 +02:00 |
|
Xingyu (Estrella) Pan
|
e4dd519637
|
Merge pull request #1122 from EstrellaXD/refactor/4.0-p1-plugin-runtime
feat(4.0-P1): 插件运行时与 SDK 骨架
|
2026-10-08 17:53:08 +02:00 |
|
Xingyu (Estrella) Pan
|
f85518b0dc
|
Merge pull request #1121 from EstrellaXD/refactor/4.0-p0-cleanup
refactor(4.0-P0): 清理死代码与 3.x 兼容层
|
2026-10-08 17:53:01 +02:00 |
|
Estrella Pan
|
61e3953cb4
|
Merge remote-tracking branch 'origin/refactor/4.0-final' into docs/4.0-site
|
2026-10-08 17:46:42 +02:00 |
|
Estrella Pan
|
d1953fae34
|
test(4.0): 端到端测试改为断言删除失败时保留规则
|
2026-10-08 17:46:39 +02:00 |
|
Estrella Pan
|
96a2517f99
|
docs(4.0): 修正本地部署的 pip 命令与插件技能中的路径映射字段
|
2026-10-08 17:45:47 +02:00 |
|
Estrella Pan
|
c9b5753ebd
|
docs(4.0): 回滚指南改为还原 data.db.v3.bak,删除 version.info 手工处理步骤
|
2026-10-08 17:45:30 +02:00 |
|
Estrella Pan
|
1cd107db6c
|
Merge remote-tracking branch 'origin/refactor/4.0-final' into docs/4.0-site
|
2026-10-08 17:44:57 +02:00 |
|
Estrella Pan
|
73ab8a2a9a
|
fix(4.0): 4.x 另写版本记录并备份 3.x 数据库,回退 3.3 不再误跑 3.0 迁移
|
2026-10-08 17:44:49 +02:00 |
|
Estrella Pan
|
fcf573ae25
|
Merge refactor/4.0-final into docs/4.0-site
|
2026-10-08 17:41:10 +02:00 |
|
Estrella Pan
|
776abfa896
|
docs(4.0): 更新 API 参考与开发者文档,新增获取 SDK 页
- API 参考按实际路由重写,修正认证方式、请求方法与设置向导端点
- 数据库指南改为异步 Database 与 MIGRATIONS
- E2E 指南改为指向 e2e/README.md
- 插件快速上手补上安装 SDK 轮子的步骤,ab-plugin dev 加 --config-dir
- 发布流程改为手动推送标签触发
|
2026-10-08 17:36:53 +02:00 |
|
Estrella Pan
|
f6bca2be60
|
docs(4.0): 新增插件设置参考,修正下载器、番剧管理、通知等配置页与代码不符之处
|
2026-10-08 17:36:53 +02:00 |
|
Estrella Pan
|
2a500362f3
|
docs(4.0): 新增插件、多下载器、硬链接功能页,更新番剧、RSS、搜索、重命名页
|
2026-10-08 17:36:53 +02:00 |
|
Estrella Pan
|
b9b1fa367c
|
docs(4.0): 新增 3.3 升级到 4.0 指南与 4.0 更新日志,更新部署页与首页
|
2026-10-08 17:36:53 +02:00 |
|
Estrella Pan
|
baf51a97c2
|
docs(4.0): 重写 README,新增英文与日文 README
|
2026-10-08 17:36:53 +02:00 |
|
Estrella Pan
|
4102d77b88
|
ci(docs): 改用 GitHub Pages 部署文档站,侧边栏加入 4.0 新页面
- 新增 docs.yml:*-dev 分支推送 docs/** 时构建并部署到 GitHub Pages
- 新增 public/CNAME(www.autobangumi.org),删除 vercel.json
- VitePress 排除 plans/、superpowers/,生成 sitemap
- 中英日侧边栏加入升级指南、4.0 更新日志、插件/多下载器/硬链接、插件设置、获取 SDK、数据库与 E2E 指南
|
2026-10-08 17:36:53 +02:00 |
|
Estrella Pan
|
75eefc9ce1
|
docs(4.0): 记录收尾阶段的调整并更新变更日志
|
2026-10-08 17:29:56 +02:00 |
|
Estrella Pan
|
6439577b2b
|
refactor(4.0): 改正描述旧行为的注释与文档字符串
- ab_sdk 的扩展点与下载器说明仍写 downloader.type,P2.5 起改为下载器实例的 provider
- ab_sdk 与示例插件中的阶段编号(P3 / P4 / P5 / P6)对插件作者没有意义,去掉
- EventBus.drain 只有测试调用;hardlink 注释中的 slots 已实施
|
2026-10-08 17:24:14 +02:00 |
|
Estrella Pan
|
56fa95f51f
|
refactor(4.0): 删除前端 experimental_openai 时代遗留的 OpenAIModel / OpenAIType 类型
P0 已删除后端的 experimental_openai 配置段,这两个类型没有任何引用。
|
2026-10-08 17:21:35 +02:00 |
|
Estrella Pan
|
67f16ad372
|
refactor(4.0): ab-plugin 命令行复用 ab_sdk.manifest 的插件 id 正则
cli.py 自带一份与 manifest.ID_RE 完全相同的私有正则,改为直接导入。
|
2026-10-08 17:21:00 +02:00 |
|
Estrella Pan
|
12f0049df2
|
refactor(4.0): 删除 vulture 白名单中已不需要的条目
去掉 13 个在不带白名单运行 vulture 时也不会被报告的名字(已有生产调用方或不在扫描路径内),
以及随之变空的分组注释;drain 只有测试调用,注释改正。
|
2026-10-08 17:17:35 +02:00 |
|
Estrella Pan
|
c05c2b1727
|
fix(4.0): 种子批量操作按实例汇总结果、按实例区分选择,下载器页按任一已配置实例判断
- perInstance 对所有实例并发执行,任一实例异常或返回 status: false 都按失败处理并提示,不被其它实例的成功掩盖;无论成败都刷新列表
- 选择键改为 downloader_id:hash,同一 hash 存在于多个实例时只操作选中的那一个
- 下载器页「未配置」判断改为没有任一已配置实例;插件下载器无 host 字段时视为已配置
|
2026-10-08 17:06:53 +02:00 |
|
Estrella Pan
|
d8dabe4c4c
|
fix(4.0): 插件卡片刷新 allow_unsigned、保留其它卡片未保存的草稿,整数枚举下拉保留原类型
- 卡片操作后同步刷新 config store 的 plugins.allow_unsigned,全局保存不再用旧值回退该开关
- apply() 只重建服务端配置或 schema 变化的插件草稿,切换某个插件不再丢弃其它卡片的未保存编辑
- 枚举下拉以 {label, value} 传入候选值,整数枚举保存为数字而非字符串
|
2026-10-08 17:06:53 +02:00 |
|
Estrella Pan
|
64c8a92fc1
|
fix(4.0): /config/get 掩码插件通知渠道的自定义字段,保存时按身份还原
插件渠道的配置存为 notification.providers[] 的额外字段,没有 schema,
原先只按键名掩码,webhook / sendkey 等以明文返回。模型未声明的字段
现在与无 schema 的插件选项一样全部按秘密处理;保存时对通知渠道列表
用同一判定做身份匹配与还原,删除或调换渠道不会串用或丢失密钥。
|
2026-10-08 16:56:59 +02:00 |
|
Estrella Pan
|
47d136b68e
|
fix(4.0): 秘密字段标记写在 anyOf / $ref 外层或容器上时也掩码
secret_field() 用于可选字段时,Pydantic 把 secret 标记写在 anyOf 外层;
_branches 展开分支时丢弃了外层节点,GET /plugins 与 /config/get 返回明文。
容器(list / dict / 嵌套对象)上的秘密标记也不再传给其中的元素。
|
2026-10-08 16:54:17 +02:00 |
|
Estrella Pan
|
34526246b7
|
fix(4.0): 媒体库刷新在硬链接放好文件后再刷新一次,刷新期间的事件不再丢失
media-server-refresh 只按第一个 torrent.organized 起算 delay,不等待
同一事件的 hardlink 订阅者:跨盘复制慢于 delay 时刷新早于文件到位。
hardlink 新放入文件后发布 hardlink.linked(普通事件,不是通知),
media-server-refresh 同时订阅它。刷新请求发出后到达的事件原先被忽略,
现在这次刷新之后再排一次。
|
2026-10-08 16:46:13 +02:00 |
|
Estrella Pan
|
045bdbd407
|
fix(4.0): 已打 ab:renamed 的种子在本进程未发布过时补发 torrent.organized
标签在发布之前打上,之后的轮次不再检查该种子:订阅者处理中被取消
(重启、插件重载)的事件永远不会再投递,硬链接漏掉这一集。现在每个
进程按当前文件名为已打标签的种子补发一次,丢失的事件在下次启动时
重新投递,投递恢复为至少一次;没有事件总线时不查询文件。
test_renamed_tag_skips_before_file_and_offset_queries 改为在已发布的
稳态下断言。文档与 TorrentOrganized 说明同步更新。
|
2026-10-08 16:42:42 +02:00 |
|
Estrella Pan
|
93520e5b03
|
fix(4.0): 重命名策略未登记而按 none 处理时不发布 torrent.organized
重载窗口、熔断或模板失效期间,种子按原名发布 torrent.organized;
策略恢复后改名再发布一次,硬链接在媒体库留下两份。原名不是最终
文件名,此时不再发布。test_rename_unregistered_method_keeps_names_without_tag
的期望随之改为不发布。
|
2026-10-08 16:36:26 +02:00 |
|