Releases: liyown/ai-trend-publish
v2.0.7
Cloudflare 发布稳定性
- 修复 Cloudflare 真实发布在封面生成失败后仍可能因子请求数耗尽而失败的问题。
- 封面生成失败或超时时改为直接使用内置默认封面 mediaId 兜底,不再通过 relay/微信上传接口二次获取默认封面,避免在 Worker 子请求数接近上限时继续发起网络请求。
- 封面服务测试覆盖生成失败和生成 hang 住时都不再调用默认封面上传接口。
验证
- 已通过
deno task verify:类型检查、Dashboard 构建、架构边界检查和 195 个测试全部通过。 - 已确认旧线上真实 publish 失败原因是 Cloudflare 子请求数耗尽,修复后会避免封面 fallback 再发起额外子请求。
v2.0.6
发布稳定性
- 修复真实发布时可能卡在封面生成的问题:封面图片生成、封面上传和默认封面上传都增加明确超时预算,生成异常或超时会自动回退默认封面,避免卡住整个发布流程。
- 阿里云图片生成 provider 增加提交任务、查询任务、同步多模态请求和异步任务总等待超时,DashScope 长时间无响应时会尽快失败并交给上层兜底。
- 补充封面生成 hang 住时的回退单测,确保后续不会再次阻塞真实发布。
- 修正抓取服务单测中的固定日期和缺失 source 类型字段,避免测试随时间漂移误报。
验证
- 已通过
deno task verify:类型检查、Dashboard 构建、架构边界检查和 195 个测试全部通过。
v2.0.5
账号级内容质量闭环
- 新增微信公众号账号矩阵能力,每个账号可以维护独立的定位、目标读者、语气风格、
标题偏好、默认文章方案和来源分组。 - 新增账号级运行时解析,矩阵 dry-run 会按账号读取专属画像、来源分组和默认参数,
同一批素材可生成不同主线和不同文章形态。 - 新增账号学习快照 artifact,记录本次生成前读取到的账号画像、历史文章、人工反馈、
主题取舍和来源信号,便于解释系统为什么这样选题和写作。 - 新增账号洞察 API 和 Dashboard 账号页,展示账号画像完整度、最近运行、质量趋势、
反馈统计、微信 relay 检查状态和下一步建议。
选题、审稿与人工反馈
- 新增选题工作台,按主题聚类、评分、编辑决策和账号适配组织内容,支持将主题标记为
lead、adopt或skip。 - 新增 run 级人工反馈,支持对每次生成结果标记
good、ok、bad并记录原因。 - 主题反馈和 run 反馈会按账号入账,下一次选题时用于提升相似主线、适度采用相似主题、
或硬降级曾被跳过的重复主题。 - 质量复盘链路增强,文章会经历质量审稿、可控修订、质量门禁和最终发布决策;低质量
真实发布可由配置或显式 force publish 覆盖。 - 发布后的文章记忆会记录标题、主论点、关键词、主题、来源 URL、质量分和发布状态,
为后续账号级学习提供数据基础。
稳定性与数据获取
- LLM provider 错误分类更精确,网络、超时、鉴权、限流和配额错误不再被误判为普通
JSON 结构错误,减少无效纠偏重试。 - 内容排序在 LLM 不可用时会回退到本地可解释排序,并优先选择近期、信息密度高的
原始文章,降低列表页被误选为主线的概率。 - 普通数据源和列表页抓取增加截断、展开和候选过滤,OpenAI News 一类索引页会优先
展开具体文章再参与选题。 - 草稿兜底逻辑会清理内部编辑字段,避免
章节目标、待核对编辑要点
等内部标签泄漏到最终公众号 HTML。
Dashboard 与运行体验
- Dashboard 增强账号矩阵、选题工作台、质量复盘、运行反馈、账号学习依据和产物预览。
- 运行弹窗支持单账号运行和多账号矩阵 dry-run,矩阵批次会生成账号对比 artifact。
- 运行列表和详情页展示账号、文章方案、质量分、发布状态、步骤产物和人工反馈入口。
- 配置页补充质量门禁 force publish 配置项,支持后续生产运行按配置决定是否强制发布。
Cloudflare 与存储
- Cloudflare / D1 / SQLite 存储补齐账号作用域字段、账号 ops 状态和主题反馈表。
- Cloudflare Worker、本地服务和 Dashboard API 对齐账号、矩阵运行、反馈、账号洞察和 runtime config 管理接口。
- 新增 migration:账号级编辑记忆字段、公众号 ops JSON、主题反馈表。
验证
- 已通过
deno task verify:类型检查、Dashboard 构建、架构边界检查和 194 个测试全部通过。 - 已通过多账号真实 dry-run:
default与engineering-lab两个账号均成功,质量分分别为 91 / 92,主线主题和文章形态均已拉开差异。
TrendPublish v2.0.4
TrendPublish v2.0.4
Final patch for the v2.0 release line after validating GitHub Actions and Cloudflare deployment end to end.
Fixed
- Pinned Release Build and docs workflows to Deno
v2.7.14, matching the project Docker image and local verification environment. - Restored TypeScript path mapping required by Wrangler / Cloudflare builds.
- Added explicit Wrangler module aliases for Cloudflare-specific logger shims.
Validation
deno task verifypassed locally.- Cloudflare deployment succeeded.
- Previous
v2.0.3Release Build and Docker Image workflows passed; this release carries the additional Cloudflare deployment alignment fix.
Use v2.0.4 as the current v2 release.
TrendPublish v2.0.3
TrendPublish v2.0.3
Patch release for the v2.0 platform release line.
Fixed
- Removed deprecated root
tsconfig.jsonbaseUrl/pathssettings that caused GitHub Actions type checking to fail with newer TypeScript diagnostics. - Added explicit static
overrideannotations in the logger wrapper for compatibility with the Cloudflare logger upstream shim.
Included from previous v2 patch releases
- Cloudflare Worker bundling fix for
@zilla/logger-upstream. - Cloudflare-only logger upstream shim used by Wrangler builds.
Validation
deno task verifypassed locally.- Cloudflare deployment had already succeeded with the same Worker bundling fix.
Use v2.0.3 as the current v2 release.
TrendPublish v2.0.2
TrendPublish v2.0.2
Patch release for CI compatibility after the v2.0 platform release.
Fixed
- Added
ignoreDeprecations: "6.0"totsconfig.jsonso GitHub Actions can pass type checking with newer TypeScript diagnostics forbaseUrl.
Validation
deno task verifypassed locally.
Notes
This release includes the v2.0.1 Cloudflare logger upstream shim fix and the CI TypeScript compatibility fix. Use v2.0.2 as the current v2 release.
TrendPublish v2.0.1
TrendPublish v2.0.1
Patch release for the v2.0.0 platform overhaul.
Fixed
- Fixed Cloudflare Worker bundling by adding a Wrangler alias for
@zilla/logger-upstream. - Added a Cloudflare-only logger upstream shim so Workers deployment can bundle the project without relying on Deno import-map resolution.
Validation
deno task verifypassed.- Cloudflare deployment succeeded.
Notes
v2.0.0 introduced the major runtime profile, dashboard, observability and provider updates. v2.0.1 keeps the same functionality and only fixes the Cloudflare release/deploy packaging issue found during deployment.
TrendPublish v2.0.0
TrendPublish v2.0.0
v2.0.0 是一次面向后续扩展和部署体验的 major release。本次版本重点收口微信文章主流程、运行时配置、Cloudflare 原生部署、Dashboard、日志观测和图片生成能力,同时删除一批历史残留实现。
Breaking Changes
- 配置模型进入三层结构:
providers只保存外部服务连接与密钥来源,运行时业务配置由 Capability Profile / Feature Profile 管理。 - 运行时配置支持 SQLite / D1 持久化,Dashboard 修改后的配置会在下一次运行生效;密钥仍然只来自本地 TS 配置或 Cloudflare secrets。
- 图片生成供应商命名从旧的“通义万相/wanx 文件名”收敛为“阿里云图片生成”,旧的 PDD920 Logo 生成器已删除。
- 旧的
.github/workflows/deploy.yml已删除,Cloudflare 和 Docker 发布路径改由新的命令与 workflow 负责。
Highlights
-
新增运行时配置中心:
- Capability Profile:LLM、图片生成、通知、抓取策略、Embedding。
- Feature Profile:微信文章工作流配置,引用共享能力 Profile,并支持局部覆盖。
- 数据源、抓取分组、定时规则支持通过 API / Dashboard 管理。
- 新增 D1 migration:
migrations/0002_runtime_config_center.sql。
-
Dashboard 大幅增强:
- 支持运行状态、产物预览、配置摘要、能力 Profile、文章 Profile、数据源、定时规则等管理视图。
- 支持删除非默认文章 Profile,并保护默认 Profile / 最后一个 Profile。
- 增加 provider 状态、下一步引导、错误解释和观测配置状态。
- 视觉风格重新打磨为更克制的后台工作台样式。
-
Cloudflare 原生流程增强:
- Worker / Workflow 继续复用文章 workflow 定义。
- D1 runtime config store 支持 Profile、数据源、抓取策略和 schedule。
- Cron 变为 heartbeat,实际运行时间从 runtime schedule 中读取,修改定时无需重新部署。
-
本地 / Docker 体验增强:
- SQLite runtime config store 与 Cloudflare D1 保持同一套 schema 和 API 行为。
deno task dev同时启动本地 API 与 Dashboard 前端热更新。deno task verify覆盖 Dashboard 构建、类型检查、核心测试与发布体检。
-
日志观测:
- 新增
@zilla/logger包装层,保持原有 Logger 调用方式不变。 - Logger 输出可镜像到 stdout、Axiom、Better Stack 或自定义 HTTP ingest。
- Workflow 日志自动携带
runId、workflowId、step、profileId等上下文。 - 增加敏感字段脱敏,避免 token / key / secret 泄露到观测平台。
- 新增
-
图片生成:
- 阿里云图片生成统一 provider 命名,并补全较新的默认模型配置。
- 新增 MiniMax 图片生成 provider。
- 封面生成会记录生成结果或 fallback 原因,便于排查为什么使用默认封面。
- 新增安全图片下载器,限制私网地址、非图片 Content-Type、超大响应和不安全跳转。
-
微信发布:
- 抽出
WeixinApiClient,统一处理 access token、错误分类和 token 脱敏。 - 微信 Relay publisher 与本地 publisher 接口更一致。
- IP 白名单相关错误会被清晰分类,便于判断是否需要使用 relay。
- 抽出
-
提示词与内容质量:
- Prompt Profile 增加
contentAngles,排序、摘要、标题和动态模板可按不同内容方向调整。 - 标题生成统一清理
<think>、推理前缀、代码围栏和空标题。 - 动态模板后处理增强,进一步清理公众号不兼容输出。
- Prompt Profile 增加
-
抓取与向量能力:
- Jina Reader / DeepSearch、Twitter、Jina Embedding / Reranker 错误处理更清晰。
- Provider 错误统一为结构化错误,方便 doctor、Dashboard 和日志系统展示。
Removed
- 删除 PDD920 Logo 生成器及对应测试。
- 删除旧 Cloudflare deploy workflow。
- 删除旧 AliWanx 命名文件,改为
aliyun-image-generator/aliyun-poster-image-generator。
Validation
deno task verify通过。deno task doctor通过,结果为 0 个失败、3 个预期提醒。- 测试结果:110 passed, 0 failed。
Upgrade Notes
- 如果你还在使用旧字段或旧图片 provider 名称,需要迁移到新的
providers+ runtime profile 结构。 - Cloudflare 部署需要确认 D1 migration 已执行,并配置 R2、KV、D1、Workflow binding 和 secrets。
- 正式发布到微信公众号时,如果 Cloudflare Worker 出口 IP 不能加入白名单,建议继续使用微信 Relay。
v1.0.10
[1.0.10] - 2026-05-22
Dashboard 工程化
- 新增独立
dashboard/前端工程,使用 React、Vite、TypeScript 和 Tailwind CSS
构建运行看板,不再使用原来的内联 HTML 作为主实现。 - Dashboard 固定挂载到
/dashboard,本地服务、Docker 镜像和 Cloudflare Worker
使用同一套构建产物。 - 新增 API key 登录页,密钥仅保存在浏览器
sessionStorage,后续请求通过
Authorization: Bearer <key>调用后端 API。 - 首页展示运行环境、健康状态、脱敏配置摘要、最近运行和当前存储 / workflow
状态,便于快速判断部署是否可用。 - 运行列表支持状态筛选、手动刷新和自动刷新;运行详情展示步骤时间线、状态、耗时、
attempt、错误信息、summary 和产物列表。 - Artifact 面板支持 HTML、JSON、文本和图片预览,所有产物仍通过认证 API 读取,
不直接公开本地目录或 R2 bucket。 - 触发任务弹窗默认执行 dry-run;真实发布必须勾选确认并发送
forcePublish: true,降低误发布风险。
API 与服务端
- 本地服务新增
GET /api/health,与 Cloudflare Worker 健康检查接口保持一致。 - 新增
GET /api/config/summary,仅返回脱敏后的运行配置摘要,不暴露 provider
secret。 - 本地服务新增 dashboard 静态资源托管。存在
dist/dashboard
时直接读取;缺少构建产物时返回提示页。 - Cloudflare Worker 新增 Workers Static Assets 支持,
/dashboard和
/dashboard/*直接托管前端资源,/api/*继续走 Worker 后端逻辑。 - Cloudflare Worker 同步支持
/api/config/summary,Dashboard 在本地、Docker 和
Cloudflare 下使用一致 API。 - 微信文章 workflow 识别
forcePublish,Dashboard 二次确认后可以覆盖默认
dry-run 配置并创建微信公众号草稿。
部署体验
- Dockerfile 在镜像构建阶段自动构建 dashboard,GHCR
镜像内置控制台,部署后可直接访问/dashboard。 - Docker 基础镜像固定为 Deno
2.7.14,满足 Vite 8 对 Node 兼容 API 的要求。 - Docker 默认启动命令改为
deno task dev,避免引用已删除的旧start任务。 wrangler.jsonc增加 Workers Static Assets 绑定,Cloudflare 部署会同时上传
dashboard 静态资源。deno task cf dry-run和deno task cf deploy会自动先构建 dashboard,再执行
Wrangler 打包或部署。- 文档站构建改为 Deno 直接驱动 VitePress,GitHub Pages workflow 不再依赖
Node/npm 安装步骤。 - 删除
package.json和package-lock.json,项目命令、文档站、Dashboard 和
Wrangler 入口统一由 Deno task / npm compatibility 执行。 - 微信 relay 继续支持源码运行、Docker 运行和 systemd 保活安装;systemd 模板和
compose 配置统一使用新的deno task relay入口。
命令行体验
- 新增基于
@cliffy/command的统一任务入口scripts/task-runner.ts。 - 任务入口由声明式命令树维护,不再手写 if/else 分发。
- 精简
deno task公共命令,只保留日常入口:dev、doctor、verify、test、
article、preview、relay、docker、cf、build、dashboard、docs。 - 将大量重复别名收敛为参数式子命令:
deno task article --dry-rundeno task docker logsdeno task docker relaydeno task docker relay logsdeno task cf dry-rundeno task cf migratedeno task cf deploydeno task relay installdeno task relay systemddeno task docs builddeno task dashboard build
- 暂时保留
deno task weixin:relay作为兼容别名,避免已经安装的旧 systemd
服务立即失效。
文档
- 重写 README 常用命令和部署说明,突出 Deno-only、Docker、Cloudflare、relay 和
dashboard 的推荐入口。 - 更新
docs/deployment.md,补充 Docker 推荐部署和 Cloudflare dashboard
静态资源说明。 - 补充 relay 源码部署、Docker 部署、systemd 保活安装,以及新的参数式命令。
- 更新快速开始、配置说明、帮助文档和 JSON-RPC API 文档,统一使用
deno task article --dry-run、deno task cf deploy等新命令。 - 文档中不再推荐 npm 命令、旧
article:dry、旧cf:*、旧docker:*或旧
relay:*任务。
验证
- 已通过
deno task verify:格式检查、lint、后端类型检查、dashboard 类型检查、
dashboard 生产构建和 78 个测试全部通过。 - 已通过
deno task doctor:当前配置 0 个失败,提醒项仅为 Cloudflare
绑定、通知渠道、未启用向量去重。 - 已通过
deno task docs build:VitePress 文档站可以正常构建。 - 已通过
deno task cf dry-run:Wrangler 能识别 Worker、Workflow、KV、D1 和
Workers Static Assets 绑定。沙箱环境下 Wrangler 写本地日志会出现 EPERM 提示,
但 dry-run 打包本身成功。
v1.0.9
v1.0.9
架构与配置
- 重构为 app / features / integrations / core ports 的模块化结构。
trendpublish.config.ts成为唯一运行配置入口,并提供中文类型提示和详细示例注释。- 收敛配置模型:providers 只放凭证,features.article 负责功能开关、provider 选择和参数。
- 新增 URL 前缀数据源与 fetchGroups 抓取分组 fallback。
微信文章工作流
- 聚焦微信文章发布主流程,移除旧非文章工作流和按周机制。
- 新增多套提示词风格,统一影响排序、摘要、标题、动态模板和配图。
- 新增可开关的正文 AI 智能配图能力。
- 统一清理 LLM 、Markdown fence 和 JSON 包裹输出,降低解析失败率。
发布与文档
- 更新 README、配置、架构、模板和快速开始文档。
- 新增 release readiness 静态检查。
- 修复 GitHub Release workflow 的新入口和模板路径。
- 生产部署 workflow 改为手动触发,避免 release tag 自动覆盖生产环境。
- 移除 RSSHub 客户端对 lru-cache 导出形态的依赖,稳定 GitHub Actions 类型检查。
- Release workflow 改为使用仓库锁文件缓存依赖,避免 CI 构建时依赖漂移。