Skip to content

Commit 475eb07

Browse files
anandgupta42claude
andcommitted
fix: add stdio: "pipe" to all execFileSync calls in engine.ts
Without this option, subprocess output from uv, pip install, tar, and python/uv --version leaks into the TUI's text input area. Piping stdio suppresses this noise while still capturing the return value. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent b56cee2 commit 475eb07

1 file changed

Lines changed: 6 additions & 6 deletions

File tree

packages/altimate-code/src/bridge/engine.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ export async function ensureUv(): Promise<void> {
114114
// Extract: tar.gz on unix, zip on windows
115115
if (asset.endsWith(".tar.gz")) {
116116
// Use tar to extract, the binary is inside a directory named like "uv-aarch64-apple-darwin"
117-
execFileSync("tar", ["-xzf", tmpFile, "-C", path.join(dir, "bin")])
117+
execFileSync("tar", ["-xzf", tmpFile, "-C", path.join(dir, "bin")], { stdio: "pipe" })
118118
// The extracted dir has the same name as the asset minus .tar.gz
119119
const extractedDir = path.join(dir, "bin", asset.replace(".tar.gz", ""))
120120
// Move uv binary from extracted dir to engine/bin/uv
@@ -126,7 +126,7 @@ export async function ensureUv(): Promise<void> {
126126
execFileSync("powershell", [
127127
"-Command",
128128
`Expand-Archive -Path '${tmpFile}' -DestinationPath '${path.join(dir, "bin")}' -Force`,
129-
])
129+
], { stdio: "pipe" })
130130
const extractedDir = path.join(dir, "bin", asset.replace(".zip", ""))
131131
await fs.rename(path.join(extractedDir, "uv.exe"), uv)
132132
await fs.rm(extractedDir, { recursive: true, force: true })
@@ -172,7 +172,7 @@ async function ensureEngineImpl(): Promise<void> {
172172
if (!existsSync(venvDir)) {
173173
UI.println(`${UI.Style.TEXT_DIM}Creating Python environment...${UI.Style.TEXT_NORMAL}`)
174174
try {
175-
execFileSync(uv, ["venv", "--python", "3.12", venvDir])
175+
execFileSync(uv, ["venv", "--python", "3.12", venvDir], { stdio: "pipe" })
176176
} catch (e: any) {
177177
Telemetry.track({
178178
type: "engine_error",
@@ -189,7 +189,7 @@ async function ensureEngineImpl(): Promise<void> {
189189
const pythonPath = enginePythonPath()
190190
UI.println(`${UI.Style.TEXT_DIM}Installing altimate-engine ${ALTIMATE_ENGINE_VERSION}...${UI.Style.TEXT_NORMAL}`)
191191
try {
192-
execFileSync(uv, ["pip", "install", "--python", pythonPath, `altimate-engine==${ALTIMATE_ENGINE_VERSION}`])
192+
execFileSync(uv, ["pip", "install", "--python", pythonPath, `altimate-engine==${ALTIMATE_ENGINE_VERSION}`], { stdio: "pipe" })
193193
} catch (e: any) {
194194
Telemetry.track({
195195
type: "engine_error",
@@ -202,9 +202,9 @@ async function ensureEngineImpl(): Promise<void> {
202202
}
203203

204204
// Get python version
205-
const pyVersion = execFileSync(pythonPath, ["--version"]).toString().trim()
205+
const pyVersion = execFileSync(pythonPath, ["--version"], { stdio: "pipe" }).toString().trim()
206206
// Get uv version
207-
const uvVersion = execFileSync(uv, ["--version"]).toString().trim()
207+
const uvVersion = execFileSync(uv, ["--version"], { stdio: "pipe" }).toString().trim()
208208

209209
await writeManifest({
210210
engine_version: ALTIMATE_ENGINE_VERSION,

0 commit comments

Comments
 (0)