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
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
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
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
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
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
Estrella Pan
1d764b0974
fix(4.0): conflict_policy 与 media_files 插件经熔断器调用,失败时退回宿主实现
...
两者原先直接调用插件实现:抛出异常或返回值无效会中断整轮重命名,
且不计入熔断。新增 plugin_host.call_sync(重命名策略同样改用它),
conflict_policy 失败按 hold 处理,media_files 失败按扩展名分类。
2026-10-08 16:34:20 +02:00
Estrella Pan
04beea02c8
fix(4.0): hardlink 不再重建用户从媒体库删除的文件
...
插件放置过、之后被删除的目标,KV 记录中的源身份与当前源相同:
torrent.organized 重复投递时不再放回,只有用户主动补链时重建。
2026-10-08 16:30:24 +02:00
Estrella Pan
406f1a074f
fix(4.0): 插件目录默认 min_ab_version 改为 4.0.0-beta.1
...
semver 中 4.0.0-beta.N 低于 4.0.0,原默认值与文档命令会使全部 4.0 beta
用户无法安装目录插件。
2026-10-08 16:04:48 +02:00
Estrella Pan
ee5704eef0
feat(4.0): 设置页新增签名插件目录的浏览、安装、更新与卸载
...
- 插件卡片下方新增「插件目录」区:点击后才请求 GET /plugins/catalog(silent),失败时在区内显示后端原因并可刷新
- 条目按已装版本显示安装 / 更新 / 已安装;安装成功后刷新卡片、Provider 下拉与前端挂载点
- 卸载只对来源为 catalog 的插件开放,经危险确认框;与后端卸载前提为同一条件,LLM 插件不受影响
- 卡片标出已签名 / 未签名
- 修复前端缺少 catalog 来源类型与 source_catalog 文案
- 同步签名与分发文档(中 / 英 / 日)、设计文档第 0 节与 CHANGELOG
2026-10-08 15:38:52 +02:00
Estrella Pan
f01e1e1358
fix(4.0): aria2 的 gid 映射按下载器实例区分
...
两个 aria2 实例可能分配到相同的 gid,原先 aria2_gid 以 gid 为主键,
番剧关联、改名记录与按 dedup_key 判重会在实例间互相覆盖。
- v27 迁移重建 aria2_gid,主键改为 (downloader_id, gid),存量行归属 default。
- Aria2GidDatabase 构造时绑定实例 id,经 Database.aria2(downloader_id) 取得。
- DownloaderConnection 新增 instance_id(默认 "default"),工厂把它传给 Aria2Downloader。
2026-10-08 15:25:09 +02:00
Estrella Pan
b763c62fe3
fix(4.0): 删除规则时下载器不可用则保留规则与种子行以便重试
...
delete_rule 原先先删种子行与番剧,再逐实例删种子;某个实例不可用时,
该实例上的种子失去记录,之后无法再删。现在删除文件时先逐实例删种子,
全部成功才删种子行与番剧;有失败时两者都保留并返回 500。
2026-10-08 15:18:50 +02:00
Estrella Pan
88950d30a8
fix(4.0): 在线更新包带上 ab_sdk 并要求 4.0 镜像
...
- build.yml:bundle 打入 backend/src/ab_sdk,min_image_version 设为 4.0.0-beta.1。
已发布的 3.3 镜像在 beta 通道会选中最新预发布,靠该下限拒绝 4.x bundle。
- boot_overlay:已验签 bundle 必须同时带 module 与 ab_sdk,先换 /app/ab_sdk 再换 /app/module。
- 测试:覆盖层替换 ab_sdk、缺 ab_sdk 时不应用;3.3.6 镜像拒绝 min_image_version
为 4.0.0-beta.1 的 bundle 且不留存 bundle;build.yml 的 bundle 步骤。
2026-10-08 15:16:33 +02:00
Estrella Pan
da77f94f0f
fix(4.0-P7): 评审修复:插件扫描跳过工具链目录、v3 迁移忽略空旧字段、通用与 LLM 插件互不干扰
2026-10-08 15:02:56 +02:00
Estrella Pan
3258fcca4b
docs(4.0-P7): 插件开发文档拆分为总览加每个扩展点一页,补齐中英日三语
...
- docs/dev/plugins.md 改为总览与导航,旧内容拆入 docs/dev/plugins/
- 新增核心概念、配置表单、事件、前端挂载点、命令行、签名与分发、内置插件、示例页
- 每个扩展点一页,侧边栏由页面表生成
- 改正旧文档中下载器配置、hardlink path_map 与补链按钮的过时描述
2026-10-08 14:51:00 +02:00
Estrella Pan
e0fc4c4eb6
docs(4.0-P7): 记录 install / catalog 路径对插件路由的占用
2026-10-08 14:27:26 +02:00
Estrella Pan
ce98409950
docs(4.0-P7): 记录 P7 第一部分的实施调整,更新 CHANGELOG
2026-10-08 14:23:12 +02:00
Estrella Pan
34d51dd711
fix(4.0-P6): 嵌套秘密字段掩码、未启用插件 schema 刷新、custom element 归属校验
2026-10-08 14:05:56 +02:00
Estrella Pan
91e01f716f
feat(4.0-P6): WebUI 插件挂载点、AbHost 宿主实现与示例插件「手动选种」
...
- PluginSlot:导入插件模块并在 Shadow DOM 中挂载 custom element,host / context 先于插入设置;加载失败、元素未定义或运行时报错只让该插件的挂载点显示「插件组件加载失败」
- AbHost:api 限定在 /api/v1/plugins/<id>/ 与只读 GET 的宿主 API;i18n、主题、toast;events.on 订阅 SSE 新增的 bus 帧(后端把总线事件转发给前端)
- 五个挂载点:设置分区、番剧详情标签、卡片操作、侧边栏页面 /plugins/:id、首页小组件
- 未启用的内置 / 已允许的插件也能取得配置 schema,首次启用前即可填写配置
- Schema 表单支持对象数组(hardlink 的 path_map)
- hardlink 插件自带 settings.section 元素「链接已有文件」,调用补链路由并显示计数
- examples/plugins/manual-pick:详情页标签示例,含插件路由与事件订阅
- 设计文档第 0 节记录调整,第 10 节标记 P6 已完成
2026-10-08 13:50:46 +02:00
Estrella Pan
bf1c8db08c
feat(4.0-P6): 前端插件后端与 plugin-ui 工作区包
...
- 清单 [[plugin.ui]]:五个挂载点、ab-plugin- 元素名与 web/ 入口校验
- GET /plugins/ui 列出已启用插件的挂载点;GET /plugins/{id}/web/{path} 提供静态资源(防路径穿越、JS MIME、需登录)
- SPA 文档加 CSP script-src 'self',内联深色模式脚本移到 theme-init.js
- webui/packages/plugin-ui:AbHost 类型、--ab-* 主题变量、Vite 库模式模板
- 设计文档第 0 节记录第一部分的调整
2026-10-08 13:31:03 +02:00
Estrella Pan
a5defee676
fix(4.0-P2.5): 保存目录随投递实例重新生成,删除 / 补全 / 打标逐实例隔离,迁移不覆盖已有备份
...
- add_torrent 经 save_path_for:已存目录不在本实例下载目录之下时按本实例重新生成
(默认实例切换、规则的实例被删除、订阅指向别的实例)
- TorrentManager 按已存目录与本实例目录匹配种子;更新规则时在种子行记录的每个实例上移动
- delete_torrents 逐实例隔离,一个实例不可用时其它实例照常删除,最后报告失败的实例
- eps_complete 与自动打标跳过不可用实例
- 单实例时不按实例过滤进行中的版本替换事务,改主机地址后仍能恢复
- v4 迁移器已有 .v3.bak 时另存为 .v3.bak.1 等
2026-10-08 13:10:13 +02:00
Estrella Pan
75b42cfe24
docs(4.0-P2.5): 记录 P2.5 第二部分的实施调整并标记阶段完成,下载器文档补充多实例说明
...
- 设计文档第 0 节补充按实例路由、迁移 v26 取值修改、重命名逐实例运行与推迟项,第 10 节 P2.5 标记已完成
- 下载器文档(中 / 英 / 日)新增「多个下载器」,插件开发文档更新 downloader_id 与 instance_id
- 新增 qB 与 aria2 实例并存的进程内测试
2026-10-08 12:40:51 +02:00
Estrella Pan
e4a7fc8483
docs(4.0-P2.5): 记录 P2.5 第一部分的实施调整,下载器与番剧管理文档改为 plugins.instances / slots
2026-10-08 12:07:59 +02:00
Estrella Pan
78f0c0ab20
docs(4.0-P4): 番剧管理文档补充 template / hardlink / 媒体库刷新,记录两份 P4 实现的移植
...
- docs/{,en/,ja/}config/manager.md:template 模板变量与失败行为、hardlink
选项(path_map、cross_device)与 Docker 下硬链接不能跨文件系统的说明、
media-server-refresh 配置
- CHANGELOG.md 增加 P4 条目
- VitePress 不给行内代码加 v-pre,行内 Jinja2 示例在构建时报
_ctx.pad is not a function;改用 ::: v-pre 容器
- 设计文档第 0 节记录另一份 P4(refactor/4.0-p4-organize-cloud)与移植内容,
第 10 节 P4 行补充 media-server-refresh,第 11 节风险 2 标为已决
2026-10-08 11:38:12 +02:00
Estrella Pan
422def2bf9
fix(4.0-P4): hardlink 认领未记录的自有文件、不覆盖用户替换的文件、并发放置互不干扰
...
KV 记录改为 [源文件身份, 目标身份]:目标是源的链接或 copy2 副本时视为已完成并补写记录;版本升级只替换目标身份与记录一致的文件。临时文件名每次不同,失败时删除。
2026-10-08 11:14:50 +02:00
Estrella Pan
82ea8f098f
fix(4.0-P4): hardlink 复制中断不再在媒体库留下半个文件
...
所有放置先写到同目录临时文件再 os.replace 到目标;否则重试时残留文件会被当成非本插件创建的冲突。文档补充 path_map 需在 config.json 填写与首次启用流程。
2026-10-08 11:00:23 +02:00
Estrella Pan
9502f373fa
docs(4.0-P4): 插件文档补充整理扩展点、整理事件与 rename / hardlink 内置插件,设计文档记录 P4 调整
2026-10-08 10:55:09 +02:00
Claude
0b6de31593
Merge refactor/4.0-p3-ingest into refactor/4.0-p5-events-api
...
- 合并 P3 与 P5 共同追加的扩展点列表(ab_sdk/points.py、plugin/host.py POINTS)
- host.py 中两边各自实现的 set_runner / get_runner 去重,保留 P5 的
get_bus / set_bus / publish;AppContext 统一设置 bus 与 runner
- CHANGELOG、设计文档第 0 节、插件开发文档按 P3 → P5 顺序合并
- 修复 MCP /sse 端点在 SSE 结束后重复发送响应头导致的 AssertionError
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01EoBUPFw7Ty1epuPESdELs1
2026-10-08 06:44:43 +00:00
Claude
93f6d794c5
feat(4.0-P5): 系统事件上总线、通知中心 SSE 改为事件推送、插件路由 / MCP / 通知模板
...
- 系统事件类移入 ab_sdk.events(SystemEvent 基类,新增 i18n()),
NotificationManager.send_event 写入通知中心后发布到插件事件总线
- module.plugin.host 新增 get_bus/set_bus、get_runner/set_runner、publish,
由 AppContext 构造时设置
- SSE notification 帧改为订阅 inbox.changed 即时推送,线格式不变
- 新扩展点 api_router(/api/v1/plugins/<id>/ 分发路由,强制鉴权)、
mcp_tool / mcp_resource(<plugin-id>__<id> 命名)、message_template
- ExtensionPoint.scoped:Provider id 只需在插件内唯一
- ab_sdk 0.3.0;插件开发文档、设计文档、CHANGELOG 更新
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01EoBUPFw7Ty1epuPESdELs1
2026-10-08 06:34:43 +00:00
Claude
9b7ef00c2e
feat(4.0-P3): ingest 流水线扩展点与内置种子过滤插件
...
- 钩子:torrent.filter(排除过滤之后,fail-open)、title.parsed(准入判定前)、
torrent.adding(save_path / category / tags,ab:<id> 标签强制保留)、
http.request(GET 请求头)
- Provider:metadata_provider,mikan / tmdb 以 core 登记,按 RSSItem.parser 选择,
行为与 3.x 一致;插件元数据源走超时与熔断
- SDK 0.3.0:新增 ab_sdk.ingest(冻结快照 TorrentInfo / BangumiInfo / AddRequest /
HttpRequest / Metadata)
- host.get_runner()/hook_runner():AppContext 构建时设置 runner,无钩子时零开销
- 内置插件 ingest-filters:全局包含过滤,默认启用、留空不生效
- WebUI:添加订阅的解析器下拉框并入插件元数据源
- 文档:插件开发指南新增各扩展点;设计文档 P3 调整
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01EoBUPFw7Ty1epuPESdELs1
2026-10-08 06:31:23 +00:00
Claude
332fb451c4
feat(4.0-P2): 下载器/通知/LLM/搜索/定时任务扩展点与插件管理界面
...
- ab_sdk 0.2:新增 points、downloader(自 module/downloader/base.py 迁入)、
llm(自 providers/base.py 迁入)、notify、search、tasks 契约与
secret_field();原路径保留重新导出
- module/plugin/host:进程级扩展注册表,内置 qB/aria2/mock 与各通知渠道以
core 身份登记;DownloadClient、NotificationManager、LLM 注册表、搜索站点
均改为按 id 从注册表解析
- 插件定时任务随插件加载/重载/停用同步进调度器,失败计入熔断
- 插件变更后重建通知渠道、清理 LLM 解析器缓存;下载器客户端缓存键包含
Provider 登记项,插件重载后自动换新
- /api/v1/plugins:总览(schema + 掩码配置)、启停、配置(按模型校验)、
allow_unsigned、Provider 列表;/config 读写同样掩码/还原插件秘密字段
- WebUI:设置页「插件」卡片与 JSON Schema 表单;下载器与通知下拉框并入插件
Provider;插件保存后刷新 config store 的 plugins 段,避免全局保存覆盖
- 修复:/search/provider 读取导入时的站点快照,新站点需重启才出现
- 文档:开发者指南 → 插件开发
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01EoBUPFw7Ty1epuPESdELs1
2026-10-08 05:59:07 +00:00
Claude
94da8fa741
feat(4.0-P1): 插件运行时与 SDK 骨架
...
- ab_sdk:Plugin[ConfigT] 基类、@hook / @provider / @subscribe、只读的
PluginContext 协议、事件基类,以及插件单测辅助 ab_sdk.testing;SDK 不依赖
module.*(有边界测试)
- module/plugin:plugin.toml 清单校验(含 sdk 版本范围),内置 / 本地目录 /
pip entry point 三种来源的发现与加载(ab_plugin_<id> 包名、支持相对导入、
vendor 纯 Python 依赖、拒绝原生扩展)
- 扩展点注册表;HookRunner 负责 filter / transform 钩子的优先级与 hook_order
排序、超时、fail-open / fail-closed,以及按插件熔断
- EventBus:每个订阅者独立的有序队列,失败与超时隔离,计入熔断
- PluginManager:失败时回滚注册;配置变更只重载受影响的插件;失败插件在其
配置变化后才重试;熔断后自动禁用并发布 PluginDisabled
- 插件私有 KV 存储(plugin_kv 表,迁移 v25)、plugins 配置段、
GET /api/v1/plugins
- 插件随进程 lifespan 启停,reload_settings 时重新应用插件配置
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01EoBUPFw7Ty1epuPESdELs1
2026-10-08 04:37:57 +00:00
Claude
8ccacb6060
refactor(4.0-P0): 清理死代码与 3.x 兼容层
...
- 4.0 只支持从 3.3.x 升级:version_check 改为完整 semver 比较,数据低于 3.3
或残留 2.x data.json 时抛 UnsupportedUpgradeError 中止启动;删除 3.0→3.2
跨版本迁移、data.json 迁移和 Database.migrate()
- 删除 3.2 兼容的 GET 控制端点与 GET /auth/refresh_token
- 删除旧 JWT 与内存会话实现,密码哈希移到 security/password.py
- 删除 experimental_openai 配置节、通知单 provider 旧字段、3.1 配置字段改名迁移
与 DEFAULT_SETTINGS;normal 重命名方式迁移为 none
- 删除约 70 处无调用方的函数、方法、模型及未使用的 qB API 封装
- CI 新增 vulture 死代码检查(配置见 pyproject.toml 与 vulture_whitelist.py)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01EoBUPFw7Ty1epuPESdELs1
2026-10-08 04:19:53 +00:00
Claude
b742148054
docs: 修正章节编号
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01EoBUPFw7Ty1epuPESdELs1
2026-10-08 03:48:06 +00:00
Claude
fd75652ab2
docs: 记录 4.0 插件化核心决策,补充多下载器与前端插件设计
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01EoBUPFw7Ty1epuPESdELs1
2026-10-08 03:47:57 +00:00
Claude
c2f1784497
docs: 4.0 插件化重构与死代码清理设计草案
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01EoBUPFw7Ty1epuPESdELs1
2026-10-08 03:41:50 +00:00
Estrella Pan
aaa464193b
chore(release): prepare 3.3.6
...
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01KU9GqKzULrNb7MN5T9TYix
2026-09-19 17:58:18 +02:00
Estrella Pan
37fa6b4ea5
fix: RSS matching, proxy pool, parser, healthcheck and log issues ( #1103 #1104 #1105 #1106 #1108 #1114 #1117 )
...
- match_bangumi_in_list: also accept a torrent whose rebuilt title equals
the stored title_raw (#1103 , #1114 )
- download_bangumi / collect_season: drop items whose season or type
conflicts with the bangumi (#1105 )
- request_url: swap in a fresh shared client on PoolTimeout without
closing the old one (#1104 )
- classic parser: Unicode Roman numeral season, strip fullwidth dash
wrapper (#1108 )
- Docker HEALTHCHECK: healthcheck.py reads the configured WebUI port and
probes IPv4 then IPv6 loopback (#1106 )
- scheduler: non-positive interval falls back to 1s; deploy docs cap
container logs at 10 MB x 3 (#1117 )
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01KU9GqKzULrNb7MN5T9TYix
2026-09-19 17:58:17 +02:00
Estrella Pan
f54df55754
chore(release): prepare 3.3.5
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_019WTfJZ3EzCpY8SLhzXT6Sf
2026-07-26 15:49:06 +02:00
Estrella Pan
f354a63959
chore(release): prepare 3.3.4
2026-07-13 20:36:26 +02:00
Estrella Pan
37d794db0d
chore(release): prepare 3.3.4-beta.2
2026-07-13 01:36:29 +02:00
Estrella Pan
9d5b1c3998
fix(renamer): safely replace higher revisions ( #1078 )
2026-07-13 01:36:17 +02:00