Skip to content

one#1

Open
jjhesk wants to merge 538 commits into
ONode:masterfrom
TeamWiseFlow:master
Open

one#1
jjhesk wants to merge 538 commits into
ONode:masterfrom
TeamWiseFlow:master

Conversation

@jjhesk

@jjhesk jjhesk commented May 18, 2026

Copy link
Copy Markdown

upadate

bigbrother666sh and others added 30 commits April 11, 2026 07:08
…ow customerdb config key

emptyPluginConfigSchema() generates additionalProperties:false with empty properties,
rejecting any config value. Replace with awadaConfigSchema that explicitly allows
the customerdb field, fixing startup error:
  plugins.entries.awada.config: invalid config: must NOT have additional properties
agent-skills.sh 基线调整(11→9个):
- 移除:1password / healthcheck / model-usage / xurl / video-frames
- 新增:summarize / gifgrep / self-improving
- 补充注释说明各技能的归属策略

config-templates/openclaw.json:
- skills.entries 新增全局禁用:xurl / camsnap / clawhub / discord / alipay-mcp-config / canvas / taskflow-inbox-triage
- 三个内置 agent 的 skills 列表对齐新基线

per-crew 专属配置:
- it-engineer/BUILTIN_SKILLS:追加 healthcheck / node-connect(仅 IT 专用)
- hrbp/BUILTIN_SKILLS:新建,写入 model-usage(仅 HRBP 专用)

crews/it-engineer/HEARTBEAT.md:
- 重写定期巡检任务,整合 healthcheck 技能调用步骤和 SEO 巡检项

addons/officials/crew/sales-cs/DECLARED_SKILLS:
- 移除已全局禁用的 xurl
- 新增 session-logs / summarize / gifgrep / weather

addons/officials/crew/business-developer/openclaw_setting_sample.json:
- 移除已全局禁用的 xurl

taskflow 保留全局可用(runtime 基础设施),taskflow-inbox-triage 禁用(仅示例)
complex-task 与 taskflow 不重复:前者是流程指导,后者是持久化状态基础设施
…stream)

- 升级 openclaw 锁定版本:v2026.4.8 → v2026.4.11 (769908ec3f)
- 移除 004-web-fetch-allow-rfc2544.patch:该功能已在 v2026.4.10 被上游原生集成
  为 tools.web.fetch.ssrfPolicy.allowRfc2544BenchmarkRange 配置项
- config-templates/openclaw.json 新增 tools.web.fetch.ssrfPolicy.allowRfc2544BenchmarkRange: true
  保持中国 fake-IP DNS (Clash等) 环境下 web_fetch 的可用性
- patch 002/003 已验证可干净应用于 v2026.4.11
删除 18 个对中国用户毫无意义的 skills.entries 条目:
- macOS 专属应用(apple-notes/reminders、bear-notes、things-mac、imsg)
- 欧美专属硬件(blucli/BluOS、eightctl/EightSleep、sonoscli/Sonos、openhue/Hue)
- 需要 brew 安装的小众 CLI(ordercli/Foodora、sag/TTS、oracle、camsnap)
- 在中国被封锁的 Google 服务(goplaces、gog)
- 其他(himalaya 邮件CLI、blogwatcher、songsee)

特别:ordercli 之前错误标记为 enabled:true(Foodora 欧美外卖 APP),一并修正

保留 21 个有实际控制意义的条目(用户可能安装/配置的 slack/gemini/wacli 等)
skills.entries 同步策略改为差异化处理:
- enabled: true  → 强制覆写(wiseflow 功能依赖,确保始终开启)
- enabled: false → 仅在 running config 中尚无该条目时写入(首次初始化语义)

