From c4de31c77211f682edd7d2f7c71d84cf8329dcb3 Mon Sep 17 00:00:00 2001 From: X-iZhang Date: Mon, 9 Mar 2026 10:38:42 +0000 Subject: [PATCH] fix(ui): map legacy UI backend values to current equivalents in normalization --- EvoScientist/cli/tui_runtime.py | 2 ++ EvoScientist/config/onboard.py | 7 +++---- tests/test_ui_runtime.py | 7 +++++++ 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/EvoScientist/cli/tui_runtime.py b/EvoScientist/cli/tui_runtime.py index d31dc92..3a9b1d2 100644 --- a/EvoScientist/cli/tui_runtime.py +++ b/EvoScientist/cli/tui_runtime.py @@ -9,6 +9,7 @@ from .tui_backends import RichStreamingBackend, StreamingTUIBackend DEFAULT_UI_BACKEND = "cli" SUPPORTED_UI_BACKENDS = ("cli", "tui") +_LEGACY_BACKEND_MAP = {"textual": "tui", "rich": "cli"} def normalize_ui_backend(value: str | None) -> str: @@ -16,6 +17,7 @@ def normalize_ui_backend(value: str | None) -> str: if not value: return DEFAULT_UI_BACKEND normalized = value.strip().lower() + normalized = _LEGACY_BACKEND_MAP.get(normalized, normalized) if normalized in SUPPORTED_UI_BACKENDS: return normalized return DEFAULT_UI_BACKEND diff --git a/EvoScientist/config/onboard.py b/EvoScientist/config/onboard.py index f6e9492..31332c5 100644 --- a/EvoScientist/config/onboard.py +++ b/EvoScientist/config/onboard.py @@ -483,10 +483,9 @@ def _step_ui_backend(config: EvoScientistConfig) -> str: ] # Map legacy values to current ones - default_backend = config.ui_backend - if default_backend == "textual": - default_backend = "tui" - elif default_backend not in ("tui", "cli"): + _legacy_map = {"textual": "tui", "rich": "cli"} + default_backend = _legacy_map.get(config.ui_backend, config.ui_backend) + if default_backend not in ("tui", "cli"): default_backend = "tui" backend = questionary.select( diff --git a/tests/test_ui_runtime.py b/tests/test_ui_runtime.py index c399c7e..dd02c0d 100644 --- a/tests/test_ui_runtime.py +++ b/tests/test_ui_runtime.py @@ -16,6 +16,13 @@ def test_normalize_ui_backend_accepts_known_values(): assert normalize_ui_backend("TUI") == "tui" +def test_normalize_ui_backend_maps_legacy_values(): + assert normalize_ui_backend("textual") == "tui" + assert normalize_ui_backend("Textual") == "tui" + assert normalize_ui_backend("rich") == "cli" + assert normalize_ui_backend("Rich") == "cli" + + def test_normalize_ui_backend_unknown_falls_back_to_cli(): assert normalize_ui_backend("unknown-ui") == "cli"