Fix blocking I/O on event loop, cache graphviz, optimize DB sync
Move all save_json/load_json/sync_to_db/DB calls off the event loop with asyncio.to_thread to prevent UI freezes. Cache graphviz SVG by DOT source hash (bounded LRU of 20). Replace DELETE-all/re-INSERT in sync_to_db with UPSERT + targeted DELETE. Add DB indexes, COUNT query, and reduce graph poll interval to 0.5s. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
+3
-2
@@ -129,9 +129,10 @@ class HistoryTree:
|
||||
while current and current in self.nodes:
|
||||
if current in visited:
|
||||
break
|
||||
if current in node_to_branch:
|
||||
break # this node and all ancestors already assigned
|
||||
visited.add(current)
|
||||
if current not in node_to_branch:
|
||||
node_to_branch[current] = b_name
|
||||
node_to_branch[current] = b_name
|
||||
current = self.nodes[current].get('parent')
|
||||
|
||||
# Per-branch color palette (bg, border) — cycles for many branches
|
||||
|
||||
Reference in New Issue
Block a user