25 Commits
Author SHA1 Message Date
Myfro9andClaude Opus 5.5 e85690adbc tools-sync: MCP 审计自动排除 Codex 插件 MCP(按 cwd 识别),并修 -ExcludeName 逗号传参
HJ_PC 上 code-review / codex_app 以 cmd.exe 启动、cwd 在 plugins\cache\openai-bundled,
旧逻辑只看 command 识别不出,-Apply 把它们复制进了 Claude;
powershell -File 传 -ExcludeName a,b 时绑定成单个字符串 a,b,排除也失效。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 23:15:06 +08:00
bowei cc0faed5cc sync: SHANGHAI-U9 2026-10-20 2026-10-20 17:48:25 +08:00
bowei 4566f1a694 sync: SHANGHAI-U9 2026-10-20 2026-10-20 17:40:04 +08:00
bowei b07cc7b22e sync: SHANGHAI-U9 2026-10-12 tools-sync 增 OpenCode skills 注册(阶段 2.5 + sync_opencode_skills.ps1 + env 模板) 2026-10-12 20:14:27 +08:00
Myfro9andClaude Opus 5.5 181cb5af6a tools-sync: triage 按形状找落地文件(名字每轮都换,2026-10-01 .pwn/.k*/RootHawk 全部漏报)
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01M6dZ7Qcr3bdy7LuEbRPzNX
2026-10-01 07:37:42 +08:00
Myfro9 80c65a6b77 sync: WIN10-I9-64G 2026-10-01 2026-10-01 07:35:12 +08:00
Myfro9 858b7eb6dc tools-sync: mirror 阶段只链接含 SKILL.md 的目录
Claude Code 会把账号侧下发的 skills 缓存进 ~\.claude\skills\synced\<guid>\,
它不是 skill(顶层没有 SKILL.md),但内层目录各自带 SKILL.md。旧逻辑无条件
镜像主副本下的每个非点开头目录,于是给 Codex 建了 synced 的 junction —— Codex
递归扫到内层那批,会把账号已经提供的 skills 再注册一遍。

改为以顶层 SKILL.md 作为判据(与脚本自己 '\' 检查、以及 Codex 的注册
规则一致),并把被跳过的目录打印出来。
2026-09-23 17:02:24 +08:00
bowei 84fbcae620 Make bmem Gitea sync failures trigger immediate server repair and acceptance 2026-09-15 18:24:08 +08:00
Myfro9andClaude Opus 5 8566e23f49 tools-sync: 修复会删掉宿主自装 skill 的 registry 对账缺陷
本次同步实跑触发了数据丢失:orca-cli 的物理副本在 ~\.agents\skills(Orca 就是
这样装的——真目录放 .agents,再把每个工具链过去,本机 8 个工具全指向它),
而主副本里的同名条目本身是指向它的 junction。对账循环从不检查"主副本条目是不是
链接",于是 fingerprint 比对经链接解析到同一份内容判为"identical",删掉 registry
副本并建 junction → 主副本与 registry 互指成环,唯一的真副本没了。
orchestration 走 INGEST 分支,则把 Orca 的布局反了过来。

两者均已用 `orca skills install --skill <name>` 恢复为 Orca 自己的布局。

修复三处:
- 对账循环:主副本条目本身是链接时,判定该 skill 归宿主所有,计入 foreign 跳过。
- INGEST:新增 Get-SkillDirLinkers,若 ~\.* 下其他工具的 skills 目录有链接指向
  这个目录,说明它是宿主自装 skill 的物理家,不搬进主副本。
- 镜像阶段:跳过本身是链接的主副本条目,否则 Codex 会把同一 skill 注册两遍
  (.agents 与 .codex 都在扫)。

回归测试新增 hostowned 夹具(真目录在 registry、主副本是链接):在修复前的脚本上
以"real dir was collapsed into a link"失败,修复后通过。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01438Zbcx49e4o46uSA71mFF
2026-09-07 16:29:20 +08:00
Myfro9andClaude Opus 5 f665448376 sync: BOWEI 2026-09-07 tools-sync 改为 junction 模型(registry 双向 ingest + 修复)
- sync_repos.ps1: 每个 skill 只在 ~\.claude\skills 有一份物理副本,其余 registry
  一律 junction;新增 registry-only skill 的自动 ingest、MISDIRECTED 链接修复、
  同名内容分叉的 CONFLICT 报告,以及只对 -MirrorRegistry 做全量镜像。
- SKILL.md: 重写阶段 1/2,补 Codex MCP 存储模型(config.toml 惰性,
  codex mcp list --json 是唯一权威口径)与 CLI 升级会清空注册表的事实。
- sync_mcp_registrations.ps1 + references/codex_mcp_wanted_keys.json:
  报告 codex-cli 无接口可设的键(tool_timeout_sec / env_vars)为
  "registered, but incomplete" 而非失败。
- tests/test_sync_repos_registries.ps1: registry 对账的回归测试。
- .gitignore: orchestration(Orca 自带的发现桩,同 orca-cli)列为 local-only。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01438Zbcx49e4o46uSA71mFF
2026-09-07 16:22:09 +08:00
boweiandMyfro9 aca7c799a8 tools-sync: MCP 审计改用 codex mcp list --json 作为 Codex 侧权威口径
Codex 26.825 起不再把用户 MCP 注册写入 ~/.codex/config.toml,导致原来解析
config.toml 的审计每次都把 7 个已注册 MCP 误报成 "Claude only" 并重复 add。

