feat(tooling): opt-in phone-testing tunnel for /test-pr - #47
Merged
Conversation
Mirror of reDeploy's phone-testing tooling into the template. Adds an
opt-in --phone mode to /test-pr that prints humanTest.launchPhone (start
the app + a public cloudflared quick tunnel) instead of humanTest.launch,
so a UI can be exercised from a real phone browser.
- prepare-pr.sh: --phone / PHONE=1 flag prints launchPhone + a caveat
block; default path unchanged. Also symlinks the main checkout's .env
into the detached worktree when present (generic, apps that read a
repo-root .env at runtime).
- test-pr.md: documents --phone and its public-exposure caveats;
preserves the ${CLAUDE_PLUGIN_ROOT:-.claude} path convention.
- gates.json: adds a documented humanTest block (prepare/launch/
launchPhone/worktreeDir) — the launchPhone key was previously read by
the script but undocumented here.
- docs/USAGE.md: 'Testing on a phone' section + launchPhone example.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0193Wc7aqPQvNqVZjcndBaf6
robercano
approved these changes
Jul 4, 2026
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.
Mirrors reDeploy's phone-testing tooling (reDeploy PR #92 / issue #91) into the orchestrator template so
/test-prgains an opt-in--phonemode across projects.What
.claude/scripts/prepare-pr.sh—--phone/PHONE=1opt-in printshumanTest.launchPhone(start the app + a public tunnel) instead ofhumanTest.launch, plus a caveat block. Default path byte-identical. Also symlinks the main checkout's.envinto the detached worktree when present (generic — apps that read a repo-root.envat runtime)..claude/commands/test-pr.md— documents--phoneand its public-exposure caveats. Preserves the template's${CLAUDE_PLUGIN_ROOT:-.claude}path convention (NOT hardcoded.claude)..claude/gates.json— adds a documentedhumanTestblock (prepare/launch/launchPhone/worktreeDir). ThelaunchPhonekey was already read by the script but undocumented here.docs/USAGE.md— "Testing on a phone" section + alaunchPhoneexample (cloudflared tunnel --url … --http-host-header localhost).Why
Lets an owner iterate on a UI (touch/drag, small-screen) from a real phone browser instead of a desktop, by tunneling the existing dev server. Opt-in and attended: the tunnel is public while up (exposes the app + any proxied API using the worktree's
.envcreds) and ephemeral (Ctrl-C tears it all down).Notes
humanTest.launchPhonestays empty in the template (projects fill it in).bash -nclean;gates.jsonparses.🤖 Generated with Claude Code