fix: gemini acp without an unexpected terminal window (#8101)

This commit is contained in:
Lifei Zhou
2026-03-26 14:07:27 +11:00
committed by GitHub
parent d2553978c4
commit 59a96c986f
4 changed files with 33 additions and 8 deletions
+31 -6
View File
@@ -41,7 +41,7 @@ jobs:
- name: Checkout Code
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- uses: actions-rust-lang/setup-rust-toolchain@v1
- uses: actions-rust-lang/setup-rust-toolchain@150fca883cd4034361b621bd4e6a9d34e5143606 # v1
- name: Run cargo fmt
run: cargo fmt --check
@@ -55,7 +55,7 @@ jobs:
- name: Checkout Code
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- uses: actions-rust-lang/setup-rust-toolchain@v1
- uses: actions-rust-lang/setup-rust-toolchain@150fca883cd4034361b621bd4e6a9d34e5143606 # v1
- name: Install Dependencies
run: |
@@ -63,7 +63,7 @@ jobs:
sudo apt install -y libdbus-1-dev gnome-keyring libxcb1-dev
- name: Cache Cargo artifacts
uses: Swatinem/rust-cache@v2
uses: Swatinem/rust-cache@42dc69e1aa15d09112580998cf2ef0119e2e91ae # v2
- name: Build and Test
run: |
@@ -76,6 +76,31 @@ jobs:
RUST_MIN_STACK: 8388608
rust-build-windows:
name: Build Rust Project on Windows
runs-on: windows-latest
needs: changes
if: needs.changes.outputs.code == 'true' || github.event_name != 'pull_request'
steps:
- name: Checkout Code
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Cache Cargo artifacts
uses: Swatinem/rust-cache@42dc69e1aa15d09112580998cf2ef0119e2e91ae # v2
with:
key: windows-ci
- name: Setup Rust
shell: bash
run: |
rustup show
rustup target add x86_64-pc-windows-msvc
- name: Build
run: cargo build --target x86_64-pc-windows-msvc
env:
CARGO_INCREMENTAL: "0"
rust-lint:
name: Lint Rust Code
runs-on: ubuntu-latest
@@ -84,7 +109,7 @@ jobs:
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- uses: actions-rust-lang/setup-rust-toolchain@v1
- uses: actions-rust-lang/setup-rust-toolchain@150fca883cd4034361b621bd4e6a9d34e5143606 # v1
- uses: Swatinem/rust-cache@v2
@@ -106,7 +131,7 @@ jobs:
- name: Checkout Code
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- uses: actions-rust-lang/setup-rust-toolchain@v1
- uses: actions-rust-lang/setup-rust-toolchain@150fca883cd4034361b621bd4e6a9d34e5143606 # v1
- name: Install Dependencies
run: |
@@ -114,7 +139,7 @@ jobs:
sudo apt install -y libdbus-1-dev libxcb1-dev
- name: Cache Cargo artifacts
uses: Swatinem/rust-cache@v2
uses: Swatinem/rust-cache@42dc69e1aa15d09112580998cf2ef0119e2e91ae # v2
- name: Install Node.js Dependencies for OpenAPI Check
run: source ../../bin/activate-hermit && pnpm install --frozen-lockfile
-1
View File
@@ -11,7 +11,6 @@ impl SubprocessExt for Command {
fn set_no_window(&mut self) -> &mut Self {
#[cfg(windows)]
{
use std::os::windows::process::CommandExt;
self.creation_flags(CREATE_NO_WINDOW_FLAG);
}
self
+2
View File
@@ -32,6 +32,7 @@ use crate::permission::permission_confirmation::PrincipalType;
use crate::permission::{Permission, PermissionConfirmation};
use crate::providers::base::{MessageStream, PermissionRouting, Provider};
use crate::providers::errors::ProviderError;
use crate::subprocess::configure_subprocess;
/// Sentinel: resolved to SessionModelState.current_model_id at connect time.
pub const ACP_CURRENT_MODEL: &str = "current";
@@ -938,6 +939,7 @@ async fn spawn_acp_process(config: &AcpProviderConfig) -> Result<Child> {
cmd.env(key, value);
}
configure_subprocess(&mut cmd);
cmd.spawn().context("failed to spawn ACP process")
}
-1
View File
@@ -11,7 +11,6 @@ impl SubprocessExt for Command {
fn set_no_window(&mut self) -> &mut Self {
#[cfg(windows)]
{
use std::os::windows::process::CommandExt;
self.creation_flags(CREATE_NO_WINDOW_FLAG);
}
self