Files
zkxw/web-admin/graphify-out/GRAPH_REPORT.md
T

24 KiB

Graph Report - src (2026-10-08)

Corpus Check

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

Summary

  • 3793 nodes · 5582 edges · 62 communities detected
  • Extraction: 76% EXTRACTED · 24% INFERRED · 0% AMBIGUOUS · INFERRED: 1346 edges (avg confidence: 0.8)
  • Token cost: 0 input · 0 output

Community Hubs (Navigation)

God Nodes (most connected - your core abstractions)

  1. get() - 336 edges
  2. push() - 126 edges
  3. Number() - 96 edges
  4. emit() - 35 edges
  5. WebSocketClient - 26 edges
  6. set() - 22 edges
  7. withFullscreenLoading() - 20 edges
  8. handleDynamicRoutes() - 20 edges
  9. onPick() - 18 edges
  10. walkRules() - 17 edges

Surprising Connections (you probably didn't know these)

  • mapRemoteSlotSelectOption() --calls--> Number() [INFERRED] utils/storage-slot-options.ts → views/cell-storage/payment-info/PaymentBySampleTab.vue
  • getStorageFacilityOrderNum() --calls--> Number() [INFERRED] utils/storage-slot-options.ts → views/cell-storage/payment-info/PaymentBySampleTab.vue
  • isStorageSlotAvailable() --calls--> Number() [INFERRED] utils/storage-slot-options.ts → views/cell-storage/payment-info/PaymentBySampleTab.vue
  • handleBatchDelete() --calls--> withFullscreenLoading() [INFERRED] views/operations/exhibition-appointment/index.vue → utils/fullscreen-loading.ts
  • handleBatchDelete() --calls--> withFullscreenLoading() [INFERRED] views/system/unit/index.vue → utils/fullscreen-loading.ts

Communities

Community 0 - "Community 0"

Cohesion: 0.01 Nodes (195): fetchAccessLogList(), fetchActiveRegions(), fetchCategoryList(), fetchCellProductPriceList(), fetchCellProductTypeList(), fetchChannelAccount(), fetchChannelAgreementPrices(), fetchChannelAgreements() (+187 more)

Community 1 - "Community 1"

Cohesion: 0.01 Nodes (70): fetchCategoryParameters(), fetchChannelList(), fetchChannelMailAddresses(), fetchChannelServiceOrderDetail(), fetchCleanRoomList(), fetchCollectionProtocolNoList(), fetchCreateCheckupInstitution(), fetchCreateCheckupInstitutionInvoice() (+62 more)

Community 2 - "Community 2"

Cohesion: 0.02 Nodes (136): fetchUserDetail(), fetchCreateCollectionProtocol(), fetchUpdateCollectionProtocol(), if(), Number(), applyFqPaymentDefaults(), applyPaymentPresetForMode(), applyProtocolBundleToForm() (+128 more)

Community 3 - "Community 3"

Cohesion: 0.02 Nodes (98): fetchCellProductSpecList(), fetchMyProductionTasks(), buildTemporaryViewSections(), buildInsertedSiblingCard(), resolveShowProtocolPaymentAtGroup(), useInboundSiblingNavigation(), shouldApplyTriggerSourceFilter(), useQcWorkOrderTabPage() (+90 more)

Community 4 - "Community 4"

Cohesion: 0.02 Nodes (80): handleBlur(), handleFocus(), handleInput(), fetchDictDataOptions(), fetchInfusionScheduleMgmtDetail(), fetchAttachmentDownloadUrl(), fetchCreateSampleFreight(), fetchLinkSampleFreight() (+72 more)

Community 5 - "Community 5"

Cohesion: 0.02 Nodes (92): fetchUploadAttachment(), FireworkSystem, handleReportUpload(), handleReportUpload(), walk(), branchConditionLines(), collectConditionReferencedFields(), collectFormConditionReferencedFields() (+84 more)

Community 6 - "Community 6"

Cohesion: 0.02 Nodes (80): fetchBatchDeleteOaReceiveAccounts(), fetchBatchMarkOaCcTasksRead(), fetchCreateOaReceiveAccount(), fetchDeleteOaReceiveAccount(), fetchMarkOaCcTaskRead(), fetchOaAppDraft(), fetchOaCcUnreadCount(), fetchOaFormAttachments() (+72 more)

Community 7 - "Community 7"

Cohesion: 0.02 Nodes (99): batchSavePilotCheckup(), deletePilotCheckupActualItem(), fetchCheckupInstitutionList(), fetchCheckupInstitutionPackageDetail(), fetchCheckupInstitutionPackages(), fetchPilotCheckupActualItems(), fetchPilotCheckupDetail(), fetchPilotCheckupList() (+91 more)

Community 8 - "Community 8"

Cohesion: 0.03 Nodes (72): buildInboundBasicSection(), buildInboundCellStorageViewSections(), buildInboundResearchDonationViewSections(), buildReceptionSection(), buildTransportSection(), resolveInboundProtocolStatus(), buildBaseFields(), buildInboundBasicSection() (+64 more)

Community 9 - "Community 9"

Cohesion: 0.03 Nodes (72): fetchCollectionRegionList(), fetchCreateCollectionRegion(), fetchCreateHospital(), fetchCreateRegionStaff(), fetchDeleteCollectionRegion(), fetchDeleteHospital(), fetchDeleteRegionStaff(), fetchHospitalList() (+64 more)

Community 10 - "Community 10"

Cohesion: 0.03 Nodes (76): fetchCheckupInstitutionInvoices(), fetchCheckupInstitutionProjects(), fetchCreateCheckupInstitutionProject(), fetchCreateTenant(), fetchDeleteTenant(), fetchTenantList(), fetchUpdateCheckupInstitutionProject(), fetchUpdateTenant() (+68 more)

Community 11 - "Community 11"

Cohesion: 0.03 Nodes (43): fetchProductionWorkOrderQcInfo(), fetchUpdateFullmoonHandle(), fetchUpdateStorageCertHandle(), dash(), fmtMoney(), formatRegisterDate(), auditorDisplay(), dash() (+35 more)

Community 12 - "Community 12"

Cohesion: 0.03 Nodes (60): fetchStorageSlotSelectOptions(), useSettingsHandlers(), useSettingsPanel(), useSettingsState(), RoutePermissionValidator, useCeremony(), useTheme(), if() (+52 more)

Community 13 - "Community 13"

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

Community 14 - "Community 14"

Cohesion: 0.04 Nodes (67): fetchDeptTree(), fetchUserList(), fetchOaFlowPreview(), fetchOaTemplateDetail(), formatHandoverUserLabel(), formatNowDatetime(), fullFileUrl(), handlePreviewAttachment() (+59 more)

Community 15 - "Community 15"

Cohesion: 0.04 Nodes (43): fetchProductionTaskList(), fetchProductionReceptionBySampleCode(), fetchProductionReceptionSubmit(), fetchProductionReceptionUpdate(), onUserSelectVisible(), remoteSearchUsers(), buildPayload(), ensureDefaultHandler() (+35 more)

Community 16 - "Community 16"

Cohesion: 0.05 Nodes (56): fetchOaRelatedSummaries(), buildFormRows(), buildOaPrintFilename(), buildOaPrintModel(), canvasToPdf(), ensurePlainObject(), exportOaApprovalPdf(), extractUrls() (+48 more)

Community 17 - "Community 17"

Cohesion: 0.04 Nodes (39): fetchCellSampleTypeList(), fetchCreateCellSampleType(), fetchCreateMenu(), fetchDeleteCellSampleType(), fetchDeleteMenu(), fetchMenuTree(), fetchUpdateCellSampleType(), fetchUpdateMenu() (+31 more)

Community 18 - "Community 18"

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

Community 19 - "Community 19"

Cohesion: 0.05 Nodes (39): fetchCreateQcInspectionItemTemplate(), fetchDeleteQcInspectionItemTemplate(), fetchQcInspectionItemTemplateDetail(), fetchQcInspectionItemTemplateList(), fetchQcInspectionItemTemplatesActive(), fetchUpdateQcInspectionItemTemplate(), fetchQcLabTestItemList(), fetchQcLabTestItemsActive() (+31 more)

Community 20 - "Community 20"

Cohesion: 0.05 Nodes (35): fetchCreateCustomer(), fetchCustomerList(), fetchCustomerRelations(), fetchDeleteCustomer(), fetchUpdateCustomer(), fetchCollectionProtocolDetail(), fetchEthnicList(), handleAdd() (+27 more)

Community 21 - "Community 21"

Cohesion: 0.06 Nodes (27): fetchCreatePaymentTransfer(), fetchCreateProtocolRefundRecord(), fetchPaymentTransferList(), fetchPaymentTransferReceiptConfirmedList(), fetchPaymentTransferReceiptConfirmList(), fetchProtocolRefundRecords(), fetchSamplePaymentDetail(), fetchSamplePaymentList() (+19 more)

Community 22 - "Community 22"

Cohesion: 0.1 Nodes (2): WebSocketClient, TableCache

Community 23 - "Community 23"

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

Community 24 - "Community 24"

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

Community 25 - "Community 25"

Cohesion: 0.09 Nodes (29): fetchAddTaskStep(), fetchCopyTaskStep(), fetchDeleteTaskStep(), fetchDispatchProductionTaskSteps(), fetchForwardProductionTask(), fetchProductionTaskDetail(), fetchProductionTaskEditorInit(), fetchReassignProductionTask() (+21 more)

Community 26 - "Community 26"

Cohesion: 0.08 Nodes (22): fetchMineProductionWorkOrderTabStepCounts(), fetchMineProductionWorkOrderTabStepCountsDeduped(), fetchProductionWorkOrderCellProductOptions(), fetchProductionWorkOrderDetail(), fetchProductionWorkOrderList(), fetchProductionWorkOrderQcDispatchOptions(), fetchProductionWorkOrderTabStepCounts(), fetchProductionWorkOrderTabStepCountsDeduped() (+14 more)

Community 27 - "Community 27"

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

Community 28 - "Community 28"

Cohesion: 0.09 Nodes (22): fetchOaAppList(), fetchOaGroupList(), fetchPublishOaApp(), loadData(), loadGroups(), resetForm(), onSuccess(), goBack() (+14 more)

Community 29 - "Community 29"

Cohesion: 0.09 Nodes (20): fetchUpdateQcMaterialBatch(), fetchMarkQcMaterialUsageFullyUsed(), financeAttachmentsToUrlString(), ensureTabMounted(), handleStockStatusChange(), handleTabChange(), handleSubmit(), canMarkFullyUsed() (+12 more)

Community 30 - "Community 30"

Cohesion: 0.11 Nodes (25): completePilotApplication(), deletePilotApplication(), fetchPilotApplicationList(), startPilotApplication(), voidPilotApplication(), clearTableSelection(), handleBatchComplete(), handleBatchStart() (+17 more)

Community 31 - "Community 31"

Cohesion: 0.11 Nodes (21): fetchGetMenuCodes(), fetchGetUserInfo(), fetchLogin(), fetchUpdateProfile(), fetchUploadProfileAvatar(), fetchWxQrStatus(), fetchUserInfo(), buildWebEncryptedLoginBody() (+13 more)

Community 32 - "Community 32"

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

Community 33 - "Community 33"

Cohesion: 0.13 Nodes (8): chipTitle(), confirmPicker(), memberOptionLabel(), removeUser(), resolveUser(), signBadge(), signBadgeText(), updateSelect()

Community 34 - "Community 34"

Cohesion: 0.2 Nodes (14): applyFlagToRule(), applySchema(), countRules(), getActiveRule(), getDesigner(), getSetupState(), onMessage(), readFlag() (+6 more)

Community 35 - "Community 35"

Cohesion: 0.12 Nodes (6): setupOaConfirmationKit(), ensureOaKitMenu(), setupOaLeaveKit(), setupOaOvertimeKit(), setupOaResignationKit(), setupOaTripKit()

Community 36 - "Community 36"

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

Community 37 - "Community 37"

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

Community 38 - "Community 38"

Cohesion: 0.18 Nodes (8): handleReset(), handleSearch(), handleTabChange(), handleToggleSelect(), loadData(), onReviewSubmitted(), rowId(), isSelected()

Community 39 - "Community 39"

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

Community 40 - "Community 40"

Cohesion: 0.24 Nodes (10): buildPrintDocumentHtml(), cleanupPrintIframe(), embedSopImagesAsDataUrls(), getSopA4ContentHeightPx(), getSopA4EditorHeightPx(), normalizeSopCheckboxes(), prepareSopHtmlForPrint(), printSopHtml() (+2 more)

Community 41 - "Community 41"

Cohesion: 0.24 Nodes (8): fullFileUrl(), handlePreviewAttachment(), isVideoFile(), normalizeDisplayValue(), resolveReviewCellType(), resolveReviewQuantity(), resolveReviewSpecText(), uniqueJoined()

Community 43 - "Community 43"

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

Community 44 - "Community 44"

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

Community 46 - "Community 46"

Cohesion: 0.28 Nodes (4): isActiveHistoryInstance(), isUploadPreviewLabel(), previewColumnMinWidth(), syncWorktabTitle()

Community 49 - "Community 49"

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

Community 50 - "Community 50"

Cohesion: 0.36 Nodes (1): TableHeightCalculator

Community 52 - "Community 52"

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

Community 53 - "Community 53"

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

Community 54 - "Community 54"

Cohesion: 0.29 Nodes (1): fetchQcMonthTemplateList()

Community 55 - "Community 55"

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

Community 56 - "Community 56"

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

Community 57 - "Community 57"

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

Community 59 - "Community 59"

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

Community 62 - "Community 62"

Cohesion: 0.67 Nodes (2): isCurrentPending(), isNotReached()

Community 63 - "Community 63"

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

Community 68 - "Community 68"

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

Community 70 - "Community 70"

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

Community 72 - "Community 72"

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

Community 88 - "Community 88"

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

Community 91 - "Community 91"

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

Community 92 - "Community 92"

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

Knowledge Gaps

  • Thin community Community 22 (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 44 (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 50 (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 52 (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 54 (7 nodes): fetchConfirmQcMonthImport(), fetchCreateQcMonthTemplate(), fetchDeleteQcMonthTemplate(), fetchPreviewQcMonthImport(), fetchQcMonthTemplateList(), fetchUpdateQcMonthTemplate(), qc-material-month-template.ts Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 55 (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 56 (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 57 (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 59 (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 62 (4 nodes): isCurrentPending(), isNotReached(), mergeProgressWithComments(), oa-progress-merge-comments.ts Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 63 (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 68 (3 nodes): getSettingDefaults(), resetToDefaults(), setting.ts Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 70 (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 72 (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 88 (3 nodes): emptyTabCounts(), useProductionWorkOrderTabStepCounts(), useProductionWorkOrderTabStepCounts.ts Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 91 (3 nodes): initialProgress(), useQcWorkOrderAttachmentExport(), useQcWorkOrderAttachmentExport.ts Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 92 (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 3, Community 4, Community 5, Community 6, Community 7, Community 8, Community 9, Community 10, Community 11, Community 12, Community 14, Community 15, Community 16, Community 17, Community 18, Community 19, Community 20, Community 21, Community 25, Community 26, Community 27, Community 28, Community 30, Community 31, Community 39, Community 54? High betweenness centrality (0.266) - this node is a cross-community bridge.
  • Why does push() connect Community 5 to Community 0, Community 1, Community 2, Community 3, Community 4, Community 6, Community 7, Community 8, Community 10, Community 11, Community 12, Community 14, Community 15, Community 16, Community 19, Community 20, Community 21, Community 22, Community 23, Community 25, Community 26, Community 28, Community 33? High betweenness centrality (0.253) - this node is a cross-community bridge.
  • Why does Number() connect Community 2 to Community 1, Community 3, Community 4, Community 5, Community 6, Community 7, Community 8, Community 10, Community 11, Community 12, Community 14, Community 15, Community 16, Community 20, Community 21, Community 23, Community 27, Community 29, Community 37, Community 43, Community 53? High betweenness centrality (0.120) - this node is a cross-community bridge.
  • Are the 335 inferred relationships involving get() (e.g. with resolveStorageSlotRangeFill() and buildNodeCodePathFromFlat()) actually correct? get() has 335 INFERRED edges - model-reasoned connections that need verification.
  • Are the 125 inferred relationships involving push() (e.g. with refreshQcMenuBadges() and collectLeafFacilityNodesInTreeOrder()) actually correct? push() has 125 INFERRED edges - model-reasoned connections that need verification.
  • Are the 91 inferred relationships involving Number() (e.g. with slotOrderNum() and isSlotAvailable()) actually correct? Number() has 91 INFERRED edges - model-reasoned connections that need verification.
  • Are the 34 inferred relationships involving emit() (e.g. with updateSamples() and handleSave()) actually correct? emit() has 34 INFERRED edges - model-reasoned connections that need verification.