Split 49 modules/suites into independent git repos; untrack from monorepo
Some checks failed
fusion_accounting CI / test (fusion_accounting_ai) (push) Has been cancelled
fusion_accounting CI / test (fusion_accounting_core) (push) Has been cancelled
fusion_accounting CI / test (fusion_accounting_migration) (push) Has been cancelled

Each top-level module/suite folder is now its own private repo on GitHub
(gsinghpal/<name>) and gitea (admin/<name>), with a fresh single initial
commit. The monorepo no longer tracks them (added to .gitignore + git rm
--cached); working-tree files are retained on disk and managed in their
own repos. The monorepo keeps shared root files (CLAUDE.md, docs/, scripts/,
tools/, AGENTS.md, WIP/obsolete dirs) and full history.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
gsinghpal
2026-06-07 01:54:34 -04:00
parent 2a7b315e98
commit a66cdefc01
6740 changed files with 51 additions and 1277207 deletions

View File

@@ -1,117 +0,0 @@
# 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)
- [[_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]]
## 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._