Skip to content

fix(mobile): make isolated E2E workflow repeatable#4546

Open
iscekic wants to merge 7 commits into
mainfrom
fix/mobile-e2e-kilobot-followup
Open

fix(mobile): make isolated E2E workflow repeatable#4546
iscekic wants to merge 7 commits into
mainfrom
fix/mobile-e2e-kilobot-followup

Conversation

@iscekic

@iscekic iscekic commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

Summary

  • address all eight Kilobot findings from fix(mobile): harden isolated agent E2E workflow #4537 across login retry recovery, Android SDK discovery, device claim locking, Docker proxy identity, restart portability, and worktree-independent tests
  • automatically dismiss the full Expo developer menu only when Fast Refresh or Element Inspector identifies it
  • extend the mobile orchestration workflow with small commits, PR assignment, latest-head Kilobot repair loops, conditional local E2E, and secret-free subagent handoffs

Verification

  • pnpm format
  • node --import tsx --test dev/local/*.test.ts dev/local/env-sync/plan.test.ts (95 passed)
  • scripts/typecheck-all.sh --changes-only
  • pnpm lint (0 warnings, 0 errors)
  • pnpm install --frozen-lockfile
  • git diff --check
  • fresh iOS mobile E2E agent: isolated simulator claim, fresh build/install, Metro/API provenance, login, logout to you@example.com, second login, repeated ownership claim, cleanup
  • post-rebase focused iOS E2E: Expo menu dismissal gated by Fast Refresh|Element Inspector and stable login screen reached

Follow-up to #4537.

@iscekic iscekic self-assigned this Jul 14, 2026
Comment thread dev/local/mobile-simulator.ts Outdated
Comment thread dev/local/mobile-simulator.ts Outdated
Comment thread apps/mobile/e2e/AGENTS.md Outdated
@kilo-code-bot

kilo-code-bot Bot commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

Code Review Summary

Status: No Issues Found | Recommendation: Merge

Executive Summary

The latest commit fixes both previously reported findings (tautological cleanup-failure assertion and the mismatched usage-message bracket) with no new issues introduced.

Previously reported issues, now resolved
  • dev/local/mobile-simulator.test.ts (tautological assertion did not verify the cleanup-failure attachment) — fixed: the test now injects a deterministic rmSync failure via fileOperations.rmSync and asserts cleanupError directly, matching the injected error message.
  • dev/local/mobile-simulator.ts (mismatched bracket in usage message) — fixed: usage string now uses balanced <claim [udid]|release <udid>>.
Files Reviewed (2 files, incremental since 76ca8bf)
  • dev/local/mobile-simulator.ts - 0 issues
  • dev/local/mobile-simulator.test.ts - 0 issues
Previous Review Summaries (3 snapshots, latest commit 76ca8bf)

Current summary above is authoritative. Previous snapshots are kept for context only.

Previous review (commit 76ca8bf)

Status: 2 Issues Found | Recommendation: Address before merge

Overview

Severity Count
CRITICAL 0
WARNING 1
SUGGESTION 1
Issue Details (click to expand)

WARNING

File Line Issue
dev/local/mobile-simulator.test.ts 1732 Tautological assertion does not verify the cleanup-failure attachment

SUGGESTION

File Line Issue
dev/local/mobile-simulator.ts 754 Mismatched bracket in usage message
Previously reported issues, now resolved
  • dev/local/process-lock.ts (lock expiry during synchronous preparation) — fixed: preparation now runs outside the mutation lock under the two-phase claimId protocol.
  • dev/local/mobile-simulator.ts (failed shutdown could leave an unclaimed running simulator) — fixed: PrepareError.shutdownFailed now preserves the preparing claim when the rollback shutdown cannot be confirmed.
  • dev/local/mobile-simulator.ts (execution callback type required an omitted encoding) — fixed: ExecFn now uses ExecFileSyncOptions, matching the no-encoding call sites.
Files Reviewed (2 files, incremental since 40ca727)
  • dev/local/mobile-simulator.ts - 1 issue
  • dev/local/mobile-simulator.test.ts - 1 issue

Fix these issues in Kilo Cloud

Previous review (commit 40ca727)

Status: 3 Issues Found | Recommendation: Address before merge

Overview

Severity Count
CRITICAL 0
WARNING 3
SUGGESTION 0
Issue Details (click to expand)

WARNING

File Line Issue
dev/local/process-lock.ts 9 Lock can expire during active synchronous simulator preparation
dev/local/mobile-simulator.ts 130 Failed shutdown can leave an unclaimed running simulator
dev/local/mobile-simulator.ts 16 Execution callback type requires an omitted encoding
Files Reviewed (19 files)
  • apps/mobile/.kilo/MOBILE_WORKFLOW.md - 0 issues
  • apps/mobile/e2e/AGENTS.md - 0 issues
  • apps/mobile/e2e/flows/logout.yaml - 0 issues
  • apps/mobile/e2e/flows/open-app.yaml - 0 issues
  • apps/mobile/e2e/flows/settle-app.yaml - 0 issues
  • dev/local/cli.ts - 0 issues
  • dev/local/docker-api-probe.test.ts - 0 issues
  • dev/local/docker-api-probe.ts - 0 issues
  • dev/local/mobile-android.test.ts - 0 issues
  • dev/local/mobile-android.ts - 0 issues
  • dev/local/mobile-simulator.test.ts - 0 issues
  • dev/local/mobile-simulator.ts - 2 issues
  • dev/local/mobile-workflow.test.ts - 0 issues
  • dev/local/process-lock.ts - 1 issue
  • dev/local/runner.ts - 0 issues
  • dev/local/services.test.ts - 0 issues
  • dev/local/tmux.test.ts - 0 issues
  • package.json - 0 issues
  • pnpm-lock.yaml - 0 issues

Fix these issues in Kilo Cloud

Previous review (commit 1e7de5e)

Status: 3 Issues Found | Recommendation: Address before merge

Overview

Severity Count
CRITICAL 0
WARNING 3
SUGGESTION 0
Issue Details (click to expand)

WARNING

File Line Issue
dev/local/mobile-simulator.ts 83 Rollback can remove a claim adopted concurrently by the same worktree
dev/local/mobile-simulator.ts 152 Failed boot-status preparation can leave an unclaimed simulator running
apps/mobile/e2e/AGENTS.md 151 Token handoff contradicts the workflow's secret boundary
Files Reviewed (19 files)
  • apps/mobile/.kilo/MOBILE_WORKFLOW.md - 0 issues
  • apps/mobile/e2e/AGENTS.md - 1 issue
  • apps/mobile/e2e/flows/logout.yaml - 0 issues
  • apps/mobile/e2e/flows/open-app.yaml - 0 issues
  • apps/mobile/e2e/flows/settle-app.yaml - 0 issues
  • dev/local/cli.ts - 0 issues
  • dev/local/docker-api-probe.test.ts - 0 issues
  • dev/local/docker-api-probe.ts - 0 issues
  • dev/local/mobile-android.test.ts - 0 issues
  • dev/local/mobile-android.ts - 0 issues
  • dev/local/mobile-simulator.test.ts - 0 issues
  • dev/local/mobile-simulator.ts - 2 issues
  • dev/local/mobile-workflow.test.ts - 0 issues
  • dev/local/process-lock.ts - 0 issues
  • dev/local/runner.ts - 0 issues
  • dev/local/services.test.ts - 0 issues
  • dev/local/tmux.test.ts - 0 issues
  • package.json - 0 issues
  • pnpm-lock.yaml - 0 issues

Fix these issues in Kilo Cloud


Reviewed by claude-sonnet-5 · Input: 20 · Output: 4.2K · Cached: 367.2K

Review guidance: REVIEW.md from base branch main

Comment thread dev/local/process-lock.ts
Comment thread dev/local/mobile-simulator.ts
Comment thread dev/local/mobile-simulator.ts Outdated
Comment thread dev/local/mobile-simulator.test.ts Outdated
Comment thread dev/local/mobile-simulator.ts Outdated
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant