Analyzed 2026-03-21 by code2llm · Primary language: python · Python: 30, JavaScript: 3, Shell: 3
Run analysis multiple times to build a trend chart (≥3 data points needed).
| Module | Path | Lines | Funcs | Classes | CC max |
|---|---|---|---|---|---|
| coverage_html_cb_dd2e7eb5.js | htmlcov | 735 | 65 | 0 | 21 |
| main.py | src/proxym | 638 | 28 | 0 | 12 |
| _orchestrator.py | src/proxym/virt | 510 | 28 | 1 | 7 |
| ctl.py | src/proxym | 507 | 21 | 0 | 11 |
| proxym-dashboard.jsx | frontend | 344 | 22 | 0 | 28 |
| __init__.py | src/proxym/accounts | 343 | 19 | 8 | 12 |
| __init__.py | src/proxym/cache | 333 | 10 | 3 | 9 |
| panel.jsx | src/proxym/dashboard | 332 | 16 | 0 | 15 |
| __init__.py | src/proxym/providers | 330 | 4 | 3 | 8 |
| __init__.py | src/proxym/router | 328 | 10 | 1 | 11 |
| browser_profiles.py | src/proxym/virt | 325 | 11 | 2 | 9 |
| __init__.py | src/proxym/dashboard | 265 | 20 | 4 | 3 |
| strategy.py | src/proxym/router | 253 | 14 | 3 | 9 |
| clonebox_adapter.py | src/proxym/virt | 209 | 17 | 2 | 5 |
| detector.py | src/proxym/context | 208 | 9 | 0 | 9 |
| client.py | src/proxym/mcp | 148 | 4 | 2 | 6 |
| __init__.py | src/proxym/watch | 146 | 5 | 1 | 5 |
| session.py | src/proxym/context | 144 | 8 | 2 | 6 |
| registry.py | src/proxym/mcp | 113 | 8 | 3 | 4 |
| tool_selector.py | src/proxym/context | 101 | 2 | 0 | 5 |
| Severity | Target | Type | Value | Limit |
|---|---|---|---|---|
| critical | main | high_fan_out | 29 | 10 |
| critical | Dashboard | cc_exceeded | 28 | 15 |
| critical | Dashboard | high_fan_out | 25 | 10 |
| critical | chat_completions | high_fan_out | 22 | 10 |
| error | table | cc_exceeded | 21 | 15 |
| error | table_body_rows | cc_exceeded | 21 | 15 |
| error | no_rows | cc_exceeded | 21 | 15 |
| error | footer | cc_exceeded | 21 | 15 |
| error | ratio_columns | cc_exceeded | 21 | 15 |
| error | filter_handler | cc_exceeded | 21 | 15 |
| error | detect_firefox_profiles | high_fan_out | 17 | 10 |
| error | _detect_chromium_family | high_fan_out | 17 | 10 |
| error | AccountManager._dict_to_account | high_fan_out | 16 | 10 |
| error | analyze_request | high_fan_out | 15 | 10 |
| error | sortColumn | high_fan_out | 15 | 10 |
| Function | Fan-out | Note |
|---|---|---|
| main | 29 | Orchestrates 29 calls |
| Dashboard | 25 | Orchestrates 25 calls |
| chat_completions | 22 | OpenAI-compatible chat completions with intelligent routing. Extra headers: X |
| detect_firefox_profiles | 17 | Detect Firefox profiles by parsing profiles.ini. |
| _detect_chromium_family | 17 | Detect profiles for Chrome/Chromium from Local State file. |
| AccountManager._dict_to_account | 16 | Orchestrates 16 calls |
| analyze_request | 15 | Analysis pipeline, 15 stages |
| sortColumn | 15 | Orchestrates 15 calls |
| table | 15 | Orchestrates 15 calls |
| table_body_rows | 15 | Orchestrates 15 calls |
| # | Action | Impact | Effort |
|---|---|---|---|
| 1 | Split Dashboard (CC=28 → target CC<10) | high | low |
| 2 | Split god module htmlcov/coverage_html_cb_dd2e7eb5.js (735L, 0 classes) | high | high |
| 3 | Split god module src/proxym/main.py (638L, 0 classes) | high | high |
| 4 | Split god module src/proxym/ctl.py (507L, 0 classes) | high | high |
| 5 | Split god module src/proxym/virt/_orchestrator.py (510L, 1 classes) | high | high |
| 6 | Split table (CC=21 → target CC<10) | medium | low |
| 7 | Split table_body_rows (CC=21 → target CC<10) | medium | low |
| 8 | Split no_rows (CC=21 → target CC<10) | medium | low |
| 9 | Split footer (CC=21 → target CC<10) | medium | low |
| 10 | Split ratio_columns (CC=21 → target CC<10) | medium | low |
| 11 | Split filter_handler (CC=21 → target CC<10) | medium | low |
| 12 | Split AccountsPanel (CC=15 → target CC<10) | medium | low |
| 13 | Split AccountsPanel (CC=15 → target CC<10) | medium | low |
| 14 | Break circular dependency: src.proxym.virt.profiles.merge_profiles | medium | low |
| 15 | Reduce main fan-out (currently 29) | medium | medium |