Files
zkxw/web-admin/graphify-out/GRAPH_REPORT.md
T
zlwuandCursor c9711d0dce feat(oa): terminate on return and copy form to start a new instance
Align with DingTalk: returned/rejected/cancelled are terminal; progress
shows return on the approver task only; done list includes returned;
deprecate same-instance resubmit and source-instance linking.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-15 15:19:20 +08:00

24 KiB

Graph Report - src (2026-07-15)

Corpus Check

  • Large corpus: 879 files · ~582,028 words. Semantic extraction will be expensive (many Claude tokens). Consider running on a subfolder, or use --no-semantic to run AST-only.

Summary

  • 2988 nodes · 4183 edges · 61 communities detected
  • Extraction: 78% EXTRACTED · 22% INFERRED · 0% AMBIGUOUS · INFERRED: 939 edges (avg confidence: 0.8)
  • Token cost: 0 input · 0 output

Community Hubs (Navigation)

God Nodes (most connected - your core abstractions)

  1. get() - 292 edges
  2. push() - 84 edges
  3. emit() - 27 edges
  4. WebSocketClient - 26 edges
  5. set() - 20 edges
  6. handleDynamicRoutes() - 18 edges
  7. parseProtocolStandardImportText() - 17 edges
  8. scopeQuery() - 16 edges
  9. MenuProcessor - 16 edges
  10. TableCache - 14 edges