修复前:每次 upgrade 都会把用户手动开启的 skill(如 gemini、notion)
强制打回 enabled: false,丢失用户配置
修复后:用户开启的 skill 在升级后保持不变
- 删除废弃的 RULES.md / TEMPLATES.md / TASKS.md(QAPS 机制已弃用,共 12 个文件)
- 修复 selfmedia-operator SOUL.md crew-type 错误(external → internal)
- 移除 video-producer 在开源版中的所有引用(AGENTS.md / SKILL.md / openclaw_setting_sample.json)
- selfmedia-operator: 重写 TOOLS.md(去除已删技能和重复工作流),精简 IDENTITY.md / MEMORY.md
- business-developer: 移除 AGENTS.md 头部重复"身份定位",简化 IDENTITY.md,删除依赖 video-producer 的模式三
- designer: 清理 TOOLS.md 中重复 AGENTS.md 的工作流规范(网页设计、搜索规范)
- hrbp/it-engineer SOUL.md: 移除与 TOOLS.md 重复的诊断路径表
- main SOUL.md: 精简 Internal Crew Lifecycle 操作细节(详情保留在 AGENTS.md)
- hrbp/SOUL.md: Workspace Structure 更新(移除 TASKS.md 条目)
- hrbp-recruit SKILL.md: 修正 BUILTIN_SKILLS → DECLARED_SKILLS(外部 crew 流程)
- config-templates/openclaw.json: 移除 xurl/discord 全局禁用,全局启用由 crew 声明控制
- scripts/setup-crew.sh: 更新 shared 协议复制消息(仅保留 CREW_TYPES.md)
- addons/officials/README.md: 更新 selfmedia-operator 平台列表(移除已下线的微信公众号/小红书)
- README.md: 顶部公告更新为 official addons 发布,友情链接增加天气宝和 AiHubMix
- CLAUDE.md: 新增 Crew Template 开发规范(8 个文件职责边界)
- docs/workspace-bootstrap-files.md: 新增 openclaw workspace 文件机制完整说明文档
- Trim TOOLS.md noise across officials crew templates (business-developer, designer, sales-cs, selfmedia-operator)
- Update sales-cs IDENTITY.md and SOUL.md
- Clean up crews/_template, hrbp, it-engineer, main SOUL/TOOLS
- Add hrbp DENIED_SKILLS entry
- Tweak config-templates/openclaw.json
- Remove scripts/update-upstream.sh, add scripts/upgrade_without_git.sh
- Track awada/awada-extension pnpm-lock.yaml
- addon.json:补全 internal_crews / external_crews 声明,修复
  business-developer、designer、selfmedia-operator 被误判为对外
  crew 的问题
- agent-skills.sh / add-agent.sh:从默认基线移除 ordercli(仅
  sales-cs 对外 Crew 通过 DECLARED_SKILLS 使用,不应进内置基线)
- config-templates:skills.entries 新增 ordercli: enabled false
- apply-addons.sh:修复 cp -r 目标已存在时嵌套覆盖 bug(改为
  rm -rf 后再 cp),确保全局 skills 每次都以最新版本写入
- apply-addons.sh:对外 Crew workspace 已存在时幂等同步
  DECLARED_SKILLS(仅追加模板新增条目,保留用户自定义)
- upgrade.sh / upgrade_without_git.sh:pnpm build 之后追加
  pnpm ui:build,修复 tsdown clean 清空 dist/control-ui/ 后
  重启报 Control UI assets missing 的问题
- setup-crew.sh:非内置对内 Crew 的 thinkingDefault 默认值从
  medium 改为 high,与三个内置 crew(main/hrbp/it-engineer)保持一致
- business-developer DENIED_SKILLS:追加 login-manager、wxwork-drive、
  twitter-post、instagram-post(内容运营专属技能,不应对业务拓展开放)
- designer / video-producer DENIED_SKILLS:已含全部 business-developer
  专属技能,无需改动
… upgrade

之前逻辑:crews/<id>/ 目录已存在则跳过,导致 addon 模板更新后
crew_templates/ / hrbp_templates/ 仍停留在旧版本。

改为每次 rm -rf + cp,与 skills 安装逻辑保持一致,确保升级后
setup-crew.sh 从 crews/ 重复制时拿到的是最新版本。
GNU sed 接受 'sed -i "expr" file';BSD sed 把 "expr" 当备份后缀,
找不到 expression 就去读 stdin,报 'may not be used with stdin'。
改用 'sed -i ''' 空后缀写法,GNU 与 BSD sed 均支持。
sed -i '' 在 GNU sed 上会把空串当文件名参数,导致把 expression
当路径读取而报错;sed -i "expr" 在 BSD sed (macOS) 上会把 expression
当备份后缀,找不到脚本就去读 stdin 而报错。
改用 sed -i.bak + rm -f 临时备份文件,GNU 与 BSD sed 均兼容。
…r crews

