Skip to content

fix(plugin): walk-app — document iOS simctl-relaunch to reach a local Rails#107

Merged
dadachi merged 1 commit into
mainfrom
fix/walkapp-ios-live-api
May 24, 2026
Merged

fix(plugin): walk-app — document iOS simctl-relaunch to reach a local Rails#107
dadachi merged 1 commit into
mainfrom
fix/walkapp-ios-live-api

Conversation

@dadachi
Copy link
Copy Markdown
Contributor

@dadachi dadachi commented May 24, 2026

Hardens the one rough edge the iOS end-to-end walk exposed during testing.

The gap

mobile-mcp's plain mobile_launch_app points the iOS DEBUG build at its nonexistent compiled default host (https://api.<product>.com). Result: screens render, but every network call (sign-in, lists, mutations) silently fails. The walk-app skill didn't document how to fix it, so a full signed-in walk required ad-hoc discovery.

Android isn't affected — the APK bakes the API host in at build time (<PRODUCT>_API_* gradle properties), so a normal launch reaches a local Rails.

The fix (skill guidance only — no code)

Relaunch the iOS app via simctl with the SIMCTL_CHILD_ passthrough (the same env-bridge src/env-bridge.ts uses in the generator's visual mode):

xcrun simctl terminate booted <bundleId>
SIMCTL_CHILD_<PRODUCT>_API_SCHEME=http \
SIMCTL_CHILD_<PRODUCT>_API_DOMAIN=<HOST from out/<slug>/rails/.env> \
SIMCTL_CHILD_<PRODUCT>_API_PORT=<PORT from out/<slug>/rails/.env> \
xcrun simctl launch booted <bundleId>

Documented in walk-app's SKILL.md:

  • §2 live-data prereq → "Rails up" and "app pointed at it", with the Android-vs-iOS difference made explicit.
  • §3 → the exact terminate+launch recipe and where the values come from.
  • §6 → the blank-data-screen failure mode now routes iOS users to the §3 relaunch.

Provenance

Discovered driving barbershop-queue on iOS end-to-end: sign-in (barber1@example.com) → barbershops list → reservation queue → swipe-to-Complete, round-tripped to the DB (state=completed). Rename held throughout (Shop→Barbershop, Shopkeeper→Barber, ItemTag→Reservation, Idled↔Completed → WAITING↔COMPLETED).

Test plan

  • claude plugin validate ./plugin ✔ (docs-only change to a SKILL.md body).

🤖 Generated with Claude Code

… Rails

Hardens the one rough edge the iOS end-to-end walk exposed: mobile-mcp's plain
`mobile_launch_app` points the iOS DEBUG build at its nonexistent compiled
default (`https://api.<product>.com`), so screens render but every network call
fails. To reach a local Rails the app must be relaunched via
`xcrun simctl launch` with the `SIMCTL_CHILD_<PRODUCT>_API_{SCHEME,DOMAIN,PORT}`
passthrough (the same env-bridge the generator's visual mode uses).

- §2: live-data prereq now spells out "Rails up" AND "app pointed at it", with the
  Android (host baked at build time) vs iOS (host from launch env) difference.
- §3: exact simctl terminate+launch recipe with the env vars and where the values
  come from (out/<slug>/rails/.env).
- §6: the blank-data-screen failure mode now points iOS users at the §3 relaunch.

Discovered driving barbershop-queue iOS sign-in → barbershops → reservation queue
→ swipe-complete (persisted state=completed) on 2026-05-24.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@dadachi dadachi merged commit f23e978 into main May 24, 2026
1 check passed
@dadachi dadachi deleted the fix/walkapp-ios-live-api branch May 24, 2026 11:47
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