# v7.9.9 图文素材库 / 图文发布链路修复

## 目标

把“同一条帖子采到的文案 + 对应图片”从两个独立素材，升级为一个不可拆的图文包，解决后续发布时图片、文案、AI标题可能错配的问题。

## 本版改动

- 新增 `graphic_text_categories`、`graphic_text_packages`、`graphic_text_package_items` 三层数据结构。
- 同一条采集内容只生成一次统一标题。开启 AI 改名时，AI 只改写这一次，正文文件、全部图片显示名和图文包标题共享同一个结果。
- 同时勾选“采集图片 + 采集文案”时，采集完成后自动生成图文包；任意一侧缺失时不创建残缺图文包。
- 新增“图文素材库”页签：显示统一标题、图片数量、正文预览、图文分类、状态与加入时间。
- 图文包支持统一改标题、排序、启停、分类、批量删除。修改图文包标题时会同步刷新底层图片/文案显示名。
- 旧版自动采集素材会按“同标题 + 采集时间接近”自动迁移成图文包；已配对的底层图片/文案不再重复出现在普通图片库/文案库。
- 发布中心新增“图文”发布口。每个任务固定预占一个图文包，标题、正文和图片成套进入同一条发布任务，不跨包随机拼接。
- 图文发布计划支持独立分类、每日循环时间、全局素材轮换与排队预占；取消/删除任务会正确释放图文包占用。
- 发布 Worker 将 `graphic_text` 转为现有 QQ CLI 的图片帖发布能力：标题 + 正文 + 该包图片一起发布。
- 自动采集任务新增“图文包分类”，任务列表中“图片+文案”合并显示为“图文”。
- 热门样本“采集并进入发布”在同时得到图文包时优先进入图文发布口。

## 防错原则

1. 图文包是数据库级绑定，不靠发布时临时比较文件名。
2. 一个包只有一个统一标题。
3. 图文发布只允许整包分配，每帖固定 1 个包。
4. 已进入有效图文包的底层图片/文案从普通素材选择池排除，避免同一素材被两套发布逻辑重复使用。
5. 图文包只有在“正文存在 + 至少一张有效图片”时才可进入发布预览/排队。
