Move the mobile E2E harness out to the kilo-workflow repo - #4968
Merged
Conversation
`apps/mobile/e2e/` and `dev/local/mobile-simulator.ts` now live in the kilo-workflow repo as `mobile_e2e/`. Nothing in this repo drove them: they are agent tooling, not app code. The simulator claim CLI existed in both repos and had drifted 152 lines, each copy carrying fixes the other lacked, while both wrote the same claim files in the same machine-global temp directory. A stale-claim bug that leaves booted simulators running forever had to be fixed twice. One owner removes that class of problem; the fix landed in kilo-workflow. - Delete apps/mobile/e2e/ (22 files) and the duplicated simulator CLI. - Drop the dev:mobile:simulator script and the appium/webdriverio deps and catalog entries; nothing here imports them now. - Split dev/local/mobile-workflow.test.ts: the flow and preflight assertions move with the harness, the app and dev-tooling assertions stay. - apps/mobile/AGENTS.md no longer points at an e2e runbook. dev/local/mobile-ios-build.ts still reads the claim directory to prove a device belongs to this worktree. That directory is now a contract owned by kilo-workflow, and the code says so. test:mobile-workflow 100 pass, test:dev-local 184 pass.
pnpm install --frozen-lockfile failed with ERR_PNPM_LOCKFILE_CONFIG_MISMATCH: the catalogs block still named appium and webdriverio after they left pnpm-workspace.yaml. Every CI job died at the install step. Drops the appium and webdriverio dependency trees, 1739 lines.
Splitting the harness tests out left a stray blank line that oxfmt rejects.
Contributor
Code Review SummaryStatus: No Issues Found | Recommendation: Merge Executive SummaryThis is a deletion-only harness move plus small doc/comment edits; I verified the cloud repo retains no dangling references to the removed harness and that the dependency/catalog removals are internally consistent, with high confidence. Verification performed
Assumptions / notes for the author
Files Reviewed (32 files)
Reviewed by claude-opus-5 · Input: 50 · Output: 9.8K · Cached: 1.5M Review guidance: REVIEW.md from base branch |
jeanduplessis
approved these changes
Aug 3, 2026
iscekic
added a commit
that referenced
this pull request
Aug 3, 2026
Main moved the mobile E2E harness out to the kilo-workflow repo (#4968). Accept every deletion: the harness files, dev/local/mobile-simulator.ts, and the harness tests in dev/local/mobile-workflow.test.ts. The branch's harness fixes are already in kilo-workflow. Verified by diffing each file against its kilo-workflow copy; only path and relocation lines differ. apps/mobile/e2e/github-stub.sh was added on this branch after main deleted the directory. Drop it too; mobile_e2e/github-stub.sh in kilo-workflow is a superset.
iscekic
added a commit
that referenced
this pull request
Aug 3, 2026
main moved `apps/mobile/e2e/` and `dev/local/mobile-simulator.ts` to the kilo-workflow repo in #4968. This branch had modified nine of those files and added `apps/mobile/e2e/github-stub.sh`. Accept the deletion for every moved path. The harness edits belong in kilo-workflow now, not here. `dev/local/mobile-workflow.test.ts` takes main's split version: both of this branch's edits to it asserted on the moved flow files.
iscekic
added a commit
that referenced
this pull request
Aug 3, 2026
main moved the mobile E2E harness to the kilo-workflow repo (#4968) and merged the harness refactor (#4960). This branch still carried both. Accept main's deletions: - apps/mobile/e2e/** — every change is already in kilo-workflow's mobile_e2e. - dev/local/mobile-simulator.ts — kilo-workflow's copy is ahead of this one. - dev/local/mobile-workflow.test.ts — keep main's non-e2e tests only. - dev/seed/app/github-integration-copy.ts — kilo-workflow's github-installation.sh replaced it with the githubApps.devAddInstallation mutation main already ships. What remains is the composer wrap fix plus one process-lock test.
iscekic
added a commit
that referenced
this pull request
Aug 3, 2026
main moved the mobile E2E harness to the kilo-workflow repo (#4968). This branch had modified eight of the deleted files plus the simulator claim CLI. Every one of those changes already exists in kilo-workflow, so the merge takes main's deletion. - Delete apps/mobile/e2e/ and dev/local/mobile-simulator.ts. - Delete apps/mobile/e2e/github-stub.sh: kilo-workflow holds a newer copy. - Delete dev/seed/app/github-integration-copy.ts: main dropped the seed tool and kilo-workflow replaced it with mobile_e2e/github-installation.sh. - Take main's dev/local/mobile-workflow.test.ts: the harness assertions moved with the harness. dev/local/tmux.ts and dev/local/mobile-android.ts now match main exactly, so this branch changes only apps/mobile/src.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Symptom
A weekend of workflow runs left the machine overloaded: orphaned Appium servers and a
simctl recordVideoprocess alive for over two days, plus simulators that nothing could power off.Cause
dev/local/mobile-simulator.tsexisted in both this repo and kilo-workflow, drifted by 152 lines, each copy carrying fixes the other lacked. Both wrote the same claim files in the same machine-global$TMPDIR/kilo-mobile-simulator-claims.The leak itself: a claim whose worktree is gone was discarded without powering the device off. The next claim saw a
Booteddevice, recordedbootedByClaim: false, and release never shut it down — the simulator stayed booted forever. Fixing that once meant fixing it twice, in two places that kept diverging.Change
E2E is agent tooling, not app code, so it moves out.
apps/mobile/e2e/and the simulator CLI now live in the kilo-workflow repo asmobile_e2e/, which is the single owner. The leak fix itself lands in kilo-workflow, not here.apps/mobile/e2e/(22 files) and the duplicatedmobile-simulator.ts+ test.dev:mobile:simulatorscript, and theappium/webdriveriodeps and catalog entries — nothing here imports them now.dev/local/mobile-workflow.test.ts: the 15 flow and preflight assertions move with the harness; the 7 app and dev-tooling assertions stay.apps/mobile/AGENTS.mdno longer points at an e2e runbook.dev/seed/app/api-token.tsdrops its path reference in an error message.One deliberate coupling left
dev/local/mobile-ios-build.tsstill reads the claim directory to prove a device belongs to this worktree.pnpm dev:mobile:ios build <udid>stays a cloud command that the harness calls, so the read is correct. The record shape is now a contract owned by kilo-workflow, and a comment says so.Verification
pnpm test:mobile-workflow— 100 pass, 0 failpnpm test:dev-local— 184 pass, 0 failmobile_e2e/appium.sh <device> server statusresolves the cloud worktree, re-execs through the harnesstsx/process-lock, and answers.Review note
Merge this together with the kilo-workflow commit. Until both land,
mobile_e2e/preflight.shand the role definitions point at paths that only exist on one side.