Commit Graph
27 Commits
Author SHA1 Message Date
furao a3b016ea8e [cc-3-8-x-mcp] 修复: 补全离线 CLI 解析路径与自包含夹具
改了什么:解析结果记录资源来源路径,并生成独立 Prefab、嵌套资源和脚本夹具。

为什么:测试依赖外部项目资源和临时目录时会导致嵌套解析与类 ID 结果不稳定。

影响范围:离线 CLI 解析、组件引用错误信息及 offline tools 测试。
2026-08-14 12:09:20 +08:00
furao 4fa698a757 [submodule] 配置: mcp-sdk URL 改 https,去掉 SSH key 依赖
同事 Windows 上没配 gitee SSH key,git@gitee.com: 的 nested clone 会失败。
改成 https://gitee.com/ 后任何环境都能 clone。
v2.0.0
2026-06-16 15:28:48 +08:00
furao 7ffbe03e9b [cli] 新增: 节点路径/名称查找支持 stub override 名 2026-06-15 11:15:33 +08:00
furao 7a7e0063fb [submodule] 配置: mcp-sdk URL 切到 gitee 2026-06-15 10:49:48 +08:00
furao 60bc9172f1 [cli] 修复: dry-run diff 数组长度变化误报为 index 处置 null 2026-06-13 14:06:00 +08:00
furao 0f266b0dec [cli] 新增: nested 路径查找 + classid-resolver 多目录扫描 2026-06-12 12:14:59 +08:00
furao 7f4e447ba0 [cli] 新增: add-spine-socket op(绑定 Spine Socket 到节点) 2026-06-12 10:42:39 +08:00
furao edd56bd03d [mcp] 修复: requestCount 死计数器改为真实工具调用计数,新增 lastRequestAt/lastTool 判活
requestCount 初始化后从无自增,恒 0,曾被当成转发断裂的证据误诊。
改为包装 tool handler/resource read 计数;不计 router 15s 探活,
计数代表真实业务调用。lastRequestAt/lastTool 作判活主信号。
2026-06-11 15:56:48 +08:00
furao 0aaa1abff8 [router] 修复: 同项目双实例不再两个都改名,startedAt 最新者保 base 名
同 projectPath 双实例(spawn 竞态僵尸)进普通撞名改名会被改成
<base>-<路径末段>/-2,没人保住 base 名,<base>__* 前缀路由全部失配
(2026-06-11 forest 96802/26426 事故)。改为组内 startedAt 最新者
作代表参与命名,其余改名 <base>-dup<pid> 并打告警。
2026-06-11 15:56:48 +08:00
furao 2526bc3beb [mcp] 修复: restart-package 对任意扩展生效(disable/enable 须传注册路径)
Editor.Package.disable/enable 的参数是扩展绝对路径不是 name(typings:
enable(path)/disable(path, options)), 传 name 会 disable 静默不生效 +
enable 报 "[Package] Unknown and unable to start", 旧实例(含其 http
server 等资源)永久泄漏。改为 getPackages 按 name 反查 path 再调用;
传入已是路径则直接用。实测 guide-editor 按名 reload 后 unload→load
完整执行, 8099 监听 socket 换新
2026-06-11 14:37:24 +08:00
furao b180bd290b [router] 修复: editor spawn/restart 加跨进程锁与调试现场保护
- spawn 锁: 注册目录 per-projectPath lockfile (wx 原子创建, 死持有者可夺锁),
  串行化 kill→spawn→ready, 防多 agent 并发重启造成同项目双开
- restart 在旧进程 SIGKILL 后仍存活时中止, 不再带病 spawn
- spawn 幂等检查加 ps 抓 --project 兜注册表盲区 (已拉起未注册的启动中实例)
- restart/kill 前数预览端口 ESTABLISHED 连接, 有调试现场默认拒绝, force:true 强制
2026-06-11 14:20:17 +08:00
furao a0f71ce8f9 [router] 修复: editor 慢启动后激活的工具不推送给 claude
discover 周期重扫已有,但两个 bug 让 claude 永远停在初次 tools/list 旧快照:
1. 已缓存 editor 不 re-probe(146 行 continue)——大项目 editor 慢启动(builder
   worker 没就绪)首次只 probe 到部分工具,asset-db 就绪后工具激活也不刷新
2. 声明 capabilities.tools.listChanged=true 却从不真发 notifications/tools/list_changed

