Skip to content

fix(preview): open local environment ports on localhost - #7300

Merged
maria-rcks merged 1 commit into
pingdotgg:mainfrom
gbarros-dev:fix/preview-loopback-localhost
Aug 18, 2026
Merged

fix(preview): open local environment ports on localhost#7300
maria-rcks merged 1 commit into
pingdotgg:mainfrom
gbarros-dev:fix/preview-loopback-localhost

Conversation

@gbarros-dev

@gbarros-dev gbarros-dev commented Aug 17, 2026

Copy link
Copy Markdown
Contributor

A Vite server bound to ::1 or 127.0.0.1 was advertised as that exact host. A dual-stack Chromium guest often failed to load the other stack.

Environment-port URLs now resolve to localhost so the guest can reach either bind.

Split out of closed #7127.

Tests: vp test run apps/web/src/browser/browserTargetResolver.test.ts

Implemented with Grok 4.6 through Grok CLI.


Note

Low Risk
Small, localized change to preview URL resolution for local dev; no auth or data-path impact.

Overview
Environment-port preview URLs for loopback-backed environments (127.0.0.1, ::1, etc.) now resolve to http://localhost:<port>/... instead of keeping the literal loopback host in resolvedUrl.

In resolveEnvironmentPortTarget, loopback detection via isLocalLoopbackHost drives that host rewrite so Chromium’s dual-stack resolution can reach dev servers bound only on ::1 or 127.0.0.1. Remote private hosts (e.g. Tailscale/LAN) are unchanged.

Tests expect localhost for IPv6 ::1 and IPv4 127.0.0.1 environment bases, including paths.

Reviewed by Cursor Bugbot for commit 694d783. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Fix local environment ports to resolve to localhost instead of loopback IP

In resolveEnvironmentPortTarget, when the environment host is a loopback address (e.g. 127.0.0.1 or ::1), the resolved URL now uses localhost as the host. Previously, the literal loopback address was used, which could cause issues with dual-stack environments. Behavioral Change: loopback-hosted environments that previously resolved to http://127.0.0.1:<port>/... or http://[::1]:<port>/... now resolve to http://localhost:<port>/....

Macroscope summarized 694d783.

@coderabbitai

coderabbitai Bot commented Aug 17, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 81e2aa92-947c-40ef-86ea-b0f5dcd80dfe

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:XS 0-9 changed lines (additions + deletions). labels Aug 17, 2026
@macroscopeapp

macroscopeapp Bot commented Aug 17, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved 541e423

Straightforward bug fix that maps local loopback addresses (127.0.0.1, ::1) to 'localhost' for better Chromium dual-stack compatibility. Uses an existing utility function, limited to local development environments, and includes test coverage.

You can customize Macroscope's approvability policy. Learn more.

A Vite server bound to ::1 or 127.0.0.1 was advertised as that exact host,
so a dual-stack Chromium guest often failed to load the other stack.

Environment-port URLs now use localhost so the guest can reach either bind.
@gbarros-dev
gbarros-dev force-pushed the fix/preview-loopback-localhost branch from 541e423 to 694d783 Compare August 17, 2026 08:37
@maria-rcks
maria-rcks merged commit a87f691 into pingdotgg:main Aug 18, 2026
17 checks passed
sheehanmunim added a commit to munimtechnologies/mtcode that referenced this pull request Aug 18, 2026
…quit shortcut, pingdotgg#7300 preview ports, pingdotgg#7385 GitHubPullRequestCli refactor
github-actions Bot added a commit to omarcresp/t3code-flake that referenced this pull request Aug 18, 2026
## What's Changed
* refactor(server): simplify error transformation with Effect.mapError in GitHubPullRequestCli by @aoright in pingdotgg/t3code#7385
* fix(preview): open local environment ports on localhost by @gbarros-dev in pingdotgg/t3code#7300
* fix(desktop): prevent quit shortcut spillover by @Bil0000 in pingdotgg/t3code#7397
* fix(desktop): stop overwriting a custom dock icon on launch by @Rishet11 in pingdotgg/t3code#7125


**Full Changelog**: pingdotgg/t3code@v0.0.34-nightly.20260818.1126...v0.0.34-nightly.20260818.1127

Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.34-nightly.20260818.1127
frankdavidcorona pushed a commit to frankdavidcorona/t3code that referenced this pull request Aug 18, 2026
ohbentos pushed a commit to ohbentos/t3code that referenced this pull request Aug 18, 2026
bcotrim pushed a commit to bcotrim/mognet that referenced this pull request Aug 20, 2026
roughcoder added a commit to goodbirdhq/phoenix that referenced this pull request Aug 20, 2026
* test(web): remove duplicate lookup assertion (pingdotgg#7364)

* fix(mobile): show structured input option descriptions (pingdotgg#7321)

* fix(orchestration): do not revive idle tasks from status-free progress (pingdotgg#7172)

* refactor(server): simplify error transformation with Effect.mapError in GitHubPullRequestCli (pingdotgg#7385)

Signed-off-by: aoright <102943475+aoright@users.noreply.github.com>

* fix(preview): open local environment ports on localhost (pingdotgg#7300)

* fix(desktop): prevent quit shortcut spillover (pingdotgg#7397)

* fix(desktop): stop overwriting a custom dock icon on launch (pingdotgg#7125)

* feat(web): show project location in new thread picker (pingdotgg#7392)

Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com>

* fix(packaging): install AUR launcher icons where icon themes look (pingdotgg#7421)

* fix(web): label pull request merge actions (pingdotgg#7381)

* fix(server): avoid PRs inherited from default upstreams (pingdotgg#7317)

* fix(desktop): stop the passkey dialog from popping as soon as sign-in opens (pingdotgg#7437)

* feat(desktop): mute a browser tab (pingdotgg#7252)

* fix(web): improve disconnected composer placeholder (pingdotgg#7122)

Co-authored-by: t3-code[bot] <269035359+t3-code[bot]@users.noreply.github.com>
Co-authored-by: maria <254055478+maria-rcks@users.noreply.github.com>

* fix(desktop): throttle hidden preview rendering (pingdotgg#7445)

Co-authored-by: t3-code[bot] <269035359+t3-code[bot]@users.noreply.github.com>
Co-authored-by: maria <254055478+maria-rcks@users.noreply.github.com>

* fix(server): stop probing Grok, Cursor, and OpenCode unless turned on (pingdotgg#7459)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>

* fix(desktop): boot the main window unthrottled so cold start paints at full speed (pingdotgg#7460)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>

* fix(threads): a merged PR settles its thread only once (pingdotgg#7454)

* feat(cli): npx t3 triage hands broken installs to your own coding agent (pingdotgg#6563)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>

* fix(marketing): Safari gets the arm64 Mac download (pingdotgg#7473)

* feat(web): add shortcuts to the surface dropdown (pingdotgg#7318)

* fix(marketing): never serve the Intel build to Apple Silicon Macs (pingdotgg#7477)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>

* fix(web): animate command palette when closing (pingdotgg#5169)

* fix(desktop): upgrade Clerk OAuth transport (pingdotgg#7479)

* feat(server): run the background service on macOS via launchd (pingdotgg#6286)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>

* fix(web): align sidebar statuses with project names (pingdotgg#7491)

Co-authored-by: GPT-5.6 <noreply@openai.com>

* fix(desktop): close the window before quit cleanup (pingdotgg#6562)

* fix(desktop): stop automatic passkey prompts (pingdotgg#7522)

* docs(user): document phoenix triage and macOS background service

The 2026-08-19 upstream sync added the triage command with no docs/user
entry, and the docs index still called the background service Linux-only
after launchd support landed. Found by PR #61 code review.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Signed-off-by: aoright <102943475+aoright@users.noreply.github.com>
Co-authored-by: t3-code[bot] <269035359+t3-code[bot]@users.noreply.github.com>
Co-authored-by: Nick Anisimov <n.anisimov.23@gmail.com>
Co-authored-by: Maslin Edwin <maslinje@gmail.com>
Co-authored-by: aoright <102943475+aoright@users.noreply.github.com>
Co-authored-by: Guilherme Barros <gbarros1095@gmail.com>
Co-authored-by: Bilal Bakr <62337003+Bil0000@users.noreply.github.com>
Co-authored-by: Rishet11 <154429365+Rishet11@users.noreply.github.com>
Co-authored-by: Wout Stiens <71498452+StiensWout@users.noreply.github.com>
Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com>
Co-authored-by: Augie <augie@luebbers.email>
Co-authored-by: Taras <Taras.Fomin@gmail.com>
Co-authored-by: Gianmarco <gianmarcosimone89@gmail.com>
Co-authored-by: Theo Browne <me@t3.gg>
Co-authored-by: Chris Deeming <chris@xenforo.com>
Co-authored-by: Inaya Yousfi <zied.essaber@gmail.com>
Co-authored-by: maria <254055478+maria-rcks@users.noreply.github.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: Rakshith Bhat <88523594+RakshithBhat03@users.noreply.github.com>
Co-authored-by: GPT-5.6 <noreply@openai.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XS 0-9 changed lines (additions + deletions). vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants