@@ -689,26 +689,27 @@ def _safe_fetchall(query: str, params: tuple = ()) -> list:
689689 cd = composer .raw
690690
691691 # Verify the conversation belongs to the requested workspace.
692- # Use MRC-based project layouts (no bubble scan) for the resolver.
693- project_layouts_map : dict [str , list ] = load_project_layouts_map (global_db )
694-
695- # Build aliases for workspace resolution (empty bubble_map — summary path)
696- composer_rows_for_aliases = _safe_fetchall (
697- "SELECT key, value FROM cursorDiskKV WHERE key LIKE 'composerData:%'"
698- " AND value IS NOT NULL"
699- " AND value LIKE '%fullConversationHeadersOnly%'"
700- " AND value NOT LIKE '%fullConversationHeadersOnly\" :[]%'"
701- )
702- invalid_workspace_aliases = infer_invalid_workspace_aliases (
703- composer_rows = composer_rows_for_aliases ,
704- project_layouts_map = project_layouts_map ,
705- project_name_map = project_name_map ,
706- workspace_path_map = workspace_path_map ,
707- workspace_entries = workspace_entries ,
708- bubble_map = {},
709- composer_id_to_ws = composer_id_to_ws ,
710- invalid_workspace_ids = invalid_workspace_ids ,
711- )
692+ # Scoped MRC load for this composer only; full map + alias scan only
693+ # when invalid workspace folders need majority-vote reassignment.
694+ project_layouts_map : dict [str , list ] = {}
695+ invalid_workspace_aliases : dict [str , str ] = {}
696+ if invalid_workspace_ids :
697+ project_layouts_map = load_project_layouts_map (global_db )
698+ composer_rows_for_aliases = _safe_fetchall (COMPOSER_ROWS_WITH_HEADERS_SQL )
699+ invalid_workspace_aliases = infer_invalid_workspace_aliases (
700+ composer_rows = composer_rows_for_aliases ,
701+ project_layouts_map = project_layouts_map ,
702+ project_name_map = project_name_map ,
703+ workspace_path_map = workspace_path_map ,
704+ workspace_entries = workspace_entries ,
705+ bubble_map = {},
706+ composer_id_to_ws = composer_id_to_ws ,
707+ invalid_workspace_ids = invalid_workspace_ids ,
708+ )
709+ else :
710+ project_layouts_map [composer_id ] = load_project_layouts_for_composer (
711+ global_db , composer_id ,
712+ )
712713
713714 pid = determine_project_for_conversation (
714715 cd , composer_id , project_layouts_map ,
0 commit comments