Skip to content

Commit 7d6c462

Browse files
committed
fix(review-feedback-1294): address latest review comments
1 parent fe0ef72 commit 7d6c462

2 files changed

Lines changed: 35 additions & 1 deletion

File tree

src/services/system_config_service.py

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -263,6 +263,18 @@ def _build_display_config_map(cls, raw_config_map: Dict[str, str]) -> Dict[str,
263263

264264
return display_map
265265

266+
@staticmethod
267+
def _resolve_display_value(raw_value: str, field_schema: Dict[str, Any]) -> str:
268+
if raw_value:
269+
return raw_value
270+
271+
if field_schema.get("ui_control") == "switch":
272+
default_value = field_schema.get("default_value")
273+
if isinstance(default_value, str) and default_value:
274+
return default_value
275+
276+
return raw_value
277+
266278
def get_config(self, include_schema: bool = True, mask_token: str = "******") -> Dict[str, Any]:
267279
"""Return current config values without server-side secret masking."""
268280
config_map = self._build_display_config_map(self._manager.read_config_map())
@@ -283,9 +295,10 @@ def get_config(self, include_schema: bool = True, mask_token: str = "******") ->
283295
for key in all_keys:
284296
raw_value = config_map.get(key, "")
285297
field_schema = schema_by_key[key]
298+
display_value = self._resolve_display_value(raw_value, field_schema)
286299
item: Dict[str, Any] = {
287300
"key": key,
288-
"value": raw_value,
301+
"value": display_value,
289302
"raw_value_exists": bool(raw_value),
290303
"is_masked": False,
291304
}

tests/test_system_config_service.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,27 @@ def test_get_config_returns_raw_sensitive_values(self) -> None:
6767
self.assertFalse(items["GEMINI_API_KEY"]["is_masked"])
6868
self.assertTrue(items["GEMINI_API_KEY"]["raw_value_exists"])
6969

70+
def test_get_config_uses_switch_default_for_missing_report_model_toggle(self) -> None:
71+
payload = self.service.get_config(include_schema=True)
72+
items = {item["key"]: item for item in payload["items"]}
73+
74+
self.assertEqual(items["REPORT_SHOW_LLM_MODEL"]["value"], "true")
75+
self.assertFalse(items["REPORT_SHOW_LLM_MODEL"]["raw_value_exists"])
76+
77+
self._rewrite_env(
78+
"STOCK_LIST=600519,000001",
79+
"GEMINI_API_KEY=secret-key-value",
80+
"SCHEDULE_TIME=18:00",
81+
"LOG_LEVEL=INFO",
82+
"REPORT_SHOW_LLM_MODEL=false",
83+
)
84+
85+
payload = self.service.get_config(include_schema=True)
86+
items = {item["key"]: item for item in payload["items"]}
87+
88+
self.assertEqual(items["REPORT_SHOW_LLM_MODEL"]["value"], "false")
89+
self.assertTrue(items["REPORT_SHOW_LLM_MODEL"]["raw_value_exists"])
90+
7091
def test_get_setup_status_reports_required_gaps_for_empty_config(self) -> None:
7192
self._rewrite_env("")
7293

0 commit comments

Comments
 (0)