- 根因: 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 样式
25 KiB
25 KiB
2026-08-27 工作日志
mcn-dou-analysis 定为主版本 + 源/dsh 差异判断(09:40-09:59)
- 用户宣布
project/短视频脚本创作/V1.0/subskill/mcn-dou-analysis/为抖音账号分析技能主版本(源技能),已写入 MEMORY.md - 差异判断结论:dsh 副本(
C:\Users\maidou\.dsh\skills\mcn-dou-analysis\)无独有新方法论内容需回流,全部差异四类:①环境路径特化(账号表→D:\dshworkspace\达人账号表.xlsx、路径配置/铁律避坑从 references-add 并入 references/、README 标注 dsh 状态)②位置互换内容一致(路径配置.md/铁律避坑 2 文件完全一致)③纯换行符差异(mcp-config.json、账号数据分析执行避坑.md)④注释补充 - 源
references-add/创作流程/、知识库/01_账号设定、知识库/12_拆解评估为空目录(无文件)
脚本注释回流(以 dsh 为准,09:55)
- 背景:TOP6 定义分散是之前特意要治的问题,dsh 版脚本补充了「执行镜像」注释强化,用户指示以 dsh 为准回流
- 修改(源技能 2 文件 6 处,代码逻辑零改动):
scripts/excel_tool.py4 处:docstring 模式说明、用法示例注释、select_top6 函数 docstring、argparse help —— 均补「默认数量为 SKILL.md『视频筛选标准』的执行镜像,调整时须同步本处」scripts/select_top6.py2 处:顶部 docstring、# 解析 --count注释
- 验证:
tr -d '\r'后 diff 与 dsh 完全一致 ✅
待办/未决
- references-add/README.md 两边差异已展示(dsh 版含「当前状态:②dsh环境」blockquote + ③用户环境启用流程;源版含「①开发机/②dsh环境」合并行)——用户要求"两边应该相同",统一方案待确认(建议通用中性版)
README 统一版(10:06 完成)
- 用户指示:环境判断参考 SKILL.md 两步判定模型,两边应一致
- 重写
references-add/README.md为通用中性版,源 + dsh 同步(diff 验证 ✅ 完全一致):- 顶部「当前状态」blockquote → 三环境两步判定(与 SKILL.md 第 51 行完全一致:无 D:\AgentSkill=③用户环境;在 D:\AgentSkill\ 下=①开发机;含 .dsh=②dsh)+ references-add 机制只服务③的说明
- 修改规则表格恢复三行齐全(①开发机/②dsh环境/③用户环境),①行补「开发机直接改标准库,不使用增量库机制」
- 保留 dsh 版机制增强:②dsh「增量并入标准库」、③用户环境启用流程、标题「机制说明」
- 措辞取 dsh 版:「获取视频列表」「(机制文档)」「③ 用户环境中」
- 新发现(未处理):SKILL.md 第 75 行「当前机器源技能路径
D:/AgentSkill/mcn-video-script/project/V1.0」为过时路径——实际脚本创作技能在project/短视频脚本创作/V1.0/(08-26 重构后),project/V1.0是重构前旧结构;dsh 副本同样存在,需两边一起改,待用户确认
SKILL.md 源技能路径修正(10:08 完成,用户确认)
- 修正 SKILL.md 第 75 行「脚本创作技能(权威源)」路径:
D:/AgentSkill/mcn-video-script/project/V1.0→D:/AgentSkill/mcn-video-script/project/短视频脚本创作/V1.0 - 源 + dsh 两边同步修改;验证:新路径两边各 1 处 ✅、全技能范围旧路径
mcn-video-script/project/V1.0零残留 ✅ - 剩余 17 行 SKILL.md 差异均为原有 dsh 环境特化(账号表位置/路径配置位置/增量库状态说明),非本次引入,符合 .dsh 单向只读保留
「源精简=dsh」方案执行完成(10:10-10:30)
- 用户选定:source references-add 只留 README.md(对齐 dsh 现状)
- 移动结果:
references/路径配置.md+references/铁律避坑规则/(账号设定执行避坑.md + 账号数据分析执行避坑.md)已从 references-add 并入源 references/ 标准库(时间戳 15:20/16:07 与 dsh 一致=真实 mv 保留时间戳;期间 mv/rmdir 报 "No such file" 为沙箱视图误报,真实磁盘已到位) - 引用更新(8 处,全部按 dsh 版对齐):SKILL.md ×3(行 40 引用+加粗、行 52 三环境括号说明、2.2 表补「产出路径配置」行 + 更新「增量库」行含「当前①开发机/②dsh环境状态」)+ feature ×5(01/02/05 路径配置、03/04 铁律避坑)+ 行 51 微小表述「③用户环境独立使用」
- 验证:
- references-add 两侧均只剩 README.md 且 diff 完全一致 ✅
- references/ 全目录归一化 diff:仅剩 3 文件 4 处环境特化(feature/01、02 账号表路径
D:\dshworkspace\×3、feature/03 12段基准说明 ×1),按单向只读保留 ✅ - SKILL.md 归一化 diff:17 处 → 5 处(账号表位置 ×2 处、账号类型判定行序互换 ×1、增量库状态视角 ×1——源=①开发机/dsh=②dsh),全部合理 ✅
- references-add 残留引用:源仅剩
本地接口调用规范.md:4历史来源说明(与 dsh 一致)✅
- 铁律避坑规则 diff 经验:
diff -r直接对比中文 md 会因 CRLF/LF 误报整文件差异,必须tr -d '\r'归一化后对比;文件名含空格需用find -print0+while read -d '',for 循环按空格切分会把文件名拆断
账号信息数据源红线(10:16-10:25,用户环境反馈)
- 反馈:昨天用户环境「分析账号/获取数据」时 AI 优先查 MCP 达人信息(
list_hot_accounts/hot_account_detail),而非浏览器访问账号页面 - 根因:文档默认流程虽是浏览器优先,但无显式红线;MCP 服务暴露带 account 工具且未标边界,AI 按工具名误用
- 固化(源 + dsh 双副本同步 6 处编辑):SKILL.md 规则表「账号信息数据源(红线)」行(浏览器优先、如无必要不用 MCP、hot_account 非功能一数据源、浏览器访问不了才兜底+注明来源)、feature/01「数据源优先级(红线)」块、MCP_工具调用规范.md 工具清单「工具边界(数据源红线)」备注
- 名称纠正(10:19 用户反馈):
list_hot_accounts/hot_account_detail不是热门账号/榜单,是 MCN 内部账号库(内部维护的达人账号,含人设/赛道/标签/代表作,非抖音页面实时数据;工具命名 hot_accounts 有误导性)——6 处文案已改「内部账号库查询」,验证「热门账号榜单/列表/详情」零残留 ✅、源/dsh 一致 ✅ - 验证:三处新增源/dsh diff 一致 ✅(MCP 规范两侧完全一致)
- 三层化沉淀:失误与规避记录 #013(已含内部账号库纠正)+ 本日志
10:25 同步到远程仓库
- 提交 f025ad3(13M/3R/1A):mcn-dou-analysis 内嵌副本结构整合——references-add/ 的路径配置.md+铁律避坑规则2文件迁入 references/(git 识别为 rename),五功能文件/SKILL.md/MCP规范/excel_tool.py/select_top6.py 同步更新,记忆+失误记录
- push 成功,browser-harness 未再误入(.gitignore 条目生效);origin/main = 本地 HEAD = f025ad3,工作区 0 改动;跟踪引用照旧重建
10:30-11:00 MCN工作台开发(V1.0 本地 Web 入口)
- 用户需求:在
project/短视频脚本创作/V1.0/mcn-work-shop/开发工作台,方便使用技能 + 查看生成内容;形态=本地 Web 服务(非静态页);产出默认读桌面 MCNSkill项目 + 支持手动配置;挂成技能(说「打开工作台」自动拉起);不同步 dsh - 实现:server.js 零依赖 Node(http/fs/path 原生,端口8899占用自动+1)+ public/ 三件套(index.html/style.css/app.js 零 CDN)+ start.bat(managed node 优先回退系统 node)
- API:/api/roots(默认+自定义根)/api/tree(递归目录树,深度≤4,跳隐藏/权限/占用)/api/read(md/json/txt/csv 在线预览,>5MB 拒绝)/api/download;路径白名单防穿越(默认根+自定义根,403 拦截)
- 前端:🧭技能导航(5大功能块+典型问法+三种创作模式,数据对齐帮助文档)+📁产出浏览(账号树折叠/搜索过滤/迷你 markdown 渲染器/json 格式化/xlsx 下载提示/设置弹窗 localStorage 记忆根目录)
- 验证全过:静态页 2744B+12983B+8573B、tree 5 账号中文路径正常、read md/json 正常、越权 403、xlsx 415 提示下载、download 正常
- 技能挂载(仅 V1.0):SKILL.md 新增「MCN工作台」章节(触发语+启动步骤+两页签说明+不同步声明),last_change 更新;帮助文档开头补「打开工作台」提示行;dsh/Lite 均未改(用户明确,属刻意 divergence)
- 边界:工作台是入口+查看器,技能执行仍在 WorkBuddy 对话(无网页→agent API);xlsx 暂不支持在线预览(零依赖取舍),后续可加服务端解析
工作台修复:文案更名 + 弹窗关闭失效(10:40)
- 用户反馈 2 条:①「产出目录设置」改为「项目地址设置」②点击关闭按钮无法关闭弹窗
- 修复:
- 文案统一「产出目录」→「项目地址」(index.html 5 处:设置按钮 title/下拉 title/弹窗标题/说明/placeholder;app.js 错误提示;server.js 启动日志;SKILL.md 工作台章节),仅 V1.0,dsh/Lite 不动
- 弹窗关闭失效根因:
.modal-mask{display:flex}作者样式优先级覆盖hidden属性 UA 默认display:none,hidden=true不生效 → style.css 补.modal-mask[hidden]{display:none}(同优先级后声明胜出) - server.js 静态响应补
Cache-Control: no-store(否则浏览器缓存旧 css/js);之前一次 Edit 因缩进不匹配静默未生效,复查 grep 发现后重改
- 验证:重启服务(8899,注意小米 MiPCAudio 也占 0.0.0.0:8899 但工作台用 127.0.0.1 互不冲突);curl 核验 api/静态 200、修复规则与文案已上线、响应头 no-store ✅;SKILL.md last_change 更新
- 遗留:browser-harness 技能环境未安装(仅 SKILL.md),无法浏览器实测,用户刷新页面确认
工作台问法复制功能(10:44)
- 用户问:能否点工作台功能按钮后 AI 会话自动处理?查证结论:不能——工作台功能卡是静态说明,WorkBuddy 无「网页/本地 HTTP → 触发会话」官方接口;触发入口仅对话框人工发话 + 官方「远程遥控」IM 机器人(企微/QQ/飞书/钉钉,Claw 设置);第三方博客的 URL scheme/本地 HTTP 方案无官方确认不可靠
- 用户选定:功能卡改「点一下复制问法 → 粘贴对话执行」(AskUserQuestion 3 选 1)
- 实现:qa-row 加 copyable + data-q + title;事件委托点击复制(去外层引号);navigator.clipboard.writeText + execCommand 兜底;toast 提示「已复制」1.8s;intro 提示行「点击任意问法即可复制」;CSS hover 高亮 + 📋 图标
- 验证:curl 核验 app.js 8 处 / index.html 1 处 / style.css 5 处改动已上线 ✅;SKILL.md 工作台章节+last_change 更新;仅 V1.0 不同步 dsh/Lite
dsh 插件页面盘点(10:50,调研分析,未开发)
- 对象:
D:\dshworkspace\plugin_package(5 插件 3556 行 client.js 全读):dsh-plugin-mcn(主插件:首页+AI写脚本+AI写作复盘+AI会话)、douyin-accounts(热门账号)、douyin-account-detail(账号详情)、douyin-video-detail(视频详情)、mcn-schedule(计划任务) - 核心结论:dsh 插件页面 =「数据管理 + 任务触发」界面,全部依赖 dsh 宿主
/mcn/api/*+ SQLite(db.js 存 account/video/rewrite/review/persona)+ MCP 解析 + AI 会话桥接(creative/rewrite/analyze/extract 触发 AI);我们的工作台 = 零依赖 Node 读产出文件,无 DB 无 AI 桥接 → 分层迁移:✅读文件可落地(视频详情3tab、账号设定、脚本/分镜查看,产出浏览已部分覆盖);⚠️需 DB 重建(账号/视频列表、周榜、复盘、计划任务);❌按钮触发AI在 WorkBuddy 无桥接做不了(上轮已确认) - 页面清单(8 视图):工作台首页(统计条+入口网格+抖音周榜)/热门账号/账号详情(信息卡+3tab+视频列表)/视频详情(信息卡+3tab)/AI写脚本(列表+源vsAI对比+分镜)/AI写作复盘(评分+报告)/AI会话(任务会话)/计划任务(定时CRUD)
- 待用户决策落地范围
MCN工作台数据功能页开发完成(11:00-11:20)
- 用户选定:全做 + 抖音周榜(数据在
D:\dshworkspace\抖音榜单),4 项:精致展示页/账号视频管理库/prompt 快捷触发/周榜 - 数据源探查结论:dsh 库
~/.dsh/mcn-plugin.db有现成数据(hot_accounts 7 / account_videos 597 / account_video_source 39 / account_video_analysis 12 / account_persona 5 / rewrite_log 17 / storyboard_log 3 / script_review 2);周榜 JSON抖音周榜_{赛道}_{日期}.json(9 赛道×2 日期,字段 rank/accountName/comprehensiveScore/followers/newFans/newLikes/newComments/newShares/newInteraction/profileUrl);达人账号表 D:\dshworkspace\达人账号表.xlsx - 技术路线:Node 22.22.2
node:sqlite直接只读 dsh 库(实验性但可用);新增dsh-data.js(数据访问层:listAccounts/listAccountVideos/getPersona/getVideoDetail/getVideoScript/listRewrites/listStoryboards/getReviewDetail/getReviewFull/getStats/rankingMeta/getRanking);server.js 注册 13 个/api/dsh/*路由 - 前端重构:index.html 改为 hash 路由(首页/产出浏览/ranking/accounts/account/:id/video/:id/rewrites/reviews);app.js 拆为路由核心(工具/markdown/复制/首页/产出浏览/设置),新增 data-pages.js(6 个数据页:周榜/热门账号/账号详情/视频详情/AI写脚本/复盘)
- 关键降级:所有「触发AI」按钮(导入/解析/改写/提炼/复盘/创作)→ 点一下复制 prompt 到剪贴板(WorkBuddy 无 AI 会话桥接);只读展示不写库
- 修复:getRanking 参数 date 与局部变量重名(SyntaxError);视频详情标题被 esc 转义(infoGrid 加 raw 参数);账号详情视频 ID 加详情链接
- 验证:13 个 API curl 全过(meta/stats/accounts/ranking/video-detail/rewrites 数据正确);前端 3 JS 语法检查过;静态资源 200
- 遗留:browser-harness 环境未装,无法浏览器实测,页面运行时效果待用户点验;xlsx 在线预览未做(零依赖取舍)
工作台数据库隔离:复制 dsh 库到工作台(11:44)
- 用户需求:数据库复制一份到工作台文件夹,两边数据各访问各的(工作台读自有副本,不再读 dsh 原库)
- 执行:
cp ~/.dsh/mcn-plugin.db → mcn-work-shop/mcn-plugin.db(4.2MB);dsh-data.jsDSH_DB从homedir()/.dsh/mcn-plugin.db改为__dirname/mcn-plugin.db(移除 homedir import);server.js dshGuard 文案改「工作台数据库」 - gitignore:根 .gitignore 加
mcn-work-shop/mcn-plugin.db(数据文件不提交 git) - 验证:重启服务,
/api/dsh/meta返回 dbPath=D:\AgentSkill\...\mcn-work-shop\mcn-plugin.db,accounts total 7 正常 ✅;SKILL.md 工作台章节数据边界同步更新 - 隔离语义:工作台副本为静态快照,dsh 原库后续更新不会自动同步到工作台(需再手动复制);工作台只读副本不写回
- 外链新标签打开(11:40 前置):视频/账号外链由
<a target=_blank>改为data-ext+ 全局委托window.open(url,'_blank'),被拦截时兜底复制链接
工作台图标全面扁平化(12:14)
- 需求:美化所有页面,图标换成扁平化向量图标、不要底色(原 emoji 有彩色/底色感)
- 实现:app.js 加
ICON_PATHS(Lucide 风格线性:24 viewBox / stroke currentColor / fill none)+svgIcon(name,size)+initIcons()(把[data-icon]占位替换成 SVG);EXT_ICON 改图标名(md=file-text/json=file-code/xlsx/csv=table/bak=file);替换范围=header 按钮(home/help/settings)、logo(film)、首页 data-card(trending-up/users/pen/flask)、帮助页 5 功能块(lightbulb/pen/refresh/chart/wrench)、三模式(zap/users/wrench)、文件树目录/文件图标(folder/folder-open/file-*)、弹窗关闭 ✕→x、页面标题 - CSS:
.ic(inline-block/vertical-align/flex-shrink)+ .logo/.data-card-icon/.page-title/.mode-name/.recent-card-title/.modal h3/.ghost 加 flex 对齐 + 图标用主题色 currentColor 无底色 - 保留的语义符号(非图标):✅❌⚠️ 状态、☆ 收藏、▾▸ 展开箭头、👈 提示
- 验证:双文件语法过、跨文件无 svgIcon 冲突、静态资源 200 ✅
- 微调(12:26):①功能图标加亮色区分(ICON_COLORS:trending-up橙红/users蓝/pen紫/flask绿/lightbulb金黄/refresh青/chart红/wrench深灰,svgIcon 按 name 注入 style color)②「AI写剧本」这类文字标题前去掉图标(recent-scripts 标题/recent-card 标题/data-pages 页面标题/三种创作模式标题),保留功能卡片图标(data-card/func-card)作视觉标识
首页新增 AI写剧本快捷卡片(11:48)
- 需求:主页功能入口下方加「AI写剧本」卡片列表,点击快速查看剧本内容,最多 4 行
- 后端:dsh-data.js 加
listRecentScripts(limit)(rewrite_log 联 hot_accounts/account_videos,status=done 有内容按 id 倒序取前 N);server.js 加/api/dsh/recent-scripts?limit=4 - 前端:renderHome 在 data-cards 后加 recent-scripts 区块(标题 + 「查看全部→」链到 #/rewrites);router 首页分支调 loadRecentScripts() 异步填充;openRecentScript 弹窗用 renderMarkdown 渲染 script_text 全文;app.js 加 fmtTime;style.css 加 recent-card 网格卡片样式
- 验证:recent-scripts 返回 4 条(旧梦留声机账号,脚本长度 2614-4015),静态资源 200 ✅
帮助页拆分 + AI写剧本卡片迭代(11:52-11:57)
- 功能帮助快速提问区(5大功能块+问法+三模式)独立成 #/help 页,header 加「❓帮助」按钮(设置左边),首页只留功能入口卡+AI写剧本卡
- AI写剧本卡片迭代:2 列布局(minmax 380px)、最多 8 个(limit=8)、卡片 min-height 172px、预览 5 行(line-clamp 5)
修复:数据功能页全部无法点击(11:58,P0)
- 症状:首页 4 个数据功能卡点击后跳回首页,看似"点不动"
- 根因:app.js 加的
function fmtTime(函数声明,挂 window)与 data-pages.js 的const fmtTime(全局词法绑定)跨 script 同名冲突 →SyntaxError: Identifier 'fmtTime' has already been declared→ data-pages.js 整个加载失败 → window.DataPages 未定义 → router 走「未知路由→首页」兜底 - 修复:app.js 的
fmtTime重命名fmtDate(3 处:定义 + 2 处使用),消除冲突 - 验证: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 方案