2026-10-21 11:13:10 +03:30
# Graph Report - controlpanel_user (2026-10-21)
2026-10-13 19:28:08 +03:30
## Corpus Check
2026-10-21 11:13:10 +03:30
- 60 files · ~48,153 words
2026-10-13 19:28:08 +03:30
- Verdict: corpus is large enough that graph structure adds value.
- Unclassified: 38 file(s) not represented in the graph (top: .ttf 16, .eot 6, .woff 6)
## Summary
2026-10-21 11:13:10 +03:30
- 223 nodes · 325 edges · 16 communities (14 shown, 2 thin omitted)
- Extraction: 99% EXTRACTED · 1% INFERRED · 0% AMBIGUOUS · INFERRED: 2 edges (avg confidence: 0.85)
2026-10-13 19:28:08 +03:30
- Token cost: 0 input · 0 output
## Graph Freshness
2026-10-21 11:13:10 +03:30
- Built from commit: `1490adfb`
2026-10-13 19:28:08 +03:30
- Run `git rev-parse HEAD` and compare to check if the graph is stale.
- Run `graphify update .` after code changes (no API cost).
## Community Hubs (Navigation)
- khanegiSettingCatalog.ts
- formatValueForSave
- resolveSwitchChecked
- normalizeSettingRow
- superAdminSettingKeys.ts
- isSettingVisible
2026-10-13 19:28:25 +03:30
- UiConfigPage.vue
- defaultKhanegiUiConfig.ts
- LayoutVariantsEditor.vue
- khanegiLayoutVariants.ts
- ensureSchemes
2026-10-21 11:13:10 +03:30
- syncSidebarNavOrder
2026-10-13 19:28:25 +03:30
- syncBottomNavOrder
- normalizeMainWalletProductsValue
2026-10-21 11:13:10 +03:30
- ProgramSettingsPage.vue
- khanegiSystemSettingGroups.ts
2026-10-13 19:28:08 +03:30
## God Nodes (most connected - your core abstractions)
2026-10-21 11:13:10 +03:30
1. `formatValueForSave()` - 7 edges
2. `rowKey()` - 7 edges
3. `ensureSchemes()` - 7 edges
4. `touch()` - 7 edges
5. `persistConfig()` - 6 edges
2026-10-13 19:28:25 +03:30
6. `syncBottomNavOrder()` - 6 edges
2026-10-21 11:13:10 +03:30
7. `getKhanegiNavSample()` - 6 edges
8. `mergeKhanegiLayoutVariants()` - 6 edges
9. `resolveSwitchChecked()` - 5 edges
10. `switchValueFromChecked()` - 5 edges
2026-10-13 19:28:08 +03:30
## Surprising Connections (you probably didn't know these)
2026-10-13 19:28:25 +03:30
- `formatValueForSave()` --calls--> `normalizeMainWalletProductsValue()` [EXTRACTED]
2026-10-21 11:13:10 +03:30
src/config/khanegiSettingCatalog.ts → src/config/khanegiSettingCatalog.ts _Bridges community 13 → community 1_
2026-10-13 19:28:08 +03:30
- `formatValueForSave()` --calls--> `resolveSwitchChecked()` [EXTRACTED]
2026-10-21 11:13:10 +03:30
src/config/khanegiSettingCatalog.ts → src/config/khanegiSettingCatalog.ts _Bridges community 2 → community 1_
- `applySharedNavSample()` --calls--> `syncBottomNavOrder()` [EXTRACTED]
src/pages/UiConfigPage.vue → src/pages/UiConfigPage.vue _Bridges community 10 → community 12_
- `applySharedNavSample()` --calls--> `syncSidebarNavOrder()` [EXTRACTED]
src/pages/UiConfigPage.vue → src/pages/UiConfigPage.vue _Bridges community 10 → community 11_
2026-10-13 19:28:08 +03:30
## Import Cycles
- None detected.
2026-10-21 11:13:10 +03:30
## Communities (16 total, 2 thin omitted)
2026-10-13 19:28:08 +03:30
### Community 0 - "khanegiSettingCatalog.ts"
Cohesion: 0.06
2026-10-13 19:28:25 +03:30
Nodes (25): ACTIVATE_DEACTIVATE_SWITCH_KEYS, conditionalOrderEnabledSetting, HIDDEN_LEGACY_SETTING_KEYS, KEY_HELP_FALLBACK, KEY_LABEL_FALLBACK, KEY_TYPE_FALLBACK, MAIN_WALLET_PRODUCTS_DEFAULT, PARTNER_SERVER_URLS_MAX (+17 more)
2026-10-13 19:28:08 +03:30
### Community 1 - "formatValueForSave"
2026-10-13 19:28:25 +03:30
Cohesion: 0.47
Nodes (6): formatSupportMessengers(), formatValueForSave(), isSupportMessengerType(), normalizeTimeValue(), parseSupportMessengers(), parseSupportMessengersDraft()
2026-10-13 19:28:08 +03:30
### Community 2 - "resolveSwitchChecked"
Cohesion: 0.29
Nodes (7): isActivateDeactivateSwitch(), isReferralRequired(), isSwitchOn(), referralRequiredToString(), resolveSwitchChecked(), switchToString(), switchValueFromChecked()
### Community 3 - "normalizeSettingRow"
Cohesion: 0.47
Nodes (6): helpText(), normalizeSettingRow(), resolveSettingCanEdit(), resolveSettingDescription(), resolveSettingFieldType(), resolveSettingTitle()
2026-10-13 19:28:25 +03:30
### Community 6 - "UiConfigPage.vue"
Cohesion: 0.05
2026-10-21 11:13:10 +03:30
Nodes (30): ref_theme, accentStyle, activePreviewColors, activeTab, advancedJson, auth, bottomDragFrom, bottomNavChoices (+22 more)
2026-10-13 19:28:25 +03:30
### Community 7 - "defaultKhanegiUiConfig.ts"
Cohesion: 0.15
Nodes (18): ref_config, applyKhanegiNavSample(), cloneJson(), createDefaultKhanegiUiConfig(), getKhanegiBottomNavChoices(), getKhanegiNavSample(), KhanegiNavItem, mapLegacyNavItems() (+10 more)
### Community 8 - "LayoutVariantsEditor.vue"
Cohesion: 0.15
Nodes (18): ref_ant_design_vue, ref_vue, addOption(), addTheme(), DraftKind, draftOf(), drafts, elementAt() (+10 more)
### Community 9 - "khanegiLayoutVariants.ts"
Cohesion: 0.23
Nodes (14): applyKhanegiLayoutVariants(), createDefaultKhanegiLayoutVariants(), defaultThemes(), element(), isLayoutVariantId(), isRecord(), KhanegiLayoutVariants, LAYOUT_OPTION_KEY (+6 more)
### Community 10 - "ensureSchemes"
2026-10-21 11:13:10 +03:30
Cohesion: 0.31
Nodes (10): applyAdvancedJson(), applySharedNavSample(), buildSavePayload(), ensureSchemes(), load(), onColorEdit(), persistConfig(), save() (+2 more)
2026-10-13 19:28:25 +03:30
2026-10-21 11:13:10 +03:30
### Community 11 - "syncSidebarNavOrder"
Cohesion: 0.50
Nodes (4): onSidebarDragEnd(), onSidebarDragOver(), onSidebarDrop(), syncSidebarNavOrder()
2026-10-13 19:28:25 +03:30
### Community 12 - "syncBottomNavOrder"
Cohesion: 0.40
Nodes (5): onBottomDragEnd(), onBottomDragOver(), onBottomDrop(), onBottomSlotMenuChange(), syncBottomNavOrder()
### Community 13 - "normalizeMainWalletProductsValue"
Cohesion: 0.67
Nodes (3): formatMainWalletProductIds(), normalizeMainWalletProductsValue(), parseMainWalletProductIds()
2026-10-21 11:13:10 +03:30
### Community 14 - "ProgramSettingsPage.vue"
Cohesion: 0.07
Nodes (34): ref_ant_design_icons_vue, ref_api, ref_components, ref_stores, ref_vue_router, applyItems(), asRow(), auth (+26 more)
### Community 15 - "khanegiSystemSettingGroups.ts"
Cohesion: 0.22
Nodes (3): KHANEGI_SYSTEM_SETTING_GROUPS, SettingGroupDef, SettingSubsectionDef
2026-10-13 19:28:08 +03:30
## Knowledge Gaps
2026-10-21 11:13:10 +03:30
- **95 isolated node(s):** `conditionalOrderEnabledSetting` , `priceChannelAccessSetting` , `priceProviderSetting` , `showToUsersChatSetting` , `SettingFieldType` (+90 more)
These have ≤1 connection - possible missing edges or undocumented components. (Counts symbols only; 124 node(s) total have ≤1 connection when file, concept and rationale nodes are included.)
2026-10-13 19:28:08 +03:30
- **2 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes.
## Suggested Questions
_Questions this graph is uniquely positioned to answer:_
2026-10-13 19:28:25 +03:30
- **Why does `formatValueForSave()` connect `formatValueForSave` to `khanegiSettingCatalog.ts` , `resolveSwitchChecked` , `normalizeMainWalletProductsValue` ?**
_High betweenness centrality (0.000) - this node is a cross-community bridge._
2026-10-21 11:13:10 +03:30
- **What connects `conditionalOrderEnabledSetting` , `priceChannelAccessSetting` , `priceProviderSetting` to the rest of the system?**
_95 weakly-connected nodes found - possible documentation gaps or missing edges._
2026-10-13 19:28:08 +03:30
- **Should `khanegiSettingCatalog.ts` be split into smaller, more focused modules?**
2026-10-13 19:28:25 +03:30
_Cohesion score 0.058823529411764705 - nodes in this community are weakly interconnected._
- **Should `UiConfigPage.vue` be split into smaller, more focused modules?**
2026-10-21 11:13:10 +03:30
_Cohesion score 0.05263157894736842 - nodes in this community are weakly interconnected._
2026-10-13 19:28:25 +03:30
- **Should `LayoutVariantsEditor.vue` be split into smaller, more focused modules?**
2026-10-21 11:13:10 +03:30
_Cohesion score 0.14736842105263157 - nodes in this community are weakly interconnected._
- **Should `ProgramSettingsPage.vue` be split into smaller, more focused modules?**
_Cohesion score 0.07254623044096728 - nodes in this community are weakly interconnected._