工作台:目录改名 mcn-workshop + 任务进度可见 + 会话归属配置化

1. 目录 mcn-work-shop -> mcn-workshop(空间分组名取会话 cwd 的目录名,只改字符串无效,必须真改名)
2. 全仓替换 mcn-work-shop -> mcn-workshop:37 文件 121 处;历史日志按沿革句规矩保留当时目录名
3. 任务进度可见:/api/run/status 产出 已运行时长/工具调用/最近动作/停滞判定(读会话日志尾部),前端新增右下角常驻面板,四处任务入口接入
4. 会话归属目录配置化:新增 config.sessionCwd(留空=工作台自身目录),现指向 D://AI技能//mcn-workshop,使任务显示为命名分组而非「未分组任务」
5. 修前端轮询静默缺陷:连续 3 次查询失败即提示服务断开(原逻辑静默空转到 15 分钟超时,用户零感知)
This commit is contained in:
maogeigei committed 2026-10-08 13:09:06 +08:00
1 parent d07049ecf1
commit f77735b206
115 files changed
+1103 -1514

No files matched your search

@@ -33,7 +33,7 @@
| 场景 | 说明 |
|------|------|
| 仅开发机工具 | 不随技能分发的目录(如 `mcn-work-shop/`),内部可保留开发机路径 |
| 仅开发机工具 | 不随技能分发的目录(如 `mcn-workshop/`),内部可保留开发机路径 |
| 环境判别/路径配置文档 | `路径配置.md`、SKILL.md 环境判定节——锚点 git 检出特征是**规则内容**不是引用,保留 |
| 示例/教学文本 | `C:/Videos/demo.mp4`、`C:/path/to/file` 等明确示例(`path/to`、`demo` 字样) |
| 历史日志 | `.workbuddy/memory/` 既有日志保留原样,不改写历史 |
@@ -39,7 +39,7 @@ from urllib.error import HTTPError, URLError
LIKES_API = "https://redfox.hk/story/api/dy/search/likesRank"
SURGE_API = "https://redfox.hk/story/api/dy/search/hotContentRank"
# 子目录(与 mcn-work-shop/dsh-data.js rankSubDir 对应)
# 子目录(与 mcn-workshop/dsh-data.js rankSubDir 对应)
SUB_DIR = {"hot": "视频热榜", "likes": "点赞榜"}
# 文件名前缀(与账号周榜 抖音周榜_{赛道}_{周一}.json 区分)
FILE_PREFIX = {"hot": "抖音周榜_视频热榜", "likes": "抖音周榜_点赞榜"}
@@ -50,7 +50,7 @@ CATEGORY_ALL = "全部"
def resolve_ranking_dir():
"""与 mcn-work-shop/dsh-data.js resolveRankingDir 同款:env → 桌面 抖音榜单(09-10 起无 dsh 分支)"""
"""与 mcn-workshop/dsh-data.js resolveRankingDir 同款:env → 桌面 抖音榜单(09-10 起无 dsh 分支)"""
env = os.environ.get("MCN_RANKING_DIR", "").strip()
if env:
return env
@@ -157,7 +157,7 @@ description: "MCN 达人爆款视频解析与人设卡生成技能:达人账
核心流程概要:
- **触发**:账号详情视频列表「解析视频」按钮 / 用户指定单条视频
- **流程**:`upload_douyin_video` 提交(3-5 分钟等待)→ `short_video_detail` 查询(content + analysis)→ `scripts/json_tool.py` 保存到 `{产出根目录}/{达人昵称}/视频对标/{视频文件夹}/`
- **可选写库**:① 环境有 MCN 插件接口(dsh)时补录 `account_video_source` 并提取选题;② **工作台环境(mcn-work-shop,本机 `http://localhost:8900`)**:功能三/五解析产物落盘后调用 `POST /api/import/account`(body `{"account":"{达人昵称}"}`)同步入库——扫描账号产出目录写工作台库 `mcn-plugin.db`(`视频分析/*/analysis.json`→`account_video_analysis`、`content.json`→`account_video_source`、`{达人昵称}账号设定.md`→`account_persona`、`{达人昵称}账号数据分析.md`→`account_analysis`、`短视频表格.xlsx`→`account_videos` 补视频列表),供工作台选题(`/api/ai/topics`)基于真实视频解析内容生成。入库实现见工作台 `server.js`(09-01 新增)
- **可选写库**:① 环境有 MCN 插件接口(dsh)时补录 `account_video_source` 并提取选题;② **工作台环境(mcn-workshop,本机 `http://localhost:8900`)**:功能三/五解析产物落盘后调用 `POST /api/import/account`(body `{"account":"{达人昵称}"}`)同步入库——扫描账号产出目录写工作台库 `mcn-plugin.db`(`视频分析/*/analysis.json`→`account_video_analysis`、`content.json`→`account_video_source`、`{达人昵称}账号设定.md`→`account_persona`、`{达人昵称}账号数据分析.md`→`account_analysis`、`短视频表格.xlsx`→`account_videos` 补视频列表),供工作台选题(`/api/ai/topics`)基于真实视频解析内容生成。入库实现见工作台 `server.js`(09-01 新增)
## 八、功能六:生成账号设定卡片
@@ -262,7 +262,7 @@ PY
**锁规则(每个需要浏览器的任务必须遵守)**:
1. **锁文件位置**:**工作台目录下的 `.browser-lock`**(工作台目录 = 本技能根下的 `mcn-work-shop/`)。工作台 `/api/run` 对浏览器类任务会把**运行时解析出的绝对路径**注入 prompt,AI 会话执行时**以注入的路径为准**;此处不写死盘符。
1. **锁文件位置**:**工作台目录下的 `.browser-lock`**(工作台目录 = 本技能根下的 `mcn-workshop/`)。工作台 `/api/run` 对浏览器类任务会把**运行时解析出的绝对路径**注入 prompt,AI 会话执行时**以注入的路径为准**;此处不写死盘符。
- 工作台触发的会话 cwd 即**工作台目录**,故可直接用相对路径 `.browser-lock`(推荐,跨机器可迁移)
- 手工执行(cwd 不是工作台目录)时,先定位工作台目录再拼 `.browser-lock`
2. **操作前**:检查锁文件是否存在(`ls`)→ 存在则等 10 秒重试(最多 18 次 ≈ 3 分钟)
@@ -33,7 +33,7 @@
| 场景 | 说明 |
|------|------|
| 仅开发机工具 | 不随技能分发的目录(如 `mcn-work-shop/`),内部可保留开发机路径 |
| 仅开发机工具 | 不随技能分发的目录(如 `mcn-workshop/`),内部可保留开发机路径 |
| 环境判别/路径配置文档 | `路径配置.md`、SKILL.md 环境判定节——锚点 git 检出特征是**规则内容**不是引用,保留 |
| 示例/教学文本 | `C:/Videos/demo.mp4`、`C:/path/to/file` 等明确示例(`path/to`、`demo` 字样) |
| 历史日志 | `.workbuddy/memory/` 既有日志保留原样,不改写历史 |
@@ -43,9 +43,9 @@
| 更新时间近 1 月提示刷新 | references/feature/01_获取账号信息.md |
| 卡片存在询问覆盖/微调(触发判定链) | references/feature/06_生成账号设定卡片.md |
| 已有表格直接读、人设卡对齐、解析降级 | references/feature/04_分析视频数据.md |
| 入库 upsert 去重(删旧保新/重复跳过) | mcn-work-shop/server.js `/api/import/account` |
| 入库 upsert 去重(删旧保新/重复跳过) | mcn-workshop/server.js `/api/import/account` |
## 相关接口速查
- 工作台库:`mcn-work-shop/mcn-plugin.db`(表:hot_accounts / account_persona / account_analysis / account_video_source / account_video_analysis / account_videos)
- 工作台库:`mcn-workshop/mcn-plugin.db`(表:hot_accounts / account_persona / account_analysis / account_video_source / account_video_analysis / account_videos)
- 产出根目录:以 `references/路径配置.md` 为准(开发机默认桌面 `MCNSkill项目/`)
@@ -172,4 +172,4 @@ script-review/ ← Skill 根目录
|------|------|------|
| short-video-script | 脚本**创作** + 创作流程内 S11 诊断 | 本技能只读引用其判定标准 |
| **script-review(本技能)** | 已有脚本**复盘** + 创作过程**复盘** + 经验沉淀 | 独立运行,不侵入创作流程 |
| MCN工作台(mcn-work-shop) | AI脚本诊断页(#/reviews)复盘入口 | 复盘/对比按钮的 AI 任务 prompt 明确指定按本技能执行 |
| MCN工作台(mcn-workshop) | AI脚本诊断页(#/reviews)复盘入口 | 复盘/对比按钮的 AI 任务 prompt 明确指定按本技能执行 |
@@ -33,7 +33,7 @@
| 场景 | 说明 |
|------|------|
| 仅开发机工具 | 不随技能分发的目录(如 `mcn-work-shop/`),内部可保留开发机路径 |
| 仅开发机工具 | 不随技能分发的目录(如 `mcn-workshop/`),内部可保留开发机路径 |
| 环境判别/路径配置文档 | `路径配置.md`、SKILL.md 环境判定节——锚点 git 检出特征是**规则内容**不是引用,保留 |
| 示例/教学文本 | `C:/Videos/demo.mp4`、`C:/path/to/file` 等明确示例(`path/to`、`demo` 字样) |
| 历史日志 | `.workbuddy/memory/` 既有日志保留原样,不改写历史 |
@@ -33,7 +33,7 @@
| 场景 | 说明 |
|------|------|
| 仅开发机工具 | 不随技能分发的目录(如 `mcn-work-shop/`),内部可保留开发机路径 |
| 仅开发机工具 | 不随技能分发的目录(如 `mcn-workshop/`),内部可保留开发机路径 |
| 环境判别/路径配置文档 | `路径配置.md`、SKILL.md 环境判定节——锚点 git 检出特征是**规则内容**不是引用,保留 |
| 示例/教学文本 | `C:/Videos/demo.mp4`、`C:/path/to/file` 等明确示例(`path/to`、`demo` 字样) |
| 历史日志 | `.workbuddy/memory/` 既有日志保留原样,不改写历史 |