- crews/main: add +test and +find for crew management tasks (template existence check, crew_templates exploration)
- addons/officials/README.md: consolidate npm install prerequisites into a dedicated "软件依赖安装" section so IT Engineer runs it once at deploy time
- wenyan-publisher/SKILL.md: remove Prerequisites block from skill (moved to README.md); add warning against cd && node pattern, use absolute path instead
…WED_COMMANDS automatically

- add inject_agents_md_sections() to agent-skills.sh: idempotently appends
  Technical Issue Dispatch Protocol and sessions_spawn spec to AGENTS.md
- add collect_skill_script_commands() to agent-skills.sh: collects skill
  script paths for auto-injection into ALLOWED_COMMANDS
- setup-crew.sh: call inject_agents_md_sections for builtin and external crews
- setup-crew.sh: auto-inject skill script paths into ALLOWED_COMMANDS (4b.5)
- setup-crew.sh: inject standard sections into all deployed workspaces (4e)
- selfmedia-operator/AGENTS.md: remove hardcoded Technical Issue Protocol
  (now injected dynamically by setup-crew.sh)
- add patch 004-no-fallback-sticky.patch
…ates

- video-producer: new internal crew with 8 skills (viral-chaser, wenyan-publisher,
  manim-explainer, pexels-footage, pixabay-footage, remotion-video-creation,
  shorts-compose, t2video, ui-demo)
- business-developer, designer, selfmedia-operator, pro-selfmedia-operator,
  sales-cs: external crew templates (mirrored from addons/officials/crew/)
…COMMANDS injection

- collect_skill_script_commands: remove -maxdepth 1 to scan platforms/、vendor/ subdirs
- use relative path from scripts/ dir instead of basename (preserves subdir structure)
- add .mjs, .ts, .js to allowed extensions (previously only .sh or executable bit)
- hrbp/DENIED_SKILLS: add rss-reader (not needed for HRBP role)
Signed-off-by: bigbrother666 <96130569+bigbrother666sh@users.noreply.github.com>
… to apply-addons

Three-script architecture:
- install.sh: one-shot install & upgrade (fetch + checkout + apply-addons
  + pnpm build + daemon install + restart). Replaces upgrade.sh +
  reinstall-daemon.sh.
- apply-addons.sh: local testing (apply patches + build + restart by
  default). New flags: --no-build, --no-restart for callers that handle
  build/restart themselves.
- dev.sh: calls apply-addons.sh --no-build --no-restart, user builds
  manually, then runs gateway foreground.

setup-crew.sh remains independent for markdown-only crew updates.
codes-factory-of-bg and others added 30 commits July 12, 2026 01:10
对齐浏览器栈转向后的三件事:

1. 原则 1 — 单一持久化 session `twitter`:
   - 去掉 per-task nonce session(twitter-like-<hex> 等),所有操作共享 --persistent
     session twitter,指纹冻结 + cookie 留 profile。
   - 并发调用由 forked cli fail-first 队列串行拒绝,脚本不自动排队/等待。

2. fail-first 队列检测(spec §1.1):
   - _camoufox_json 解析 --json 信封,success:false + "正忙" → SessionBusyError。
   - twitter_session context manager 捕获 → exit 3 + 透传 busy 文本。
   - 关键:busy 时**不 close**(close 会 tear down 正在跑的另一个操作)。

3. 原则 3 — twitter 有头登录:
   - cmd_run cookie 失效提示从 qr-headless 改成 login-headed(twitter 不无头 QR)。
   - SKILL.md 前置条件同步。

