Run all dev apps through Turbo TUI - #102
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 7c02b4fb65
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| existsSync(path.join(ROOT, "apps/checkout/certs", host + suffix)), | ||
| ), | ||
| ); | ||
| return host && host !== "pay.xend.global" ? 443 : 5173; |
There was a problem hiding this comment.
Check the configured port for an explicit pay host
When XEND_CHECKOUT_HOST=pay.xend.global and its certificate exists, vite.config.ts treats the explicitly requested host as port 443, but this branch reports port 5173. The suite therefore aborts if an unrelated process owns 5173, or misses an existing listener on 443 and lets the checkout task fail later; derive the preflight port using the same explicit-host mapping as the Vite configuration.
Useful? React with 👍 / 👎.
| for (const signal of ["SIGINT", "SIGTERM"]) | ||
| process.once(signal, () => child.kill(signal)); |
There was a problem hiding this comment.
Forward termination to the backend process tree
When Turbo terminates this task by signaling the wrapper, child.kill(signal) targets only the intermediate npm process. The lifecycle shell and the nest | tee descendants launched by dev:standalone do not receive that signal, so they can keep the backend bound to port 8000 while the wrapper remains waiting, preventing a clean Ctrl+C or restart; terminate the process group or avoid the nested npm pipeline.
Useful? React with 👍 / 👎.
7c02b4f to
5a214ce
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 5a214cef67
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| @@ -0,0 +1,81 @@ | |||
| import { test } from "node:test"; | |||
There was a problem hiding this comment.
Wire the launcher tests into the test task
The new test file is outside every workspace and no package script or workflow invokes it, so these checks never run in CI. I checked .github/workflows/ci.yml, which only executes npx turbo run lint check-types test; the root test script delegates back to Turbo, and no workspace test script references scripts/dev.test.mjs. Add an explicit test script/root task or CI invocation so regressions in ngrok selection, readiness, and redaction are detected.
Useful? React with 👍 / 👎.
| throw new Error("Invalid pilot order"); | ||
| const upstream = await fetch( | ||
| "http://127.0.0.1:8008/v1/payment_intents", | ||
| `${process.env.XEND_BACKEND_URL ?? "http://127.0.0.1:8008"}/v1/payment_intents`, |
There was a problem hiding this comment.
Normalize the backend URL before appending the API path
When a standalone user sets XEND_BACKEND_URL with the common trailing-slash form, such as http://127.0.0.1:8008/, this interpolation requests //v1/payment_intents instead of the registered /v1/payment_intents route, so the local payment pilot receives a 404 even though the backend is healthy. Strip the trailing slash or construct the endpoint with URL-aware joining.
Useful? React with 👍 / 👎.
| port: Number( | ||
| process.env.PORT ?? envValue("apps/relayer/.env", "PORT") ?? 8787, | ||
| ), |
There was a problem hiding this comment.
Reject a relayer port that conflicts with the backend
If apps/relayer/.env configures PORT=8000, which the relayer accepts, this preflight records both the newly forced backend port and the relayer port as 8000 but passes while the port is initially free. The launcher then starts the backend and relayer on that same port, so one task fails and XEND_RELAYER_URL may point back to the backend; detect duplicate requested ports or reserve a distinct suite port for the relayer.
Useful? React with 👍 / 👎.
Summary
Validation