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

5.9 KiB

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

Corpus Check

  • 8 files · ~5,771 words
  • Verdict: corpus is large enough that graph structure adds value.

Summary

  • 54 nodes · 65 edges · 12 communities detected
  • Extraction: 97% EXTRACTED · 3% INFERRED · 0% AMBIGUOUS · INFERRED: 2 edges (avg confidence: 0.8)
  • Token cost: 0 input · 0 output

Community Hubs (Navigation)

God Nodes (most connected - your core abstractions)

  1. AIBillExtractor - 14 edges
  2. message_new() - 4 edges
  3. FusionAccountsLog - 3 edges
  4. ResPartner - 3 edges
  5. _fa_match_vendor_from_email() - 2 edges
  6. ResConfigSettings - 2 edges
  7. AccountMove - 1 edges
  8. Block the vendor from this log entry from email bill creation. - 1 edges
  9. Enable the vendor from this log entry for email bill creation. - 1 edges
  10. Get the OpenAI API key from settings. - 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.21 Nodes (6): Extract bill data from email body and attachments using OpenAI. Args:, Get the OpenAI API key from settings., Strip HTML tags from text., Get the configured AI model., Check if AI extraction is enabled., Extract bill data using raw attachments from msg_dict. Raw attachments

Community 1 - "Community 1"

Cohesion: 0.23 Nodes (6): AIBillExtractor, Convert raw PDF bytes to base64 PNG images., Extract text from raw PDF bytes., Convert PDF attachment pages to base64 PNG images using PyMuPDF., Extract text content from PDF as fallback when image conversion fails., Get the max PDF pages to process.

Community 2 - "Community 2"

Cohesion: 0.29 Nodes (5): AccountMove, _fa_match_vendor_from_email(), message_new(), Apply AI-extracted data to a draft vendor bill. The PDF/invoice is the, Match AI-extracted vendor name to an Odoo partner. Tries multiple strat

Community 3 - "Community 3"

Cohesion: 0.29 Nodes (3): FusionAccountsLog, Block the vendor from this log entry from email bill creation., Enable the vendor from this log entry for email bill creation.

Community 4 - "Community 4"

Cohesion: 0.33 Nodes (3): Block selected vendors from email bill creation., Enable selected vendors for email bill creation., ResPartner

Community 5 - "Community 5"

Cohesion: 0.67 Nodes (1): ResConfigSettings

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): Multi-level vendor matching from sender email. Tries three levels:

Community 10 - "Community 10"

Cohesion: 1.0 Nodes (1): Override to add vendor matching and blocking for incoming bills. When a

Community 11 - "Community 11"

Cohesion: 1.0 Nodes (1): Return statistics for the dashboard.

Knowledge Gaps

  • 21 isolated node(s): AccountMove, Multi-level vendor matching from sender email. Tries three levels:, Override to add vendor matching and blocking for incoming bills. When a, Block the vendor from this log entry from email bill creation., Enable the vendor from this log entry for email bill creation. (+16 more) These have ≤1 connection - possible missing edges or undocumented components.
  • 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): Multi-level vendor matching from sender email. Tries three levels: Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 10 (1 nodes): Override to add vendor matching and blocking for incoming bills. When a Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 11 (1 nodes): Return statistics for the dashboard. 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 AIBillExtractor connect Community 1 to Community 0, Community 2? High betweenness centrality (0.163) - this node is a cross-community bridge.
  • Why does message_new() connect Community 2 to Community 0? High betweenness centrality (0.062) - this node is a cross-community bridge.
  • Are the 2 inferred relationships involving message_new() (e.g. with .extract_bill_data_from_raw() and .apply_extracted_data()) actually correct? message_new() has 2 INFERRED edges - model-reasoned connections that need verification.
  • What connects AccountMove, Multi-level vendor matching from sender email. Tries three levels:, Override to add vendor matching and blocking for incoming bills. When a to the rest of the system? 21 weakly-connected nodes found - possible documentation gaps or missing edges.