v0.1.6
v0.1.6 (2026-08-21)
矩阵批量发布:每视频一条 BatchItem,独立标题 / 描述 / 标签 / 账号 / 定时模式;提交时展开为多平台子任务。
Added
- 矩阵批量领域类型
web/src/types/batch.ts(BatchItem / BatchItemResult / 平台整型映射) buildBatchItemsFromMatrix纯函数:矩阵 →/postVideoBatch请求体- 抽屉矩阵 UI
BatchPublishSection:行展开独立、顶部 dailyTimes chip 池(+时刻 / ×删除 / 字典序排序) - 预览
BatchPreviewDialog:列项数与 postVideo 项数一致 - 视频号单日累计定时任务软提示
PlatformLimitHint(6 条变深黄,超出仅提示不拦截,提交由官方兜底) - store 派生 selector:
selectWechatScheduledCount/selectWechatScheduledCountsByAccount - store 校验:
validateBatch/validateByFilePath(按 filePath 聚合)
Changed
- 前端矩阵批量领域从「标题 × 账号」笛卡尔模型迁移到「每视频一条 BatchItem」
BatchItem.accountIdsByPlatform字段承载 cookie 文件名(string[])mergeTitleWithCaption/parseTagsInputhelper 抽取,去除单视频与矩阵路径的内联重复submit提取expandItemResultshelper,去除成功/失败分支的双重嵌套循环- 视频号软提示 count 改为预计算,避免渲染时 O(N²) 重复遍历
- 视频号单日上限常量
WECHAT_DAILY_LIMIT单源:PlatformLimitHint默认值与CONTEXT.md平台表对齐
Fixed
removeDailyTime清item.timeOfDay改为undefined,与 timer 校验语义对齐BatchPublishSection折叠抽象收敛:expandedMapRecord + 4 setter 改为Set<string>useStatesummarizeDailyTimes单行包装函数内联到 useMemo,删除冗余函数 + 单测summarizeItemItemSummary 6 字段收敛为accountSummary + modeChip两字段- 批量发布区 footer「重置」按钮移除(spec 未要求)
BatchItemResult增cookieFile字段,去除渲染处itemKey.split("|")[1]startDays非负 clamp 下沉 store.updateItem,UI 删双层 fallback
Notes
- DOM 行为(drawer 展开、chip 排序、6 条深黄)依 handoff 标记走 dev 环境手测
- 不引入新依赖;不改 daemon / 发布 / 打包路径
- 升级指南:替换安装包即可,无需手动迁移数据
关联
- 父 PRD:issue #37 Matrix Batch Publish with Per-Video Timer
- 实现 ticket:#38(prefactor)/ #39(抽屉矩阵 UI + 预览 Dialog)/ #40(视频号软提示)
- 清理:PR #41 simplify(9 条 fix 落地)
Full Changelog: v0.1.5...v0.1.6