fix(MCN工作台): 修复刷新回首页(P0) + 周榜页全面对齐首页交互
- 根因: app.js 先于 data-pages.js 加载,boot 立即 router() 时 DataPages 未定义 → 数据页路由被当未知路由 → location.hash='#/' 回首页 - 修复: boot 改 DOMContentLoaded + 50ms 轮询等 DataPages 就绪再路由;router 兜底保护(数据页名+DataPages未定义不跳首页) - 验证: browser-harness 真实验证(独立Chrome 9223调试实例) 直接访问/刷新/切换全部通过 - 首页周榜: 新增板块(前10+赛道日期筛选)、综合得分倒序排序、9列(新增粉丝/点赞/评论/分享+功能列)、导入按钮、去分页 - 完整周榜页(#/ranking): 对齐首页(赛道列前置、工具栏/分页右对齐、综合得分倒序+橙色、功能列居中、导入/查看按钮区分) - 路由记忆: localStorage+cookie 双写,刷新后恢复上次页面 - 其他: AI写剧本→AI生成脚本、全部字体按比例放大+2(取整无小数)、外链新标签打开、btn-import/btn-view 样式
This commit is contained in:
1 parent
63e8a66f4f
commit
79ae403b7b
9 files changed
+325
-102
No files matched your search
@@ -127,7 +127,39 @@
|
||||
- **验证**:vm 模拟跨 script 全局,确认无冲突;node -c 双文件语法过;curl 确认 fmtDate 3 处 / fmtTime 零残留 ✅
|
||||
- **教训**:多 script 文件共享全局作用域,`function 声明` 与 `const/let` 同名会跨文件冲突(node -c 单文件查不出);给全局工具函数命名前应 grep 全项目避免与其它文件撞名
|
||||
|
||||
## 19:25 工作台触发的 AI 会话归入 mcn-workshop 空间分组
|
||||
- **需求**:工作台功能创建的 AI 会话显示到 mcn-workshop 空间分组
|
||||
- **机制**:WorkBuddy 左侧会话栏按 cwd(工作目录)分组;workspaces 表每行一个空间(path+last_opened_at)
|
||||
- **实现**:①创建目录 `D:\AgentSkill\mcn-workshop` 并插入 workspaces 表(路径格式必须与其他行一致 `D:\AgentSkill\xxx`;bash MSYS 会把反斜杠转正斜杠,需用 Write 写 node 脚本执行避开);②server.js `/api/run` 的 cwd 改为 `D:\\AgentSkill\\mcn-workshop`(cwds JSON 数组)
|
||||
- **验证**:POST /api/run 后 cwds=`["D:\\AgentSkill\\mcn-workshop"]` ✅;WorkBuddy 消费后新会话 cwd=`D:\AgentSkill\mcn-workshop`、is_background_automation=1 ✅(会话 3b28ab3c)
|
||||
- **注意**:8899 端口曾被旧实例/多实例占用(避让到 8900/8901),按端口清理 node 进程后恢复单一实例;MiPCAudio 占 0.0.0.0:8899 需排除(PID 20604)
|
||||
|
||||
## 12:31 同步到远程仓库
|
||||
- 提交 5f5b4f1(120 文件,含工作台 mcn-work-shop/ + impeccable/taste-skill 设计技能 + 记忆/文档)
|
||||
- 修正 .gitignore:`mcn-work-shop/mcn-plugin.db` → `**/mcn-work-shop/mcn-plugin.db`(带斜杠规则会锚定根目录,未匹配到 project/ 子路径,导致数据库副本被误暂存,已 git rm --cached)
|
||||
- push 成功 f025ad3..5f5b4f1;origin/main 跟踪引用照旧被沙箱拦截丢失,已手动重建 refs/remotes/origin/main
|
||||
|
||||
## 12:38 browser-harness 源码纳入版本管理(仅排除 Windows 环境)
|
||||
- **用户需求**:仓库除 browser-harness 的 Windows 环境文件外,其余文件都要提交
|
||||
- **检查发现**:browser-harness 是嵌套 git 仓库(clone 自 browser-use/browser-harness,main@f5eaf90),根 .gitignore 的 `browser-harness/` 把整个目录都忽略了,导致 181 个源码文件(SKILL.md/README/src/skills/tests/docs,仅 460K)也没提交,不只是 envs 环境
|
||||
- **用户决策**:删除嵌套 .git,envs 环境继续忽略
|
||||
|
||||
## 20:2x-20:3x 工作台路由刷新回首页问题(P0 排查修复 + browser-harness 真实验证)
|
||||
- **症状**:访问 http://localhost:8899/#/ranking 刷新后 URL 变 #/ 回首页;外部浏览器/WorkBuddy 面板均复现;点击进入正常
|
||||
- **排查过程**:①怀疑 iframe/sessionStorage(排除,外部浏览器也一样)→ ②Edge headless 复现但 virtual-time 与 await 冲突(首页同步渲染正常、数据页 await 挂起空 view,误导)→ ③注入探针发现 headless 加载 #/ranking 时 location.hash 变 #/(headless 特性)→ ④**browser-harness 真实验证**(用户提示可用,环境在 mcn-dou-analysis/subskills/browser-harness,用 PYTHONPATH=src + python -m browser_harness.run + BU_CDP_URL=http://127.0.0.1:9223 独立 Chrome 调试实例)→ ⑤诊断 __diag 实锤:**setTimeout(0) 时 dp=undefined(data-pages.js 未加载完)**
|
||||
- **真正根因**:script 标签下载**并行**——app.js 先下载完执行,其末尾 boot 立即 router()(或 setTimeout(0))时 **window.DataPages 尚未定义**(data-pages.js 还在下载/未执行)→ 数据页路由被当未知路由 → `location.hash='#/'` 兜底回首页(URL 变 #/)。点击进入正常因页面运行中两 JS 已加载
|
||||
- **修复**:boot 改为 **DOMContentLoaded + 50ms 轮询等 DataPages 就绪再 router()**;router 兜底加保护(数据页名 + DataPages undefined 时不跳首页,等待下次)
|
||||
- **验证(browser-harness 实测)**:直接访问 #/ranking 渲染周榜页 ✅;#/ranking 刷新停留 ✅;首页↔周榜切换 ✅;周榜 20 行完整 ✅
|
||||
- **环境调用法(重要复用)**:BH=mcn-dou-analysis/subskills/browser-harness;`PYTHONPATH="$BH/src" "$BH/envs/browser-harness/python.exe" -m browser_harness.run`(heredoc 传 Python);独立调试 Chrome:`chrome.exe --remote-debugging-port=9223 --user-data-dir=...` + `BU_CDP_URL=http://127.0.0.1:9223`;PYTHONPATH 必须指向 src/(含 browser_harness 包)
|
||||
- **执行**:rm -rf browser-harness/.git(2.7M);.gitignore `browser-harness/` → `**/browser-harness/envs/`;git add -A 提交 175 源码 + .gitignore 共 176 文件
|
||||
- **继续忽略**:envs/(191M conda 环境)、src/browser_harness.egg-info/(Python 打包元数据,6 文件)、__pycache__/
|
||||
- **提交**:9248cbe,push 025d28f..9248cbe 成功,跟踪引用照旧重建,本地与远程一致
|
||||
|
||||
## 19:17 工作台按钮直接触发 WorkBuddy AI 会话(Automation 方案,推翻复制 prompt 结论)
|
||||
- **用户纠正**:之前结论「WorkBuddy 无网页→会话触发接口,按钮只能复制 prompt」有误。用户提供 POC 文档(桌面「新建 文本文档 (2).txt」)+ 明确要求用 **Automation 方案**(非 CLI),让任务在左侧会话栏可见
|
||||
- **dsh 插件参考**(D:/dshworkspace/plugin_package/dsh-plugin-mcn):按钮 → POST /mcn/api/creative {prompt} → `getOrCreateCreativeAgent(sid)` 固定会话 + `agent.followup(userMessage)` 触发执行;执行中 409 防重;用户到 AI会话视图查看
|
||||
- **WorkBuddy Automation 链路(实测验证)**:往 `~/.workbuddy/workbuddy.db` 的 `automations` 表写 once 任务(scheduled_at=now)→ WorkBuddy 运行时自动消费(19:16:22 实测)→ 创建会话(automation_runs.thread_id / runtime_state.running_conversation_id)→ 左侧会话栏可见 → 结果落 automation_runs(result_success=1)
|
||||
- **automations 表关键字段**(用 automation_update 工具创建样本反推):id=`automation-{毫秒}`、status=ACTIVE、schedule_type=once、next_run_at=毫秒、scheduled_at=`YYYY-MM-DDTHH:mm`(本地无秒)、cwds=JSON数组、created_at/updated_at=毫秒、skills_json/connector_ids_json='[]'、model_id=deepseek-v4-flash、permission_mode=fullAccess、owner_user_id=当前用户ID(sessions.user_id)、owner_status=confirmed
|
||||
- **实现**:server.js 加 `POST /api/run`(node:sqlite 写 automations,owner_user_id 从 sessions 最新取,cwd=D:/AgentSkill/mcn-video-script);data-pages.js firePrompt 从复制改为提交执行 + 5 秒防连点;SKILL.md 工作台章节 5 更新
|
||||
- **验证**:curl POST /api/run 成功(automation-1787829463480),WorkBuddy 8 秒内消费(run IN_PROGRESS + 新会话 a16583b8)✅;node:sqlite 写 workbuddy.db 用事务测试无污染
|
||||
- **注意**:CLI 方案(codebuddy -p)也验证可用但需 `--model auto`(默认模型 500),用户最终选用 Automation 方案
|
||||
@@ -11,7 +11,7 @@
|
||||
## 核心技能清单
|
||||
- **短视频脚本创作** (`project/短视频脚本创作/V1.0/` + `Lite1.0/`):11步流程+知识库12分类(66文件);V1.0 完整版含 MCP/Dify 接口,Lite1.0 去全部接口、搜索用模型自带 WebSearch。扁平化定式=去「技能名」层、留「项目名」层(`project/项目名/{版本}/`);08-26 曾误去项目名层已回改
|
||||
- **同步策略(08-26 17:34 用户定)**:后续所有改动只改 V1.0 源技能 + dsh 副本两处;**Lite1.0 默认不动**(有需要再单独处理,其特化差异=去MCP/拆解贴文案/无工具接口块)
|
||||
- **MCN工作台(08-27 新增,仅 V1.0)**:`project/短视频脚本创作/V1.0/mcn-work-shop/`(server.js+public/,零依赖 Node 服务,端口8899自动避让);触发语「打开工作台」→启动服务+内置浏览器打开 http://localhost:8899;两页签=🧭技能导航(5大功能块+典型问法+创作模式)+📁产出浏览(默认读桌面 MCNSkill项目/ 账号层直挂结构,⚙️设置可加其他目录如 D:\dshworkspace,md/json 在线预览、xlsx 下载打开);路径白名单防穿越;**用户明确不同步 dsh/Lite**(SKILL.md/帮助文档只改 V1.0,dsh 副本保持无此功能,属刻意 divergence)
|
||||
- **MCN工作台(08-27 新增,仅 V1.0)**:`project/短视频脚本创作/V1.0/mcn-work-shop/`(server.js+public/,零依赖 Node 服务,端口8899自动避让);触发语「打开工作台」→启动服务+内置浏览器打开 http://localhost:8899;hash 路由:首页(功能入口卡+AI写剧本快捷卡)+数据功能页(📈周榜/👥热门账号/账号详情/视频详情/AI写脚本/AI写作复盘,读工作台自有 mcn-plugin.db 副本+dshworkspace 抖音榜单 JSON)+📁产出浏览(桌面 MCNSkill项目/ 账号层直挂)+❓帮助页(5功能块问法复制);**AI 任务触发(08-27 Automation 方案定版;19:25 归 mcn-workshop 空间)**:数据页「导入/创作/解析/改写/提炼/复盘」按钮 → 后端 `POST /api/run` → 写 `~/.workbuddy/workbuddy.db` automations 表(once+now,cwds=`D:\AgentSkill\mcn-workshop`)→ WorkBuddy 自动执行创建会话(cwd=mcn-workshop)→ **左侧会话栏 mcn-workshop 空间分组可见**(左侧按 cwd 分组,workspaces 表注册空间);曾错误降级为复制 prompt 已推翻;参考 dsh-plugin-mcn /mcn/api/creative 的 followup 模式;路径白名单防穿越;**用户明确不同步 dsh/Lite**(SKILL.md/帮助文档只改 V1.0,dsh 副本保持无此功能,属刻意 divergence)
|
||||
- **抖音账号分析 mcn-dou-analysis(主版本,08-27 用户宣布)**:源技能=`project/短视频脚本创作/V1.0/subskill/mcn-dou-analysis/`(SKILL.md 19KB);dsh 副本=`C:\Users\maidou\.dsh\skills\mcn-dou-analysis\`;**旧路径 `project/短视频账号分析/case_1/1_账号分析方法/` 已废弃**(08-26 迁移整合,旧三模式/12维度框架已被五大功能体系取代)。五大功能:F1获取账号信息/F2获取视频列表(13列Excel)/F3提炼账号设定(人设卡统一12段)/F4分析视频数据(逐条拆解→汇总两段式)/F5解析视频(单视频MCP);红线要点:达人账号表15列(仅用户要求才增改)、TOP6筛选(点赞+分享降序,唯一权威参数在SKILL.md)、≥60条停止滚动、29赛道枚举、源技能只读单向同步、技能边界(脚本必须切换脚本创作技能S1-S11)、浏览器操作规范(9223调试实例+标签页复用)。后续所有改动以本主版本为准
|
||||
- **短视频分镜脚本** (`project/短视频提示词生成/V1.0/`,08-20 由"短视频分镜创作"改名,08-26 路径精简为现结构) — 提示词工程
|
||||
- 4功能:F1反推图片/F2反推视频/F3生成图片/F4生成分镜;参考 skills:seedance2.0/ShotDesign + seedance25 单文件
|
||||
|
||||
Reference in new issue
Block a user