Skip to content

fix: preserve live stdio and exit status on system PATH fallback (4.3.2) - #1080

Merged
leoafarias merged 2 commits into
mainfrom
fix/system-path-fallback-proxy
Oct 15, 2026
Merged

leoafarias merged 2 commits into
mainfrom
fix/system-path-fallback-proxy

Conversation

@leoafarias

Copy link
Copy Markdown
Collaborator

Summary

Aligns the system-PATH fallback in RunConfiguredFlutterWorkflow (when neither a project .fvmrc nor a global FVM version is configured) with VersionRunner.run by passing echoOutput: true, throwOnError: false to ProcessService.run.

Also prepares release 4.3.2 (pubspec.yaml, lib/src/version.dart, and CHANGELOG.md).

Problem

When RunConfiguredFlutterWorkflow executes with a project or global SDK selected, it delegates to FlutterService.run -> VersionRunner.run, which invokes ProcessService.run(..., echoOutput: true, throwOnError: false) (ProcessStartMode.inheritStdio + Ctrl+C cleanup wait + exit-code passthrough).

However, when neither a project nor a global SDK was configured, the fallback to the system PATH called get<ProcessService>().run(cmd, args: args) using the default echoOutput: false, throwOnError: true:

  1. Swallowed stdout/stderr: Process.run buffered output in memory and FlutterCommand / DartCommand / ExecCommand only returned results.exitCode, so commands like fvm flutter --version or fvm dart analyze printed nothing.
  2. Broken interactive stdin: Commands like fvm flutter run could not receive interactive terminal input (r/R/q) without ProcessStartMode.inheritStdio.
  3. Bypassed SIGINT (Ctrl+C) cleanup wait: The Process.run path bypassed the SIGINT cleanup wait introduced in fix: wait for Flutter cleanup after SIGINT #1054.
  4. Thrown ProcessException on non-zero exit codes: Any non-zero exit status from flutter test, dart analyze, or fvm exec threw a ProcessException instead of propagating the child's exit code.

Changes

  • lib/src/workflows/run_configured_flutter.workflow.dart: Pass echoOutput: true, throwOnError: false in the system-PATH fallback call to ProcessService.run.
  • test/src/workflows/run_configured_flutter.workflow_test.dart: Add unit tests verifying that the system-PATH fallback passes echoOutput: true and throwOnError: false and returns non-zero exit codes without throwing ProcessException.
  • pubspec.yaml, lib/src/version.dart, CHANGELOG.md: Bump version to 4.3.2.

Supersedes #1076.

@vercel

vercel Bot commented Oct 15, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
fvm Ready Ready Preview Oct 15, 2026 3:55pm UTC

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 15, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-15T15:19:23.970774Z 01d5643 PR opened
ℹ️ 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" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@leoafarias
leoafarias merged commit 6f4c0a2 into main Oct 15, 2026
11 of 12 checks passed
@leoafarias
leoafarias deleted the fix/system-path-fallback-proxy branch October 15, 2026 15:55

This branch was successfully deployed

1 active deployment
Preview — 1880c77b Deployed Oct 15, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant