Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -177,13 +177,15 @@ jobs:
run: |
docker exec niuma-studio-ci python -m scripts.seed_demo_data --reset
docker exec niuma-studio-ci python -c "import sqlite3; db=sqlite3.connect('/app/ci-data/workflow.sqlite3'); assert db.execute(\"select count(*) from tasks where id like 'demo_%'\").fetchone()[0] == 3; assert db.execute(\"select count(*) from clip_candidates where id like 'demo_%'\").fetchone()[0] == 6; assert db.execute(\"select count(*) from publish_jobs where id like 'demo_%'\").fetchone()[0] == 6"
curl --fail --silent --show-error 'http://127.0.0.1:8001/api/system/readiness?deep=1' | python -c "import json, sys; report=json.load(sys.stdin); assert report['status'] != 'not_ready', report; assert report['checks']['database']['status'] == 'ok', report"

- name: 验证主要页面
run: |
curl --fail --silent --show-error http://127.0.0.1:8001/ >/dev/null
curl --fail --silent --show-error http://127.0.0.1:8001/tasks >/dev/null
curl --fail --silent --show-error http://127.0.0.1:8001/clips >/dev/null
curl --fail --silent --show-error http://127.0.0.1:8001/publish >/dev/null
curl --fail --silent --show-error http://127.0.0.1:8001/content-review >/dev/null

- name: 输出失败日志
if: failure()
Expand Down
17 changes: 17 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,23 @@
- 在 Windows 10/11 + Docker Desktop 实机生成当前 `master` 的脱敏验收报告。
- 完成抖音 / B站真实发布灰度验证矩阵。

## 2.2.0 - 2026-08-28

### Added

- 新增独立“内容复盘”页面,支持抖音账号级日汇总 `.xlsx/.csv` 两阶段导入、近 50 条作品的一键同步和人工确认匹配。
- 建立作品指标到发布记录、输出切片、候选片段、AI 分析与不可变 Prompt 版本的完整归因链,并提供带样本门槛的 Prompt 版本对比。
- 新增 `/api/system/readiness?deep=0|1`,统一报告数据库、迁移账本、存储、调度、Worker 和 FFmpeg 状态。

### Changed

- 保存审片选择时自动生成保留或淘汰反馈;重复状态不重复写入,原因变化保留为新事件,AI 只读取每个候选最新反馈。
- 备份恢复增加 `integrity_check`、`foreign_key_check`、迁移 checksum、关键索引、活动服务和独占锁校验;危险旧目录迁移入口永久停用。

### Security

- 抖音作品同步只复用本机 Chrome 登录态并保存指标白名单;登录失效、验证码、限流或页面变化时立即停止,不绕过平台验证,也不自动重试。

## 2.1.0 - 2026-08-23

### Added
Expand Down
13 changes: 13 additions & 0 deletions DEVELOPMENT_LOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,18 @@
# Development Log

## 2026-08-28 v2.2.0 抖音内容复盘与 Prompt 归因

- 审片页以“保存审核选择”为唯一写入边界:首次保存自动形成 `keep/reject`,相同状态不重复,决策或淘汰原因变化时新增事件;AI 历史上下文只采用每个候选最新反馈。
- 新增不可变 `ai_prompt_versions`,候选片段关联来源 AI Run,AI Run 固定关联 Prompt 版本与 SHA-256;历史记录只做可唯一确定的候选回填,不猜测 Prompt。
- 新增 `/content-review`:支持抖音账号日汇总 `.xlsx/.csv` 预览与确认导入、7 天环比、作品归因表、人工确认和带 3 周期/30 条/双版本 20 条门槛的 Prompt 对比。
- Windows Chrome Worker 新增最近 50 条抖音作品指标同步;复用现有登录态和账号锁,只保存指标白名单,登录失效、验证码、429、页面变化时立即停止且不自动重试。
- 数据库恢复统一执行完整性、外键、迁移账本 checksum 和关键索引校验;正式库恢复前检查活动服务和独占锁。旧任务目录迁移入口永久停用,新增 `/api/system/readiness?deep=0|1`。
- 14:21 的表结构检查调用了 `init_db()`,活动库因此执行 `20260828_01_content_review_v1`;迁移器先自动生成 `data/backups/workflow-before-content-review-v1-20260828-142159-923806-112221a7.sqlite3`。事后只读复核为 `integrity_check=ok`、`foreign_key_check=0`、备份同样通过完整诊断;Scheduler 正在运行,复核时 `PUBLISHING=0`、保留原有 `SCHEDULED=6`,未触发投稿或更改排期。该提前升级偏离了“先停服务再人工升级”的理想操作顺序,已在交付说明中明确保留。
- Docker 隔离冒烟发现并修复演示数据仍缺少 2.2 归因的问题;Demo AI Run 现在固定关联 Prompt 版本及哈希,6 条候选均关联来源 Run。重建后深度 readiness 为 `database=ok`、`integrity_check=ok`、`foreign_key_check=0`、迁移 3 条、`PUBLISHING=0`,`/`、`/tasks`、`/clips`、`/publish`、`/content-review` 均返回 HTTP 200;隔离临时容器已删除。
- 最终隔离回归为 `836 passed`、0 失败;Ruff、Compileall、5 个 JavaScript、20 个 PowerShell、3 套 Compose、`pip check` 和 `git diff --check` 全部通过。内容复盘页使用真实 Chrome 在 1440px 与 390px 验证,无页面级横向溢出。Docker 官方 Debian 源首次受本机代理 500/502 影响,改用 Dockerfile 已支持的阿里云镜像参数后构建及上述冒烟全部通过。
- `acceptance.ps1` 与 `release_gate.ps1` 保留到 2.2 PR 合并后的干净 `master` 执行,避免功能分支报告被误当成正式发布证据。
- 版本统一升级为 `2.2.0`。本轮不自动修改 Prompt、不自动发布、不绕过平台验证,也不对单体服务、前端框架或数据库层做全面重构。

