PR #4526 需要维护者确认:iOS Simulator 跨任务工程构建的架构边界
- Dominant language
- TypeScript
- Stars
- 2.7k
- Forks
- 395
- Avg merge
- 21h 48m
- Merged PRs (30d)
- 776
Description
PR:https://github.com/makecindy/cindy/pull/4526
Head:`e0457363dcc2b784b6ef6f6379da8c75ada9f872`
作者:horizon554
## 这次改了什么
内嵌 iOS Simulator 的 `build_app` 新增可选 `projectDir`:任务 A 可显式指定外部工程 / worktree B 来构建,再用 A 的设备安装、启动和调试。省略参数时仍用当前任务目录。构建缓存、artifact 来源和 Cindy Mobile Metro 检查切到所选目录;任务身份、设备 route、控制授权和 artifact 实例归属仍属于 A。托管 worktree 复用现有 runtime lease,回收或任务取消时终止操作。
## 为何需要维护者确认(arch)
这不是同结构内的实现替换。
1. **跨包 MCP / 数据契约**:`packages/lizi-mcps` 的 `build_app` 增加 `projectDir`;Host artifact 新增 `project` 摘要(目录名、目录 fingerprint、相对 container 路径)。旧 Host 会拒绝不认识的参数,配套插件 Manual 仍是 draft。
2. **模块边界**:Host 构建路径接到 worktree runtime lease / recycle 事件,把模拟器构建与托管 worktree 回收协调绑在一起。
3. **权限半径**:构建来源从“当前任务目录”扩大到用户明确指定的任意本地目录(仍走现有任务执行权限,不是新的文件系统沙箱)。
请维护者直接在 PR 上 Approve;若需要作者修改,请 Request Changes。
## 产品门(不 hold)
product 因标题 `feat` 触发,但 Renderer 只改了既有静态契约测试的格式匹配,`touchesUi=false`,没有外观、布局、文案或交互流向变化。用户可见的是 Agent/MCP 可选参数,不是产品 UI。
## 建议核对
- 省略 `projectDir` 是否完全保持原行为。
- 外部目录是否只改构建来源,不转移任务 / 设备所有权。
- containerPath 是否仍限制在所选工程内。
- 租约是否只保护托管 worktree,并在源目录 I/O 结束后释放。
- 配套插件 Manual 的发布顺序是否可接受。
---
关联 PR:#4526(作者 @horizon554);本 issue 由 review-pr 流程自动创建,用于先讨论该 PR 涉及的技术架构调整,维护者确认后 PR 会恢复推进。
Contributor guide
Research direction
Start by reviewing PR #4526 at commit e0457363dcc2b784b6ef6f6379da8c75ada9f872 and the changes in packages/lizi-mcps. Check the listed compatibility, ownership, containerPath, runtime-lease, and plugin-release questions against the PR and its static contract tests. Done means a maintainer approves the architecture or requests specific changes.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- ios, typescript
- Domain
- build-system, mobile-dev
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100