Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,9 @@ web_modules/
# Optional eslint cache
.eslintcache

# Local AI development documents
.ai-dev-docs/

# Optional stylelint cache
.stylelintcache

Expand Down
24 changes: 20 additions & 4 deletions docs/MAKER.md
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,16 @@ Maker MCP 的最后兜底异常日志写入 `~/.taptap-maker/mcp-crash.log`。

线上排查 Windows 用户反馈时,如果发现 `C:\Users\<user>\.taptap-maker\mcp-crash.log` 异常变大,应优先让用户停止正在反复拉起 Maker MCP 的 AI 客户端进程,删除或压缩该日志,再升级到包含日志上限保护的版本。

Maker MCP server 和内嵌 `__maker-proxy` 只会"被动退出":stdin 断开(AI 客户端关闭)
或父进程死亡(内嵌 proxy 的 PPID 看门狗)时主动收尾退出,避免 AI 客户端异常退出后遗留
高 CPU 孤儿进程;长驻进程不会因为空闲而被定时杀掉。`stdout` / `stderr` 的 `EPIPE`、
`ERR_STREAM_DESTROYED` 和 `ECONNRESET` 会被视为客户端已退出,进程会记录文件日志后以 0
退出,不再依赖已断开的 stderr 输出错误。Windows 注意:`process.ppid` 不会变成 1 且 PID
复用激进,看门狗可能漏判(方向安全,只会漏杀不会误杀),Windows 上可靠的退出信号是
stdin 断开 + EPIPE 防护。`taptap-maker doctor` 会输出 `Maker orphan process check` 段,
检测 PPID=1 的 Maker server / `__maker-proxy` 进程并提示可安全清理(Windows 上输出
`not_supported_on_windows`);该命令只检测和提示,不会自动 kill 进程。

## CLI 初始化流程

在 Codex、Claude Code、Cursor 或普通终端里,新用户应优先执行 CLI 初始化:
Expand Down Expand Up @@ -140,7 +150,8 @@ taptap-maker doctor
CLI 命令:

- `taptap-maker init`:一站式初始化当前目录。
- `taptap-maker doctor`:检查 Git、PAT、TapTap token、项目绑定、dev-kit 版本和 MCP 配置状态。
- `taptap-maker doctor`:检查 Git、PAT、TapTap token、项目绑定、dev-kit 版本、MCP tools
可见性和 MCP 配置状态。
- `taptap-maker apps`:列出当前 PAT 可访问的 Maker app。
- `taptap-maker login`:CLI 登录入口;按需打开 Maker 授权页,CLI 轮询授权结果并完成本地鉴权配置。
- `taptap-maker pat set`:无参数时同样进入 CLI 登录;显式传 PAT 或 stdin 仅用于 CI
Expand Down Expand Up @@ -190,6 +201,11 @@ MCP 运行期能力:
- `maker_status_lite`:工具形式的轻量状态,兼容不会读取 MCP resources 的客户端。
当 AI 客户端从父目录或对话目录启动 MCP server,而实际 Maker 项目位于子目录时,状态会输出
`MCP tool registration cwd` 诊断,说明当前会话的 `tools/list` 可能没有注册 proxy tools。
- `taptap-maker doctor` 会输出 `Maker MCP tools availability`。如果当前 AI 对话里看不到
Maker proxy tools,先按该段提示重启 AI 客户端、新开 AI 对话,或在支持 `/mcp` 的客户端中
Reconnect `taptap-maker`;如果输出 `pwd_alignment: cwd_mismatch`,说明 AI 的 pwd 和
Maker 项目目录不一致,应从 Maker 项目目录打开 AI 客户端,或重新安装 MCP 配置并用
`--target-dir <PROJECT_DIR>` 固定 cwd。
- `maker://status` 和 `maker_status_lite` 会输出 `Python environment` 和
`Lua LSP environment`。本地 Lua 诊断需要环境时,Agent 应先看这两段;如果
`python_status` 或 `lsp_status` 不是 `ready`,可运行 `taptap-maker python setup`
Expand Down Expand Up @@ -265,7 +281,7 @@ Maker 内置三个业务流程 skill,目标是让本地 AI/Agent 参与本地
- 发生冲突时解释为什么冲突、冲突文件在哪里、冲突内容是什么,并让 Agent 给出解决建议。
- 冲突解决前必须让用户确认,不隐藏 unresolved conflict。

