# Graph Report - /Users/gurpreet/Github/Odoo-Modules/fusion_accounting_migration (2026-04-22) ## Corpus Check - 8 files · ~3,755 words - Verdict: corpus is large enough that graph structure adds value. ## Summary - 29 nodes · 29 edges · 10 communities detected - Extraction: 93% EXTRACTED · 7% INFERRED · 0% AMBIGUOUS · INFERRED: 2 edges (avg confidence: 0.8) - Token cost: 0 input · 0 output ## Community Hubs (Navigation) - [[_COMMUNITY_Community 0|Community 0]] - [[_COMMUNITY_Community 1|Community 1]] - [[_COMMUNITY_Community 2|Community 2]] - [[_COMMUNITY_Community 3|Community 3]] - [[_COMMUNITY_Community 4|Community 4]] - [[_COMMUNITY_Community 5|Community 5]] - [[_COMMUNITY_Community 6|Community 6]] - [[_COMMUNITY_Community 7|Community 7]] - [[_COMMUNITY_Community 8|Community 8]] - [[_COMMUNITY_Community 9|Community 9]] ## God Nodes (most connected - your core abstractions) 1. `TestSafetyGuard` - 5 edges 2. `_fusion_check_uninstall_guard()` - 5 edges 3. `IrModuleModule` - 3 edges 4. `FusionMigrationWizard` - 3 edges 5. `Verify the safety guard blocks Enterprise uninstall when migration hasn't run.` - 1 edges 6. `If the per-module migration flag is set, uninstall is allowed. Skip if` - 1 edges 7. `If account_accountant is installed and migration not run, raise.` - 1 edges 8. `Safety guard: blocks Odoo Enterprise accounting uninstall until migration runs.` - 1 edges 9. `Override to invoke the safety guard before allowing uninstall. Both thi` - 1 edges 10. `Override the lower-level uninstall path too (CLI / API uninstall). See` - 1 edges ## Surprising Connections (you probably didn't know these) - None detected - all connections are within the same source files. ## Communities ### Community 0 - "Community 0" Cohesion: 0.29 Nodes (5): _fusion_check_uninstall_guard(), IrModuleModule, Override to invoke the safety guard before allowing uninstall. Both thi, Override the lower-level uninstall path too (CLI / API uninstall). See, If the per-module migration flag is set, uninstall is allowed. Skip if ### Community 1 - "Community 1" Cohesion: 0.33 Nodes (4): If account_accountant is installed and migration not run, raise., Verify the safety guard blocks Enterprise uninstall when migration hasn't run., TestSafetyGuard, TransactionCase ### Community 2 - "Community 2" Cohesion: 0.4 Nodes (2): Safety guard: blocks Odoo Enterprise accounting uninstall until migration runs., Migration wizard skeleton. Per-feature migration logic (account.asset -> fusion ### Community 3 - "Community 3" Cohesion: 0.5 Nodes (2): FusionMigrationWizard, Stub: Phase 0 has no migrations to run. Sub-modules extend this method ### Community 4 - "Community 4" Cohesion: 1.0 Nodes (0): ### Community 5 - "Community 5" Cohesion: 1.0 Nodes (0): ### Community 6 - "Community 6" Cohesion: 1.0 Nodes (0): ### Community 7 - "Community 7" Cohesion: 1.0 Nodes (0): ### Community 8 - "Community 8" Cohesion: 1.0 Nodes (0): ### Community 9 - "Community 9" Cohesion: 1.0 Nodes (1): Verify it's safe to uninstall the given modules. Returns True if all ch ## Knowledge Gaps - **9 isolated node(s):** `Verify the safety guard blocks Enterprise uninstall when migration hasn't run.`, `If the per-module migration flag is set, uninstall is allowed. Skip if`, `If account_accountant is installed and migration not run, raise.`, `Safety guard: blocks Odoo Enterprise accounting uninstall until migration runs.`, `Verify it's safe to uninstall the given modules. Returns True if all ch` (+4 more) These have ≤1 connection - possible missing edges or undocumented components. - **Thin community `Community 4`** (1 nodes): `__init__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 5`** (1 nodes): `__init__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 6`** (1 nodes): `__init__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 7`** (1 nodes): `__init__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 8`** (1 nodes): `__manifest__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 9`** (1 nodes): `Verify it's safe to uninstall the given modules. Returns True if all ch` Too small to be a meaningful cluster - may be noise or needs more connections extracted. ## Suggested Questions _Questions this graph is uniquely positioned to answer:_ - **Why does `_fusion_check_uninstall_guard()` connect `Community 0` to `Community 1`, `Community 2`?** _High betweenness centrality (0.354) - this node is a cross-community bridge._ - **Why does `TestSafetyGuard` connect `Community 1` to `Community 0`?** _High betweenness centrality (0.164) - this node is a cross-community bridge._ - **Why does `FusionMigrationWizard` connect `Community 3` to `Community 2`?** _High betweenness centrality (0.156) - this node is a cross-community bridge._ - **Are the 2 inferred relationships involving `_fusion_check_uninstall_guard()` (e.g. with `.test_uninstall_not_blocked_when_migration_completed()` and `.test_uninstall_blocked_when_migration_pending()`) actually correct?** _`_fusion_check_uninstall_guard()` has 2 INFERRED edges - model-reasoned connections that need verification._ - **What connects `Verify the safety guard blocks Enterprise uninstall when migration hasn't run.`, `If the per-module migration flag is set, uninstall is allowed. Skip if`, `If account_accountant is installed and migration not run, raise.` to the rest of the system?** _9 weakly-connected nodes found - possible documentation gaps or missing edges._