mirror of
https://github.com/Minidoracat/mcp-feedback-enhanced.git
synced 2025-07-27 10:42:25 +08:00
2.5 KiB
2.5 KiB
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
解決方案
採用方案 1:在 can_use_gui()
函數中直接檢查 WSL 環境
修改內容
- 文件:
src\mcp_feedback_enhanced\server.py
- 函數:
can_use_gui()
(第 203-230 行) - 修改邏輯:
- 保持現有的遠端環境檢查
- 在遠端環境檢查後,添加 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
環境變數控制介面選擇
測試建議
- 在 WSL 環境中測試 MCP 服務器啟動
- 驗證日誌顯示正確的環境偵測結果
- 確認使用 Web UI 而非 GUI
- 測試
FORCE_WEB
環境變數仍然有效
完成時間
2025-06-08 01:45:00