## 2026-08-28 2.1 集成 PR 与 Docker 冒烟修复

- 将当前线性领先 `master` 的 26 个提交完整保留到 `codex/integrate-v2.1-stable`,新增独立空白清理提交并创建顶层集成 PR #60;不 rebase、不 squash,也不自动合并。
Expand Down
19 changes: 13 additions & 6 deletions NEXT_STEPS.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,18 @@
# Next Steps

## 2026-08-28 2.1 集成收口
## 2026-08-28 v2.2 内容复盘验收与后续使用

1. 等待 PR #60 的 Linux、Windows 与 Docker 三组 CI 全部通过;Docker 页面冒烟必须确认 `/`、`/tasks`、`/clips`、`/publish` 均返回成功。
2. CI 全绿后由用户在 GitHub 使用普通 merge commit 手动合并到 `master`,不要 squash、rebase 或自动合并,以保留原 26 个提交历史。
3. 合并后确认 `master` 包含提交 `c3e52be`,再关闭被顶层 PR 覆盖的堆叠 PR;不要删除分支,也不要处理无关的 Dependabot #44/#45。
4. 只有 2.1 基线合并完成,才从最新 `master` 创建 `codex/douyin-content-review` 开始 2.2 内容复盘开发。
1. 合并 2.2 PR 前确认 Linux、Windows host smoke 与 Docker image smoke 全绿;使用普通 merge commit,由用户手动合并,不自动删除功能分支。
2. 活动库已在迁移器自动备份后完成 2.2 Schema 升级并通过完整性、外键和迁移账本校验;不要重复手工迁移。合并后安排受控重启前仍要确认没有 `PUBLISHING`,重启后访问 `/api/system/readiness?deep=1`,必须没有 `not_ready`。
3. 在“内容复盘”选择本人抖音账号,先上传日汇总表预览,再人工确认导入;账号级历史数据只作为未归因趋势基线。
4. 点击“同步最近 50 条作品”时保持本机 Chrome 已登录;验证码、登录失效、限流或页面变化时按错误提示人工处理,不连续重试。
5. 对未匹配或多候选作品逐条人工确认。累积 3 个完整周同步、当前 Prompt 至少 30 条准确归因作品后再评估;两个版本各至少 20 条才查看版本间比较。
6. 系统只给出 Prompt 调整建议。用户确认并实际修改 Prompt 后才创建新版本,继续观察下一个周期,不凭单条爆款直接下结论。

## 2026-08-28 2.1 集成收口(已合并)

1. PR #60 已由用户使用普通 merge commit 合并,原 26 个提交历史保留,2.2 分支已从合并后的 `master` 创建。
2. 顶层 PR 覆盖的旧堆叠 PR 仅做关闭归档,不删除分支;无关的 Dependabot #44/#45 保持不动。

## 2026-08-26 页面动效检查

