v5.5.7 新增测试：
- 图片、视频、文案跨QQ顺序分配
- 并发任务原子预占
- 发布后独立删除不影响后续QQ任务

v5.5.6 新增测试：
- 直接导入app.worker并执行_current_credential_fingerprint。
- 对比worker调用结果与app.cli.active_credential_fingerprint。
- 检查worker导入区包含active_credential_fingerprint。
- 运行完整内置自检，覆盖双QQ隔离、二维码、CLI安装及发布链路。

v5.5.5 新增/修复测试：
- 运营台自身全局锁必须被凭据发现规则排除。
- .native_cli_swap中的旧锁引用必须被排除。
- 真实tencent-channel-cli凭据目录仍能识别。
- 二维码生成事务不再移动机器级互斥锁。

1. Windows 二维码本地凭据库自检完全隔离，不调用真实 Credential Manager。
2. Windows 二维码本地凭据库自检不扫描或交换真实 HOME/AppData CLI 状态。
3. Windows Credential Manager A/B 账号测试继续使用内存模拟，验证捕获、安装、恢复与独立指纹。
4. 自检失败时输出二维码轮询实际详情，避免只有笼统错误。

v5.5.2 新增测试：
- 顶层原生包识别。
- 包装器内部嵌套原生包识别。
- 原生包缺失时按 wrapper 精确版本自动安装。
- 自动修复后重新校验。
- --include=optional 与 registry 镜像回退逻辑。

v5.5.0 Windows凭据自动捕获与多QQ硬隔离回归测试报告

通过项目：
1. 15个Python源码文件语法检查。
2. SQLite初始化与v4/v6账号隔离触发器。
3. 显式Token A/B独立同步频道和发布。
4. 扫码成功且CLI回显Token时自动读取并加密保存Token。
5. 扫码成功但CLI不回显Token、只写Windows凭据管理器时自动捕获凭据。
6. Windows凭据A/B分别封装为独立加密凭据库，指纹稳定且互不相同。
7. QR凭据库A/B分别同步自己的频道并发布到自己的目标频道。
8. 每次命令只安装当前QQ的Windows凭据，命令结束后精确恢复机器原登录态。
9. 保存账号时完整保留windows_credentials.enc，不再丢弃已捕获凭据。
10. 相同凭据绑定到两个QQ时拒绝第二次保存。
11. 目标频道不属于当前QQ时在发布接口前停止。
12. 凭据文件缺失或被篡改时停止发布。
13. QR对话框自动轮询、授权成功弹窗、凭据来源提示和频道自动读取流程。
14. 无关Microsoft/Windows系统凭据不会被读取、删除或写回。

结论：正常扫码无需网页Token。CLI回显Token时自动保存Token；不回显时自动捕获本次扫码写入的Windows凭据管理器或腾讯频道CLI配置凭据。同步和发布只使用当前QQ保存的独立凭据。


v5.5.7 多QQ素材全局预占修复

问题根因
--------
旧版为每个QQ频道分别保存视频、图片、文案游标。每个新QQ的游标都从0开始，
所以两个QQ在同一公共素材包中都会选择00001。若开启“发布成功后删除素材”，
第一个QQ删除00001后，第二个QQ仍引用同一个文件，导致后续发布无素材。

修复
----
1. 视频、图片、文案分别使用一套全局分配账本，不再按QQ/频道从头开始。
2. 任务进入队列时立即原子预占素材：先入队的任务得到00001，后入队得到00002。
3. SQLite BEGIN IMMEDIATE保证UI和每日调度器并发创建任务时也不会重复预占。
4. 每个素材新增allocation_count和last_allocated_at；旧任务会在首次升级时迁移到全局账本。
5. 未开启循环时，任何已经分配过的素材都不会再次分配。
6. 开启循环时按“使用次数最少、最早使用、素材顺序”全局轮换，但排队/发布中的素材仍不会重复。
7. 发布后删除只删除当前任务自己的素材，不会影响后续QQ任务。
8. 图片、视频和文案使用完全相同的全局预占逻辑。

说明
----
每日计划仍在到达时间点时创建真实任务。若多个计划时间相同，调度器按计划ID，
也就是计划首次创建的先后顺序分配素材。
