Files
gsinghpal 41d0908ade changes
2026-04-24 21:04:38 -04:00

16 KiB

Graph Report - /Users/gurpreet/Github/Odoo-Modules/fusion_ringcentral (2026-04-22)

Corpus Check

  • 18 files · ~9,229 words
  • Verdict: corpus is large enough that graph structure adds value.

Summary

  • 220 nodes · 293 edges · 38 communities detected
  • Extraction: 89% EXTRACTED · 11% INFERRED · 0% AMBIGUOUS · INFERRED: 32 edges (avg confidence: 0.8)
  • Token cost: 0 input · 0 output

Community Hubs (Navigation)

God Nodes (most connected - your core abstractions)

  1. RcConfig - 22 edges
  2. RcVoicemail - 18 edges
  3. RcCallHistory - 12 edges
  4. _get_active_config() - 12 edges
  5. RcCallDashboard - 11 edges
  6. FusionFaxRC - 9 edges
  7. create() - 8 edges
  8. _run_backfill_voicemail_media() - 7 edges
  9. RcSystrayItem - 7 edges
  10. create() - 4 edges

Surprising Connections (you probably didn't know these)

  • _run_backfill_voicemail_media() --calls--> _get_active_config() [INFERRED] /Users/gurpreet/Github/Odoo-Modules/fusion_ringcentral/models/rc_voicemail.py → /Users/gurpreet/Github/Odoo-Modules/fusion_ringcentral/models/rc_config.py
  • _cron_sync_call_history() --calls--> _get_active_config() [INFERRED] /Users/gurpreet/Github/Odoo-Modules/fusion_ringcentral/models/rc_call_history.py → /Users/gurpreet/Github/Odoo-Modules/fusion_ringcentral/models/rc_config.py
  • _cron_daily_catchup_sync() --calls--> _get_active_config() [INFERRED] /Users/gurpreet/Github/Odoo-Modules/fusion_ringcentral/models/rc_call_history.py → /Users/gurpreet/Github/Odoo-Modules/fusion_ringcentral/models/rc_config.py
  • _cron_fetch_transcripts() --calls--> _get_active_config() [INFERRED] /Users/gurpreet/Github/Odoo-Modules/fusion_ringcentral/models/rc_call_history.py → /Users/gurpreet/Github/Odoo-Modules/fusion_ringcentral/models/rc_config.py
  • _run_historical_fax_import() --calls--> _get_active_config() [INFERRED] /Users/gurpreet/Github/Odoo-Modules/fusion_ringcentral/models/fusion_fax.py → /Users/gurpreet/Github/Odoo-Modules/fusion_ringcentral/models/rc_config.py

Communities

Community 0 - "Community 0"

Cohesion: 0.09 Nodes (19): Revoke tokens and disconnect., Exchange authorization code for access/refresh tokens., Refresh the access token using the refresh token. Uses SELECT ... FOR U, Ensure we have a valid access token, refreshing proactively., Return authorization headers for API calls., Make an authenticated GET request with rate-limit handling., Central API request method with automatic rate-limit retry. RingCentral, Fetch the connected user's extension info. (+11 more)

Community 1 - "Community 1"

Cohesion: 0.09 Nodes (15): _build_timeline(), create(), _cron_transcribe_voicemails(), _match_voicemail_partner(), _normalize_phone(), Process one page of voicemail records with bulk dedup., Import a single voicemail message and download its audio., Download voicemail transcription text from RC. (+7 more)

Community 2 - "Community 2"

Cohesion: 0.08 Nodes (17): create(), _cron_daily_catchup_sync(), _cron_sync_call_history(), _match_partner(), _normalize_phone(), Open the linked contact., Open sale orders for the linked contact., Open invoices for the linked contact. (+9 more)

Community 3 - "Community 3"

Cohesion: 0.11 Nodes (13): create(), FusionFaxRC, _match_fax_partner(), _normalize_fax_phone(), Open Send Fax wizard with this fax's documents pre-attached., Open Send Fax wizard pre-filled with this fax's contact info., Extend fusion.fax with contact matching, smart buttons, forward fax, and sen, Fetch faxes (inbound + outbound) from RC message-store via OAuth. (+5 more)

Community 4 - "Community 4"

Cohesion: 0.1 Nodes (4): Open the RingCentral dialer via the Embeddable widget., Open the RingCentral SMS compose via the Embeddable widget., Open the Send Fax wizard., RcCallDashboard

Community 5 - "Community 5"

Cohesion: 0.16 Nodes (11): _cron_refresh_tokens(), _get_active_config(), _run_historical_import(), _cron_daily_voicemail_catchup(), _cron_sync_voicemails(), Fetch voicemails from RC Message Store for a date range., _run_historical_voicemail_import(), RcRecordingController (+3 more)

Community 6 - "Community 6"

Cohesion: 0.25 Nodes (5): _cron_fetch_transcripts(), _cron_renew_webhooks(), Make an authenticated POST request with rate-limit handling., Renew the webhook subscription., Send an SMS via the RingCentral REST API. :param str to_number: Recipie

Community 7 - "Community 7"

Cohesion: 0.25 Nodes (1): RcSystrayItem

Community 8 - "Community 8"

Cohesion: 0.33 Nodes (2): Placeholder for click-to-call -- actual dialing is handled by the JS widget., ResPartner

Community 9 - "Community 9"

Cohesion: 0.67 Nodes (2): loadRcWidget(), start()

Community 10 - "Community 10"

Cohesion: 0.67 Nodes (2): oauth_callback(), RcOAuthController

Community 11 - "Community 11"

Cohesion: 1.0 Nodes (1): ResConfigSettings

Community 12 - "Community 12"

Cohesion: 1.0 Nodes (0):

Community 13 - "Community 13"

Cohesion: 1.0 Nodes (0):

Community 14 - "Community 14"

Cohesion: 1.0 Nodes (0):

Community 15 - "Community 15"

Cohesion: 1.0 Nodes (0):

Community 16 - "Community 16"

Cohesion: 1.0 Nodes (0):

Community 17 - "Community 17"

Cohesion: 1.0 Nodes (1): Incremental sync: fetch voicemails since last sync.

Community 18 - "Community 18"

Cohesion: 1.0 Nodes (1): Re-scan past 3 days for any missed voicemails.

Community 19 - "Community 19"

Cohesion: 1.0 Nodes (1): Re-fetch audio and transcription for records missing them. Called via c

Community 20 - "Community 20"

Cohesion: 1.0 Nodes (1): Background job: import up to 12 months of voicemails in monthly chunks.

Community 21 - "Community 21"

Cohesion: 1.0 Nodes (1): Build a timeline string from Whisper segments showing silence gaps. Exa

Community 22 - "Community 22"

Cohesion: 1.0 Nodes (1): Batch-transcribe voicemails that have audio but no transcript.

Community 23 - "Community 23"

Cohesion: 1.0 Nodes (1): Auto-link a call to a partner by matching phone numbers. For outbound c

Community 24 - "Community 24"

Cohesion: 1.0 Nodes (1): Strip a phone number to last 10 digits for comparison.

Community 25 - "Community 25"

Cohesion: 1.0 Nodes (1): Incremental sync: only fetch calls since last successful sync. Uses `fu

Community 26 - "Community 26"

Cohesion: 1.0 Nodes (1): Daily catchup: re-scan the past 3 days to catch anything missed. Covers

Community 27 - "Community 27"

Cohesion: 1.0 Nodes (1): Fetch AI transcripts for calls that have recordings but no transcript.

Community 28 - "Community 28"

Cohesion: 1.0 Nodes (1): Match a fax to a contact by fax number, phone, or mobile.

Community 29 - "Community 29"

Cohesion: 1.0 Nodes (1): Background job: import up to 12 months of faxes in monthly chunks.

Community 30 - "Community 30"

Cohesion: 1.0 Nodes (1): Return the first connected config, or False.

Community 31 - "Community 31"

Cohesion: 1.0 Nodes (1): Background job: import up to 12 months of call history. Tracks which mo

Community 32 - "Community 32"

Cohesion: 1.0 Nodes (1): Refresh tokens for connected configs nearing expiry and recover error configs.

Community 33 - "Community 33"

Cohesion: 1.0 Nodes (1): Renew webhook subscriptions for all connected configs.

Community 34 - "Community 34"

Cohesion: 1.0 Nodes (1): Return RingCentral widget configuration for the JS frontend.

Community 35 - "Community 35"

Cohesion: 1.0 Nodes (1): Receive webhook events from RingCentral.

Community 36 - "Community 36"

Cohesion: 1.0 Nodes (1): Proxy a call recording from RingCentral with authentication.

Community 37 - "Community 37"

Cohesion: 1.0 Nodes (1): Handle the OAuth redirect from RingCentral after user authorizes.

Knowledge Gaps

  • 76 isolated node(s): Incremental sync: fetch voicemails since last sync., Re-scan past 3 days for any missed voicemails., Re-fetch audio and transcription for records missing them. Called via c, Background job: import up to 12 months of voicemails in monthly chunks., Fetch voicemails from RC Message Store for a date range. (+71 more) These have ≤1 connection - possible missing edges or undocumented components.
  • Thin community Community 11 (2 nodes): ResConfigSettings, res_config_settings.py Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 12 (2 nodes): onClickCall(), rc_click_to_dial.js Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 13 (1 nodes): __init__.py Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 14 (1 nodes): __init__.py Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 15 (1 nodes): __init__.py Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 16 (1 nodes): __manifest__.py Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 17 (1 nodes): Incremental sync: fetch voicemails since last sync. Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 18 (1 nodes): Re-scan past 3 days for any missed voicemails. Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 19 (1 nodes): Re-fetch audio and transcription for records missing them. Called via c Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 20 (1 nodes): Background job: import up to 12 months of voicemails in monthly chunks. Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 21 (1 nodes): Build a timeline string from Whisper segments showing silence gaps. Exa Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 22 (1 nodes): Batch-transcribe voicemails that have audio but no transcript. Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 23 (1 nodes): Auto-link a call to a partner by matching phone numbers. For outbound c Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 24 (1 nodes): Strip a phone number to last 10 digits for comparison. Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 25 (1 nodes): Incremental sync: only fetch calls since last successful sync. Uses fu` Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 26 (1 nodes): Daily catchup: re-scan the past 3 days to catch anything missed. Covers Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 27 (1 nodes): Fetch AI transcripts for calls that have recordings but no transcript. Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 28 (1 nodes): Match a fax to a contact by fax number, phone, or mobile. Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 29 (1 nodes): Background job: import up to 12 months of faxes in monthly chunks. Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 30 (1 nodes): Return the first connected config, or False. Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 31 (1 nodes): Background job: import up to 12 months of call history. Tracks which mo Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 32 (1 nodes): Refresh tokens for connected configs nearing expiry and recover error configs. Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 33 (1 nodes): Renew webhook subscriptions for all connected configs. Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 34 (1 nodes): Return RingCentral widget configuration for the JS frontend. Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 35 (1 nodes): Receive webhook events from RingCentral. Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 36 (1 nodes): Proxy a call recording from RingCentral with authentication. Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 37 (1 nodes): Handle the OAuth redirect from RingCentral after user authorizes. 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 RcConfig connect Community 0 to Community 5, Community 6? High betweenness centrality (0.112) - this node is a cross-community bridge.
  • Why does RcVoicemail connect Community 1 to Community 0, Community 5? High betweenness centrality (0.079) - this node is a cross-community bridge.
  • Are the 10 inferred relationships involving _get_active_config() (e.g. with _cron_sync_voicemails() and _cron_daily_voicemail_catchup()) actually correct? _get_active_config() has 10 INFERRED edges - model-reasoned connections that need verification.
  • What connects Incremental sync: fetch voicemails since last sync., Re-scan past 3 days for any missed voicemails., Re-fetch audio and transcription for records missing them. Called via c to the rest of the system? 76 weakly-connected nodes found - possible documentation gaps or missing edges.
  • Should Community 0 be split into smaller, more focused modules? Cohesion score 0.09 - nodes in this community are weakly interconnected.
  • Should Community 1 be split into smaller, more focused modules? Cohesion score 0.09 - nodes in this community are weakly interconnected.
  • Should Community 2 be split into smaller, more focused modules? Cohesion score 0.08 - nodes in this community are weakly interconnected.