From 38c6583084473305598ad46c38e586b6272843dc Mon Sep 17 00:00:00 2001 From: Minidoracat Date: Wed, 11 Jun 2025 03:38:21 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20=E4=BF=AE=E5=BE=A9=E6=B8=AC?= =?UTF-8?q?=E8=A9=A6=E6=AC=8A=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/mcp_feedback_enhanced/__main__.py | 21 +++++++++++++++++++-- src/mcp_feedback_enhanced/web/main.py | 5 +++-- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/src/mcp_feedback_enhanced/__main__.py b/src/mcp_feedback_enhanced/__main__.py index 53aa636..5509699 100644 --- a/src/mcp_feedback_enhanced/__main__.py +++ b/src/mcp_feedback_enhanced/__main__.py @@ -133,8 +133,13 @@ def test_web_ui_simple(): from .web.main import WebUIManager + # 設置測試模式,禁用自動清理避免權限問題 + os.environ["MCP_TEST_MODE"] = "true" + # 設置更高的端口範圍避免系統保留端口 + os.environ["MCP_WEB_PORT"] = "9765" + print("🔧 創建 Web UI 管理器...") - manager = WebUIManager(host="127.0.0.1", port=8765) # 使用固定端口 + manager = WebUIManager(host="127.0.0.1") # 使用動態端口分配 print("🔧 創建測試會話...") with tempfile.TemporaryDirectory() as temp_dir: @@ -185,6 +190,10 @@ def test_web_ui_simple(): traceback.print_exc() return False + finally: + # 清理測試環境變數 + os.environ.pop("MCP_TEST_MODE", None) + os.environ.pop("MCP_WEB_PORT", None) def test_desktop_app(): @@ -378,8 +387,12 @@ def test_full_integration(): from .web.main import WebUIManager + # 設置測試模式 + os.environ["MCP_TEST_MODE"] = "true" + os.environ["MCP_WEB_PORT"] = "9766" + with tempfile.TemporaryDirectory() as temp_dir: - manager = WebUIManager(host="127.0.0.1", port=8766) # 使用不同端口避免衝突 + manager = WebUIManager(host="127.0.0.1") # 使用動態端口分配避免衝突 session_id = manager.create_session(temp_dir, "整合測試會話") if session_id: @@ -409,6 +422,10 @@ def test_full_integration(): traceback.print_exc() return False + finally: + # 清理測試環境變數 + os.environ.pop("MCP_TEST_MODE", None) + os.environ.pop("MCP_WEB_PORT", None) def show_version(): diff --git a/src/mcp_feedback_enhanced/web/main.py b/src/mcp_feedback_enhanced/web/main.py index f79e3b7..e49cea6 100644 --- a/src/mcp_feedback_enhanced/web/main.py +++ b/src/mcp_feedback_enhanced/web/main.py @@ -59,9 +59,10 @@ class WebUIManager: else: debug_log(f"未設定 MCP_WEB_PORT 環境變數,使用預設端口 {preferred_port}") - # 使用增強的端口管理,支持自動清理 + # 使用增強的端口管理,測試模式下禁用自動清理避免權限問題 + auto_cleanup = os.environ.get("MCP_TEST_MODE", "").lower() != "true" self.port = port or PortManager.find_free_port_enhanced( - preferred_port=preferred_port, auto_cleanup=True, host=self.host + preferred_port=preferred_port, auto_cleanup=auto_cleanup, host=self.host ) self.app = FastAPI(title="MCP Feedback Enhanced")