From b673d06219add7da97573ec5660c0a37487bb371 Mon Sep 17 00:00:00 2001 From: Osamaali313 Date: Tue, 14 Jul 2026 21:30:38 +0300 Subject: [PATCH] fix(code_indexer): honor ensure_ascii config instead of inverting it Three JSON-writing paths computed ensure_ascii = not output_config.get("ensure_ascii", False) and passed it to json.dump. The stray `not` inverts the configured flag: the sibling option on the line above (json_indent) is a direct pass-through, the config field name equals the json.dump parameter, and the shipped default in indexer_config.yaml is `ensure_ascii: false`. So with the default config the code sent ensure_ascii=True, escaping every non-ASCII char (Chinese text, accented identifiers) as \uXXXX in the index/statistics/summary JSON. Drop the `not` so the flag is passed through as configured. --- tools/code_indexer.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tools/code_indexer.py b/tools/code_indexer.py index 57d1f253..cc2b8492 100644 --- a/tools/code_indexer.py +++ b/tools/code_indexer.py @@ -1128,7 +1128,7 @@ async def build_all_indexes(self) -> Dict[str, str]: # Get output configuration output_config = self.indexer_config.get("output", {}) json_indent = output_config.get("json_indent", 2) - ensure_ascii = not output_config.get("ensure_ascii", False) + ensure_ascii = output_config.get("ensure_ascii", False) # Save to JSON file with open(output_file, "w", encoding="utf-8") as f: @@ -1322,7 +1322,7 @@ def generate_statistics_report(self, statistics_data: List[Dict[str, Any]]) -> s # Get output configuration output_config = self.indexer_config.get("output", {}) json_indent = output_config.get("json_indent", 2) - ensure_ascii = not output_config.get("ensure_ascii", False) + ensure_ascii = output_config.get("ensure_ascii", False) with open(stats_path, "w", encoding="utf-8") as f: json.dump( @@ -1338,7 +1338,7 @@ def generate_summary_report(self, output_files: Dict[str, str]) -> str: # Get output configuration from config file output_config = self.indexer_config.get("output", {}) json_indent = output_config.get("json_indent", 2) - ensure_ascii = not output_config.get("ensure_ascii", False) + ensure_ascii = output_config.get("ensure_ascii", False) summary_data = { "indexing_completion_time": datetime.now().isoformat(),