makecindy / makecindy/cindy

PR #4526 需要维护者确认:iOS Simulator 跨任务工程构建的架构边界

Open
#4,530 1 comment 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.