修复:每周期 re-probe(probe 失败保留旧缓存)+ 工具签名变化时发 list_changed
(clientInitialized 后)。spawn router 实测 tools/list 正确暴露 33 工具(25 forest__ + 8 router)。
2026-06-11 11:39:30 +08:00
furao 0b2cd04f1e [mcp] 文档: 增加 agent 使用规则入口 2026-06-08 16:42:32 +08:00
furao ef642031e6 [mcp] 修复: 支持 CLI 打开项目和资源转发 2026-06-08 15:57:34 +08:00
furao 8eb8958a52 [mcp-sdk] 杂项: 更新子模块指针 2026-06-08 15:33:13 +08:00
furao 2f509fb2c0 [router] 修复: 补充 Windows 编辑器启动路径解析 2026-06-08 15:23:08 +08:00
furao e8e586fcd0 [router] 修复: 重启编辑器默认使用 --nologin 2026-06-08 15:06:34 +08:00
furao 0662fbe46b [mcp-sdk] 杂项: 更新 universal-mcp-sdk 子库指针 2026-06-08 14:23:42 +08:00
furao 7ba91ec0a6 chore: mcp-sdk submodule URL 改为 HTTPS
方便无 GitHub SSH key 的成员 clone。
2026-06-08 10:19:34 +08:00
furaoandClaude Opus 4.8 f54f0762ef refactor: fix-borders 升级改名为 fix-meta,新增 trim 破坏识别
- 改名 fix-borders → fix-meta(CLI 子命令 fix-meta;MCP tool meta_fix),名字更通用
- 新增第三类噪音识别:trimType 从 none 被 Cocos 改成自动裁剪(连带 width/height/
  offset/顶点全变)→ 还原该 frame 到 git(恢复不裁剪)。保守:只还原 git=none 的
  明确破坏,不碰 git 本就 auto 的(分不清破坏 vs 真改)
- 三类统一处理:① 纯顺序/格式噪音 ② 九宫格 border 重置 ③ trim 强改

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-07 19:00:47 +08:00
furaoandClaude Opus 4.8 7ae2f994cf feat: fix-borders 升级为通用 meta 噪音清理 + 修中文路径 bug
- 新增「纯 key 顺序/格式变化(值没变)」检测:还原成 git 原文,消 git diff 噪音
  (Cocos 重启会重排 userData 里 trimType/atlasUuid 等字段位置)
- 修中文路径 bug:git 调用统一加 core.quotePath=false;之前中文名图(如 1公共资源/)
  的 border meta 被 git 引号转义跳过、漏还原,现已覆盖
- border 还原后若整体已等于 git 则直接写 git 原文(连带消顺序噪音)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-07 18:45:24 +08:00
furaoandClaude Opus 4.8 fc93911d31 feat: 新增 fix-borders —— 修复 Cocos 重启把九宫格 border 重置成 0 的 meta
Cocos 重启/重新导入有时把已设九宫格的图 meta 里 subMetas.*.userData.border*
重置成 0(九宫格丢失)。新增功能扫 git 改动的 .meta,把「git 有值、工作区被
清 0」的 border 还原成 git 的正确值,只动 border 字段、保留 meta 其它改动。

- cli/src/editor/fix-borders.js: 核心(git 对比 + 精准还原)
- cli fix-borders 命令(main.js 注册)
- MCP tool meta_fix_reset_border(main.js wrapper + server/tools.js)
- 跨平台纯 JS + git,带 dry-run

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-07 18:34:53 +08:00
furaoandClaude Opus 4.8 803a09517f docs(cli): 补充 QUICK-REF 中 prefab op 与 CLI 子命令的区别说明
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-07 17:58:15 +08:00
furaoandClaude Opus 4.8 b8185434af fix(cli): 删节点/组件后清理孤儿元素的 cc.Asset 引用,避免 build 404
remove-node / remove-component 保留孤儿元素(保持其他 __id__ 稳定)的策略下,
残留的 cc.Asset uuid 引用会被 bundle build 扫整个 data 数组撞到、算入依赖图,
运行时拉不存在的资源触发 404。新增 clearOrphanAssetRefs,删完后清理。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-07 17:58:15 +08:00
furaoandClaude Opus 4.8 bee9f89c98 跨平台化:移除 AppleScript + 去 macOS 硬编码
- 删除浏览器交互的 AppleScript(osascript 控 Chrome/Safari 做截图/eval/刷新/打开),
  改由外部 playwright MCP 承担;保留走 Editor.Message 的跨平台编辑器操作
- openDevDir 打开命令按平台分支(mac=open / win=explorer / linux=xdg-open)
- execPath 解析弱化靠注册表/进程查询,删掉 /Applications macOS 硬编码兜底
- editor-control 去 macOS-only 假设,ps 进程查询按平台分支(win 用 wmic)
- build-cmd Cocos 安装路径按平台拼

Win 特定逻辑(wmic、CocosDashboard 安装路径)标 TODO[win-verify],待 Windows 实测补全。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-07 17:54:05 +08:00
furao 33b90dab22 重构: 去 fallback,改 submodule 依赖 universal-mcp-sdk
- 加 universal-mcp-sdk 作 git submodule (mcp-sdk/),单一真相
- main.js: SDK_PATH 指向仓库内 submodule,删除 bundled fallback 分支
- 删除自带的 server/mcp-server.js (不再维护两套 MCP 实现)
- README: 加 submodule clone 说明
2026-06-07 13:00:45 +08:00
furao 14c5b00f14 Initial public release: cc-3-8-x-mcp
Cocos Creator 3.8.x MCP bridge extension with a built-in offline CLI.

Components:
- Editor extension: in-process MCP server exposing scene / asset-db /
  preview / local / editor-process-control tools
- stdio router: aggregates multiple editor instances on one machine,
  with shortName dedup
- offline CLI (cocos-mcp-cli): headless prefab read/write + a wrapper
  around the Cocos CLI build

Pure Node.js, zero third-party dependencies. Licensed under Apache-2.0.
2026-06-06 11:33:19 +08:00