AiToEarn 上游调研:clone 正好在 catchup commit 74e884f0(v2.4.0),无 HEAD 差异。
上游 twitter 互动走 Twitter API v2 + OAuth,按「只吸收知识不搬架构」+ spec 要求
camoufox-cli,吸收操作语义(子命令结构 + 频率纪律),执行仍走 camoufox-cli。
SKILL.md Notes 记录 API 路径作为未来 fallback 可能。

测试:TestSessionNaming 改断言常量 twitter,加 TestFailFirstQueue 验证 busy→exit3+不 close。28/28 通过。
…LOG 更新

§8: 新增 docs/profile-loss-handling.md
- 核心原则:profile 丢失/损坏/指纹错配 → 重建 + 重登录,绝对不允许导入 cookie 造会话(补充 D,强化原则 5)
- 为什么禁止导入:xhs a1/websectiga 设备指纹 cookie 导入不同指纹会错配 → 风控检测;2026-06-29 CDP 注入 22 cookie 触发风控教训
- camoufox-cli cookies import 合法用途仅限同指纹 profile 备份/恢复 + 跨设备迁移同一指纹
- 白天恢复流程 4 步(确认状态 → 删旧 profile → 重建+重登录按原则 3 选模式 → 验证)
- 临时性 session 不受影响(补充 A)
- HEARTBEAT.md 约束 4 已覆盖凌晨心跳跳过策略,本文档补白天恢复流程
- 未触碰 login-manager/browser-guide SKILL.md(§3/§4 另一 agent 领地)