Surprising Connections (you probably didn't know these)

  • dash() --calls--> formatDisplayOrDash() [INFERRED] components/business/infusion-schedule-outbound-chain-view/index.vue → utils/datetime-display.ts
  • dash() --calls--> formatDisplayOrDash() [INFERRED] components/business/clinical-schedule-payment-detail/index.vue → utils/datetime-display.ts
  • fmtMoney() --calls--> formatMoneyDisplay() [INFERRED] components/business/clinical-schedule-payment-detail/index.vue → utils/money-format.ts
  • defaultInstallmentRatios() --calls--> push() [INFERRED] utils/protocol-payment-installment.ts → views/operations/storage-facility/index.vue
  • calcUnpaidAmountsByRatios() --calls--> push() [INFERRED] utils/protocol-payment-installment.ts → views/operations/storage-facility/index.vue

Communities

Community 0 - "Community 0"

Cohesion: 0.01 Nodes (171): fetchAccessLogList(), fetchActiveRegions(), fetchCategoryList(), fetchCategoryParameters(), fetchCellProductPriceList(), fetchCellProductSpecList(), fetchCellProductTypeList(), fetchChannelAccount() (+163 more)

Community 1 - "Community 1"

Cohesion: 0.01 Nodes (129): fetchUploadAttachment(), fetchMyProductionTasks(), fetchMyQcTaskList(), fetchQcTaskDetail(), fetchQcTaskList(), FireworkSystem, handleReportUpload(), handleReportUpload() (+121 more)

Community 2 - "Community 2"

Cohesion: 0.03 Nodes (83): batchSavePilotCheckup(), deletePilotCheckupActualItem(), fetchCheckupInstitutionList(), fetchCheckupInstitutionPackageDetail(), fetchCheckupInstitutionPackages(), fetchPilotCheckupDetail(), fetchPilotCheckupList(), markPilotCheckupChecked() (+75 more)

Community 3 - "Community 3"

Cohesion: 0.03 Nodes (33): fetchGetMenuList(), ComponentLoader, IframeRouteManager, MenuProcessor, RouteRegistry, RouteTransformer, useAppMode(), useAuth() (+25 more)

Community 4 - "Community 4"

Cohesion: 0.04 Nodes (58): buildInboundBasicSection(), buildInboundCellStorageViewSections(), buildInboundResearchDonationViewSections(), buildReceptionSection(), buildTransportSection(), resolveInboundProtocolStatus(), buildBaseFields(), buildInboundBasicSection() (+50 more)

Community 5 - "Community 5"

Cohesion: 0.04 Nodes (69): formatNowDatetime(), formatTodayDate(), addPaymentDetail(), applyFqPaymentDefaults(), applyPaymentPresetForMode(), createEmptyTransport(), datetimeToYmd(), defaultInstallmentStartDateYmd() (+61 more)

Community 6 - "Community 6"

Cohesion: 0.02 Nodes (28): fetchAllConsumablePacks(), fetchAllConsumables(), fetchAllConsumableStockLogs(), fetchAllEquipments(), fetchAllOutputTypes(), fetchAllProcessCategories(), fetchAllProcesses(), fetchAllReagents() (+20 more)

Community 7 - "Community 7"

Cohesion: 0.03 Nodes (51): fetchOaAppDraft(), fetchOaAppList(), fetchOaFlowPreview(), fetchOaGroupList(), fetchOaInstanceDetail(), fetchOaRoleList(), fetchOaRoleUsers(), fetchOaTasks() (+43 more)

Community 8 - "Community 8"

Cohesion: 0.04 Nodes (50): fetchCheckupInstitutionInvoices(), fetchCheckupInstitutionProjects(), fetchCreateCheckupInstitution(), fetchCreateCheckupInstitutionInvoice(), fetchCreateCheckupInstitutionProject(), fetchUpdateCheckupInstitution(), fetchUpdateCheckupInstitutionInvoice(), fetchUpdateCheckupInstitutionProject() (+42 more)

Community 9 - "Community 9"

Cohesion: 0.04 Nodes (49): fetchUserList(), fetchAddTaskStep(), fetchCopyTaskStep(), fetchDeleteTaskStep(), fetchDispatchProductionTaskSteps(), fetchForwardProductionTask(), fetchProductionTaskDetail(), fetchProductionTaskEditorInit() (+41 more)

Community 10 - "Community 10"

Cohesion: 0.04 Nodes (39): useSettingsHandlers(), useSettingsPanel(), useSettingsState(), RoutePermissionValidator, useCeremony(), useTheme(), if(), walk() (+31 more)

Community 11 - "Community 11"

Cohesion: 0.04 Nodes (44): fetchFullmoonTodoList(), fetchUpdateFullmoonTodoInsurance(), fetchCollectionProtocolAuditList(), fetchCollectionProtocolDetail(), fetchCollectionProtocolList(), fetchCreateProtocolInvoiceRequest(), fetchInvoiceEligiblePayments(), fetchPaymentDetailList() (+36 more)

Community 12 - "Community 12"

Cohesion: 0.05 Nodes (48): fetchEthnicList(), applyDonationBundleToForm(), createEmptyTransport(), ensureEthnicOptionInList(), handleOpenForAdd(), if(), loadEthnicOptions(), normalizeSampleRow() (+40 more)

Community 13 - "Community 13"

Cohesion: 0.04 Nodes (37): fetchCreateMenu(), fetchDeleteMenu(), fetchMenuTree(), fetchUpdateMenu(), fetchCreateEnvDetectItem(), fetchDeleteEnvDetectItem(), fetchEnvDetectItemDetail(), fetchEnvDetectItemList() (+29 more)

Community 14 - "Community 14"

Cohesion: 0.05 Nodes (34): fetchClinicalPaymentDetail(), fetchClinicalPayments(), fetchClinicalReceiptConfirmed(), fetchClinicalReceiptPending(), fetchClinicalRefundConfirmed(), fetchClinicalRefundPending(), fetchOrderAdjusts(), fetchOrderDetail() (+26 more)

Community 15 - "Community 15"

Cohesion: 0.05 Nodes (33): qcAttachmentFullUrl(), qcDownloadAttachment(), qcPreviewAttachment(), formatHandoverUserLabel(), formatNowDatetime(), fullFileUrl(), handleDownloadAttachment(), handlePreviewAttachment() (+25 more)

Community 16 - "Community 16"

Cohesion: 0.06 Nodes (22): fetchQcMaterialBatchDetail(), fetchQcMaterialBatchList(), fetchQcMaterialBatchOptions(), fetchQcMaterialList(), fetchQcMaterialOptions(), fetchUpdateQcMaterialBatch(), fetchMarkQcMaterialUsageFullyUsed(), financeAttachmentsToUrlString() (+14 more)

Community 17 - "Community 17"

Cohesion: 0.1 Nodes (2): WebSocketClient, TableCache

Community 18 - "Community 18"

Cohesion: 0.08 Nodes (33): fetchRefreshToken(), toLogin(), base64ToBytes(), bytesToBase64(), decryptJson(), deriveKey(), encryptJson(), fromBase64Url() (+25 more)

Community 19 - "Community 19"

Cohesion: 0.06 Nodes (11): dash(), fmtMoney(), auditorDisplay(), dash(), ensureUnitsInOptions(), expressName(), formatYm(), formatYmd() (+3 more)

Community 20 - "Community 20"

Cohesion: 0.07 Nodes (24): fetchMineProductionWorkOrderTabStepCounts(), fetchMineProductionWorkOrderTabStepCountsDeduped(), fetchProductionWorkOrderCellProductOptions(), fetchProductionWorkOrderDetail(), fetchProductionWorkOrderList(), fetchProductionWorkOrderQcDispatchOptions(), fetchProductionWorkOrderQcInfo(), fetchProductionWorkOrderTabStepCounts() (+16 more)

Community 21 - "Community 21"

Cohesion: 0.09 Nodes (8): getDefaultLanguage(), checkStorageCompatibility(), StorageConfig, getSystemStorage(), getSysVersion(), StorageKeyManager, StorageCompatibilityManager, validateStorageData()

Community 22 - "Community 22"

Cohesion: 0.07 Nodes (14): handleBlur(), handleFocus(), handleInput(), formatAmount(), formatAmount(), formatProtocolAmount(), buildFeeSection(), formatInvoiceAmount() (+6 more)

Community 23 - "Community 23"

Cohesion: 0.08 Nodes (20): createEmptySnapshots(), normalizeConfiguredReagents(), normalizeConsumables(), normalizeDataCollections(), normalizeReagents(), normalizeStepOutputs(), serializeAttachments(), serializeEquipmentIds() (+12 more)

Community 24 - "Community 24"

Cohesion: 0.08 Nodes (18): fetchProductionReceptionBySampleCode(), fetchProductionReceptionSubmit(), fetchProductionReceptionUpdate(), onUserSelectVisible(), remoteSearchUsers(), buildPayload(), ensureDefaultHandler(), initDialog() (+10 more)

Community 25 - "Community 25"

Cohesion: 0.1 Nodes (28): fetchCreateCustomer(), fetchCustomerList(), fetchDeleteCustomer(), fetchUpdateCustomer(), updateInfusionScheduleStatus(), handleAdd(), handleDelete(), handleDropdownCommand() (+20 more)

Community 26 - "Community 26"

Cohesion: 0.07 Nodes (19): fetchDeleteMaterialBatch(), fetchMaterialBatchList(), fetchMaterialBatchOptions(), fetchMaterialList(), fetchMaterialOptions(), fetchUpdateMaterialBatch(), fetchMaterialUsageList(), fetchMyMaterialUsageList() (+11 more)

Community 27 - "Community 27"

Cohesion: 0.09 Nodes (27): completePilotApplication(), deletePilotApplication(), fetchPilotApplicationList(), startPilotApplication(), voidPilotApplication(), handleBatchComplete(), handleBatchStart(), handleBatchVoid() (+19 more)

Community 28 - "Community 28"

Cohesion: 0.12 Nodes (20): fetchGetMenuCodes(), fetchGetUserInfo(), fetchLogin(), fetchUpdateProfile(), fetchUploadProfileAvatar(), fetchUserInfo(), buildWebEncryptedLoginBody(), defaultAvatarPathByRole() (+12 more)

Community 29 - "Community 29"

Cohesion: 0.09 Nodes (12): fetchMineQcWorkOrderTabUnfinishedCounts(), fetchOutboundQcDetail(), fetchQcWorkOrderDetail(), fetchQcWorkOrderList(), fetchQcWorkOrdersBySample(), fetchQcWorkOrderTabUnfinishedCounts(), reload(), reloadTabCounts() (+4 more)

Community 30 - "Community 30"

Cohesion: 0.12 Nodes (15): addCopyButton(), highlightCode(), insertLineNumbers(), isBlockProcessed(), markBlockAsProcessed(), processBlock(), setupHighlightDirective(), setupRippleDirective() (+7 more)

Community 31 - "Community 31"

Cohesion: 0.11 Nodes (11): fetchOutboundReleaseMaterial(), fetchOutboundReleaseReviewDetail(), fetchOutboundReleaseReviewList(), fetchReleaseReviewList(), handleReset(), handleSearch(), handleToggleSelect(), loadData() (+3 more)

Community 32 - "Community 32"

Cohesion: 0.13 Nodes (18): fetchCellSampleTypeList(), fetchCreateCellSampleType(), fetchDeleteCellSampleType(), fetchUpdateCellSampleType(), handleAdd(), handleDelete(), handleDropdownCommand(), handleEdit() (+10 more)

Community 33 - "Community 33"

Cohesion: 0.19 Nodes (15): fetchAttachmentDownloadUrl(), attachmentFullUrl(), ensureUniqueZipEntryName(), fetchAttachmentBlob(), getAttachmentExtension(), resolveAttachmentFileName(), sanitizeZipPathSegment(), applyInboundLabStorageCodePrefix() (+7 more)

Community 34 - "Community 34"

Cohesion: 0.16 Nodes (10): useTable(), useTableImpl(), getColumnChecks(), useTableColumns(), createErrorHandler(), createSmartDebounce(), defaultResponseAdapter(), extractPagination() (+2 more)

Community 35 - "Community 35"

Cohesion: 0.27 Nodes (14): useChart(), useChartComponent(), useChartOps(), colourBlend(), getCssVar(), getDarkColor(), getLightColor(), handleElementThemeColor() (+6 more)

Community 36 - "Community 36"

Cohesion: 0.33 Nodes (13): buildProtocolPaymentFlowSteps(), dash(), financeReceiptTime(), formatAmount(), hasFinanceReceipt(), hasFinanceRefund(), hasReceiptSubmit(), hasRefundSubmit() (+5 more)

Community 37 - "Community 37"

Cohesion: 0.19 Nodes (6): fetchServiceOrderTxnList(), handleReset(), handleSearch(), handleTabChange(), loadData(), switchTab()

Community 39 - "Community 39"

Cohesion: 0.42 Nodes (9): buildPaymentFlowSteps(), dash(), formatAmount(), hasFinanceReceipt(), hasFinanceRefund(), hasReceiptSubmit(), hasRefundSubmit(), receiptSubmitTime() (+1 more)

Community 40 - "Community 40"

Cohesion: 0.24 Nodes (4): addMaterialRow(), nextMaterialRowKey(), onRequisitionSelect(), removeMaterialRow()

Community 41 - "Community 41"

Cohesion: 0.25 Nodes (2): handleTouchEnd(), setTransition()

Community 43 - "Community 43"

Cohesion: 0.31 Nodes (4): annotateForkEdges(), chainApiToElements(), walkAncestorBranch(), walkAncestorParents()

Community 44 - "Community 44"

Cohesion: 0.28 Nodes (4): fetchMyProductionMaterialConsumptions(), handleReset(), handleSearch(), loadData()

Community 47 - "Community 47"

Cohesion: 0.39 Nodes (6): isIgnorableScriptError(), normalizeErrorMessage(), registerPromiseErrorHandler(), registerResourceErrorHandler(), scriptErrorHandler(), setupErrorHandle()

Community 48 - "Community 48"

Cohesion: 0.36 Nodes (1): TableHeightCalculator

Community 50 - "Community 50"

Cohesion: 0.33 Nodes (2): logApiCryptoBootInfo(), maskSecret()

Community 51 - "Community 51"

Cohesion: 0.38 Nodes (4): handleFocus(), handleInput(), parseDecimalToNumber(), sanitizeDecimalInput()

Community 52 - "Community 52"

Cohesion: 0.29 Nodes (2): fetchLeaveDetail(), fetchLeaveList()

Community 53 - "Community 53"

Cohesion: 0.4 Nodes (2): isUnfinishedQcWorkOrder(), resolveQcWorkOrderUnfinishedBadgeCount()

Community 54 - "Community 54"

Cohesion: 0.47 Nodes (3): isPaymentDueWithinWarnWindow(), parsePaymentDueYmd(), startOfLocalDay()

Community 55 - "Community 55"

Cohesion: 0.5 Nodes (2): formatProtocolDocDeleteConfirm(), formatProtocolDocSubject()

Community 56 - "Community 56"

Cohesion: 0.5 Nodes (2): parseEquipmentIds(), syncEquipmentNamesFromOptions()

Community 58 - "Community 58"

Cohesion: 0.5 Nodes (2): focusInput(), handleKeydown()

Community 59 - "Community 59"

Cohesion: 0.5 Nodes (2): installOaFormComponents(), registerOaFormCreateComponents()

Community 61 - "Community 61"

Cohesion: 0.67 Nodes (2): if(), logSidebarMenu()

Community 66 - "Community 66"

Cohesion: 1.0 Nodes (2): getSettingDefaults(), resetToDefaults()

Community 68 - "Community 68"

Cohesion: 1.0 Nodes (2): copyTextToClipboard(), copyTextWithFallback()

Community 69 - "Community 69"

Cohesion: 1.0 Nodes (2): getSourceProtocolAttachment(), normalizeAttachmentFiles()

Community 78 - "Community 78"

Cohesion: 1.0 Nodes (2): emptyTabCounts(), useProductionWorkOrderTabStepCounts()

Community 80 - "Community 80"

Cohesion: 1.0 Nodes (2): initialProgress(), useQcWorkOrderAttachmentExport()

Community 81 - "Community 81"

Cohesion: 1.0 Nodes (2): emptyTabCounts(), useQcWorkOrderTabUnfinishedCounts()

Knowledge Gaps

  • Thin community Community 17 (42 nodes): WebSocketClient, .calculateReconnectDelay(), .clearAllTimers(), .clearConnectionTimers(), .clearTimer(), .close(), .closeCurrentSocketForReconnect(), .connect(), .connectionStatusText(), .constructor(), .destroyInstance(), .flushMessageQueue(), .getInstance(), .getReadyStateText(), .handleClose(), .handleConnectionTimeout(), .handleError(), .handleMessage(), .handleOpen(), .init(), .isWebSocketConnected(), .reconnect(), .resetHeartbeat(), .send(), .startHeartbeat(), .startPing(), TableCache, .cleanupExpired(), .clear(), .clearByTags(), .clearCurrentSearch(), .clearPagination(), .constructor(), .evictLRU(), .generateKey(), .generateTags(), .get(), .getStats(), .log(), .set(), index.ts, tableCache.ts Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 41 (9 nodes): cleanupEventListeners(), handleTouchEnd(), handleTouchMove(), handleTouchStart(), handleWheelScroll(), if(), setTransition(), setupEventListeners(), index.vue Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 48 (8 nodes): TableHeightCalculator, .calculate(), .calculateOffset(), .calculatePaginationOffset(), .constructor(), .getHeaderHeight(), useTableHeight(), useTableHeight.ts Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 50 (7 nodes): App.vue, main.ts, refreshButtonAutoIcons(), refreshPanelTitleIcons(), logApiCryptoBootInfo(), maskSecret(), console.ts Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 52 (7 nodes): fetchCreateLeave(), fetchDeleteLeave(), fetchLeaveDetail(), fetchLeaveList(), fetchSubmitLeave(), fetchUpdateLeave(), leave.ts Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 53 (6 nodes): formatQcWorkOrderUnfinishedBadgeCount(), isUnfinishedQcWorkOrder(), qcWorkOrderUnfinishedBadgeTitle(), resolveQcWorkOrderUnfinishedBadgeCount(), sumQcWorkOrderGroupUnfinishedBadgeCount(), qc-work-order-unfinished-badge.ts Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 55 (5 nodes): formatProtocolDocBatchDeleteConfirm(), formatProtocolDocDeleteConfirm(), formatProtocolDocSubject(), getProtocolDocTypeLabel(), protocol-doc-label.ts Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 56 (5 nodes): equipmentOptionLabel(), joinEquipmentIds(), parseEquipmentIds(), syncEquipmentNamesFromOptions(), equipment-select.ts Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 58 (5 nodes): focusInput(), handleKeydown(), if(), search(), index.vue Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 59 (5 nodes): oa-form-components.ts, OaAttachmentField.vue, installOaFormComponents(), registerOaDesignerAttachment(), registerOaFormCreateComponents() Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 61 (4 nodes): if(), logSidebarMenu(), index.vue, SidebarSubmenu.vue Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 66 (3 nodes): getSettingDefaults(), resetToDefaults(), setting.ts Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 68 (3 nodes): copyTextToClipboard(), copyTextWithFallback(), copy-text.ts Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 69 (3 nodes): getSourceProtocolAttachment(), normalizeAttachmentFiles(), protocol-source-attachment.ts Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 78 (3 nodes): emptyTabCounts(), useProductionWorkOrderTabStepCounts(), useProductionWorkOrderTabStepCounts.ts Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 80 (3 nodes): initialProgress(), useQcWorkOrderAttachmentExport(), useQcWorkOrderAttachmentExport.ts Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 81 (3 nodes): emptyTabCounts(), useQcWorkOrderTabUnfinishedCounts(), useQcWorkOrderTabUnfinishedCounts.ts 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 get() connect Community 0 to Community 1, Community 2, Community 5, Community 6, Community 7, Community 8, Community 9, Community 10, Community 11, Community 12, Community 13, Community 14, Community 16, Community 20, Community 24, Community 25, Community 26, Community 27, Community 28, Community 29, Community 31, Community 32, Community 37, Community 43, Community 44, Community 52? High betweenness centrality (0.290) - this node is a cross-community bridge.
  • Why does push() connect Community 1 to Community 0, Community 2, Community 4, Community 5, Community 7, Community 8, Community 9, Community 10, Community 11, Community 12, Community 13, Community 15, Community 17, Community 18, Community 19, Community 20, Community 23, Community 27, Community 29, Community 33, Community 40? High betweenness centrality (0.246) - this node is a cross-community bridge.
  • Why does handleDynamicRoutes() connect Community 3 to Community 20, Community 10, Community 28, Community 29? High betweenness centrality (0.042) - this node is a cross-community bridge.
  • Are the 291 inferred relationships involving get() (e.g. with buildNodeCodePathFromFlat() and collectLeafFacilityNodesInTreeOrder()) actually correct? get() has 291 INFERRED edges - model-reasoned connections that need verification.
  • Are the 83 inferred relationships involving push() (e.g. with refreshQcMenuBadges() and collectLeafFacilityNodesInTreeOrder()) actually correct? push() has 83 INFERRED edges - model-reasoned connections that need verification.
  • Are the 26 inferred relationships involving emit() (e.g. with handleSubmit() and handleDialogClose()) actually correct? emit() has 26 INFERRED edges - model-reasoned connections that need verification.
  • Are the 19 inferred relationships involving set() (e.g. with buildNodeCodePathFromFlat() and collectLeafFacilityNodesInTreeOrder()) actually correct? set() has 19 INFERRED edges - model-reasoned connections that need verification.