Skip to content

Windows原生环境,CCB使用子代理频繁闪烁终端的问题 #1291

Description

@GDWhisper

问题描述: 在 Windows PowerShell 中运行 ccb 时,每当子代理执行 bash 命令,都会弹出一个闪烁的终端,持续数秒后关闭。多次子代理调用会导致窗口频繁闪烁,严重影响其他操作。

复现步骤:

  1. 在 Windows 上使用npm安装 ccb
  2. 在 PowerShell 中运行 ccb 并执行任务触发子代理
  3. 每次子代理执行 bash 命令时,都会看到一个黑色控制台窗口闪烁出现并消失

通过LLM拉源码排查,src/utils/shell/bashProvider.tsdetached 字段硬编码为 true。在 Windows 上,child_process.spawn
detached: true 会为子进程创建新的控制台窗口(CREATE_NEW_CONSOLE),这是 POSIX 和 Windows 的行为差异。Windows
上没有 SIGINT 信号隔离的需求,detached 对信号管理无实际意义(后台进程清理通过 treeKill 实现)。

建议的修复方式:
detached 改为平台感知:
detached: getPlatform() === 'windows' ? false : true,

Windows 上保持 false(不创建新窗口),POSIX 保持 true(进程组隔离)。


此修复在我的Win11电脑上运行良好,再无弹窗骚扰,烦请核实这个问题,谢谢。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions