Skip to content

v0.1.6

Choose a tag to compare

@toRolex toRolex released this 21 Aug 04:19
· 10 commits to main since this release
5b1229d

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 / parseTagsInput helper 抽取,去除单视频与矩阵路径的内联重复
  • submit 提取 expandItemResults helper,去除成功/失败分支的双重嵌套循环
  • 视频号软提示 count 改为预计算,避免渲染时 O(N²) 重复遍历
  • 视频号单日上限常量 WECHAT_DAILY_LIMIT 单源:PlatformLimitHint 默认值与 CONTEXT.md 平台表对齐

Fixed

  • removeDailyTimeitem.timeOfDay 改为 undefined,与 timer 校验语义对齐
  • BatchPublishSection 折叠抽象收敛:expandedMap Record + 4 setter 改为 Set<string> useState
  • summarizeDailyTimes 单行包装函数内联到 useMemo,删除冗余函数 + 单测
  • summarizeItem ItemSummary 6 字段收敛为 accountSummary + modeChip 两字段
  • 批量发布区 footer「重置」按钮移除(spec 未要求)
  • BatchItemResultcookieFile 字段,去除渲染处 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