@@ -37,8 +37,8 @@ def _extract_chat_id_from_code_block_diff_key(key: str) -> str | None:
3737 return m .group (1 ) if m else None
3838
3939
40- def _loads_disk_kv_value (raw : Any ) -> Any | None :
41- """Parse a cursorDiskKV ``value`` column; ``None`` if missing or unparseable."""
40+ def _try_loads_kv_value (raw : str | None ) -> Any | None :
41+ """Parse a cursorDiskKV ``value`` column; ``None`` on missing or unparseable input (no raise) ."""
4242 if raw is None :
4343 return None
4444 try :
@@ -107,7 +107,7 @@ def _safe_fetchall(query: str, params: tuple = ()) -> list:
107107 parts = row ["key" ].split (":" )
108108 if len (parts ) >= 3 :
109109 bid = parts [2 ]
110- parsed = _loads_disk_kv_value (row ["value" ])
110+ parsed = _try_loads_kv_value (row ["value" ])
111111 if parsed is None :
112112 continue
113113 try :
@@ -124,7 +124,7 @@ def _safe_fetchall(query: str, params: tuple = ()) -> list:
124124 chat_id = _extract_chat_id_from_code_block_diff_key (row ["key" ])
125125 if not chat_id :
126126 continue
127- d = _loads_disk_kv_value (row ["value" ])
127+ d = _try_loads_kv_value (row ["value" ])
128128 if not isinstance (d , dict ):
129129 continue
130130 code_block_diff_map .setdefault (chat_id , []).append ({
@@ -140,7 +140,7 @@ def _safe_fetchall(query: str, params: tuple = ()) -> list:
140140 if len (parts ) < 2 :
141141 continue
142142 chat_id = parts [1 ]
143- ctx = _loads_disk_kv_value (row ["value" ])
143+ ctx = _try_loads_kv_value (row ["value" ])
144144 if not isinstance (ctx , dict ):
145145 continue
146146
@@ -158,7 +158,7 @@ def _safe_fetchall(query: str, params: tuple = ()) -> list:
158158 project_layouts_map .setdefault (chat_id , [])
159159 for layout in layouts :
160160 if isinstance (layout , str ):
161- layout = _loads_disk_kv_value (layout )
161+ layout = _try_loads_kv_value (layout )
162162 if not isinstance (layout , dict ):
163163 continue
164164 if isinstance (layout , dict ) and layout .get ("rootPath" ):
@@ -184,7 +184,7 @@ def _safe_fetchall(query: str, params: tuple = ()) -> list:
184184
185185 for row in composer_rows :
186186 composer_id = row ["key" ].split (":" )[1 ]
187- parsed = _loads_disk_kv_value (row ["value" ])
187+ parsed = _try_loads_kv_value (row ["value" ])
188188 if parsed is None :
189189 continue
190190 try :
0 commit comments