mcp-feedback-enhanced/issues/WSL環境預設使用WebUI修復.md
2025-06-08 02:43:28 +08:00

2.5 KiB
Raw Blame History

WSL 環境預設使用 Web UI 修復

任務描述

修復 WSL 環境中 MCP 服務器錯誤地偵測為可使用 GUI 的問題。WSL 環境應該預設使用 Web UI因為大多數 WSL 安裝都是 Linux 環境,沒有桌面應用支援。

問題分析

根據 MCP log 顯示:

[SERVER] 偵測到 WSL 環境(通過 /proc/version 
[SERVER] WSL 環境不被視為遠端環境 
[SERVER] 成功載入 PySide6可使用 GUI 
[SERVER]    GUI 可用: True 

問題在於 can_use_gui() 函數沒有考慮 WSL 環境的特殊性:

  • WSL 環境不被視為遠端環境(正確)
  • 但 WSL 環境中即使 PySide6 可以載入,也應該預設使用 Web UI

解決方案

採用方案 1can_use_gui() 函數中直接檢查 WSL 環境

修改內容

  1. 文件src\mcp_feedback_enhanced\server.py
  2. 函數can_use_gui() (第 203-230 行)
  3. 修改邏輯
    • 保持現有的遠端環境檢查
    • 在遠端環境檢查後,添加 WSL 環境檢查
    • 如果是 WSL 環境,直接返回 False
    • 保持其餘 PySide6 載入檢查邏輯不變

修改前後對比

修改前

def can_use_gui() -> bool:
    if is_remote_environment():
        return False
    
    try:
        from PySide6.QtWidgets import QApplication
        debug_log("成功載入 PySide6可使用 GUI")
        return True
    # ...

修改後

def can_use_gui() -> bool:
    if is_remote_environment():
        return False
    
    # WSL 環境預設使用 Web UI
    if is_wsl_environment():
        debug_log("WSL 環境偵測到,預設使用 Web UI")
        return False
    
    try:
        from PySide6.QtWidgets import QApplication
        debug_log("成功載入 PySide6可使用 GUI")
        return True
    # ...

預期結果

修改後WSL 環境的 MCP log 應該顯示:

[SERVER] 偵測到 WSL 環境(通過 /proc/version 
[SERVER] WSL 環境不被視為遠端環境 
[SERVER] WSL 環境偵測到,預設使用 Web UI
[SERVER]    GUI 可用: False 
[SERVER]    建議介面: Web UI

影響範圍

  • WSL 環境將預設使用 Web UI
  • 不影響其他環境的邏輯
  • 保持向後兼容性
  • 用戶仍可通過 FORCE_WEB 環境變數控制介面選擇

測試建議

  1. 在 WSL 環境中測試 MCP 服務器啟動
  2. 驗證日誌顯示正確的環境偵測結果
  3. 確認使用 Web UI 而非 GUI
  4. 測試 FORCE_WEB 環境變數仍然有效

完成時間

2025-06-08 01:45:00