Repository navigation
fix(scripts): scenarios run where localhost resolves to IPv6 first - #34121
Merged
Merged
Conversation
The web dev server bound `localhost`, which is ::1 alone on machines that resolve the name to IPv6 first, while e2e waited on 127.0.0.1 until its startup timeout. The start script now runs the server and the web dev server separately and passes the web one the host e2e uses, and says so at once if it still binds elsewhere. Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
…ll command Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Contributor
ApprovabilityVerdict: Approved at Macroscope's review found this PR approvable — The web scenario harness now uses an explicit IPv4 loopback address for startup and readiness, avoiding IPv6-first localhost mismatches. Effects are confined to test startup; production defaults and mobile startup remain unchanged. You can add or adjust custom eligibility rules. Learn more. |
fancyboi999
added a commit
to fancyboi999/t3code
that referenced
this pull request
Nov 11, 2026
…contrast * origin/main: (480 commits) fix(scripts): scenarios run where localhost resolves to IPv6 first (pingdotgg#34121) feat(opencode): track native image job outcomes and previews (pingdotgg#34089) fix(web): scroll project picker to top on first result (pingdotgg#34113) feat(server): voice models reuse copies already on disk (pingdotgg#34096) fix(desktop): desktop IPC only answers the main app window (pingdotgg#34094) feat(claude): Fable resets are offered and redeemed apart from weekly resets (pingdotgg#34106) feat(scripts): scenarios prove a fix in the real app with e2e, on web and iOS (pingdotgg#34007) fix(web): question panel header text sits centered in its row (pingdotgg#34095) fix(server): a t3 thread send to a finished delegated child notifies its parent (pingdotgg#33446) feat(mobile): pick a voice environment once, then its method (pingdotgg#34073) fix(mobile): attaching larger images no longer crashes with a BigInt error (pingdotgg#34087) fix(server): quitting stops an agent-device daemon left by an earlier server (pingdotgg#33587) fix(web): sent messages keep the numbers written on list items (pingdotgg#33820) fix(desktop): input during window teardown no longer throws in the main process (pingdotgg#33620) fix(web): preserve previews during attachment preparation (pingdotgg#33949) feat(usage): show Muse Code limits, and xAI and Antigravity accounts from a CLIProxyAPI hub (pingdotgg#33800) fix(server): text generation fallback respects project provider settings (pingdotgg#33741) fix(web): sending from an empty citation comment clears the composer (pingdotgg#33440) fix(github): a proxy's 403 with Retry-After is no longer reported as a rate limit (pingdotgg#33676) fix(web,mobile): replace sparkles icons and ban them with a lint rule (pingdotgg#25422) ... # Conflicts: # pnpm-lock.yaml
github-actions Bot
added a commit
to omarcresp/t3code-flake
that referenced
this pull request
Nov 11, 2026
**v0.1.9-nightly.20261111.4501** · 17 changes from 3 contributors - **Separate Claude resets.** Choose between Fable and weekly resets without spending the wrong allowance. - **Reuse voice models.** Set up local speech-to-text faster by reusing compatible models already on your computer. ### Plus 11 more bug fixes. <details> <summary>Full changelog</summary> ## What's Changed * fix(mobile): attaching larger images no longer crashes with a BigInt error by @juliusmarminge in pingdotgg/t3code#34087 * feat(mobile): pick a voice environment once, then its method by @juliusmarminge in pingdotgg/t3code#34073 * fix(server): a t3 thread send to a finished delegated child notifies its parent by @juliusmarminge in pingdotgg/t3code#33446 * fix(web): question panel header text sits centered in its row by @juliusmarminge in pingdotgg/t3code#34095 * feat(scripts): scenarios prove a fix in the real app with e2e, on web and iOS by @juliusmarminge in pingdotgg/t3code#34007 * feat(claude): Fable resets are offered and redeemed apart from weekly resets by @juliusmarminge in pingdotgg/t3code#34106 * fix(desktop): desktop IPC only answers the main app window by @juliusmarminge in pingdotgg/t3code#34094 * feat(server): voice models reuse copies already on disk by @juliusmarminge in pingdotgg/t3code#34096 * fix(web): scroll project picker to top on first result by @Yash-Singh1 in pingdotgg/t3code#34113 * feat(opencode): track native image job outcomes and previews by @Yash-Singh1 in pingdotgg/t3code#34089 * fix(scripts): scenarios run where localhost resolves to IPv6 first by @juliusmarminge in pingdotgg/t3code#34121 * ci: browser secret helper apt step fetches fewer indexes by @t3dotgg in pingdotgg/t3code#33966 * fix(client-runtime): a search query pasted from github.com lists pull requests again by @juliusmarminge in pingdotgg/t3code#30150 * fix(web): tighter outdated-conversation cards in the PR code panel by @Yash-Singh1 in pingdotgg/t3code#34140 * fix(web): MCP App cards no longer flash white in dark mode while the app loads by @juliusmarminge in pingdotgg/t3code#33352 * fix(peer): link requests use the addresses the app already has for a machine by @t3dotgg in pingdotgg/t3code#34139 * fix(server): Find frees searched thread text after one idle minute by @t3dotgg in pingdotgg/t3code#34132 **Full Changelog**: pingdotgg/t3code@v0.1.9-nightly.20261110.4491...v0.1.9-nightly.20261111.4501 </details> Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.1.9-nightly.20261111.4501
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.
Problem
vp run scenariosandvp run scenarios:prove(added in #34007) could not run on machines that resolvelocalhostto::1first, such as the Linux worker VMs. e2e waited onhttp://127.0.0.1:<port>for its full 300-second startup timeout on each commit and then reported "could not run", although the app had started.Confirmed on a fresh worker VM at
3a8c250cb0: the web dev server bindslocalhost, which there is[::1]only.Setting
HOSTfrom outside cannot fix it: the dev runner deletesHOSTin web modes.Fix
The runner and the app now agree on one address by construction.
scripts/e2e.config.tshas oneLOOPBACKconstant (127.0.0.1) used for the app URL, the ready URL, and passed to the start script.scripts/scenarios/start-app.tsstarts the server (dev:server) and the web dev server (dev:web) separately instead of the combineddevmode, and passes the web one--host <that address>and both the same--dev-url. The allowed origin uses the same address.--hosthonoured it cannot happen on current commits.The change is in the start script, not in
apps/web/vite.config.ts, because a proof runs the app of an older base commit with this checkout's scripts.Proof, on a fresh worker VM
Branch at
53698b6cf9, aftervp i:vp run scenarios --target web: 2 passed in 40 s, browser download included. The app log showsLocal: http://127.0.0.1:45959/.vp run scenarios:prove scripts/scenarios/add-project-tab-reaches-submit.e2e.ts --base e509db3a2f^ --head e509db3a2f --upload-command "ghdrop upload": exit 0 in 106 s (it took 11.5 minutes to fail before).{ "failsOnBase": true, "passesOnHead": true, "baseSha": "80e62619f5c01d84579bcf70ea6d566712007412", "headSha": "e509db3a2f21b8e291d05ef11789c6a4ff662e9c", "verdict": "Proven: the scenario fails on base `80e62619f5` and passes on head `e509db3a2f`." }80e62619f5e509db3a2fASSERTION_FAILED: expect.toBeFocused failed
The same two web scenarios also pass on a machine where
localhostresolves to127.0.0.1.Also
The doc gains the command that fetches e2e's browser ahead of time, for a machine image. Verified on the VM: after it, a run downloads nothing.
Not covered
mobilemode) is unchanged.localhostwhile the server binds127.0.0.1. It worked on the IPv6-first VM (Node tries both addresses), as it does in ordinary dev there.vp run check:changedpasses.Work by Claude Fable 5.2 in Claude Code.
🤖 Generated with Claude Code