09-10 工作台:配置收敛、复盘字段契约修复、原创选题分镜支持、榜单期号区间显示
配置收敛:
- 端口/DB名/产出根/榜单目录单源化到 mcn-work-shop/config.json,代码层统一经 load-config.js 读取
- 新增 get-port.js 供 start.bat 读端口(bat 内嵌 node -e 会被 cmd 截断,读到的是兜底值)
- start.bat 修复失效的 managed node 路径(原写死 22.22.2 已不存在),改为遍历 versions 自动探测
复盘诊断页(真 bug 修复):
- 问题清单严重度全部显示成绿色 + 修改建议不显示:模型输出 {sev:'high',fix} 与前端读取 {severity:'高',suggestion} 字段名与取值均不匹配
- 前端新增 normIssue 归一化,兼容 sev/severity/level 与中英取值,并回补所属维度显示
- 在 submit-review-tasks 与诊断/复盘 prompt 中固化 issues_json 字段契约,从源头防 schema 漂移
分镜提示词:
- 原创选题(video_id 为空)原本无生成入口(分镜按 video_id 查询)
- listStoryboards 支持按 rewrite_id 查询,前端放开入口、切版本重查,并补落库指令(此前入库靠模型自由发挥)
榜单展示:
- 期号改为显示区间「08/31 ~ 09/06」,避免被误读为单日(期号=该周周一)
- 后端新增 collectRanges,从落盘文件读真实 dateStart/dateEnd 随 API 返回(日榜 start=end 不显区间)
其他:
- 清理 dsh 环境废弃后的历史叙述类废话(16 文件约 18 处),文末变更记录区保留
- 新增 docs/工作台UI规范.md(设计 token / 布局 / 8 页面路由 / 12 类组件 / 9 条已知坑)
This commit is contained in:
1 parent
6cb29a9877
commit
c48902f063
58 files changed
+895
-263
No files matched your search
@@ -156,7 +156,7 @@
|
||||
|
||||
## 五、browser-harness 调用方式(环境 SOP)
|
||||
|
||||
> **环境说明(2026-09-02 调整)**:browser-harness 由 uv 工具安装,可执行文件位置**按系统区分**——Windows:`~/.local/bin/browser-harness.exe`;macOS/Linux:`~/.local/bin/browser-harness`;**技能本体位置(09-02 起)**——主技能 `短视频工作台/subskills/browser-harness/`(源仓库:`project/短视频脚本创作/V1.0/subskills/browser-harness/`,含 `envs/browser-harness/` 环境与 `src/`;**不再挂在 mcn-dou-analysis 下**);dsh 部署环境 `~/.dsh/skills/browser-harness/`(随 dsh_MCNProject 仓库分发,换机器自带)。
|
||||
> **环境说明(2026-09-02 调整)**:browser-harness 由 uv 工具安装,可执行文件位置**按系统区分**——Windows:`~/.local/bin/browser-harness.exe`;macOS/Linux:`~/.local/bin/browser-harness`;**技能本体位置(09-02 起)**——主技能 `短视频工作台/subskills/browser-harness/`(源仓库:`project/短视频脚本创作/V1.0/subskills/browser-harness/`,含 `envs/browser-harness/` 环境与 `src/`;**不再挂在 mcn-dou-analysis 下**;**09-10 起无 dsh 部署环境**)。
|
||||
|
||||
### 5.0 环境检查与安装(每次浏览器任务前【必做】)
|
||||
|
||||
@@ -172,7 +172,7 @@
|
||||
|
||||
- **可跳过**:改用三方数据 API / MCP 兜底数据源,但功能一/二浏览器抓取无法执行
|
||||
- **同意安装**:`uv tool install --python 3.12 --upgrade --force browser-harness`(`--python 3.12` 防止选中过旧版本;`--upgrade --force` 覆盖旧安装)
|
||||
- **技能本体**:源仓库 `project/短视频脚本创作/V1.0/subskills/browser-harness/`(主技能 `短视频工作台/subskills/browser-harness/`);dsh 部署环境 `~/.dsh/skills/browser-harness/`(随 dsh_MCNProject 仓库分发;如缺失可从 browser-harness 仓库的 `browser-harness skill` 命令重新生成)
|
||||
- **技能本体**:源仓库 `project/短视频脚本创作/V1.0/subskills/browser-harness/`(主技能 `短视频工作台/subskills/browser-harness/`;**09-10 起无 dsh 部署环境**;如缺失可从 browser-harness 仓库的 `browser-harness skill` 命令重新生成)
|
||||
- **安装后验证**:`command -v browser-harness`(macOS/Linux)/ `where browser-harness`(Windows)有输出 + `browser-harness doctor` 三要素全绿,再进入下方 5.1 环境准备
|
||||
|
||||
### 5.1 环境准备(每次浏览器任务前【必做】)
|
||||
@@ -262,30 +262,33 @@ PY
|
||||
|
||||
**锁规则(每个需要浏览器的任务必须遵守)**:
|
||||
|
||||
1. **锁文件**:`D:\AgentSkill\mcn-workshop\.browser-lock`(工作台 `/api/run` 对浏览器类任务已自动注入本约束到 prompt,AI 会话执行时遵守即可)
|
||||
1. **锁文件位置**:**工作台目录下的 `.browser-lock`**(工作台目录 = 本技能根下的 `mcn-work-shop/`)。工作台 `/api/run` 对浏览器类任务会把**运行时解析出的绝对路径**注入 prompt,AI 会话执行时**以注入的路径为准**;此处不写死盘符。
|
||||
- 工作台触发的会话 cwd 即**工作台目录**,故可直接用相对路径 `.browser-lock`(推荐,跨机器可迁移)
|
||||
- 手工执行(cwd 不是工作台目录)时,先定位工作台目录再拼 `.browser-lock`
|
||||
2. **操作前**:检查锁文件是否存在(`ls`)→ 存在则等 10 秒重试(最多 18 次 ≈ 3 分钟)
|
||||
3. **死锁保护**:锁文件修改时间超过 10 分钟 → 视为死锁,可删除后抢占
|
||||
4. **拿锁**:`echo "<任务名> <时间戳>" > D:\AgentSkill\mcn-workshop\.browser-lock` → 才操作浏览器
|
||||
5. **释放**:浏览器操作全部完成后(无论成败)`rm -f D:\AgentSkill\mcn-workshop\.browser-lock`
|
||||
4. **拿锁**:`echo "<任务名> <时间戳>" > .browser-lock` → 才操作浏览器
|
||||
5. **释放**:浏览器操作全部完成后(无论成败)`rm -f .browser-lock`
|
||||
6. **串行协调**:多个任务抢锁 = 先到先用;拿到锁的任务完成后释放,下一个任务继续;标签页复用规则(5.5)仅在自己持有锁期间适用
|
||||
|
||||
```bash
|
||||
# 前置:确认当前目录就是工作台目录(目录内含 .browser-lock 与 server.js)
|
||||
# 拿锁(互斥,带重试)
|
||||
for i in $(seq 1 18); do
|
||||
if [ ! -f "D:/AgentSkill/mcn-workshop/.browser-lock" ]; then
|
||||
echo "$(date '+%H:%M:%S') ${任务名}" > "D:/AgentSkill/mcn-workshop/.browser-lock"
|
||||
if [ ! -f ".browser-lock" ]; then
|
||||
echo "$(date '+%H:%M:%S') ${任务名}" > ".browser-lock"
|
||||
break
|
||||
fi
|
||||
# 死锁保护:锁超过 10 分钟强制抢占
|
||||
if [ -f "D:/AgentSkill/mcn-workshop/.browser-lock" ] && [ $(($(date +%s) - $(stat -c %Y "D:/AgentSkill/mcn-workshop/.browser-lock" 2>/dev/null || echo 0))) -gt 600 ]; then
|
||||
rm -f "D:/AgentSkill/mcn-workshop/.browser-lock"
|
||||
if [ -f ".browser-lock" ] && [ $(($(date +%s) - $(stat -c %Y ".browser-lock" 2>/dev/null || echo 0))) -gt 600 ]; then
|
||||
rm -f ".browser-lock"
|
||||
continue
|
||||
fi
|
||||
sleep 10
|
||||
done
|
||||
# ... 浏览器操作 ...
|
||||
# 释放锁(无论成败)
|
||||
rm -f "D:/AgentSkill/mcn-workshop/.browser-lock"
|
||||
rm -f ".browser-lock"
|
||||
```
|
||||
|
||||
```bash
|
||||
|
||||
Reference in new issue
Block a user