# Graph Report - /Users/gurpreet/Github/Odoo-Modules/fusion_notes (2026-04-22) ## Corpus Check - 8 files · ~4,943 words - Verdict: corpus is large enough that graph structure adds value. ## Summary - 48 nodes · 58 edges · 16 communities detected - Extraction: 91% EXTRACTED · 9% INFERRED · 0% AMBIGUOUS · INFERRED: 5 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]] - [[_COMMUNITY_Community 10|Community 10]] - [[_COMMUNITY_Community 11|Community 11]] - [[_COMMUNITY_Community 12|Community 12]] - [[_COMMUNITY_Community 13|Community 13]] - [[_COMMUNITY_Community 14|Community 14]] - [[_COMMUNITY_Community 15|Community 15]] ## God Nodes (most connected - your core abstractions) 1. `AudioRecorder` - 9 edges 2. `SpeechRecognizer` - 5 edges 3. `voiceStopRecording()` - 5 edges 4. `_voiceNotify()` - 5 edges 5. `voiceStartRecording()` - 4 edges 6. `voiceCancelNote()` - 4 edges 7. `_voiceFormatText()` - 4 edges 8. `voicePostNote()` - 3 edges 9. `_voiceCleanup()` - 3 edges 10. `ResConfigSettings` - 2 edges ## Surprising Connections (you probably didn't know these) - `voiceStopRecording()` --calls--> `blobToBase64()` [INFERRED] /Users/gurpreet/Github/Odoo-Modules/fusion_notes/static/src/js/voice_note_button.js → /Users/gurpreet/Github/Odoo-Modules/fusion_notes/static/src/js/voice_note_service.js ## Communities ### Community 0 - "Community 0" Cohesion: 0.28 Nodes (1): AudioRecorder ### Community 1 - "Community 1" Cohesion: 0.33 Nodes (2): blobToBase64(), SpeechRecognizer ### Community 2 - "Community 2" Cohesion: 0.4 Nodes (2): getSettings(), voiceStartRecording() ### Community 3 - "Community 3" Cohesion: 0.33 Nodes (1): FusionNotesController ### Community 4 - "Community 4" Cohesion: 0.67 Nodes (4): _voiceFormatText(), _voiceNotify(), voiceStopRecording(), voiceToggleAiFormat() ### Community 5 - "Community 5" Cohesion: 0.67 Nodes (1): ResConfigSettings ### Community 6 - "Community 6" Cohesion: 0.67 Nodes (2): voiceCancelRecording(), _voiceCleanup() ### Community 7 - "Community 7" Cohesion: 0.67 Nodes (3): toggleComposer(), voiceCancelNote(), voicePostNote() ### Community 8 - "Community 8" Cohesion: 1.0 Nodes (0): ### Community 9 - "Community 9" Cohesion: 1.0 Nodes (0): ### Community 10 - "Community 10" Cohesion: 1.0 Nodes (0): ### Community 11 - "Community 11" Cohesion: 1.0 Nodes (0): ### Community 12 - "Community 12" Cohesion: 1.0 Nodes (1): Return Fusion Notes settings for the frontend. ### Community 13 - "Community 13" Cohesion: 1.0 Nodes (1): Transcribe audio using OpenAI Whisper API. Args: audio_base ### Community 14 - "Community 14" Cohesion: 1.0 Nodes (1): Format transcribed text into a professional note using GPT. Args: ### Community 15 - "Community 15" Cohesion: 1.0 Nodes (1): Post a voice note to the specified record's chatter. Args: ## Knowledge Gaps - **5 isolated node(s):** `FusionNotesController`, `Return Fusion Notes settings for the frontend.`, `Transcribe audio using OpenAI Whisper API. Args: audio_base`, `Format transcribed text into a professional note using GPT. Args:`, `Post a voice note to the specified record's chatter. Args:` These have ≤1 connection - possible missing edges or undocumented components. - **Thin community `Community 8`** (1 nodes): `__init__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 9`** (1 nodes): `__init__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 10`** (1 nodes): `__init__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 11`** (1 nodes): `__manifest__.py` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 12`** (1 nodes): `Return Fusion Notes settings for the frontend.` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 13`** (1 nodes): `Transcribe audio using OpenAI Whisper API. Args: audio_base` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 14`** (1 nodes): `Format transcribed text into a professional note using GPT. Args:` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 15`** (1 nodes): `Post a voice note to the specified record's chatter. Args:` 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 `AudioRecorder` connect `Community 0` to `Community 1`?** _High betweenness centrality (0.137) - this node is a cross-community bridge._ - **Why does `voiceStopRecording()` connect `Community 4` to `Community 0`, `Community 1`, `Community 2`?** _High betweenness centrality (0.102) - this node is a cross-community bridge._ - **Why does `SpeechRecognizer` connect `Community 1` to `Community 0`, `Community 6`?** _High betweenness centrality (0.066) - this node is a cross-community bridge._ - **Are the 2 inferred relationships involving `voiceStopRecording()` (e.g. with `.stop()` and `blobToBase64()`) actually correct?** _`voiceStopRecording()` has 2 INFERRED edges - model-reasoned connections that need verification._ - **What connects `FusionNotesController`, `Return Fusion Notes settings for the frontend.`, `Transcribe audio using OpenAI Whisper API. Args: audio_base` to the rest of the system?** _5 weakly-connected nodes found - possible documentation gaps or missing edges._