`taptap-maker doctor` 和 `maker://status` 会输出已随包内置的 skill 名称和文档路径:`taptap-maker-local`、`taptap-maker-dev-kit-guide` 与 `update-taptap-mcp`。Maker 操作目标是用户当前项目目录;若 MCP 进程 cwd 是临时对话目录或父目录,Agent 应优先检查客户端附加工作目录:只有一个附加目录时直接作为 `target_dir`,多个附加目录时让用户选择哪个是 Maker 项目目录,避免把已绑定项目误判为未绑定。若状态输出 `MCP tool registration cwd` 且 `mcp_cwd_project_dir` 不是当前 `maker_project_dir`,说明当前会话启动 MCP 时的 cwd 错误,proxy tools 可能不会出现在工具列表里;应从 Maker 项目目录启动 AI 客户端,或修正 `taptap-maker` MCP 配置里的 `cwd` 后在 `/mcp` 中 Reconnect,而不是反复普通重启。
`taptap-maker doctor` 和 `maker://status` 会输出已随包内置的 skill 名称和文档路径:`taptap-maker-local`、`taptap-maker-dev-kit-guide` 与 `update-taptap-mcp`。Maker 操作目标是用户当前项目目录;若 MCP 进程 cwd 是临时对话目录或父目录,Agent 应优先检查客户端附加工作目录:只有一个附加目录时直接作为 `target_dir`,多个附加目录时让用户选择哪个是 Maker 项目目录,避免把已绑定项目误判为未绑定。若 `taptap-maker doctor` 输出 `Maker MCP tools availability` 且 `pwd_alignment: cwd_mismatch`,或状态输出 `MCP tool registration cwd` 且 `mcp_cwd_project_dir` 不是当前 `maker_project_dir`,说明当前会话启动 MCP 时的 cwd 错误,proxy tools 可能不会出现在工具列表里;应从 Maker 项目目录启动 AI 客户端,或修正 `taptap-maker` MCP 配置里的 `cwd` 后在 `/mcp` 中 Reconnect,而不是反复普通重启。若只是首次安装后当前对话看不到 tools,优先重启 AI 客户端或新开 AI 对话

已绑定项目还会检查 AI dev kit 状态:`CLAUDE.md`、`examples/`、`templates/`、`urhox-libs/` 缺失时,`taptap-maker dev-kit update` 可以恢复本地 dev kit,并刷新 `.gitignore` 管理块。`maker://status` 和 `maker_status_lite` 也会输出已安装版本、当前环境最新版本和是否需要更新,供新开 AI 对话先发现 dev-kit 过期状态。

Expand Down Expand Up @@ -354,7 +370,7 @@ Maker app 列表关键字段:
`git init` + `git fetch --depth=1 origin`,再 checkout 远端默认分支,避免大项目在慢网环境下载完整历史。
- 首次 clone/fetch 前会明确提示用户:Maker server 可能正在准备仓库,首次拉代码 20 秒以上是正常现象,请保持当前命令运行。
- `taptap-maker init` 会根据 Git stderr 判断是否自动重试:HTTP 5xx、503、超时、连接重置、HTTP2/RPC 中断、early EOF 等远端临时错误会在 fetch 阶段重试;认证失败、权限不足、仓库不存在、远端拒绝、非空目录冲突、本地权限错误不会重试。
- 首次 clone/fetch 默认最多自动重试 2 次;连续重试后仍失败时,错误会保留 `retryable`、`retry_reason` 和已重试次数,方便 Agent 判断是让用户稍后直接重试,还是先处理 PAT、权限或本地目录问题。
- 首次 clone/fetch 默认最多自动重试 5 次,基础等待间隔为 5 秒;连续重试后仍失败时,错误会保留 `retryable`、`retry_reason` 和已重试次数,方便 Agent 判断是让用户稍后直接重试,还是先处理 PAT、权限或本地目录问题。
- `maker_build_current_directory` 会在本地 commit、push 和远端 build 阶段输出状态,并解析 Git push stderr 中的百分比进度。
- `maker_build_current_directory` 的 push 阶段也会对远端临时错误自动重试;push 最终失败时不会继续远端 build。
- `maker_build_current_directory` 会转发远端 build tool 的 progress notification。
Expand Down Expand Up @@ -573,7 +589,7 @@ push
| `TAPTAP_MAKER_REMOTE_MCP_SERVER_URL` | 可选:覆盖当前环境的远端 Maker MCP server URL |
| `TAPTAP_MAKER_WEB_URL` | 可选:覆盖当前环境的 Maker 网页地址 |
| `TAPTAP_MAKER_GIT_BIN` | 可选:覆盖 Git 可执行文件路径 |
| `TAPTAP_MAKER_GIT_RETRY_DELAY_MS` | 可选:覆盖 Git 临时错误重试基础延迟,默认 1500ms |
| `TAPTAP_MAKER_GIT_RETRY_DELAY_MS` | 可选:覆盖 Git 临时错误重试基础延迟,默认 5000ms |
| `SCE_MCP_URL` | 云端 SCE MCP endpoint 默认值 |

Maker 后端默认地址集中在 `src/maker/config.ts`。兼容旧变量名:`MAKER_API_BASE`、
Expand Down
225 changes: 0 additions & 225 deletions docs/MAKER_PYTHON_RUNTIME_WINDOWS_TEST.md

This file was deleted.

59 changes: 0 additions & 59 deletions docs/superpowers/plans/2026-06-09-maker-python-runtime.md

This file was deleted.

Loading
Loading