Expand Down Expand Up @@ -68,7 +75,7 @@
- [x] P1.4:已统一 AI/远程转写/FFmpeg/FFprobe 超时、错误 JSON、429/5xx 与重试幂等边界;计费不确定请求默认禁止自动重发。
- [x] P1.4b:AI 候选/run/任务终态已原子提交;人工 AI 已使用持久 Job/lease;普通/综艺/长直播具备单元恢复、计费不确定和不完整/质量降级门禁,父 Worker 取消与异常收尾已明确。
- [x] P1.5:配置读取 DTO 已脱敏,非本机请求受 Bearer 门禁保护,写请求校验同源;设置、平台 URL 与动态 HTML 输入边界已收紧。
- [ ] P2:先替换并继续停用非 WAL-aware 的旧任务目录迁移脚本,再拆分 God Service、去除查询重复、补核心集成/故障测试和可观测性;不做全面重构
- [x] P2 必要护栏:危险旧任务目录迁移入口已无条件停用,恢复完整校验与 readiness 已补齐。God Service 拆分、查询去重和全面重构继续延后,按实际数据反馈再安排

### 本轮人工检查

Expand Down
3 changes: 2 additions & 1 deletion README.en.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ A Windows-first, local AI video highlight workspace for livestream recordings, i
[中文](README.md) · [English](README.en.md) · [Quick Start](docs/PROJECT_GUIDE.md) · [Portable Setup](docs/PORTABLE_SETUP.md) · [Backup & Restore](docs/BACKUP_AND_RESTORE.md) · [Technical Reference](docs/TECHNICAL_REFERENCE.md) · [Roadmap](ROADMAP.md)

![CI](https://github.com/damingishere-coder/Ai-Clip-Workflow/actions/workflows/ci.yml/badge.svg)
![Version](https://img.shields.io/badge/version-2.1.0-0969da)
![Version](https://img.shields.io/badge/version-2.2.0-0969da)
![Python](https://img.shields.io/badge/Python-3.12%2B-3776AB)
![Platform](https://img.shields.io/badge/platform-Windows-0078D4)
![FastAPI](https://img.shields.io/badge/backend-FastAPI-009688)
Expand Down Expand Up @@ -91,6 +91,7 @@ flowchart LR
| Transcription | Volcengine remote transcription and local faster-whisper | ✅ Available |
| AI analysis | General-value mode, comedy-first mode, segmented long-video analysis | ✅ Available |
| Review and clipping | Edit candidates, save selections, generate versioned clips | ✅ Available |
| Content review | Douyin daily imports, recent-50 item sync, attribution, and prompt comparison | ✅ Available |
| Content preparation | Titles, descriptions, tags, cover frames, accounts, visibility | ✅ Available |
| Scheduling | Batch preview, overnight windows, calendar view, timeline continuation | ✅ Available |
| Data protection | Verified SQLite snapshots, manifests, restore rollback, upgrade protection | ✅ Available |
Expand Down
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ Windows 本地运行的 AI 视频高光生产工作台,面向直播录像、
[中文](README.md) · [English](README.en.md) · [快速开始](docs/PROJECT_GUIDE.md) · [通用启动](docs/PORTABLE_SETUP.md) · [备份恢复](docs/BACKUP_AND_RESTORE.md) · [技术说明](docs/TECHNICAL_REFERENCE.md) · [路线图](ROADMAP.md)

![CI](https://github.com/damingishere-coder/Ai-Clip-Workflow/actions/workflows/ci.yml/badge.svg)
![Version](https://img.shields.io/badge/version-2.1.0-0969da)
![Version](https://img.shields.io/badge/version-2.2.0-0969da)
![Python](https://img.shields.io/badge/Python-3.12%2B-3776AB)
![Platform](https://img.shields.io/badge/platform-Windows-0078D4)
![FastAPI](https://img.shields.io/badge/backend-FastAPI-009688)
Expand Down Expand Up @@ -91,6 +91,7 @@ flowchart LR
| 语音转写 | 火山引擎远程转写、faster-whisper 本地转写 | ✅ 可用 |
| AI 选片 | 通用内容价值、综艺笑点优先、长内容分段分析 | ✅ 可用 |
| 审核切片 | 编辑候选、保存选择、按需生成新切片版本 | ✅ 可用 |
| 内容复盘 | 抖音日汇总导入、近 50 条作品同步、归因链和 Prompt 对比 | ✅ 可用 |
| 内容准备 | 标题、简介、话题、封面帧、账号和可见范围 | ✅ 可用 |
| 排期计划 | 批量预览、跨午夜窗口、月历、续接最晚排期 | ✅ 可用 |
| 数据保护 | SQLite 一致性备份、清单校验、恢复前回滚与升级保护 | ✅ 可用 |
Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
2.1.0
2.2.0
Loading
Loading