# Graph Report - controlpanel_server (2026-10-21) ## Corpus Check - 160 files · ~68,019 words - Verdict: corpus is large enough that graph structure adds value. - Unclassified: 9 file(s) not represented in the graph (top: (none) 3, .example 2, .toml 2) ## Summary - 83 nodes · 107 edges · 8 communities (4 shown, 4 thin omitted) - Extraction: 100% EXTRACTED · 0% INFERRED · 0% AMBIGUOUS - Token cost: 0 input · 0 output ## Graph Freshness - Built from commit: `47d210bd` - 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) - deploy-setting-catalog-keys.ts - get-user.service.ts - GetUserService - khanegi-layout-variants.ts - sync-superadmin-setting-template.mjs - plugin-catalog.seed.ts - applyCanEdit - jsonOut ## God Nodes (most connected - your core abstractions) 1. `GetUserService` - 15 edges 2. `mergeKhanegiLayoutVariants()` - 6 edges 3. `mergeLayoutElement()` - 5 edges 4. `mergeLayoutThemes()` - 5 edges 5. `applyKhanegiLayoutVariants()` - 4 edges 6. `isRecord()` - 4 edges 7. `createDefaultKhanegiLayoutVariants()` - 4 edges 8. `isLayoutVariantId()` - 3 edges 9. `defaultThemes()` - 3 edges 10. `element()` - 3 edges ## Surprising Connections (you probably didn't know these) - None detected - all connections are within the same source files. ## Import Cycles - None detected. ## Communities (8 total, 4 thin omitted) ### Community 1 - "get-user.service.ts" Cohesion: 0.10 Nodes (20): ref_nestjs_common, src_auth_tenant_host_util, src_auth_tenant_host_util_findtenantforhost, src_auth_tenant_host_util_normalizetenanthost, src_common_iran_time_util, src_common_iran_time_util_irandaysuntil, SubscriptionAlertItem, SubscriptionAlerts (+12 more) ### Community 3 - "khanegi-layout-variants.ts" Cohesion: 0.29 Nodes (13): applyKhanegiLayoutVariants(), createDefaultKhanegiLayoutVariants(), defaultThemes(), element(), isLayoutVariantId(), isRecord(), KhanegiLayoutVariants, LAYOUT_VARIANT_ID (+5 more) ### Community 4 - "sync-superadmin-setting-template.mjs" Cohesion: 0.11 Nodes (15): ref_fs, ref_path, ref_url, __dirname, editableRows, EMPTY_TEMPLATE_VALUE_KEYS, EXTRA_EDITABLE, mustNot (+7 more) ### Community 5 - "plugin-catalog.seed.ts" Cohesion: 0.29 Nodes (3): PLUGIN_CATALOG_SEED, PLUGIN_STORE_DURATIONS, PluginStoreDuration ## Knowledge Gaps - **25 isolated node(s):** `__dirname`, `root`, `sqlPath`, `sql`, `rows` (+20 more) These have ≤1 connection - possible missing edges or undocumented components. (Counts symbols only; 52 node(s) total have ≤1 connection when file, concept and rationale nodes are included.) - **4 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes. ## Suggested Questions _Questions this graph is uniquely positioned to answer:_ - **Why does `GetUserService` connect `GetUserService` to `get-user.service.ts`?** _High betweenness centrality (0.158) - this node is a cross-community bridge._ - **Why does `applyKhanegiLayoutVariants()` connect `khanegi-layout-variants.ts` to `get-user.service.ts`, `GetUserService`?** _High betweenness centrality (0.015) - this node is a cross-community bridge._ - **What connects `__dirname`, `root`, `sqlPath` to the rest of the system?** _25 weakly-connected nodes found - possible documentation gaps or missing edges._ - **Should `get-user.service.ts` be split into smaller, more focused modules?** _Cohesion score 0.09523809523809523 - nodes in this community are weakly interconnected._ - **Should `sync-superadmin-setting-template.mjs` be split into smaller, more focused modules?** _Cohesion score 0.10526315789473684 - nodes in this community are weakly interconnected._