- Get-CodexMcps 优先调用 `codex mcp list --json`,CLI 不可用时回落到原 TOML 解析
- cua_repl(Codex 自带 ChatGPT.exe 运行时,装在 WindowsApps 下,原 .codex/runtimes
  正则匹配不到)纳入 Test-CodexManaged 自动排除,不再需要每次 -ExcludeName
2026-09-07 16:17:45 +08:00
bowei 24b9c271e1 sync: SHANGHAI-U9 2026-09-03 2026-09-03 05:12:51 +08:00
Myfro9 f1d36bb082 sync: BOWEI_US 2026-09-02 2026-09-02 15:37:47 -05:00
Myfro9 67ca51b2c2 sync: BOWEI_US 2026-09-02 2026-09-02 15:37:08 -05:00
Myfro9 10f436cfde sync: BOWEI_US 2026-09-02 2026-09-02 15:35:47 -05:00
Myfro9andClaude Opus 5 e39e852853 tools-sync: 增加 ls-remote 同步闸门,并记下 gitea 空 pack 故障的排查法
这次同步事故的教训不是服务器坏了,而是坏了没人知道:pull --rebase 一失败脚本
就退出,push 从没走到,3 个 commit(含整个 bmem skill)在本机躺了 8 天,报告里
却算作"已知故障、待恢复"。而 ls-remote 这 8 天一直是好的。

- sync_repos.ps1 增 Assert-RemoteInSync:push 后(及 -DryRun 时)用 ls-remote 比对
  origin/<branch> 的实际 sha,不一致就 FAIL 并报出滞留/落后的 commit 数。
  远端分支不存在时单独报错,避免那两个计数被静默地按 HEAD 算出误导性数字。
- SKILL.md 阶段 1 写明闸门是硬性的:服务端故障是原因不是结果,不得报成已同步。
- SKILL.md 新增 bad pack header / early EOF 的排查阶梯(三步各排掉一层),并记下
  根因:全局 gitconfig 被注入 [uploadpack] packObjectsHook,把 pack-objects 换成
  了空转脚本。附带提醒 HOME 是 /data/gitea/home 而非 /data/git,以及这是一条
  完整 RCE 链、要连 hook 与 /tmp 载荷一起清。
- bmem/SKILL.md 的"已知边界"改为已修复,避免继续把普通的没 pull 误判成服务端故障。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015tMFjKGgxdmxJ28dyXdx1u
2026-09-02 14:57:50 -05:00
Myfro9andClaude Opus 4.8 9c1012f5b8 sync: WIN11-BOWEI 2026-08-10 MCP审计脚本python回退到conda(MS Store存根修复)
sync_mcp_registrations.ps1 默认用 PATH 上的 python 解析 Codex TOML,
但 Windows 上常见的是 Microsoft Store python 存根(exit 49, 无 stdlib)。
新增 Resolve-PythonCommand: python 不带 tomllib 时自动回退到 skills_env.md
的 CONDA_LANGGRAPH_PYTHON, 再退到 python3/py。显式 -PythonCommand 仍优先。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-02 14:53:28 -05:00
boweiandClaude Opus 5 ecc913c4f1 sync: Shanghai-U9 2026-09-03 MCP 排除清单补 Codex 桌面自带的 cua_repl(WindowsApps 路径原先认不出)
Test-CodexManaged 原来只按名字认 node_repl、按路径认 .codex\runtimes 与
.codex\plugins\cache。Codex 更新后新增的 cua_repl 的 command 在
C:\Program Files\WindowsApps\OpenAI.Codex_...\app\ChatGPT.exe,两条都不命中,
于是被当成"Codex 独有的可移植 MCP"报进差集,险些复制到 Claude 侧。
名字集合加 cua_repl,路径再认 WindowsApps\OpenAI.Codex 与 OpenAI\Codex\。
原有的 .codex 路径正则一字未动。tests PASS;重跑审计 exit 0,四项 Matched。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018FykpdV2Y4RUWXU5PtoLqh
2026-09-03 02:52:05 +08:00
bowei 307bc38d36 sync: SHANGHAI-U9 2026-08-19 tools-sync 增 504 恢复工具 recover_commits_via_gitea_api.py 并写进阶段1处置 2026-08-19 15:16:56 +08:00
bowei 6dddab8923 sync: SHANGHAI-U9 2026-07-27 修复 MCP 双向同步向 Claude 注册失败
Add-ToClaude 改用 `claude mcp add ... --` 标志形式,不再走 add-json:
Windows PowerShell 5.1 会吞掉传给原生 exe 的 JSON 参数里的双引号,
claude.exe 收到残缺 JSON 后报 "Invalid configuration: : Invalid input"。

另外 add-json 即使在引号完好时也拒绝反斜杠路径,故新增
ConvertTo-PortablePath,把带盘符的路径统一成正斜杠;同一函数也用于
比较,避免 C:\x 与 C:/x 被误判成 drift。

实测:drawio(Codex 独有)现已能由 -Apply 自动补齐到 Claude 并连通。
2026-07-27 01:15:27 +08:00
bowei 17632bea27 sync: Shanghai-U9 2026-07-22 tools-sync MCP双向同步脚本+MATLAB专项节;撤出误入库的__pycache__ 2026-07-22 03:55:54 +08:00
Myfro9 2b873a1f4d sync: WIN10-I9-64G 2026-07-20 2026-07-20 18:28:34 +08:00
Myfro9 c15c5c51e8 sync: WIN10-I9-64G 2026-07-20 2026-07-20 18:20:36 +08:00
Myfro9 96b014edb3 sync: WIN10-I9-64G 2026-07-20 2026-07-20 18:18:50 +08:00
Myfro9 2ef32a9dcc sync: WIN10-I9-64G 2026-07-20 2026-07-20 18:14:49 +08:00