§9: README.md + CHANGELOG.md
- README **v5.6.0 更新** 新增「浏览器架构重新设计(双线栈)」段
- README patch 表重写:加 patches/camoufox-cli/ + patches/browser-camoufox-pivot/ + overrides.sh 去 patchright;002/007 留,003/005/006 划掉标删
- README 开源项目表:去掉 Patchright,加 camoufox(🦊 https://github.com/daijro/camoufox)
- CHANGELOG v5.6.0 顶部新增「浏览器栈整体替换(双线栈)」section(§1-§2 + §2.3 + §7 + §8 + §9 + §3-§6 并行中 + 核心原则 8 点)
- spec §8/§9 标落地(2026-07-12)
…in-manager 退役为纯指导文件

§3 全局三 skill(browser-guide/smart-search/web-form-fill)camoufox-cli 化,明确 target=host/node 只按流程走不照搬命令
§4 login-manager 删脚本+tests,重写为纯 SKILL.md 指导文件,平台收敛到 6 个(douyin/bilibili/kuaishou/xhs-publish/xhs-browse/wx-mp),cookie+UA 同时导出(原则 4)
§5 平台 skill 改造:
  xhs-content-ops/xhs-publish 脚本适配新 camoufox-cli 原生 cookie 数组格式 + UA 独立 .ua.json
  xhs-interact 对齐 forked cli 持久化 session + 移除 patchright fallback
  douyin-publish 脚本用 forked cli upload 命令替代 DataTransfer hack + 移除 login-manager.sh 依赖 + 持久化 session douyin
  weibo-publish/zhihu-publish/xianyu-ops 全面重写为 camoufox-cli 持久化 session + upload + 有头登录
  wechat-channels-publish 删 3 个 CDP 脚本,重写为 camoufox-cli session wechat-channel + upload + 无头 QR
  viral-chaser session.ts 适配新 cookie 格式 + SKILL.md 登录流对齐
  published-track fetch-retro-data.ts 适配新 cookie+UA 格式 + fetch-and-update-metrics.sh 移除 login-manager.sh 改用 camoufox-cli 探活 + 平台声明收敛
  twitter-post 移除 patchright locator.drop 残留,对齐 forked cli upload
§6 wx-mp-hunter 收编:登录走 login-manager 统一流程(无头截图 QR),cookie+UA 落 wx_mp.json/wx_mp.ua.json,脚本内置 login-qr/login-confirm 退役
wx-mp-engagement 不再作为单独技能(从 BUILTIN_SKILLS 移除),其脚本由 published-track 内部 exec 调用

Co-Authored-By: AtomCode (GLM-5.2) <noreply@atomgit.com>
合并远端 §2.3(setup-crew sync crew skill)/ §7(twitter-interact 单一持久化 session)/ §8+§9(profile 丢失处理 canonical doc + README/CHANGELOG)。
双方改的文件集不相交,自动 merge 无冲突。

Co-Authored-By: AtomCode (GLM-5.2) <noreply@atomgit.com>
- apply-addons.sh / crew-workspaces.sh: 全局与 crew skill 改拷贝为软链
  (仓里改完即生效,openclaw loader 跟随软链)
- setup-crew.sh §4: 注入 skills.load.allowSymlinkTargets
  (~/wiseflow/crews + ~/wiseflow/skills),放行 crew skill 软链 containment gate
- apply-addons.sh: 删除合并 hoist 到 ~/.openclaw/node_modules 的死方案
  (软链脚本 realpath 在仓内,向上解析命不中 ~/.openclaw/node_modules),
  改为 per-skill npm install --omit=dev,node_modules 落仓内 skill 目录
  (.gitignore 已覆盖),内容哈希守卫保留
- config-templates/openclaw*.json: browser 段精简为 enabled/headless/ssrfPolicy
  (headless=true 显式声明,camoufox 主力无头省资源;drop defaultProfile/extraArgs 死字段)
- config/README.md: Phase 7 browser 行更新为 camoufox 无头主力 + 显式 --headed + patchright 去除
- 删所有 patches/camoufox-cli/ 路径引用、forked/vendored 措辞(部署后 Agent 读不到代码仓,不该给他添困扰)
- fail-first 队列说明从「见 patches/camoufox-cli/README.md」改成内嵌解释
- 删 douyin-publish/SKILL.md 的 Spike 验证 checklist 整段
- 各 skill 散落的 spike 验证 注释统一改成引用 docs/post-deploy-verification.md
- 新建 docs/post-deploy-verification.md:部署后真机验证流程,收纳各平台 selector 验证清单 + �验收标准
- douyin-publish SKILL.md 措辞修订:cookie 导出对自身运行无用,仅为备份 + 与 login-manager 6 平台统一步骤保持一致

Co-Authored-By: AtomCode (GLM-5.2) <noreply@atomgit.com>
Co-Authored-By: AtomCode (GLM-5.2) <noreply@atomgit.com>
…generate-wenyan-theme

- Enhanced README with clearer instructions on key configurations and usage.
- Updated wx-mp-publisher documentation to reflect changes in theme handling, including support for custom themes and their non-persistence.
- Modified generate-wenyan-theme documentation to clarify the registration and usage of custom themes.
- Improved scripts for theme resolution and publishing, ensuring proper handling of local CSS files and registered theme IDs.
- Removed outdated client migration and custom theme specification documents.
- Added package.json for wx-mp-hunter skill to manage dependencies.
daemon 冷启 5s 不够,it-engineer 实测会超时;提到 15s。
canonical 源在 patches/browser-camoufox-pivot/files/camoufox-cli.adapter.ts,
apply-addons cp 进 openclaw/extensions/browser/src/。
_shared 无 SKILL.md,被兄弟 skill 相对导入(../../_shared/...)。
原逻辑只软链含 SKILL.md 的目录,_shared 漏同步→部署实例变陈旧拷贝。
扩展为 _ 前缀目录也软链。软链安全:导入方自身也是软链→仓,Node/Python
follow 到仓 realpath 再算相对路径,解析到仓里 _shared。
- Updated `xhs-content-ops` skill to clarify login and session management processes, ensuring consistent use of `camoufox-cli` for browser interactions.
- Revised `xhs-interact` skill to emphasize the reuse of persistent sessions and streamlined login procedures.
- Removed `council` skill from the general skills list and restructured its documentation for clarity and focus on decision-making processes.
- Enhanced `browser-guide` documentation to specify session management rules and best practices for handling login walls.
- Adjusted `smart-search` and `web-form-fill` skills to clarify session handling, emphasizing the use of persistent sessions where applicable.
- Consolidated and clarified the usage of `login-manager` across various skills to ensure consistent cookie and UA management.
…ath limit

Linux sockaddr_un 路径上限 108 字节,cron 等长 session ID 会超限导致 daemon
socket 绑定失败。新增 shortenSession():短名原样返回,长名替换为 s-<sha256
前 16 位>。CLI 与 daemon 统一走 getSocketPath/getPidPath,保证两端路径一致。
同时将 .claude/ 与 xhs-user-id.cache 加入 .gitignore。
twitter_interact.py:
- article-scoped 探针(按 tweet_id 定位含 /status/<id> 的 article,避免会话页抓到父推)
- testid 确认菜单(retweetConfirm/unretweetConfirm/confirmationSheetConfirm)替代 text match
- Python 侧晚水合轮询(按钮 20×500ms,confirm 菜单 20×250ms)
- 按钮互换模型验证状态(like↔unlike 等),弃用 aria-pressed
- 解耦 login-manager:移除 login-manager_check,camoufox_close 直连 camoufox-cli

SKILL.md (twitter-interact + twitter-post):
- 统一前置段(持久化 session twitter + 探活 + 重登走 browser-guide §1 + fail-first + 不 close)
- 工作流程 / Pitfalls / 错误处理表对齐新脚本行为

测试:28 个单测全绿
xianyu-ops 搜索(借鉴 OpenCLI df8ca8d):
- 新脚本 xianyu_search.py:在持久化 session 页面里调 window.lib.mtop.request
  ('mtop.taobao.idlemtopsearch.pc.search'),价格区间/地区交服务端筛
  (propValueStr.searchFilter / extraFilterValue),替代 DOM 抓取本地过滤
- --min-price/--max-price/--province/--city/--limit,分页,值用 JSON 注入
- 退出码 0/1/2/3(成功/通用错/登录态失效/session 正忙)
- 25 单测全绿,生成 IIFE 经 node new Function 校验 JS 语法合法
- SKILL.md 搜索段改为调脚本

login-manager 登录墙检测(借鉴 OpenCLI 229b3b0):
- _shared/relay-sign.ts xhsFetch 加大小写不敏感 HTML 登录墙检测
  (/^<(?:!doctype|html|head|body|title)(?:[\s>/]|$)/i),覆盖 mixed-case
  如 <!Doctype/<Html/<HEAD,命中抛 LoginWallError(SESSION_EXPIRED)
  而非让 resp.json() 抛乱码错
- xhs-content-ops fetch_note_content.ts 顶层 catch 识别 LoginWallError
  → emit SESSION_EXPIRED + exit 2,交 login-manager 重登
- login-manager SKILL.md 补 HTML 登录墙检测段,记录方法 + 正则
…teract 重写

opencli-v1.8.6 §6:本轮 83 commits 全扫,只吸收 df8ca8d (xianyu mtop) +
229b3b0 (大小写不敏感登录墙),6 条评估排除;重申 OpenCLI 只借鉴平台风控
思路不搬代码、AiToEarn 只看接口新增/变更的定调。

twitter-and-search §5:twitter-interact 模型重写(article-scoped 探针 /
testid 确认菜单 / 按钮互换 / 晚水合轮询),28 单测绿。
…互能力移植

远端 21d7ac6 'twitter platform persite session' 是调了很多轮的持久化浏览器方案,作为 session 层基线
保留:camoufox_open(headed) / _check_session_alive 脚本内探活 / twitter_session 不 close / 去掉
cleanup 子命令 / cmd_run 内嵌探活。

本地 e85f608 的 OpenCLI 衍生交互能力移植到远端基线之上:article-scoped 探针(按 tweet_id 定位
article)、testid 确认菜单(retweetConfirm/confirmationSheetConfirm)、Python 侧晚水合轮询
(20×500ms / 20×250ms)、按钮互换模型验证状态(弃 aria-pressed)。helper + cmd_* 取本地,
session 层取远端。

SKILL.md:前置段(探活+重登+不 close+无 cleanup)取远端,工作流程/Pitfalls(OpenCLI 能力)取本地,
修远端笔误('twitter-interact 共用' → twitter-post)。twitter-post/SKILL.md 取远端(无独有能力改动)。

测试:29 单测全绿(更新 TestCmdRun mock _check_session_alive + close 断言翻转为 not_called)。
schema (03 patch): 加 session 字段(平台 session 名,决定 --session <name> + --persistent
profile dir 命名空间,同一平台名 = 同一登录态/指纹,仅 target=camoufox 生效)。

browser-tool (05 patch): resolveCamoufoxSessionConfig session 命名优先级——action 显式
平台名 > agentSessionKey > 'openclaw';persistentDir 默认 ~/.camoufox-cli/profiles/<session>,
与 cli.ts --persistent 无参默认一致,adapter 路与直接 CLI 路共享同一 profile/登录态。

adapter + adapter.test: 配套 platformSession 透传 + 测试。
Dockerfile: 声明 VOLUME /root/.camoufox-cli(配置 + 默认 profile + geoip/db 缓存),
与既有 VOLUME /root/.openclaw 配合;注释说明运行时 profile dir 推荐指到
/root/.openclaw/logins/<session>/profile/(挂卷子路径,单卷管登录+指纹)。

docker-compose.yml: 两个 named volume(wiseflow-logins / wiseflow-camoufox)跨
down/up 保留登录态/指纹/缓存,附备份示例。
重写 published-track Step 2:能用脚本的先用脚本(fetch-and-update-metrics.sh),
不能用脚本的用对应技能,再不就指导 Agent 自己上。精简旧的平台方案表。
transcriber.ts 从 SiliconFlow SenseVoiceSmall(无时间戳、靠字数比例估算)
改为火山引擎录音文件极速版 volc.bigasr.auc_turbo:

- 本地 audio.wav base64 直传(audio.data),免 TOS 对象存储托管
- 一次请求即返回,解析 result.utterances 的 start_time/end_time(ms→s)
  填入 segments,estimated=false,替代原先的估算兜底
- 鉴权兼容新旧控制台:VOLC_ASR_ACCESS_KEY 设置走旧双头,否则新单头
- 保留 synthesizeSegments 作为接口异常未返回 utterances 时的兜底
- 100MB 硬限前置校验;TranscriptResult 接口不变,viral_chaser.ts 无需改

SKILL.md:
- requires.env 由 SILICONFLOW_API_KEY 改为 VOLC_ASR_APP_KEY
- 新增「前置:开通火山语音模型」章节(开通管理→语音模型→试用→开通→
  复制 Access token Secret Key),含环境变量表与 IT engineer 写入流程
- 更新 transcript.estimated 与 Notes 段说明现在原生返回真实时间戳
当前 camoufox-cli headless 是默认行为,--headless flag 已移除(要有头
用 --headed)。传 --headless 会 'Unknown command: --headless' 直接崩。

代码(6 处实际调用):
- wx-mp-hunter/scripts/wx_mp_hunter.ts 封装数组
- douyin-publish/scripts/publish_douyin.py
- published-track/scripts/fetch-and-update-metrics.sh
- published-track/scripts/fetch-xhs-with-xsec.ts(两处)
- Dockerfile 模板 bake
- wx-mp-engagement 测试断言 assertIn→assertNotIn

文档(14 处 SKILL.md / MEMORY / spec):命令示例去掉 --headless,
必要处补「默认 headless」;wechat-channels-publish「显式无头」措辞
改为「默认即 headless,无需额外 flag」。
camoufox-cli --json eval 信封形如 {id, success, data: {result: <值>}},
真实返回值在 data.result,不是顶层 result。

wx-mp-hunter login-confirm:
- camoufoxCurrentUrl 原读 r.result(不存在)→ 永远返回空串 →
  '无法从 redirect URL 提取 token: '(冒号后空),cookie/UA/token 跟着
  没导出落盘。改读 r.data.result。登录态本身是就位的,纯解析 bug。

fetch-xhs-with-xsec:
- 同样信封解包 bug。FLATTEN_JS 返 JSON.stringify(map),原代码
  JSON.parse(raw) 解的是整个信封再 spread 进 mapping,拿到 {id,success,data}
  垃圾键;真实 map 在 data.result。try/catch 不抛错(信封是合法 JSON),
  静默产出空映射,下游才报 xsec_token not found。改先解包 data.result 再 parse。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants