Files
trail-mate/docs/engineering/technical-complexity-maps.html
T
2026-06-26 09:36:54 +08:00

89 lines
1.6 MiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="utf-8" />
<title>Technical Complexity Maps Compatibility</title>
</head>
<body>
<main class="praxis-engineering-map" data-praxis-anchor="engineering-map:root" data-praxis-kind="engineering_root_map" data-praxis-status="candidate" data-praxis-confidence="high">
<header class="praxis-design-map-header">
<p>Praxis Software Structure Model</p>
<h1>Engineering Maps</h1>
<p>根索引只负责软件结构文档树、版本和导航;具体 UML 与解释位于各图种目录。</p>
<div class="meta-row">
<span>项目版本:0.1.0</span>
<span>Git34aad0bffa2f / main / dirty</span>
<span>更新于:<time datetime="2026-06-25T09:19:20.669Z">2026-06-25T09:19:20.669Z</time></span>
</div>
</header>
<section class="metric-index-layer" data-praxis-anchor="engineering:metric-index" data-praxis-kind="engineering_metric_index">
<h2>技术复杂度索引</h2>
<div class="metric-index-grid">
<article class="metric-group" data-praxis-anchor="engineering:metric:package-module" data-praxis-metric-kind="package-module" data-praxis-metric-count="18">
<header><strong>Package / Module</strong><span>18</span></header>
<p>技术组织边界</p>
</article>
<article class="metric-group" data-praxis-anchor="engineering:metric:component" data-praxis-metric-kind="component" data-praxis-metric-count="24">
<header><strong>Component</strong><span>24</span></header>
<p>关键技术对象</p>
</article>
<article class="metric-group" data-praxis-anchor="engineering:metric:runtime-flow" data-praxis-metric-kind="runtime-flow" data-praxis-metric-count="18">
<header><strong>Runtime Flow</strong><span>18</span></header>
<p>运行协作链路</p>
</article>
<article class="metric-group" data-praxis-anchor="engineering:metric:deployment" data-praxis-metric-kind="deployment" data-praxis-metric-count="0">
<header><strong>Deployment</strong><span>0</span></header>
<p>运行和部署入口</p>
</article>
<article class="metric-group" data-praxis-anchor="engineering:metric:hotspot" data-praxis-metric-kind="hotspot" data-praxis-metric-count="18">
<header><strong>Hotspot</strong><span>18</span></header>
<p>技术复杂度热点</p>
</article>
</div>
</section>
<section class="semantic-layer engineering-root-tree" data-praxis-anchor="engineering:document-tree" data-praxis-kind="engineering_document_tree">
<h2>软件结构模型文档树</h2>
<p>每个图种拥有自己的 maps 文档;每张具体图拥有独立 markdown/html 文档。</p>
<div class="layer-grid">
<article class="layer-card document-entry-card" role="link" tabindex="0" data-praxis-anchor="engineering:category:package" data-praxis-kind="engineering_category" data-praxis-document-title="Package Diagrams" data-praxis-document-summary="进入包/模块边界看板,按工程目录查看 18 个模块如何承担入口、契约、适配、共享能力、运行装配或基础设施职责,并继续下钻到组件、结构、sequence、部署节点和技术热点。" data-praxis-document-md="docs/engineering/package-diagrams/package-diagrams-maps.md" data-praxis-document-html="docs/engineering/package-diagrams/package-diagrams-maps.html" data-praxis-drilldowns="[{&quot;id&quot;:&quot;engineering:diagram:package:managed_components&quot;,&quot;kind&quot;:&quot;package&quot;,&quot;title&quot;:&quot;模块边界:managed_components&quot;,&quot;summary&quot;:&quot;解释 managed_components 的包/模块边界、文件数量、符号数量和跨模块依赖。&quot;,&quot;docPath&quot;:&quot;docs/engineering/package-diagrams/managed_components/package-diagram.md&quot;,&quot;htmlPath&quot;:&quot;docs/engineering/package-diagrams/managed_components/package-diagram.html&quot;,&quot;anchor&quot;:&quot;engineering:package:managed_components&quot;,&quot;relation&quot;:&quot;contains&quot;,&quot;reason&quot;:&quot;打开 managed_components 的包级图,先确认它是什么工程边界,再用文件规模、符号规模、跨模块引用方向和下钻图判断它是入口模块、共享能力、runtime 支撑还是基础设施边界。 可继续下钻到 4 个 Technical Hotspot。&quot;},{&quot;id&quot;:&quot;engineering:diagram:package:build-t_display_p4_tft&quot;,&quot;kind&quot;:&quot;package&quot;,&quot;title&quot;:&quot;模块边界:build.t_display_p4_tft&quot;,&quot;summary&quot;:&quot;解释 build.t_display_p4_tft 的包/模块边界、文件数量、符号数量和跨模块依赖。&quot;,&quot;docPath&quot;:&quot;docs/engineering/package-diagrams/build-t_display_p4_tft/package-diagram.md&quot;,&quot;htmlPath&quot;:&quot;docs/engineering/package-diagrams/build-t_display_p4_tft/package-diagram.html&quot;,&quot;anchor&quot;:&quot;engineering:package:build.t_display_p4_tft&quot;,&quot;relation&quot;:&quot;contains&quot;,&quot;reason&quot;:&quot;打开 build.t_display_p4_tft 的包级图,先确认它是什么工程边界,再用文件规模、符号规模、跨模块引用方向和下钻图判断它是入口模块、共享能力、runtime 支撑还是基础设施边界。 可继续下钻到 1 个 Technical Hotspot。&quot;},{&quot;id&quot;:&quot;engineering:diagram:package:build-tdisplayp4_tft&quot;,&quot;kind&quot;:&quot;package&quot;,&quot;title&quot;:&quot;模块边界:build.tdisplayp4_tft&quot;,&quot;summary&quot;:&quot;解释 build.tdisplayp4_tft 的包/模块边界、文件数量、符号数量和跨模块依赖。&quot;,&quot;docPath&quot;:&quot;docs/engineering/package-diagrams/build-tdisplayp4_tft/package-diagram.md&quot;,&quot;htmlPath&quot;:&quot;docs/engineering/package-diagrams/build-tdisplayp4_tft/package-diagram.html&quot;,&quot;anchor&quot;:&quot;engineering:package:build.tdisplayp4_tft&quot;,&quot;relation&quot;:&quot;contains&quot;,&quot;reason&quot;:&quot;打开 build.tdisplayp4_tft 的包级图,先确认它是什么工程边界,再用文件规模、符号规模、跨模块引用方向和下钻图判断它是入口模块、共享能力、runtime 支撑还是基础设施边界。 可继续下钻到 1 个 Technical Hotspot。&quot;},{&quot;id&quot;:&quot;engineering:diagram:package:boards&quot;,&quot;kind&quot;:&quot;package&quot;,&quot;title&quot;:&quot;模块边界:boards&quot;,&quot;summary&quot;:&quot;解释 boards 的包/模块边界、文件数量、符号数量和跨模块依赖。&quot;,&quot;docPath&quot;:&quot;docs/engineering/package-diagrams/boards/package-diagram.md&quot;,&quot;htmlPath&quot;:&quot;docs/engineering/package-diagrams/boards/package-diagram.html&quot;,&quot;anchor&quot;:&quot;engineering:package:boards&quot;,&quot;relation&quot;:&quot;contains&quot;,&quot;reason&quot;:&quot;打开 boards 的包级图,先确认它是什么工程边界,再用文件规模、符号规模、跨模块引用方向和下钻图判断它是入口模块、共享能力、runtime 支撑还是基础设施边界。 可继续下钻到 2 个 Component Diagram、5 个 Class / Structural Diagram、2 个 Technical Hotspot。&quot;},{&quot;id&quot;:&quot;engineering:diagram:package:build-tdisplayp4_amoled&quot;,&quot;kind&quot;:&quot;package&quot;,&quot;title&quot;:&quot;模块边界:build.tdisplayp4_amoled&quot;,&quot;summary&quot;:&quot;解释 build.tdisplayp4_amoled 的包/模块边界、文件数量、符号数量和跨模块依赖。&quot;,&quot;docPath&quot;:&quot;docs/engineering/package-diagrams/build-tdisplayp4_amoled/package-diagram.md&quot;,&quot;htmlPath&quot;:&quot;docs/engineering/package-diagrams/build-tdisplayp4_amoled/package-diagram.html&quot;,&quot;anchor&quot;:&quot;engineering:package:build.tdisplayp4_amoled&quot;,&quot;relation&quot;:&quot;contains&quot;,&quot;reason&quot;:&quot;打开 build.tdisplayp4_amoled 的包级图,先确认它是什么工程边界,再用文件规模、符号规模、跨模块引用方向和下钻图判断它是入口模块、共享能力、runtime 支撑还是基础设施边界。 可继续下钻到 1 个 Technical Hotspot。&quot;},{&quot;id&quot;:&quot;engineering:diagram:package:build-c6_companion&quot;,&quot;kind&quot;:&quot;package&quot;,&quot;title&quot;:&quot;模块边界:build.c6_companion&quot;,&quot;summary&quot;:&quot;解释 build.c6_companion 的包/模块边界、文件数量、符号数量和跨模块依赖。&quot;,&quot;docPath&quot;:&quot;docs/engineering/package-diagrams/build-c6_companion/package-diagram.md&quot;,&quot;htmlPath&quot;:&quot;docs/engineering/package-diagrams/build-c6_companion/package-diagram.html&quot;,&quot;anchor&quot;:&quot;engineering:package:build.c6_companion&quot;,&quot;relation&quot;:&quot;contains&quot;,&quot;reason&quot;:&quot;打开 build.c6_companion 的包级图,先确认它是什么工程边界,再用文件规模、符号规模、跨模块引用方向和下钻图判断它是入口模块、共享能力、runtime 支撑还是基础设施边界。 可继续下钻到 1 个 Technical Hotspot。&quot;},{&quot;id&quot;:&quot;engineering:diagram:package:apps-linux_uconsole_gtk&quot;,&quot;kind&quot;:&quot;package&quot;,&quot;title&quot;:&quot;模块边界:apps/linux_uconsole_gtk&quot;,&quot;summary&quot;:&quot;解释 apps/linux_uconsole_gtk 的包/模块边界、文件数量、符号数量和跨模块依赖。&quot;,&quot;docPath&quot;:&quot;docs/engineering/package-diagrams/apps-linux_uconsole_gtk/package-diagram.md&quot;,&quot;htmlPath&quot;:&quot;docs/engineering/package-diagrams/apps-linux_uconsole_gtk/package-diagram.html&quot;,&quot;anchor&quot;:&quot;engineering:package:apps-linux_uconsole_gtk&quot;,&quot;relation&quot;:&quot;contains&quot;,&quot;reason&quot;:&quot;打开 apps/linux_uconsole_gtk 的包级图,先确认它是什么工程边界,再用文件规模、符号规模、跨模块引用方向和下钻图判断它是入口模块、共享能力、runtime 支撑还是基础设施边界。 可继续下钻到 8 个 Component Diagram、3 个 Technical Hotspot。&quot;},{&quot;id&quot;:&quot;engineering:diagram:package:apps-esp32_lvgl&quot;,&quot;kind&quot;:&quot;package&quot;,&quot;title&quot;:&quot;模块边界:apps/esp32_lvgl&quot;,&quot;summary&quot;:&quot;解释 apps/esp32_lvgl 的包/模块边界、文件数量、符号数量和跨模块依赖。&quot;,&quot;docPath&quot;:&quot;docs/engineering/package-diagrams/apps-esp32_lvgl/package-diagram.md&quot;,&quot;htmlPath&quot;:&quot;docs/engineering/package-diagrams/apps-esp32_lvgl/package-diagram.html&quot;,&quot;anchor&quot;:&quot;engineering:package:apps-esp32_lvgl&quot;,&quot;relation&quot;:&quot;contains&quot;,&quot;reason&quot;:&quot;打开 apps/esp32_lvgl 的包级图,先确认它是什么工程边界,再用文件规模、符号规模、跨模块引用方向和下钻图判断它是入口模块、共享能力、runtime 支撑还是基础设施边界。 可继续下钻到 3 个 Component Diagram、6 个 Sequence Diagram。&quot;},{&quot;id&quot;:&quot;engineering:diagram:package:firmware&quot;,&quot;kind&quot;:&quot;package&quot;,&quot;title&quot;:&quot;模块边界:firmware&quot;,&quot;summary&quot;:&quot;解释 firmware 的包/模块边界、文件数量、符号数量和跨模块依赖。&quot;,&quot;docPath&quot;:&quot;docs/engineering/package-diagrams/firmware/package-diagram.md&quot;,&quot;htmlPath&quot;:&quot;docs/engineering/package-diagrams/firmware/package-diagram.html&quot;,&quot;anchor&quot;:&quot;engineering:package:firmware&quot;,&quot;relation&quot;:&quot;contains&quot;,&quot;reason&quot;:&quot;打开 firmware 的包级图,先确认它是什么工程边界,再用文件规模、符号规模、跨模块引用方向和下钻图判断它是入口模块、共享能力、runtime 支撑还是基础设施边界。 可继续下钻到 2 个 Component Diagram。&quot;},{&quot;id&quot;:&quot;engineering:diagram:package:apps-nrf52_node&quot;,&quot;kind&quot;:&quot;package&quot;,&quot;title&quot;:&quot;模块边界:apps/nrf52_node&quot;,&quot;summary&quot;:&quot;解释 apps/nrf52_node 的包/模块边界、文件数量、符号数量和跨模块依赖。&quot;,&quot;docPath&quot;:&quot;docs/engineering/package-diagrams/apps-nrf52_node/package-diagram.md&quot;,&quot;htmlPath&quot;:&quot;docs/engineering/package-diagrams/apps-nrf52_node/package-diagram.html&quot;,&quot;anchor&quot;:&quot;engineering:package:apps-nrf52_node&quot;,&quot;relation&quot;:&quot;contains&quot;,&quot;reason&quot;:&quot;打开 apps/nrf52_node 的包级图,先确认它是什么工程边界,再用文件规模、符号规模、跨模块引用方向和下钻图判断它是入口模块、共享能力、runtime 支撑还是基础设施边界。&quot;},{&quot;id&quot;:&quot;engineering:diagram:package:apps-linux_cardputer_zero&quot;,&quot;kind&quot;:&quot;package&quot;,&quot;title&quot;:&quot;模块边界:apps/linux_cardputer_zero&quot;,&quot;summary&quot;:&quot;解释 apps/linux_cardputer_zero 的包/模块边界、文件数量、符号数量和跨模块依赖。&quot;,&quot;docPath&quot;:&quot;docs/engineering/package-diagrams/apps-linux_cardputer_zero/package-diagram.md&quot;,&quot;htmlPath&quot;:&quot;docs/engineering/package-diagrams/apps-linux_cardputer_zero/package-diagram.html&quot;,&quot;anchor&quot;:&quot;engineering:package:apps-linux_cardputer_zero&quot;,&quot;relation&quot;:&quot;contains&quot;,&quot;reason&quot;:&quot;打开 apps/linux_cardputer_zero 的包级图,先确认它是什么工程边界,再用文件规模、符号规模、跨模块引用方向和下钻图判断它是入口模块、共享能力、runtime 支撑还是基础设施边界。 可继续下钻到 4 个 Component Diagram、2 个 Technical Hotspot。&quot;},{&quot;id&quot;:&quot;engineering:diagram:package:apps-linux_sim_shell&quot;,&quot;kind&quot;:&quot;package&quot;,&quot;title&quot;:&quot;模块边界:apps/linux_sim_shell&quot;,&quot;summary&quot;:&quot;解释 apps/linux_sim_shell 的包/模块边界、文件数量、符号数量和跨模块依赖。&quot;,&quot;docPath&quot;:&quot;docs/engineering/package-diagrams/apps-linux_sim_shell/package-diagram.md&quot;,&quot;htmlPath&quot;:&quot;docs/engineering/package-diagrams/apps-linux_sim_shell/package-diagram.html&quot;,&quot;anchor&quot;:&quot;engineering:package:apps-linux_sim_shell&quot;,&quot;relation&quot;:&quot;contains&quot;,&quot;reason&quot;:&quot;打开 apps/linux_sim_shell 的包级图,先确认它是什么工程边界,再用文件规模、符号规模、跨模块引用方向和下钻图判断它是入口模块、共享能力、runtime 支撑还是基础设施边界。&quot;}]">
<h3>Package Diagrams</h3>
<p>18 diagrams · docs/engineering/package-diagrams</p>
<p>进入包/模块边界看板,按工程目录查看 18 个模块如何承担入口、契约、适配、共享能力、运行装配或基础设施职责,并继续下钻到组件、结构、sequence、部署节点和技术热点。</p>
</article>
<article class="layer-card document-entry-card" role="link" tabindex="0" data-praxis-anchor="engineering:category:component" data-praxis-kind="engineering_category" data-praxis-document-title="Component Diagrams" data-praxis-document-summary="进入组件看板,查看 22 个关键类、函数、React 组件、命令入口或接口对象的职责、被引用/调用关系、对外依赖/调用关系、所属模块和可下钻风险。" data-praxis-document-md="docs/engineering/component-diagrams/component-diagrams-maps.md" data-praxis-document-html="docs/engineering/component-diagrams/component-diagrams-maps.html" data-praxis-drilldowns="[{&quot;id&quot;:&quot;engineering:diagram:component:apps-linux_cardputer_zero-main&quot;,&quot;kind&quot;:&quot;component&quot;,&quot;title&quot;:&quot;函数节点:main&quot;,&quot;summary&quot;:&quot;function 位于 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L49,协调多个外部对象或能力,用于解释技术协作和变更影响面。&quot;,&quot;docPath&quot;:&quot;docs/engineering/component-diagrams/apps-linux_cardputer_zero-main/component-diagram.md&quot;,&quot;htmlPath&quot;:&quot;docs/engineering/component-diagrams/apps-linux_cardputer_zero-main/component-diagram.html&quot;,&quot;anchor&quot;:&quot;engineering:component:function:main:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:49&quot;,&quot;relation&quot;:&quot;contains&quot;,&quot;reason&quot;:&quot;打开 函数节点:main 的组件图,查看它位于 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp 的哪类技术对象、承担什么职责、被引用/调用关系和对外依赖/调用关系是否形成变更压力,以及它与结构图、sequence 和热点的关系。 可继续下钻到 2 个 Technical Hotspot。&quot;},{&quot;id&quot;:&quot;engineering:diagram:component:apps-linux_cardputer_zero-contains&quot;,&quot;kind&quot;:&quot;component&quot;,&quot;title&quot;:&quot;函数节点:contains&quot;,&quot;summary&quot;:&quot;function 位于 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L19,被多个对象复用或依赖,用于解释技术协作和变更影响面。&quot;,&quot;docPath&quot;:&quot;docs/engineering/component-diagrams/apps-linux_cardputer_zero-contains/component-diagram.md&quot;,&quot;htmlPath&quot;:&quot;docs/engineering/component-diagrams/apps-linux_cardputer_zero-contains/component-diagram.html&quot;,&quot;anchor&quot;:&quot;engineering:component:function:contains:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:19&quot;,&quot;relation&quot;:&quot;contains&quot;,&quot;reason&quot;:&quot;打开 函数节点:contains 的组件图,查看它位于 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp 的哪类技术对象、承担什么职责、被引用/调用关系和对外依赖/调用关系是否形成变更压力,以及它与结构图、sequence 和热点的关系。 可继续下钻到 2 个 Technical Hotspot。&quot;},{&quot;id&quot;:&quot;engineering:diagram:component:apps-linux_uconsole_gtk-launchsettingslayout&quot;,&quot;kind&quot;:&quot;component&quot;,&quot;title&quot;:&quot;函数节点:launchSettingsLayout&quot;,&quot;summary&quot;:&quot;function 位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L110,协调多个外部对象或能力,用于解释技术协作和变更影响面。&quot;,&quot;docPath&quot;:&quot;docs/engineering/component-diagrams/apps-linux_uconsole_gtk-launchsettingslayout/component-diagram.md&quot;,&quot;htmlPath&quot;:&quot;docs/engineering/component-diagrams/apps-linux_uconsole_gtk-launchsettingslayout/component-diagram.html&quot;,&quot;anchor&quot;:&quot;engineering:component:function:launchsettingslayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:110&quot;,&quot;relation&quot;:&quot;contains&quot;,&quot;reason&quot;:&quot;打开 函数节点:launchSettingsLayout 的组件图,查看它位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp 的哪类技术对象、承担什么职责、被引用/调用关系和对外依赖/调用关系是否形成变更压力,以及它与结构图、sequence 和热点的关系。 可继续下钻到 3 个 Technical Hotspot。&quot;},{&quot;id&quot;:&quot;engineering:diagram:component:apps-linux_uconsole_gtk-makelabel&quot;,&quot;kind&quot;:&quot;component&quot;,&quot;title&quot;:&quot;函数节点:makeLabel&quot;,&quot;summary&quot;:&quot;function 位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp#L9,被多个对象复用或依赖,用于解释技术协作和变更影响面。&quot;,&quot;docPath&quot;:&quot;docs/engineering/component-diagrams/apps-linux_uconsole_gtk-makelabel/component-diagram.md&quot;,&quot;htmlPath&quot;:&quot;docs/engineering/component-diagrams/apps-linux_uconsole_gtk-makelabel/component-diagram.html&quot;,&quot;anchor&quot;:&quot;engineering:component:function:makelabel:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp:9&quot;,&quot;relation&quot;:&quot;contains&quot;,&quot;reason&quot;:&quot;打开 函数节点:makeLabel 的组件图,查看它位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp 的哪类技术对象、承担什么职责、被引用/调用关系和对外依赖/调用关系是否形成变更压力,以及它与结构图、sequence 和热点的关系。 可继续下钻到 3 个 Technical Hotspot。&quot;},{&quot;id&quot;:&quot;engineering:diagram:component:apps-linux_uconsole_gtk-makesettingsrow&quot;,&quot;kind&quot;:&quot;component&quot;,&quot;title&quot;:&quot;函数节点:makeSettingsRow&quot;,&quot;summary&quot;:&quot;function 位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L22,被多个对象复用或依赖,用于解释技术协作和变更影响面。&quot;,&quot;docPath&quot;:&quot;docs/engineering/component-diagrams/apps-linux_uconsole_gtk-makesettingsrow/component-diagram.md&quot;,&quot;htmlPath&quot;:&quot;docs/engineering/component-diagrams/apps-linux_uconsole_gtk-makesettingsrow/component-diagram.html&quot;,&quot;anchor&quot;:&quot;engineering:component:function:makesettingsrow:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:22&quot;,&quot;relation&quot;:&quot;contains&quot;,&quot;reason&quot;:&quot;打开 函数节点:makeSettingsRow 的组件图,查看它位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp 的哪类技术对象、承担什么职责、被引用/调用关系和对外依赖/调用关系是否形成变更压力,以及它与结构图、sequence 和热点的关系。 可继续下钻到 3 个 Technical Hotspot。&quot;},{&quot;id&quot;:&quot;engineering:diagram:component:apps-esp32_lvgl-main&quot;,&quot;kind&quot;:&quot;component&quot;,&quot;title&quot;:&quot;函数节点:main&quot;,&quot;summary&quot;:&quot;function 位于 apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp#L33,协调多个外部对象或能力,用于解释技术协作和变更影响面。&quot;,&quot;docPath&quot;:&quot;docs/engineering/component-diagrams/apps-esp32_lvgl-main/component-diagram.md&quot;,&quot;htmlPath&quot;:&quot;docs/engineering/component-diagrams/apps-esp32_lvgl-main/component-diagram.html&quot;,&quot;anchor&quot;:&quot;engineering:component:function:main:apps-esp32_lvgl-tests-esp32_lvgl_sd_coredump_contract_smoke.cpp:33&quot;,&quot;relation&quot;:&quot;contains&quot;,&quot;reason&quot;:&quot;打开 函数节点:main 的组件图,查看它位于 apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp 的哪类技术对象、承担什么职责、被引用/调用关系和对外依赖/调用关系是否形成变更压力,以及它与结构图、sequence 和热点的关系。 可继续下钻到 5 个 Sequence Diagram。&quot;},{&quot;id&quot;:&quot;engineering:diagram:component:apps-linux_cardputer_zero-not_contains&quot;,&quot;kind&quot;:&quot;component&quot;,&quot;title&quot;:&quot;函数节点:not_contains&quot;,&quot;summary&quot;:&quot;function 位于 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L24,被多个对象复用或依赖,用于解释技术协作和变更影响面。&quot;,&quot;docPath&quot;:&quot;docs/engineering/component-diagrams/apps-linux_cardputer_zero-not_contains/component-diagram.md&quot;,&quot;htmlPath&quot;:&quot;docs/engineering/component-diagrams/apps-linux_cardputer_zero-not_contains/component-diagram.html&quot;,&quot;anchor&quot;:&quot;engineering:component:function:not_contains:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:24&quot;,&quot;relation&quot;:&quot;contains&quot;,&quot;reason&quot;:&quot;打开 函数节点:not_contains 的组件图,查看它位于 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp 的哪类技术对象、承担什么职责、被引用/调用关系和对外依赖/调用关系是否形成变更压力,以及它与结构图、sequence 和热点的关系。 可继续下钻到 2 个 Technical Hotspot。&quot;},{&quot;id&quot;:&quot;engineering:diagram:component:firmware-main&quot;,&quot;kind&quot;:&quot;component&quot;,&quot;title&quot;:&quot;服务对象:main&quot;,&quot;summary&quot;:&quot;function 位于 firmware/c6_companion/tests/test_tm_services_functional.cpp#L97,协调多个外部对象或能力,用于解释技术协作和变更影响面。&quot;,&quot;docPath&quot;:&quot;docs/engineering/component-diagrams/firmware-main/component-diagram.md&quot;,&quot;htmlPath&quot;:&quot;docs/engineering/component-diagrams/firmware-main/component-diagram.html&quot;,&quot;anchor&quot;:&quot;engineering:component:function:main:firmware-c6_companion-tests-test_tm_services_functional.cpp:97&quot;,&quot;relation&quot;:&quot;contains&quot;,&quot;reason&quot;:&quot;打开 服务对象:main 的组件图,查看它位于 firmware/c6_companion/tests/test_tm_services_functional.cpp 的哪类技术对象、承担什么职责、被引用/调用关系和对外依赖/调用关系是否形成变更压力,以及它与结构图、sequence 和热点的关系。&quot;},{&quot;id&quot;:&quot;engineering:diagram:component:apps-esp32_lvgl-contains&quot;,&quot;kind&quot;:&quot;component&quot;,&quot;title&quot;:&quot;函数节点:contains&quot;,&quot;summary&quot;:&quot;function 位于 apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp#L19,被多个对象复用或依赖,用于解释技术协作和变更影响面。&quot;,&quot;docPath&quot;:&quot;docs/engineering/component-diagrams/apps-esp32_lvgl-contains/component-diagram.md&quot;,&quot;htmlPath&quot;:&quot;docs/engineering/component-diagrams/apps-esp32_lvgl-contains/component-diagram.html&quot;,&quot;anchor&quot;:&quot;engineering:component:function:contains:apps-esp32_lvgl-tests-esp32_lvgl_sd_coredump_contract_smoke.cpp:19&quot;,&quot;relation&quot;:&quot;contains&quot;,&quot;reason&quot;:&quot;打开 函数节点:contains 的组件图,查看它位于 apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp 的哪类技术对象、承担什么职责、被引用/调用关系和对外依赖/调用关系是否形成变更压力,以及它与结构图、sequence 和热点的关系。 可继续下钻到 5 个 Sequence Diagram。&quot;},{&quot;id&quot;:&quot;engineering:diagram:component:boards-makeboardprofile&quot;,&quot;kind&quot;:&quot;component&quot;,&quot;title&quot;:&quot;函数节点:makeBoardProfile&quot;,&quot;summary&quot;:&quot;function 位于 boards/t_echo_lite/include/boards/t_echo_lite/board_profile.h#L188,协调多个外部对象或能力,用于解释技术协作和变更影响面。&quot;,&quot;docPath&quot;:&quot;docs/engineering/component-diagrams/boards-makeboardprofile/component-diagram.md&quot;,&quot;htmlPath&quot;:&quot;docs/engineering/component-diagrams/boards-makeboardprofile/component-diagram.html&quot;,&quot;anchor&quot;:&quot;engineering:component:function:makeboardprofile:boards-t_echo_lite-include-boards-t_echo_lite-board_profile.h:188&quot;,&quot;relation&quot;:&quot;contains&quot;,&quot;reason&quot;:&quot;打开 函数节点:makeBoardProfile 的组件图,查看它位于 boards/t_echo_lite/include/boards/t_echo_lite/board_profile.h 的哪类技术对象、承担什么职责、被引用/调用关系和对外依赖/调用关系是否形成变更压力,以及它与结构图、sequence 和热点的关系。 可继续下钻到 2 个 Class / Structural Diagram、2 个 Technical Hotspot。&quot;},{&quot;id&quot;:&quot;engineering:diagram:component:boards-pinnum&quot;,&quot;kind&quot;:&quot;component&quot;,&quot;title&quot;:&quot;函数节点:pinNum&quot;,&quot;summary&quot;:&quot;function 位于 boards/t_echo_lite/include/boards/t_echo_lite/board_profile.h#L8,被多个对象复用或依赖,用于解释技术协作和变更影响面。&quot;,&quot;docPath&quot;:&quot;docs/engineering/component-diagrams/boards-pinnum/component-diagram.md&quot;,&quot;htmlPath&quot;:&quot;docs/engineering/component-diagrams/boards-pinnum/component-diagram.html&quot;,&quot;anchor&quot;:&quot;engineering:component:function:pinnum:boards-t_echo_lite-include-boards-t_echo_lite-board_profile.h:8&quot;,&quot;relation&quot;:&quot;contains&quot;,&quot;reason&quot;:&quot;打开 函数节点:pinNum 的组件图,查看它位于 boards/t_echo_lite/include/boards/t_echo_lite/board_profile.h 的哪类技术对象、承担什么职责、被引用/调用关系和对外依赖/调用关系是否形成变更压力,以及它与结构图、sequence 和热点的关系。 可继续下钻到 2 个 Class / Structural Diagram、2 个 Technical Hotspot。&quot;},{&quot;id&quot;:&quot;engineering:diagram:component:apps-linux_uconsole_gtk-refreshui&quot;,&quot;kind&quot;:&quot;component&quot;,&quot;title&quot;:&quot;函数节点:refreshUi&quot;,&quot;summary&quot;:&quot;function 位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_shell.cpp#L285,被多个对象复用或依赖,用于解释技术协作和变更影响面。&quot;,&quot;docPath&quot;:&quot;docs/engineering/component-diagrams/apps-linux_uconsole_gtk-refreshui/component-diagram.md&quot;,&quot;htmlPath&quot;:&quot;docs/engineering/component-diagrams/apps-linux_uconsole_gtk-refreshui/component-diagram.html&quot;,&quot;anchor&quot;:&quot;engineering:component:function:refreshui:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_shell.cpp:285&quot;,&quot;relation&quot;:&quot;contains&quot;,&quot;reason&quot;:&quot;打开 函数节点:refreshUi 的组件图,查看它位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_shell.cpp 的哪类技术对象、承担什么职责、被引用/调用关系和对外依赖/调用关系是否形成变更压力,以及它与结构图、sequence 和热点的关系。 可继续下钻到 3 个 Technical Hotspot。&quot;}]">
<h3>Component Diagrams</h3>
<p>22 diagrams · docs/engineering/component-diagrams</p>
<p>进入组件看板,查看 22 个关键类、函数、React 组件、命令入口或接口对象的职责、被引用/调用关系、对外依赖/调用关系、所属模块和可下钻风险。</p>
</article>
<article class="layer-card document-entry-card" role="link" tabindex="0" data-praxis-anchor="engineering:category:deployment" data-praxis-kind="engineering_category" data-praxis-document-title="Deployment Diagrams" data-praxis-document-summary="进入运行/部署节点看板,查看构建配置、桌面壳、CLI、包管理、CI 或本地运行入口如何影响工程的启动、打包和交付路径。" data-praxis-document-md="docs/engineering/deployment-diagrams/deployment-diagrams-maps.md" data-praxis-document-html="docs/engineering/deployment-diagrams/deployment-diagrams-maps.html" data-praxis-drilldowns="[]">
<h3>Deployment Diagrams</h3>
<p>0 diagrams · docs/engineering/deployment-diagrams</p>
<p>进入运行/部署节点看板,查看构建配置、桌面壳、CLI、包管理、CI 或本地运行入口如何影响工程的启动、打包和交付路径。</p>
</article>
<article class="layer-card document-entry-card" role="link" tabindex="0" data-praxis-anchor="engineering:category:class_structural" data-praxis-kind="engineering_category" data-praxis-document-title="Class / Structural Diagrams" data-praxis-document-summary="进入结构协作看板,按可命名业务/技术语境查看类、接口和值对象如何形成领域模型、策略、端口、适配或共享支撑;它不是按顶层 layer 或关系数量生成的类名列表。" data-praxis-document-md="docs/engineering/class-structural-diagrams/class-structural-diagrams-maps.md" data-praxis-document-html="docs/engineering/class-structural-diagrams/class-structural-diagrams-maps.html" data-praxis-drilldowns="[{&quot;id&quot;:&quot;engineering:diagram:class-structural:boards-gat562_mesh_evb_pro-include-boards&quot;,&quot;kind&quot;:&quot;class_structural&quot;,&quot;title&quot;:&quot;结构协作:结构切片 boards · gat562_mesh_evb_pro/include/boards&quot;,&quot;summary&quot;:&quot;解释 boards/gat562_mesh_evb_pro/include/boards 这一结构切片中类、接口、组件或值对象如何共同承担结构切片 boards中的结构职责;候选对象包括 Gat562Board、SX1262、Sx1262RadioPacketIo、Gat562Board::I2cGuard、GpsRuntime。&quot;,&quot;docPath&quot;:&quot;docs/engineering/class-structural-diagrams/boards-gat562_mesh_evb_pro-include-boards/class-structural-diagram.md&quot;,&quot;htmlPath&quot;:&quot;docs/engineering/class-structural-diagrams/boards-gat562_mesh_evb_pro-include-boards/class-structural-diagram.html&quot;,&quot;anchor&quot;:&quot;engineering:class-structural:boards-gat562_mesh_evb_pro-include-boards&quot;,&quot;relation&quot;:&quot;contains&quot;,&quot;reason&quot;:&quot;打开 结构协作:结构切片 boards · gat562_mesh_evb_pro/include/boards,查看 boards/gat562_mesh_evb_pro/include/boards 中类、接口和值对象是否共同解释一个业务能力、共享支撑机制或适配边界;如果不能解释共同语境,这张图就应该拆分或降级。 可继续下钻到 1 个 Technical Hotspot。&quot;},{&quot;id&quot;:&quot;engineering:diagram:class-structural:boards-t_echo_lite-include-boards&quot;,&quot;kind&quot;:&quot;class_structural&quot;,&quot;title&quot;:&quot;结构协作:结构切片 boards · t_echo_lite/include/boards&quot;,&quot;summary&quot;:&quot;解释 boards/t_echo_lite/include/boards 这一结构切片中类、接口、组件或值对象如何共同承担结构切片 boards中的结构职责;候选对象包括 TEchoLiteBoard、Sx1262RadioPacketIo、TEchoLiteBoard::I2cGuard、GpsRuntime、Module。&quot;,&quot;docPath&quot;:&quot;docs/engineering/class-structural-diagrams/boards-t_echo_lite-include-boards/class-structural-diagram.md&quot;,&quot;htmlPath&quot;:&quot;docs/engineering/class-structural-diagrams/boards-t_echo_lite-include-boards/class-structural-diagram.html&quot;,&quot;anchor&quot;:&quot;engineering:class-structural:boards-t_echo_lite-include-boards&quot;,&quot;relation&quot;:&quot;contains&quot;,&quot;reason&quot;:&quot;打开 结构协作:结构切片 boards · t_echo_lite/include/boards,查看 boards/t_echo_lite/include/boards 中类、接口和值对象是否共同解释一个业务能力、共享支撑机制或适配边界;如果不能解释共同语境,这张图就应该拆分或降级。 可继续下钻到 2 个 Component Diagram、1 个 Technical Hotspot。&quot;},{&quot;id&quot;:&quot;engineering:diagram:class-structural:boards-tab5-include-boards&quot;,&quot;kind&quot;:&quot;class_structural&quot;,&quot;title&quot;:&quot;结构协作:结构切片 boards · tab5/include/boards&quot;,&quot;summary&quot;:&quot;解释 boards/tab5/include/boards 这一结构切片中类、接口、组件或值对象如何共同承担结构切片 boards中的结构职责;候选对象包括 Tab5Board、Tab5Board::ManagedSystemI2cGuard、Tab5Board::SysI2cGuard、CodecCompat。&quot;,&quot;docPath&quot;:&quot;docs/engineering/class-structural-diagrams/boards-tab5-include-boards/class-structural-diagram.md&quot;,&quot;htmlPath&quot;:&quot;docs/engineering/class-structural-diagrams/boards-tab5-include-boards/class-structural-diagram.html&quot;,&quot;anchor&quot;:&quot;engineering:class-structural:boards-tab5-include-boards&quot;,&quot;relation&quot;:&quot;contains&quot;,&quot;reason&quot;:&quot;打开 结构协作:结构切片 boards · tab5/include/boards,查看 boards/tab5/include/boards 中类、接口和值对象是否共同解释一个业务能力、共享支撑机制或适配边界;如果不能解释共同语境,这张图就应该拆分或降级。 可继续下钻到 1 个 Technical Hotspot。&quot;},{&quot;id&quot;:&quot;engineering:diagram:class-structural:boards-t_display_p4-include-boards&quot;,&quot;kind&quot;:&quot;class_structural&quot;,&quot;title&quot;:&quot;结构协作:结构切片 boards · t_display_p4/include/boards&quot;,&quot;summary&quot;:&quot;解释 boards/t_display_p4/include/boards 这一结构切片中类、接口、组件或值对象如何共同承担结构切片 boards中的结构职责;候选对象包括 TDisplayP4Board、TDisplayP4Board::ManagedSystemI2cGuard。&quot;,&quot;docPath&quot;:&quot;docs/engineering/class-structural-diagrams/boards-t_display_p4-include-boards/class-structural-diagram.md&quot;,&quot;htmlPath&quot;:&quot;docs/engineering/class-structural-diagrams/boards-t_display_p4-include-boards/class-structural-diagram.html&quot;,&quot;anchor&quot;:&quot;engineering:class-structural:boards-t_display_p4-include-boards&quot;,&quot;relation&quot;:&quot;contains&quot;,&quot;reason&quot;:&quot;打开 结构协作:结构切片 boards · t_display_p4/include/boards,查看 boards/t_display_p4/include/boards 中类、接口和值对象是否共同解释一个业务能力、共享支撑机制或适配边界;如果不能解释共同语境,这张图就应该拆分或降级。 可继续下钻到 1 个 Technical Hotspot。&quot;},{&quot;id&quot;:&quot;engineering:diagram:class-structural:boards-tlora_pager-include-boards&quot;,&quot;kind&quot;:&quot;class_structural&quot;,&quot;title&quot;:&quot;结构协作:结构切片 boards · tlora_pager/include/boards&quot;,&quot;summary&quot;:&quot;解释 boards/tlora_pager/include/boards 这一结构切片中类、接口、组件或值对象如何共同承担结构切片 boards中的结构职责;候选对象包括 TLoRaPagerBoard、SX1262Access、AppContext。&quot;,&quot;docPath&quot;:&quot;docs/engineering/class-structural-diagrams/boards-tlora_pager-include-boards/class-structural-diagram.md&quot;,&quot;htmlPath&quot;:&quot;docs/engineering/class-structural-diagrams/boards-tlora_pager-include-boards/class-structural-diagram.html&quot;,&quot;anchor&quot;:&quot;engineering:class-structural:boards-tlora_pager-include-boards&quot;,&quot;relation&quot;:&quot;contains&quot;,&quot;reason&quot;:&quot;打开 结构协作:结构切片 boards · tlora_pager/include/boards,查看 boards/tlora_pager/include/boards 中类、接口和值对象是否共同解释一个业务能力、共享支撑机制或适配边界;如果不能解释共同语境,这张图就应该拆分或降级。 可继续下钻到 1 个 Technical Hotspot。&quot;},{&quot;id&quot;:&quot;engineering:diagram:class-structural:boards-tdeck-include-boards&quot;,&quot;kind&quot;:&quot;class_structural&quot;,&quot;title&quot;:&quot;结构协作:结构切片 boards · tdeck/include/boards&quot;,&quot;summary&quot;:&quot;解释 boards/tdeck/include/boards 这一结构切片中类、接口、组件或值对象如何共同承担结构切片 boards中的结构职责;候选对象包括 TDeckBoard、SX1262Access。&quot;,&quot;docPath&quot;:&quot;docs/engineering/class-structural-diagrams/boards-tdeck-include-boards/class-structural-diagram.md&quot;,&quot;htmlPath&quot;:&quot;docs/engineering/class-structural-diagrams/boards-tdeck-include-boards/class-structural-diagram.html&quot;,&quot;anchor&quot;:&quot;engineering:class-structural:boards-tdeck-include-boards&quot;,&quot;relation&quot;:&quot;contains&quot;,&quot;reason&quot;:&quot;打开 结构协作:结构切片 boards · tdeck/include/boards,查看 boards/tdeck/include/boards 中类、接口和值对象是否共同解释一个业务能力、共享支撑机制或适配边界;如果不能解释共同语境,这张图就应该拆分或降级。 可继续下钻到 1 个 Technical Hotspot。&quot;},{&quot;id&quot;:&quot;engineering:diagram:class-structural:boards-tdeck_pro-include-boards&quot;,&quot;kind&quot;:&quot;class_structural&quot;,&quot;title&quot;:&quot;结构协作:结构切片 boards · tdeck_pro/include/boards&quot;,&quot;summary&quot;:&quot;解释 boards/tdeck_pro/include/boards 这一结构切片中类、接口、组件或值对象如何共同承担结构切片 boards中的结构职责;候选对象包括 TDeckProBoard、SX1262Access。&quot;,&quot;docPath&quot;:&quot;docs/engineering/class-structural-diagrams/boards-tdeck_pro-include-boards/class-structural-diagram.md&quot;,&quot;htmlPath&quot;:&quot;docs/engineering/class-structural-diagrams/boards-tdeck_pro-include-boards/class-structural-diagram.html&quot;,&quot;anchor&quot;:&quot;engineering:class-structural:boards-tdeck_pro-include-boards&quot;,&quot;relation&quot;:&quot;contains&quot;,&quot;reason&quot;:&quot;打开 结构协作:结构切片 boards · tdeck_pro/include/boards,查看 boards/tdeck_pro/include/boards 中类、接口和值对象是否共同解释一个业务能力、共享支撑机制或适配边界;如果不能解释共同语境,这张图就应该拆分或降级。 可继续下钻到 1 个 Technical Hotspot。&quot;},{&quot;id&quot;:&quot;engineering:diagram:class-structural:boards-twatchs3-include-boards&quot;,&quot;kind&quot;:&quot;class_structural&quot;,&quot;title&quot;:&quot;结构协作:结构切片 boards · twatchs3/include/boards&quot;,&quot;summary&quot;:&quot;解释 boards/twatchs3/include/boards 这一结构切片中类、接口、组件或值对象如何共同承担结构切片 boards中的结构职责;候选对象包括 TWatchS3Board、SX1262Access。&quot;,&quot;docPath&quot;:&quot;docs/engineering/class-structural-diagrams/boards-twatchs3-include-boards/class-structural-diagram.md&quot;,&quot;htmlPath&quot;:&quot;docs/engineering/class-structural-diagrams/boards-twatchs3-include-boards/class-structural-diagram.html&quot;,&quot;anchor&quot;:&quot;engineering:class-structural:boards-twatchs3-include-boards&quot;,&quot;relation&quot;:&quot;contains&quot;,&quot;reason&quot;:&quot;打开 结构协作:结构切片 boards · twatchs3/include/boards,查看 boards/twatchs3/include/boards 中类、接口和值对象是否共同解释一个业务能力、共享支撑机制或适配边界;如果不能解释共同语境,这张图就应该拆分或降级。 可继续下钻到 1 个 Technical Hotspot。&quot;},{&quot;id&quot;:&quot;engineering:diagram:class-structural:boards-gat562_mesh_evb_pro&quot;,&quot;kind&quot;:&quot;class_structural&quot;,&quot;title&quot;:&quot;结构协作:结构切片 gat562_mesh_evb_pro · gat562_mesh_evb_pro&quot;,&quot;summary&quot;:&quot;解释 boards/gat562_mesh_evb_pro 这一结构切片中类、接口、组件或值对象如何共同承担结构切片 gat562_mesh_evb_pro中的结构职责;候选对象包括 Ssd1306MonoDisplay、ScopedGpsSuspend。&quot;,&quot;docPath&quot;:&quot;docs/engineering/class-structural-diagrams/boards-gat562_mesh_evb_pro/class-structural-diagram.md&quot;,&quot;htmlPath&quot;:&quot;docs/engineering/class-structural-diagrams/boards-gat562_mesh_evb_pro/class-structural-diagram.html&quot;,&quot;anchor&quot;:&quot;engineering:class-structural:boards-gat562_mesh_evb_pro&quot;,&quot;relation&quot;:&quot;contains&quot;,&quot;reason&quot;:&quot;打开 结构协作:结构切片 gat562_mesh_evb_pro · gat562_mesh_evb_pro,查看 boards/gat562_mesh_evb_pro 中类、接口和值对象是否共同解释一个业务能力、共享支撑机制或适配边界;如果不能解释共同语境,这张图就应该拆分或降级。 可继续下钻到 1 个 Technical Hotspot。&quot;},{&quot;id&quot;:&quot;engineering:diagram:class-structural:boards-t_echo_lite&quot;,&quot;kind&quot;:&quot;class_structural&quot;,&quot;title&quot;:&quot;结构协作:结构切片 t_echo_lite · t_echo_lite&quot;,&quot;summary&quot;:&quot;解释 boards/t_echo_lite 这一结构切片中类、接口、组件或值对象如何共同承担结构切片 t_echo_lite中的结构职责;候选对象包括 EpaperMonoDisplay、ScopedGpsSuspend。&quot;,&quot;docPath&quot;:&quot;docs/engineering/class-structural-diagrams/boards-t_echo_lite/class-structural-diagram.md&quot;,&quot;htmlPath&quot;:&quot;docs/engineering/class-structural-diagrams/boards-t_echo_lite/class-structural-diagram.html&quot;,&quot;anchor&quot;:&quot;engineering:class-structural:boards-t_echo_lite&quot;,&quot;relation&quot;:&quot;contains&quot;,&quot;reason&quot;:&quot;打开 结构协作:结构切片 t_echo_lite · t_echo_lite,查看 boards/t_echo_lite 中类、接口和值对象是否共同解释一个业务能力、共享支撑机制或适配边界;如果不能解释共同语境,这张图就应该拆分或降级。 可继续下钻到 2 个 Component Diagram、1 个 Technical Hotspot。&quot;}]">
<h3>Class / Structural Diagrams</h3>
<p>10 diagrams · docs/engineering/class-structural-diagrams</p>
<p>进入结构协作看板,按可命名业务/技术语境查看类、接口和值对象如何形成领域模型、策略、端口、适配或共享支撑;它不是按顶层 layer 或关系数量生成的类名列表。</p>
</article>
<article class="layer-card document-entry-card" role="link" tabindex="0" data-praxis-anchor="engineering:category:sequence" data-praxis-kind="engineering_category" data-praxis-document-title="Sequence Diagrams" data-praxis-document-summary="进入 Sequence 看板,查看 18 条由本地仓库证据观察到的真实调用片段,用动态协作视角补足静态结构图。静态 import/reference 不会被当作时序图。" data-praxis-document-md="docs/engineering/sequence-diagrams/sequence-diagrams-maps.md" data-praxis-document-html="docs/engineering/sequence-diagrams/sequence-diagrams-maps.html" data-praxis-drilldowns="[{&quot;id&quot;:&quot;engineering:diagram:sequence:tick-calls-log_loop_interval&quot;,&quot;kind&quot;:&quot;sequence&quot;,&quot;title&quot;:&quot;动态协作:tick 调用 log_loop_interval&quot;,&quot;summary&quot;:&quot;apps/esp32_lvgl/src/esp32_lvgl_arduino_loop_runtime.cpp 中的 tick calls apps/esp32_lvgl/src/esp32_lvgl_arduino_loop_runtime.cpp 中的 log_loop_interval。&quot;,&quot;docPath&quot;:&quot;docs/engineering/sequence-diagrams/tick-calls-log_loop_interval/sequence-diagram.md&quot;,&quot;htmlPath&quot;:&quot;docs/engineering/sequence-diagrams/tick-calls-log_loop_interval/sequence-diagram.html&quot;,&quot;anchor&quot;:&quot;engineering:runtime-flow:tick:log_loop_interval:apps-esp32_lvgl-src-esp32_lvgl_arduino_loop_runtime.cpp:apps-esp32_lvgl-src-esp32_lvgl_arduino_loop_runtime.cpp&quot;,&quot;relation&quot;:&quot;contains&quot;,&quot;reason&quot;:&quot;打开 tick 到 log_loop_interval 的动态协作片段,检查这次调用在相关组件、结构切片和业务下钻中承担什么运行职责。&quot;},{&quot;id&quot;:&quot;engineering:diagram:sequence:add_status_line-calls-add_label&quot;,&quot;kind&quot;:&quot;sequence&quot;,&quot;title&quot;:&quot;动态协作:add_status_line 调用 add_label&quot;,&quot;summary&quot;:&quot;apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_status_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_label。&quot;,&quot;docPath&quot;:&quot;docs/engineering/sequence-diagrams/add_status_line-calls-add_label/sequence-diagram.md&quot;,&quot;htmlPath&quot;:&quot;docs/engineering/sequence-diagrams/add_status_line-calls-add_label/sequence-diagram.html&quot;,&quot;anchor&quot;:&quot;engineering:runtime-flow:add_status_line:add_label:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp&quot;,&quot;relation&quot;:&quot;contains&quot;,&quot;reason&quot;:&quot;打开 add_status_line 到 add_label 的动态协作片段,检查这次调用在相关组件、结构切片和业务下钻中承担什么运行职责。 可继续下钻到 1 个 Component Diagram。&quot;},{&quot;id&quot;:&quot;engineering:diagram:sequence:add_u32_line-calls-add_label&quot;,&quot;kind&quot;:&quot;sequence&quot;,&quot;title&quot;:&quot;动态协作:add_u32_line 调用 add_label&quot;,&quot;summary&quot;:&quot;apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_u32_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_label。&quot;,&quot;docPath&quot;:&quot;docs/engineering/sequence-diagrams/add_u32_line-calls-add_label/sequence-diagram.md&quot;,&quot;htmlPath&quot;:&quot;docs/engineering/sequence-diagrams/add_u32_line-calls-add_label/sequence-diagram.html&quot;,&quot;anchor&quot;:&quot;engineering:runtime-flow:add_u32_line:add_label:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp&quot;,&quot;relation&quot;:&quot;contains&quot;,&quot;reason&quot;:&quot;打开 add_u32_line 到 add_label 的动态协作片段,检查这次调用在相关组件、结构切片和业务下钻中承担什么运行职责。 可继续下钻到 1 个 Component Diagram。&quot;},{&quot;id&quot;:&quot;engineering:diagram:sequence:add_hex_line-calls-add_status_line&quot;,&quot;kind&quot;:&quot;sequence&quot;,&quot;title&quot;:&quot;动态协作:add_hex_line 调用 add_status_line&quot;,&quot;summary&quot;:&quot;apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_hex_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_status_line。&quot;,&quot;docPath&quot;:&quot;docs/engineering/sequence-diagrams/add_hex_line-calls-add_status_line/sequence-diagram.md&quot;,&quot;htmlPath&quot;:&quot;docs/engineering/sequence-diagrams/add_hex_line-calls-add_status_line/sequence-diagram.html&quot;,&quot;anchor&quot;:&quot;engineering:runtime-flow:add_hex_line:add_status_line:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp&quot;,&quot;relation&quot;:&quot;contains&quot;,&quot;reason&quot;:&quot;打开 add_hex_line 到 add_status_line 的动态协作片段,检查这次调用在相关组件、结构切片和业务下钻中承担什么运行职责。 可继续下钻到 1 个 Component Diagram。&quot;},{&quot;id&quot;:&quot;engineering:diagram:sequence:companion_enter-calls-add_label&quot;,&quot;kind&quot;:&quot;sequence&quot;,&quot;title&quot;:&quot;动态协作:companion_enter 调用 add_label&quot;,&quot;summary&quot;:&quot;apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 companion_enter calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_label。&quot;,&quot;docPath&quot;:&quot;docs/engineering/sequence-diagrams/companion_enter-calls-add_label/sequence-diagram.md&quot;,&quot;htmlPath&quot;:&quot;docs/engineering/sequence-diagrams/companion_enter-calls-add_label/sequence-diagram.html&quot;,&quot;anchor&quot;:&quot;engineering:runtime-flow:companion_enter:add_label:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp&quot;,&quot;relation&quot;:&quot;contains&quot;,&quot;reason&quot;:&quot;打开 companion_enter 到 add_label 的动态协作片段,检查这次调用在相关组件、结构切片和业务下钻中承担什么运行职责。 可继续下钻到 1 个 Component Diagram。&quot;},{&quot;id&quot;:&quot;engineering:diagram:sequence:companion_enter-calls-add_status_line&quot;,&quot;kind&quot;:&quot;sequence&quot;,&quot;title&quot;:&quot;动态协作:companion_enter 调用 add_status_line&quot;,&quot;summary&quot;:&quot;apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 companion_enter calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_status_line。&quot;,&quot;docPath&quot;:&quot;docs/engineering/sequence-diagrams/companion_enter-calls-add_status_line/sequence-diagram.md&quot;,&quot;htmlPath&quot;:&quot;docs/engineering/sequence-diagrams/companion_enter-calls-add_status_line/sequence-diagram.html&quot;,&quot;anchor&quot;:&quot;engineering:runtime-flow:companion_enter:add_status_line:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp&quot;,&quot;relation&quot;:&quot;contains&quot;,&quot;reason&quot;:&quot;打开 companion_enter 到 add_status_line 的动态协作片段,检查这次调用在相关组件、结构切片和业务下钻中承担什么运行职责。 可继续下钻到 1 个 Component Diagram。&quot;},{&quot;id&quot;:&quot;engineering:diagram:sequence:companion_enter-calls-add_u32_line&quot;,&quot;kind&quot;:&quot;sequence&quot;,&quot;title&quot;:&quot;动态协作:companion_enter 调用 add_u32_line&quot;,&quot;summary&quot;:&quot;apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 companion_enter calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_u32_line。&quot;,&quot;docPath&quot;:&quot;docs/engineering/sequence-diagrams/companion_enter-calls-add_u32_line/sequence-diagram.md&quot;,&quot;htmlPath&quot;:&quot;docs/engineering/sequence-diagrams/companion_enter-calls-add_u32_line/sequence-diagram.html&quot;,&quot;anchor&quot;:&quot;engineering:runtime-flow:companion_enter:add_u32_line:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp&quot;,&quot;relation&quot;:&quot;contains&quot;,&quot;reason&quot;:&quot;打开 companion_enter 到 add_u32_line 的动态协作片段,检查这次调用在相关组件、结构切片和业务下钻中承担什么运行职责。 可继续下钻到 1 个 Component Diagram。&quot;},{&quot;id&quot;:&quot;engineering:diagram:sequence:companion_enter-calls-add_hex_line&quot;,&quot;kind&quot;:&quot;sequence&quot;,&quot;title&quot;:&quot;动态协作:companion_enter 调用 add_hex_line&quot;,&quot;summary&quot;:&quot;apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 companion_enter calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_hex_line。&quot;,&quot;docPath&quot;:&quot;docs/engineering/sequence-diagrams/companion_enter-calls-add_hex_line/sequence-diagram.md&quot;,&quot;htmlPath&quot;:&quot;docs/engineering/sequence-diagrams/companion_enter-calls-add_hex_line/sequence-diagram.html&quot;,&quot;anchor&quot;:&quot;engineering:runtime-flow:companion_enter:add_hex_line:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp&quot;,&quot;relation&quot;:&quot;contains&quot;,&quot;reason&quot;:&quot;打开 companion_enter 到 add_hex_line 的动态协作片段,检查这次调用在相关组件、结构切片和业务下钻中承担什么运行职责。 可继续下钻到 1 个 Component Diagram。&quot;},{&quot;id&quot;:&quot;engineering:diagram:sequence:startesp32lvglloopruntime-calls-canstartesp32lvglloopruntime&quot;,&quot;kind&quot;:&quot;sequence&quot;,&quot;title&quot;:&quot;动态协作:startEsp32LvglLoopRuntime 调用 canStartEsp32LvglLoopRuntime&quot;,&quot;summary&quot;:&quot;apps/esp32_lvgl/src/esp32_lvgl_loop_runtime.cpp 中的 startEsp32LvglLoopRuntime calls apps/esp32_lvgl/src/esp32_lvgl_loop_runtime.cpp 中的 canStartEsp32LvglLoopRuntime。&quot;,&quot;docPath&quot;:&quot;docs/engineering/sequence-diagrams/startesp32lvglloopruntime-calls-canstartesp32lvglloopruntime/sequence-diagram.md&quot;,&quot;htmlPath&quot;:&quot;docs/engineering/sequence-diagrams/startesp32lvglloopruntime-calls-canstartesp32lvglloopruntime/sequence-diagram.html&quot;,&quot;anchor&quot;:&quot;engineering:runtime-flow:startesp32lvglloopruntime:canstartesp32lvglloopruntime:apps-esp32_lvgl-src-esp32_lvgl_loop_runtime.cpp:apps-esp32_lvgl-src-esp32_lvgl_loop_runtime.cpp&quot;,&quot;relation&quot;:&quot;contains&quot;,&quot;reason&quot;:&quot;打开 startEsp32LvglLoopRuntime 到 canStartEsp32LvglLoopRuntime 的动态协作片段,检查这次调用在相关组件、结构切片和业务下钻中承担什么运行职责。&quot;},{&quot;id&quot;:&quot;engineering:diagram:sequence:hasesp32lvglruntimetargetprofile-calls-esp32lvglruntimetargetprofile&quot;,&quot;kind&quot;:&quot;sequence&quot;,&quot;title&quot;:&quot;动态协作:hasEsp32LvglRuntimeTargetProfile 调用 esp32LvglRuntimeTargetProfile&quot;,&quot;summary&quot;:&quot;apps/esp32_lvgl/src/esp32_lvgl_runtime_config.cpp 中的 hasEsp32LvglRuntimeTargetProfile calls apps/esp32_lvgl/src/esp32_lvgl_runtime_config.cpp 中的 esp32LvglRuntimeTargetProfile。&quot;,&quot;docPath&quot;:&quot;docs/engineering/sequence-diagrams/hasesp32lvglruntimetargetprofile-calls-esp32lvglruntimetargetprofile/sequence-diagram.md&quot;,&quot;htmlPath&quot;:&quot;docs/engineering/sequence-diagrams/hasesp32lvglruntimetargetprofile-calls-esp32lvglruntimetargetprofile/sequence-diagram.html&quot;,&quot;anchor&quot;:&quot;engineering:runtime-flow:hasesp32lvglruntimetargetprofile:esp32lvglruntimetargetprofile:apps-esp32_lvgl-src-esp32_lvgl_runtime_config.cpp:apps-esp32_lvgl-src-esp32_lvgl_runtime_config.cpp&quot;,&quot;relation&quot;:&quot;contains&quot;,&quot;reason&quot;:&quot;打开 hasEsp32LvglRuntimeTargetProfile 到 esp32LvglRuntimeTargetProfile 的动态协作片段,检查这次调用在相关组件、结构切片和业务下钻中承担什么运行职责。&quot;},{&quot;id&quot;:&quot;engineering:diagram:sequence:showbootui-calls-lockui&quot;,&quot;kind&quot;:&quot;sequence&quot;,&quot;title&quot;:&quot;动态协作:showBootUi 调用 lockUi&quot;,&quot;summary&quot;:&quot;apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 中的 showBootUi calls apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 中的 lockUi。&quot;,&quot;docPath&quot;:&quot;docs/engineering/sequence-diagrams/showbootui-calls-lockui/sequence-diagram.md&quot;,&quot;htmlPath&quot;:&quot;docs/engineering/sequence-diagrams/showbootui-calls-lockui/sequence-diagram.html&quot;,&quot;anchor&quot;:&quot;engineering:runtime-flow:showbootui:lockui:apps-esp32_lvgl-src-esp32_lvgl_startup_runtime.cpp:apps-esp32_lvgl-src-esp32_lvgl_startup_runtime.cpp&quot;,&quot;relation&quot;:&quot;contains&quot;,&quot;reason&quot;:&quot;打开 showBootUi 到 lockUi 的动态协作片段,检查这次调用在相关组件、结构切片和业务下钻中承担什么运行职责。&quot;},{&quot;id&quot;:&quot;engineering:diagram:sequence:showbootui-calls-unlockui&quot;,&quot;kind&quot;:&quot;sequence&quot;,&quot;title&quot;:&quot;动态协作:showBootUi 调用 unlockUi&quot;,&quot;summary&quot;:&quot;apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 中的 showBootUi calls apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 中的 unlockUi。&quot;,&quot;docPath&quot;:&quot;docs/engineering/sequence-diagrams/showbootui-calls-unlockui/sequence-diagram.md&quot;,&quot;htmlPath&quot;:&quot;docs/engineering/sequence-diagrams/showbootui-calls-unlockui/sequence-diagram.html&quot;,&quot;anchor&quot;:&quot;engineering:runtime-flow:showbootui:unlockui:apps-esp32_lvgl-src-esp32_lvgl_startup_runtime.cpp:apps-esp32_lvgl-src-esp32_lvgl_startup_runtime.cpp&quot;,&quot;relation&quot;:&quot;contains&quot;,&quot;reason&quot;:&quot;打开 showBootUi 到 unlockUi 的动态协作片段,检查这次调用在相关组件、结构切片和业务下钻中承担什么运行职责。&quot;}]">
<h3>Sequence Diagrams</h3>
<p>18 diagrams · docs/engineering/sequence-diagrams</p>
<p>进入 Sequence 看板,查看 18 条由本地仓库证据观察到的真实调用片段,用动态协作视角补足静态结构图。静态 import/reference 不会被当作时序图。</p>
</article>
<article class="layer-card document-entry-card" role="link" tabindex="0" data-praxis-anchor="engineering:category:state_machine" data-praxis-kind="engineering_category" data-praxis-document-title="State Machine Diagrams" data-praxis-document-summary="进入状态机看板;只有证据表明确实存在关键状态字段、枚举或迁移语义时才会生成,避免为凑 UML 虚构状态机。" data-praxis-document-md="docs/engineering/state-machine-diagrams/state-machine-diagrams-maps.md" data-praxis-document-html="docs/engineering/state-machine-diagrams/state-machine-diagrams-maps.html" data-praxis-drilldowns="[]">
<h3>State Machine Diagrams</h3>
<p>0 diagrams · docs/engineering/state-machine-diagrams</p>
<p>进入状态机看板;只有证据表明确实存在关键状态字段、枚举或迁移语义时才会生成,避免为凑 UML 虚构状态机。</p>
</article>
<article class="layer-card document-entry-card" role="link" tabindex="0" data-praxis-anchor="engineering:category:technical_hotspot" data-praxis-kind="engineering_category" data-praxis-document-title="Technical Hotspots" data-praxis-document-summary="进入技术热点看板,查看大文件、被广泛复用对象、外部协作对象、依赖簇或扫描告警为什么会增加阅读、修改、测试和回归成本。" data-praxis-document-md="docs/engineering/technical-hotspots/technical-hotspots-maps.md" data-praxis-document-html="docs/engineering/technical-hotspots/technical-hotspots-maps.html" data-praxis-drilldowns="[{&quot;id&quot;:&quot;engineering:diagram:technical-hotspot:large-file--build-t_display_p4_tft-bootloader-config-kconfig_menus-json&quot;,&quot;kind&quot;:&quot;technical_hotspot&quot;,&quot;title&quot;:&quot;大文件:build.t_display_p4_tft/bootloader/config/kconfig_menus.json 技术热点&quot;,&quot;summary&quot;:&quot;该文件约 13990 行,可能形成阅读、变更和评审负担。&quot;,&quot;docPath&quot;:&quot;docs/engineering/technical-hotspots/large-file--build-t_display_p4_tft-bootloader-config-kconfig_menus-json/technical-hotspot.md&quot;,&quot;htmlPath&quot;:&quot;docs/engineering/technical-hotspots/large-file--build-t_display_p4_tft-bootloader-config-kconfig_menus-json/technical-hotspot.html&quot;,&quot;anchor&quot;:&quot;engineering:hotspot:large-file:build.t_display_p4_tft-bootloader-config-kconfig_menus.json&quot;,&quot;relation&quot;:&quot;contains&quot;,&quot;reason&quot;:&quot;打开 大文件:build.t_display_p4_tft/bootloader/config/kconfig_menus.json 技术热点 的热点图,查看 build.t_display_p4_tft/bootloader/config/kconfig_menus.json 为什么可能抬高阅读、修改、测试或回归成本,并反向定位相关 package、component、structure 或 sequence。 可继续下钻到 1 个 Package Diagram。&quot;},{&quot;id&quot;:&quot;engineering:diagram:technical-hotspot:large-file--build-tdisplayp4_amoled-bootloader-config-kconfig_menus-json&quot;,&quot;kind&quot;:&quot;technical_hotspot&quot;,&quot;title&quot;:&quot;大文件:build.tdisplayp4_amoled/bootloader/config/kconfig_menus.json 技术热点&quot;,&quot;summary&quot;:&quot;该文件约 13990 行,可能形成阅读、变更和评审负担。&quot;,&quot;docPath&quot;:&quot;docs/engineering/technical-hotspots/large-file--build-tdisplayp4_amoled-bootloader-config-kconfig_menus-json/technical-hotspot.md&quot;,&quot;htmlPath&quot;:&quot;docs/engineering/technical-hotspots/large-file--build-tdisplayp4_amoled-bootloader-config-kconfig_menus-json/technical-hotspot.html&quot;,&quot;anchor&quot;:&quot;engineering:hotspot:large-file:build.tdisplayp4_amoled-bootloader-config-kconfig_menus.json&quot;,&quot;relation&quot;:&quot;contains&quot;,&quot;reason&quot;:&quot;打开 大文件:build.tdisplayp4_amoled/bootloader/config/kconfig_menus.json 技术热点 的热点图,查看 build.tdisplayp4_amoled/bootloader/config/kconfig_menus.json 为什么可能抬高阅读、修改、测试或回归成本,并反向定位相关 package、component、structure 或 sequence。 可继续下钻到 1 个 Package Diagram。&quot;},{&quot;id&quot;:&quot;engineering:diagram:technical-hotspot:large-file--build-tdisplayp4_tft-bootloader-config-kconfig_menus-json&quot;,&quot;kind&quot;:&quot;technical_hotspot&quot;,&quot;title&quot;:&quot;大文件:build.tdisplayp4_tft/bootloader/config/kconfig_menus.json 技术热点&quot;,&quot;summary&quot;:&quot;该文件约 13990 行,可能形成阅读、变更和评审负担。&quot;,&quot;docPath&quot;:&quot;docs/engineering/technical-hotspots/large-file--build-tdisplayp4_tft-bootloader-config-kconfig_menus-json/technical-hotspot.md&quot;,&quot;htmlPath&quot;:&quot;docs/engineering/technical-hotspots/large-file--build-tdisplayp4_tft-bootloader-config-kconfig_menus-json/technical-hotspot.html&quot;,&quot;anchor&quot;:&quot;engineering:hotspot:large-file:build.tdisplayp4_tft-bootloader-config-kconfig_menus.json&quot;,&quot;relation&quot;:&quot;contains&quot;,&quot;reason&quot;:&quot;打开 大文件:build.tdisplayp4_tft/bootloader/config/kconfig_menus.json 技术热点 的热点图,查看 build.tdisplayp4_tft/bootloader/config/kconfig_menus.json 为什么可能抬高阅读、修改、测试或回归成本,并反向定位相关 package、component、structure 或 sequence。 可继续下钻到 1 个 Package Diagram。&quot;},{&quot;id&quot;:&quot;engineering:diagram:technical-hotspot:large-file--managed_components-lvgl__lvgl-src-font-lv_font_montserrat_48-c&quot;,&quot;kind&quot;:&quot;technical_hotspot&quot;,&quot;title&quot;:&quot;大文件:managed_components/lvgl__lvgl/src/font/lv_font_montserrat_48.c 技术热点&quot;,&quot;summary&quot;:&quot;该文件约 12570 行,可能形成阅读、变更和评审负担。&quot;,&quot;docPath&quot;:&quot;docs/engineering/technical-hotspots/large-file--managed_components-lvgl__lvgl-src-font-lv_font_montserrat_48-c/technical-hotspot.md&quot;,&quot;htmlPath&quot;:&quot;docs/engineering/technical-hotspots/large-file--managed_components-lvgl__lvgl-src-font-lv_font_montserrat_48-c/technical-hotspot.html&quot;,&quot;anchor&quot;:&quot;engineering:hotspot:large-file:managed_components-lvgl__lvgl-src-font-lv_font_montserrat_48.c&quot;,&quot;relation&quot;:&quot;contains&quot;,&quot;reason&quot;:&quot;打开 大文件:managed_components/lvgl__lvgl/src/font/lv_font_montserrat_48.c 技术热点 的热点图,查看 managed_components/lvgl__lvgl/src/font/lv_font_montserrat_48.c 为什么可能抬高阅读、修改、测试或回归成本,并反向定位相关 package、component、structure 或 sequence。 可继续下钻到 1 个 Package Diagram。&quot;},{&quot;id&quot;:&quot;engineering:diagram:technical-hotspot:large-file--build-c6_companion-bootloader-config-kconfig_menus-json&quot;,&quot;kind&quot;:&quot;technical_hotspot&quot;,&quot;title&quot;:&quot;大文件:build.c6_companion/bootloader/config/kconfig_menus.json 技术热点&quot;,&quot;summary&quot;:&quot;该文件约 12312 行,可能形成阅读、变更和评审负担。&quot;,&quot;docPath&quot;:&quot;docs/engineering/technical-hotspots/large-file--build-c6_companion-bootloader-config-kconfig_menus-json/technical-hotspot.md&quot;,&quot;htmlPath&quot;:&quot;docs/engineering/technical-hotspots/large-file--build-c6_companion-bootloader-config-kconfig_menus-json/technical-hotspot.html&quot;,&quot;anchor&quot;:&quot;engineering:hotspot:large-file:build.c6_companion-bootloader-config-kconfig_menus.json&quot;,&quot;relation&quot;:&quot;contains&quot;,&quot;reason&quot;:&quot;打开 大文件:build.c6_companion/bootloader/config/kconfig_menus.json 技术热点 的热点图,查看 build.c6_companion/bootloader/config/kconfig_menus.json 为什么可能抬高阅读、修改、测试或回归成本,并反向定位相关 package、component、structure 或 sequence。 可继续下钻到 1 个 Package Diagram。&quot;},{&quot;id&quot;:&quot;engineering:diagram:technical-hotspot:large-file--managed_components-lvgl__lvgl-src-font-lv_font_montserrat_46-c&quot;,&quot;kind&quot;:&quot;technical_hotspot&quot;,&quot;title&quot;:&quot;大文件:managed_components/lvgl__lvgl/src/font/lv_font_montserrat_46.c 技术热点&quot;,&quot;summary&quot;:&quot;该文件约 11869 行,可能形成阅读、变更和评审负担。&quot;,&quot;docPath&quot;:&quot;docs/engineering/technical-hotspots/large-file--managed_components-lvgl__lvgl-src-font-lv_font_montserrat_46-c/technical-hotspot.md&quot;,&quot;htmlPath&quot;:&quot;docs/engineering/technical-hotspots/large-file--managed_components-lvgl__lvgl-src-font-lv_font_montserrat_46-c/technical-hotspot.html&quot;,&quot;anchor&quot;:&quot;engineering:hotspot:large-file:managed_components-lvgl__lvgl-src-font-lv_font_montserrat_46.c&quot;,&quot;relation&quot;:&quot;contains&quot;,&quot;reason&quot;:&quot;打开 大文件:managed_components/lvgl__lvgl/src/font/lv_font_montserrat_46.c 技术热点 的热点图,查看 managed_components/lvgl__lvgl/src/font/lv_font_montserrat_46.c 为什么可能抬高阅读、修改、测试或回归成本,并反向定位相关 package、component、structure 或 sequence。 可继续下钻到 1 个 Package Diagram。&quot;},{&quot;id&quot;:&quot;engineering:diagram:technical-hotspot:large-file--managed_components-lvgl__lvgl-src-font-lv_font_montserrat_44-c&quot;,&quot;kind&quot;:&quot;technical_hotspot&quot;,&quot;title&quot;:&quot;大文件:managed_components/lvgl__lvgl/src/font/lv_font_montserrat_44.c 技术热点&quot;,&quot;summary&quot;:&quot;该文件约 10917 行,可能形成阅读、变更和评审负担。&quot;,&quot;docPath&quot;:&quot;docs/engineering/technical-hotspots/large-file--managed_components-lvgl__lvgl-src-font-lv_font_montserrat_44-c/technical-hotspot.md&quot;,&quot;htmlPath&quot;:&quot;docs/engineering/technical-hotspots/large-file--managed_components-lvgl__lvgl-src-font-lv_font_montserrat_44-c/technical-hotspot.html&quot;,&quot;anchor&quot;:&quot;engineering:hotspot:large-file:managed_components-lvgl__lvgl-src-font-lv_font_montserrat_44.c&quot;,&quot;relation&quot;:&quot;contains&quot;,&quot;reason&quot;:&quot;打开 大文件:managed_components/lvgl__lvgl/src/font/lv_font_montserrat_44.c 技术热点 的热点图,查看 managed_components/lvgl__lvgl/src/font/lv_font_montserrat_44.c 为什么可能抬高阅读、修改、测试或回归成本,并反向定位相关 package、component、structure 或 sequence。 可继续下钻到 1 个 Package Diagram。&quot;},{&quot;id&quot;:&quot;engineering:diagram:technical-hotspot:large-file--managed_components-lvgl__lvgl-src-font-lv_font_montserrat_42-c&quot;,&quot;kind&quot;:&quot;technical_hotspot&quot;,&quot;title&quot;:&quot;大文件:managed_components/lvgl__lvgl/src/font/lv_font_montserrat_42.c 技术热点&quot;,&quot;summary&quot;:&quot;该文件约 10091 行,可能形成阅读、变更和评审负担。&quot;,&quot;docPath&quot;:&quot;docs/engineering/technical-hotspots/large-file--managed_components-lvgl__lvgl-src-font-lv_font_montserrat_42-c/technical-hotspot.md&quot;,&quot;htmlPath&quot;:&quot;docs/engineering/technical-hotspots/large-file--managed_components-lvgl__lvgl-src-font-lv_font_montserrat_42-c/technical-hotspot.html&quot;,&quot;anchor&quot;:&quot;engineering:hotspot:large-file:managed_components-lvgl__lvgl-src-font-lv_font_montserrat_42.c&quot;,&quot;relation&quot;:&quot;contains&quot;,&quot;reason&quot;:&quot;打开 大文件:managed_components/lvgl__lvgl/src/font/lv_font_montserrat_42.c 技术热点 的热点图,查看 managed_components/lvgl__lvgl/src/font/lv_font_montserrat_42.c 为什么可能抬高阅读、修改、测试或回归成本,并反向定位相关 package、component、structure 或 sequence。 可继续下钻到 1 个 Package Diagram。&quot;},{&quot;id&quot;:&quot;engineering:diagram:technical-hotspot:collaboration-pressure--main&quot;,&quot;kind&quot;:&quot;technical_hotspot&quot;,&quot;title&quot;:&quot;承担外部协作的候选对象:main 技术热点&quot;,&quot;summary&quot;:&quot;该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。&quot;,&quot;docPath&quot;:&quot;docs/engineering/technical-hotspots/collaboration-pressure--main/technical-hotspot.md&quot;,&quot;htmlPath&quot;:&quot;docs/engineering/technical-hotspots/collaboration-pressure--main/technical-hotspot.html&quot;,&quot;anchor&quot;:&quot;engineering:hotspot:external-collaboration-pressure:main:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:49&quot;,&quot;relation&quot;:&quot;contains&quot;,&quot;reason&quot;:&quot;打开 承担外部协作的候选对象:main 技术热点 的热点图,查看 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp 为什么可能抬高阅读、修改、测试或回归成本,并反向定位相关 package、component、structure 或 sequence。 可继续下钻到 1 个 Package Diagram、4 个 Component Diagram。&quot;},{&quot;id&quot;:&quot;engineering:diagram:technical-hotspot:reuse-pressure--contains&quot;,&quot;kind&quot;:&quot;technical_hotspot&quot;,&quot;title&quot;:&quot;被广泛复用的候选对象:contains 技术热点&quot;,&quot;summary&quot;:&quot;该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。&quot;,&quot;docPath&quot;:&quot;docs/engineering/technical-hotspots/reuse-pressure--contains/technical-hotspot.md&quot;,&quot;htmlPath&quot;:&quot;docs/engineering/technical-hotspots/reuse-pressure--contains/technical-hotspot.html&quot;,&quot;anchor&quot;:&quot;engineering:hotspot:reuse-pressure:contains:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:19&quot;,&quot;relation&quot;:&quot;contains&quot;,&quot;reason&quot;:&quot;打开 被广泛复用的候选对象:contains 技术热点 的热点图,查看 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp 为什么可能抬高阅读、修改、测试或回归成本,并反向定位相关 package、component、structure 或 sequence。 可继续下钻到 1 个 Package Diagram、4 个 Component Diagram。&quot;},{&quot;id&quot;:&quot;engineering:diagram:technical-hotspot:collaboration-pressure--launchsettingslayout&quot;,&quot;kind&quot;:&quot;technical_hotspot&quot;,&quot;title&quot;:&quot;承担外部协作的候选对象:launchSettingsLayout 技术热点&quot;,&quot;summary&quot;:&quot;该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。&quot;,&quot;docPath&quot;:&quot;docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.md&quot;,&quot;htmlPath&quot;:&quot;docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.html&quot;,&quot;anchor&quot;:&quot;engineering:hotspot:external-collaboration-pressure:launchsettingslayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:110&quot;,&quot;relation&quot;:&quot;contains&quot;,&quot;reason&quot;:&quot;打开 承担外部协作的候选对象:launchSettingsLayout 技术热点 的热点图,查看 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp 为什么可能抬高阅读、修改、测试或回归成本,并反向定位相关 package、component、structure 或 sequence。 可继续下钻到 1 个 Package Diagram、4 个 Component Diagram。&quot;},{&quot;id&quot;:&quot;engineering:diagram:technical-hotspot:reuse-pressure--makelabel&quot;,&quot;kind&quot;:&quot;technical_hotspot&quot;,&quot;title&quot;:&quot;被广泛复用的候选对象:makeLabel 技术热点&quot;,&quot;summary&quot;:&quot;该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。&quot;,&quot;docPath&quot;:&quot;docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.md&quot;,&quot;htmlPath&quot;:&quot;docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.html&quot;,&quot;anchor&quot;:&quot;engineering:hotspot:reuse-pressure:makelabel:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp:9&quot;,&quot;relation&quot;:&quot;contains&quot;,&quot;reason&quot;:&quot;打开 被广泛复用的候选对象:makeLabel 技术热点 的热点图,查看 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp 为什么可能抬高阅读、修改、测试或回归成本,并反向定位相关 package、component、structure 或 sequence。 可继续下钻到 1 个 Package Diagram、2 个 Component Diagram。&quot;}]">
<h3>Technical Hotspots</h3>
<p>16 diagrams · docs/engineering/technical-hotspots</p>
<p>进入技术热点看板,查看大文件、被广泛复用对象、外部协作对象、依赖簇或扫描告警为什么会增加阅读、修改、测试和回归成本。</p>
</article>
</div>
</section>
<script type="application/json" id="praxis-engineering-map-index">{"schemaVersion":"praxis.engineeringMapIndex.v1","generatedAt":"2026-06-25T09:19:20.669Z","projectVersion":"0.1.0","git":{"branch":"main","commit":"34aad0bffa2f6450192f655f248a94b6c3cbd767","shortCommit":"34aad0bffa2f","dirty":true},"rootDocPath":"docs/engineering/engineering-maps.md","rootHtmlPath":"docs/engineering/engineering-maps.html","compatibilityDocPath":"docs/engineering/technical-complexity-maps.md","compatibilityHtmlPath":"docs/engineering/technical-complexity-maps.html","summary":{"fileCount":11735,"nodeCount":15063,"edgeCount":12150,"packageCount":18,"componentCount":24,"runtimeFlowCount":18,"deploymentNodeCount":0,"hotspotCount":18},"hierarchy":[{"parentKind":"package","childKinds":["component","class_structural","sequence","deployment","technical_hotspot"],"rationale":"Package Diagram 是技术复杂度的顶层工程边界;它可以下钻到该边界内的关键组件、结构协作、运行链路、运行配置和复杂度热点。"},{"parentKind":"class_structural","childKinds":["component","sequence","technical_hotspot"],"rationale":"Class / Structural Diagram 解释一个可命名业务/技术语境中的结构协作;它可以继续下钻到具体组件、动态交互片段和结构风险。"},{"parentKind":"component","childKinds":["sequence","class_structural","technical_hotspot"],"rationale":"Component Diagram 是关键技术对象视角;它可以下钻到该对象参与的调用片段、所在结构切片和相关热点。"},{"parentKind":"sequence","childKinds":["component","class_structural","technical_hotspot"],"rationale":"Sequence Diagram 是动态协作视角;它可以反向定位参与组件、所在结构边界和可能的运行风险。"},{"parentKind":"deployment","childKinds":["package","component","technical_hotspot"],"rationale":"Deployment Diagram 是运行/构建节点视角;它可以下钻到对应包、入口组件和运行配置热点。"},{"parentKind":"technical_hotspot","childKinds":["package","component","class_structural","sequence"],"rationale":"Technical Hotspot 是风险视角;它需要反向链接到产生复杂度的边界、组件、结构或调用片段。"}],"categories":[{"id":"engineering:category:package","kind":"package","title":"Package Diagrams","directory":"docs/engineering/package-diagrams","mapDocPath":"docs/engineering/package-diagrams/package-diagrams-maps.md","mapHtmlPath":"docs/engineering/package-diagrams/package-diagrams-maps.html","summary":"模块、包和跨模块依赖边界。","count":18,"items":[{"id":"engineering:diagram:package:managed_components","kind":"package","title":"模块边界:managed_components","summary":"解释 managed_components 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/managed_components/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/managed_components/package-diagram.html","anchor":"engineering:package:managed_components","status":"candidate","confidence":"high","mermaidKind":"flowchart","mermaid":"flowchart LR\n package_node[\"managed_components\"]\n dependency_1[\"firmware\"]\n package_node --\u003e dependency_1\n dependency_2[\"apps/esp32_lvgl\"]\n package_node --\u003e dependency_2\n dependency_3[\"boards\"]\n package_node --\u003e dependency_3\n dependency_4[\"apps/linux_cardputer_zero\"]\n package_node --\u003e dependency_4\n dependency_5[\"apps/nrf52_node\"]\n package_node --\u003e dependency_5\n dependency_6[\"apps/linux_uconsole_gtk\"]\n package_node --\u003e dependency_6","readingGuide":["这张 Package Diagram 以 managed_components 为中心,展示它作为工程模块边界时观察到的文件规模、符号规模和跨模块依赖。","图中的箭头表示本地仓库证据观察到的跨模块关系,主要用于理解技术依赖方向;它不是业务流程顺序,也不是运行时消息时序。","当前观察到的主要外部依赖包括:firmware、apps/esp32_lvgl、boards、apps/linux_cardputer_zero、apps/nrf52_node、apps/linux_uconsole_gtk。"],"technicalAnalysis":["managed_components 当前包含 2231 个文件和 3506 个符号,属于软件结构模型识别出的技术组织边界。","跨模块关系呈现为:被其它模块引用或调用 0 次,主动依赖或调用外部模块 87 次,因此它依赖外部模块更多。","较多外部依赖可能说明该模块承担编排、聚合或桥接多处能力的职责;当前按候选技术耦合中心处理。"],"businessRelation":["managed_components 不是业务故事本身,而是业务能力落地时可能经过的技术边界。","如果组织/过程模型中某个 Use Case 的证据、入口或下钻图落在 managed_components,该 Use Case 应当反向链接到这张 Package Diagram,说明业务故事由哪个工程模块承载。","当前关联仍是 CANDIDATE:这里只能根据仓库证据解释技术边界,不能替代组织/过程模型对业务故事、参与者和业务目标的确认。"],"governanceNotes":["新增功能时,优先确认它属于该模块的稳定职责,而不是因为调用方便而落入该模块。","如果未来多次变更都增加该模块的外部依赖,应考虑拆分端口、适配器或应用服务边界。","当业务 Use Case 文档引用该模块时,应在 Use Case 下钻文档中记录具体入口、调用链或配置证据。"],"coverage":["模块路径:managed_components","文件数:2231","符号数:3506","被其他模块依赖或调用:0","依赖或调用外部模块:87"],"evidencePaths":["managed_components/espressif__cmake_utilities/CHANGELOG.md","managed_components/espressif__cmake_utilities/CHECKSUMS.json","managed_components/espressif__cmake_utilities/cmake_utilities.cmake","managed_components/espressif__cmake_utilities/CMakeLists.txt","managed_components/espressif__cmake_utilities/docs/gcc.md","managed_components/espressif__cmake_utilities/docs/gen_compressed_ota.md","managed_components/espressif__cmake_utilities/docs/relinker.md","managed_components/espressif__cmake_utilities/gcc.cmake"],"questions":[],"scope":{"packageId":"managed_components","filePath":"managed_components"},"drilldowns":[{"id":"engineering:diagram:technical-hotspot:large-file--managed_components-lvgl__lvgl-src-font-lv_font_montserrat_48-c","kind":"technical_hotspot","title":"大文件:managed_components/lvgl__lvgl/src/font/lv_font_montserrat_48.c 技术热点","summary":"该文件约 12570 行,可能形成阅读、变更和评审负担。","docPath":"docs/engineering/technical-hotspots/large-file--managed_components-lvgl__lvgl-src-font-lv_font_montserrat_48-c/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/large-file--managed_components-lvgl__lvgl-src-font-lv_font_montserrat_48-c/technical-hotspot.html","anchor":"engineering:hotspot:large-file:managed_components-lvgl__lvgl-src-font-lv_font_montserrat_48.c","relation":"risk_detail","reason":"查看 大文件:managed_components/lvgl__lvgl/src/font/lv_font_montserrat_48.c 技术热点 这个复杂度信号是否会抬高 managed_components 的阅读、修改、测试或回归成本。"},{"id":"engineering:diagram:technical-hotspot:large-file--managed_components-lvgl__lvgl-src-font-lv_font_montserrat_46-c","kind":"technical_hotspot","title":"大文件:managed_components/lvgl__lvgl/src/font/lv_font_montserrat_46.c 技术热点","summary":"该文件约 11869 行,可能形成阅读、变更和评审负担。","docPath":"docs/engineering/technical-hotspots/large-file--managed_components-lvgl__lvgl-src-font-lv_font_montserrat_46-c/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/large-file--managed_components-lvgl__lvgl-src-font-lv_font_montserrat_46-c/technical-hotspot.html","anchor":"engineering:hotspot:large-file:managed_components-lvgl__lvgl-src-font-lv_font_montserrat_46.c","relation":"risk_detail","reason":"查看 大文件:managed_components/lvgl__lvgl/src/font/lv_font_montserrat_46.c 技术热点 这个复杂度信号是否会抬高 managed_components 的阅读、修改、测试或回归成本。"},{"id":"engineering:diagram:technical-hotspot:large-file--managed_components-lvgl__lvgl-src-font-lv_font_montserrat_44-c","kind":"technical_hotspot","title":"大文件:managed_components/lvgl__lvgl/src/font/lv_font_montserrat_44.c 技术热点","summary":"该文件约 10917 行,可能形成阅读、变更和评审负担。","docPath":"docs/engineering/technical-hotspots/large-file--managed_components-lvgl__lvgl-src-font-lv_font_montserrat_44-c/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/large-file--managed_components-lvgl__lvgl-src-font-lv_font_montserrat_44-c/technical-hotspot.html","anchor":"engineering:hotspot:large-file:managed_components-lvgl__lvgl-src-font-lv_font_montserrat_44.c","relation":"risk_detail","reason":"查看 大文件:managed_components/lvgl__lvgl/src/font/lv_font_montserrat_44.c 技术热点 这个复杂度信号是否会抬高 managed_components 的阅读、修改、测试或回归成本。"},{"id":"engineering:diagram:technical-hotspot:large-file--managed_components-lvgl__lvgl-src-font-lv_font_montserrat_42-c","kind":"technical_hotspot","title":"大文件:managed_components/lvgl__lvgl/src/font/lv_font_montserrat_42.c 技术热点","summary":"该文件约 10091 行,可能形成阅读、变更和评审负担。","docPath":"docs/engineering/technical-hotspots/large-file--managed_components-lvgl__lvgl-src-font-lv_font_montserrat_42-c/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/large-file--managed_components-lvgl__lvgl-src-font-lv_font_montserrat_42-c/technical-hotspot.html","anchor":"engineering:hotspot:large-file:managed_components-lvgl__lvgl-src-font-lv_font_montserrat_42.c","relation":"risk_detail","reason":"查看 大文件:managed_components/lvgl__lvgl/src/font/lv_font_montserrat_42.c 技术热点 这个复杂度信号是否会抬高 managed_components 的阅读、修改、测试或回归成本。"}],"elements":[{"id":"engineering:diagram:package:managed_components:element:managed_components","mermaidId":"package_node","label":"managed_components","kind":"package","anchor":"engineering:package:managed_components","summary":"managed_components 是当前 Package Diagram 的中心工程边界,用来观察它自身规模、依赖方向和可下钻技术复杂度。","role":"技术组织边界:它把 managed_components 下的文件、符号和跨模块关系聚合成一个可讨论的工程单元。","whyItExists":"本地仓库证据在 managed_components 下观察到足够文件、符号或跨模块关系,因此它值得被提升为软件结构模型中的 package 级入口。","relationshipMeaning":"图中从 managed_components 指向其它节点的箭头表示当前边界依赖外部 package/module;被其他模块依赖或调用 0 次、依赖或调用外部模块 87 次,用于判断它更像稳定复用边界还是编排/桥接边界。","drilldownIntent":"下钻该节点可以继续查看 managed_components 内的关键组件、结构协作切片、运行链路、部署节点和复杂度热点,从而理解这个工程边界如何承载功能变化。","businessRelevance":"该节点不是业务故事本身,但组织/过程模型中落到 managed_components 的 Use Case 可以把这里作为技术承载边界引用。当前关联仍是 CANDIDATE。","changeImpact":"修改 managed_components 的公共入口、依赖方向或目录边界,可能影响引用它的组件图、sequence 片段、部署配置和相关业务故事的验证路径。","evidence":["package scope: managed_components","模块路径:managed_components","文件数:2231","符号数:3506","被其他模块依赖或调用:0","依赖或调用外部模块:87","managed_components/espressif__cmake_utilities/CHANGELOG.md","managed_components/espressif__cmake_utilities/CHECKSUMS.json"],"risks":["如果只把该节点当作目录名,会遗漏它作为稳定工程边界的职责判断。","如果依赖外部模块的迹象持续增加,可能说明该边界承担过多编排或桥接职责。"],"questions":["当前仓库证据尚未把该 package 明确 Trace 到某个 Use Case;因此业务关联保持候选。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:technical-hotspot:large-file--managed_components-lvgl__lvgl-src-font-lv_font_montserrat_48-c","kind":"technical_hotspot","title":"大文件:managed_components/lvgl__lvgl/src/font/lv_font_montserrat_48.c 技术热点","summary":"该文件约 12570 行,可能形成阅读、变更和评审负担。","docPath":"docs/engineering/technical-hotspots/large-file--managed_components-lvgl__lvgl-src-font-lv_font_montserrat_48-c/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/large-file--managed_components-lvgl__lvgl-src-font-lv_font_montserrat_48-c/technical-hotspot.html","anchor":"engineering:hotspot:large-file:managed_components-lvgl__lvgl-src-font-lv_font_montserrat_48.c","relation":"risk_detail","reason":"查看 大文件:managed_components/lvgl__lvgl/src/font/lv_font_montserrat_48.c 技术热点 这个复杂度信号是否会抬高 managed_components 的阅读、修改、测试或回归成本。"},{"id":"engineering:diagram:technical-hotspot:large-file--managed_components-lvgl__lvgl-src-font-lv_font_montserrat_46-c","kind":"technical_hotspot","title":"大文件:managed_components/lvgl__lvgl/src/font/lv_font_montserrat_46.c 技术热点","summary":"该文件约 11869 行,可能形成阅读、变更和评审负担。","docPath":"docs/engineering/technical-hotspots/large-file--managed_components-lvgl__lvgl-src-font-lv_font_montserrat_46-c/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/large-file--managed_components-lvgl__lvgl-src-font-lv_font_montserrat_46-c/technical-hotspot.html","anchor":"engineering:hotspot:large-file:managed_components-lvgl__lvgl-src-font-lv_font_montserrat_46.c","relation":"risk_detail","reason":"查看 大文件:managed_components/lvgl__lvgl/src/font/lv_font_montserrat_46.c 技术热点 这个复杂度信号是否会抬高 managed_components 的阅读、修改、测试或回归成本。"},{"id":"engineering:diagram:technical-hotspot:large-file--managed_components-lvgl__lvgl-src-font-lv_font_montserrat_44-c","kind":"technical_hotspot","title":"大文件:managed_components/lvgl__lvgl/src/font/lv_font_montserrat_44.c 技术热点","summary":"该文件约 10917 行,可能形成阅读、变更和评审负担。","docPath":"docs/engineering/technical-hotspots/large-file--managed_components-lvgl__lvgl-src-font-lv_font_montserrat_44-c/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/large-file--managed_components-lvgl__lvgl-src-font-lv_font_montserrat_44-c/technical-hotspot.html","anchor":"engineering:hotspot:large-file:managed_components-lvgl__lvgl-src-font-lv_font_montserrat_44.c","relation":"risk_detail","reason":"查看 大文件:managed_components/lvgl__lvgl/src/font/lv_font_montserrat_44.c 技术热点 这个复杂度信号是否会抬高 managed_components 的阅读、修改、测试或回归成本。"},{"id":"engineering:diagram:technical-hotspot:large-file--managed_components-lvgl__lvgl-src-font-lv_font_montserrat_42-c","kind":"technical_hotspot","title":"大文件:managed_components/lvgl__lvgl/src/font/lv_font_montserrat_42.c 技术热点","summary":"该文件约 10091 行,可能形成阅读、变更和评审负担。","docPath":"docs/engineering/technical-hotspots/large-file--managed_components-lvgl__lvgl-src-font-lv_font_montserrat_42-c/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/large-file--managed_components-lvgl__lvgl-src-font-lv_font_montserrat_42-c/technical-hotspot.html","anchor":"engineering:hotspot:large-file:managed_components-lvgl__lvgl-src-font-lv_font_montserrat_42.c","relation":"risk_detail","reason":"查看 大文件:managed_components/lvgl__lvgl/src/font/lv_font_montserrat_42.c 技术热点 这个复杂度信号是否会抬高 managed_components 的阅读、修改、测试或回归成本。"}]},{"id":"engineering:diagram:package:managed_components:element:firmware","mermaidId":"dependency_1","label":"firmware","kind":"package","anchor":"engineering:package:firmware","summary":"firmware 是 managed_components 当前观察到的外部技术边界依赖;它说明当前模块不是孤立实现,而是需要借助另一组工程能力完成职责。","role":"跨模块技术依赖边界:当前 package 需要另一个 package/module 提供能力、契约、配置或运行支撑。","whyItExists":"本地仓库证据在 managed_components 与 firmware 之间观察到跨模块事实关系,因此该依赖被放入 Package Diagram,而不是只藏在代码 import/call 里。","relationshipMeaning":"managed_components -\u003e firmware 表示本地仓库证据观察到跨模块关系;它解释技术依赖方向,但不直接证明业务流程。","drilldownIntent":"下钻 firmware 可以查看它自己的 Package Diagram,再继续进入其组件、结构、sequence 或热点,判断当前依赖究竟落在入口、运行时、工具注册、模型适配还是基础设施边界。","businessRelevance":"managed_components 如果承载用户可见能力,那么对 firmware 的依赖可能是该能力的运行机制、扩展点或治理约束。该业务关联需要由组织/过程模型的 Use Case 证据确认。","changeImpact":"修改 firmware 的公共接口、路径或运行方式,可能让 managed_components 的调用链、打包入口、agent 工作流或 UI 行为发生连锁变化。","evidence":["dependency edge: managed_components -\u003e firmware","firmware/c6_companion/CMakeLists.txt","firmware/c6_companion/components/tm_ble/CMakeLists.txt","firmware/c6_companion/components/tm_ble/include/tm_ble.h","firmware/c6_companion/components/tm_ble/tm_ble.c","firmware/c6_companion/components/tm_diag/CMakeLists.txt","firmware/c6_companion/components/tm_diag/include/tm_diag.h","firmware/c6_companion/components/tm_diag/tm_diag.c"],"risks":["跨模块依赖只能证明技术关系,不能直接证明业务关系。","如果该依赖只是因为实现方便而存在,未来变更可能形成边界漂移或隐式公共工具箱。"],"questions":["当前证据尚未证明 managed_components 依赖 firmware 与某个 Use Case、runtime command 或配置决策直接相关。","当前依赖方向按仓库事实记录为候选,尚未发现架构决策文档证明它是稳定边界。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:package:firmware","kind":"package","title":"模块边界:firmware","summary":"解释 firmware 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/firmware/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/firmware/package-diagram.html","anchor":"engineering:package:firmware","relation":"parent_boundary","reason":"打开 firmware 自己的包级边界,检查 managed_components 依赖它时借用的是运行命令、共享能力、治理工具、模型适配还是基础设施职责。"},{"id":"engineering:diagram:component:firmware-main","kind":"component","title":"服务对象:main","summary":"function 位于 firmware/c6_companion/tests/test_tm_services_functional.cpp#L97,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/firmware-main/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/firmware-main/component-diagram.html","anchor":"engineering:component:function:main:firmware-c6_companion-tests-test_tm_services_functional.cpp:97","relation":"contains","reason":"打开 服务对象:main 是为了确认 firmware 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 firmware/c6_companion/tests/test_tm_services_functional.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:firmware-tm_services_record_error","kind":"component","title":"界面组件:tm_services_record_error","summary":"function 位于 firmware/c6_companion/components/tm_services/tm_services.c#L471,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/firmware-tm_services_record_error/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/firmware-tm_services_record_error/component-diagram.html","anchor":"engineering:component:function:tm_services_record_error:firmware-c6_companion-components-tm_services-tm_services.c:471","relation":"contains","reason":"打开 界面组件:tm_services_record_error 是为了确认 firmware 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 firmware/c6_companion/components/tm_services/tm_services.c,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"}]},{"id":"engineering:diagram:package:managed_components:element:apps-esp32_lvgl","mermaidId":"dependency_2","label":"apps/esp32_lvgl","kind":"package","anchor":"engineering:package:apps-esp32_lvgl","summary":"apps/esp32_lvgl 是 managed_components 当前观察到的外部技术边界依赖;它说明当前模块不是孤立实现,而是需要借助另一组工程能力完成职责。","role":"跨模块技术依赖边界:当前 package 需要另一个 package/module 提供能力、契约、配置或运行支撑。","whyItExists":"本地仓库证据在 managed_components 与 apps/esp32_lvgl 之间观察到跨模块事实关系,因此该依赖被放入 Package Diagram,而不是只藏在代码 import/call 里。","relationshipMeaning":"managed_components -\u003e apps/esp32_lvgl 表示本地仓库证据观察到跨模块关系;它解释技术依赖方向,但不直接证明业务流程。","drilldownIntent":"下钻 apps/esp32_lvgl 可以查看它自己的 Package Diagram,再继续进入其组件、结构、sequence 或热点,判断当前依赖究竟落在入口、运行时、工具注册、模型适配还是基础设施边界。","businessRelevance":"managed_components 如果承载用户可见能力,那么对 apps/esp32_lvgl 的依赖可能是该能力的运行机制、扩展点或治理约束。该业务关联需要由组织/过程模型的 Use Case 证据确认。","changeImpact":"修改 apps/esp32_lvgl 的公共接口、路径或运行方式,可能让 managed_components 的调用链、打包入口、agent 工作流或 UI 行为发生连锁变化。","evidence":["dependency edge: managed_components -\u003e apps/esp32_lvgl","apps/esp32_lvgl/APP_SHELL_MANIFEST.md","apps/esp32_lvgl/CMakeLists.txt","apps/esp32_lvgl/library.json","apps/esp32_lvgl/README.md","apps/esp32_lvgl/src/esp32_lvgl_app_shell.cpp","apps/esp32_lvgl/src/esp32_lvgl_app_shell.h","apps/esp32_lvgl/src/esp32_lvgl_arduino_app_registry.cpp"],"risks":["跨模块依赖只能证明技术关系,不能直接证明业务关系。","如果该依赖只是因为实现方便而存在,未来变更可能形成边界漂移或隐式公共工具箱。"],"questions":["当前证据尚未证明 managed_components 依赖 apps/esp32_lvgl 与某个 Use Case、runtime command 或配置决策直接相关。","当前依赖方向按仓库事实记录为候选,尚未发现架构决策文档证明它是稳定边界。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:package:apps-esp32_lvgl","kind":"package","title":"模块边界:apps/esp32_lvgl","summary":"解释 apps/esp32_lvgl 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/apps-esp32_lvgl/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/apps-esp32_lvgl/package-diagram.html","anchor":"engineering:package:apps-esp32_lvgl","relation":"parent_boundary","reason":"打开 apps/esp32_lvgl 自己的包级边界,检查 managed_components 依赖它时借用的是运行命令、共享能力、治理工具、模型适配还是基础设施职责。"},{"id":"engineering:diagram:component:apps-esp32_lvgl-main","kind":"component","title":"函数节点:main","summary":"function 位于 apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp#L33,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-main/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-main/component-diagram.html","anchor":"engineering:component:function:main:apps-esp32_lvgl-tests-esp32_lvgl_sd_coredump_contract_smoke.cpp:33","relation":"contains","reason":"打开 函数节点:main 是为了确认 apps/esp32_lvgl 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:apps-esp32_lvgl-contains","kind":"component","title":"函数节点:contains","summary":"function 位于 apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp#L19,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-contains/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-contains/component-diagram.html","anchor":"engineering:component:function:contains:apps-esp32_lvgl-tests-esp32_lvgl_sd_coredump_contract_smoke.cpp:19","relation":"contains","reason":"打开 函数节点:contains 是为了确认 apps/esp32_lvgl 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:apps-esp32_lvgl-companion_enter","kind":"component","title":"函数节点:companion_enter","summary":"function 位于 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp#L72,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-companion_enter/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-companion_enter/component-diagram.html","anchor":"engineering:component:function:companion_enter:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:72","relation":"contains","reason":"打开 函数节点:companion_enter 是为了确认 apps/esp32_lvgl 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:sequence:tick-calls-log_loop_interval","kind":"sequence","title":"动态协作:tick 调用 log_loop_interval","summary":"apps/esp32_lvgl/src/esp32_lvgl_arduino_loop_runtime.cpp 中的 tick calls apps/esp32_lvgl/src/esp32_lvgl_arduino_loop_runtime.cpp 中的 log_loop_interval。","docPath":"docs/engineering/sequence-diagrams/tick-calls-log_loop_interval/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/tick-calls-log_loop_interval/sequence-diagram.html","anchor":"engineering:runtime-flow:tick:log_loop_interval:apps-esp32_lvgl-src-esp32_lvgl_arduino_loop_runtime.cpp:apps-esp32_lvgl-src-esp32_lvgl_arduino_loop_runtime.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了把 apps/esp32_lvgl 的静态依赖还原成一段可读协作:tick -\u003e log_loop_interval。重点判断这是 import、调用、引用还是消息方向,以及它是否真的影响运行路径。"},{"id":"engineering:diagram:sequence:add_status_line-calls-add_label","kind":"sequence","title":"动态协作:add_status_line 调用 add_label","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_status_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_label。","docPath":"docs/engineering/sequence-diagrams/add_status_line-calls-add_label/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/add_status_line-calls-add_label/sequence-diagram.html","anchor":"engineering:runtime-flow:add_status_line:add_label:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了把 apps/esp32_lvgl 的静态依赖还原成一段可读协作:add_status_line -\u003e add_label。重点判断这是 import、调用、引用还是消息方向,以及它是否真的影响运行路径。"},{"id":"engineering:diagram:sequence:add_u32_line-calls-add_label","kind":"sequence","title":"动态协作:add_u32_line 调用 add_label","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_u32_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_label。","docPath":"docs/engineering/sequence-diagrams/add_u32_line-calls-add_label/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/add_u32_line-calls-add_label/sequence-diagram.html","anchor":"engineering:runtime-flow:add_u32_line:add_label:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了把 apps/esp32_lvgl 的静态依赖还原成一段可读协作:add_u32_line -\u003e add_label。重点判断这是 import、调用、引用还是消息方向,以及它是否真的影响运行路径。"},{"id":"engineering:diagram:sequence:add_hex_line-calls-add_status_line","kind":"sequence","title":"动态协作:add_hex_line 调用 add_status_line","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_hex_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_status_line。","docPath":"docs/engineering/sequence-diagrams/add_hex_line-calls-add_status_line/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/add_hex_line-calls-add_status_line/sequence-diagram.html","anchor":"engineering:runtime-flow:add_hex_line:add_status_line:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了把 apps/esp32_lvgl 的静态依赖还原成一段可读协作:add_hex_line -\u003e add_status_line。重点判断这是 import、调用、引用还是消息方向,以及它是否真的影响运行路径。"},{"id":"engineering:diagram:sequence:companion_enter-calls-add_label","kind":"sequence","title":"动态协作:companion_enter 调用 add_label","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 companion_enter calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_label。","docPath":"docs/engineering/sequence-diagrams/companion_enter-calls-add_label/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/companion_enter-calls-add_label/sequence-diagram.html","anchor":"engineering:runtime-flow:companion_enter:add_label:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了把 apps/esp32_lvgl 的静态依赖还原成一段可读协作:companion_enter -\u003e add_label。重点判断这是 import、调用、引用还是消息方向,以及它是否真的影响运行路径。"}]},{"id":"engineering:diagram:package:managed_components:element:boards","mermaidId":"dependency_3","label":"boards","kind":"package","anchor":"engineering:package:boards","summary":"boards 是 managed_components 当前观察到的外部技术边界依赖;它说明当前模块不是孤立实现,而是需要借助另一组工程能力完成职责。","role":"跨模块技术依赖边界:当前 package 需要另一个 package/module 提供能力、契约、配置或运行支撑。","whyItExists":"本地仓库证据在 managed_components 与 boards 之间观察到跨模块事实关系,因此该依赖被放入 Package Diagram,而不是只藏在代码 import/call 里。","relationshipMeaning":"managed_components -\u003e boards 表示本地仓库证据观察到跨模块关系;它解释技术依赖方向,但不直接证明业务流程。","drilldownIntent":"下钻 boards 可以查看它自己的 Package Diagram,再继续进入其组件、结构、sequence 或热点,判断当前依赖究竟落在入口、运行时、工具注册、模型适配还是基础设施边界。","businessRelevance":"managed_components 如果承载用户可见能力,那么对 boards 的依赖可能是该能力的运行机制、扩展点或治理约束。该业务关联需要由组织/过程模型的 Use Case 证据确认。","changeImpact":"修改 boards 的公共接口、路径或运行方式,可能让 managed_components 的调用链、打包入口、agent 工作流或 UI 行为发生连锁变化。","evidence":["dependency edge: managed_components -\u003e boards","boards/cardputerzero/board_facts.h","boards/cardputerzero/BOARD.md","boards/gat562_mesh_evb_pro.json","boards/gat562_mesh_evb_pro/board_facts.h","boards/gat562_mesh_evb_pro/BOARD.md","boards/gat562_mesh_evb_pro/include/boards/gat562_mesh_evb_pro/board_profile.h","boards/gat562_mesh_evb_pro/include/boards/gat562_mesh_evb_pro/gat562_board.h"],"risks":["跨模块依赖只能证明技术关系,不能直接证明业务关系。","如果该依赖只是因为实现方便而存在,未来变更可能形成边界漂移或隐式公共工具箱。"],"questions":["当前证据尚未证明 managed_components 依赖 boards 与某个 Use Case、runtime command 或配置决策直接相关。","当前依赖方向按仓库事实记录为候选,尚未发现架构决策文档证明它是稳定边界。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:package:boards","kind":"package","title":"模块边界:boards","summary":"解释 boards 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/boards/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/boards/package-diagram.html","anchor":"engineering:package:boards","relation":"parent_boundary","reason":"打开 boards 自己的包级边界,检查 managed_components 依赖它时借用的是运行命令、共享能力、治理工具、模型适配还是基础设施职责。"},{"id":"engineering:diagram:component:boards-makeboardprofile","kind":"component","title":"函数节点:makeBoardProfile","summary":"function 位于 boards/t_echo_lite/include/boards/t_echo_lite/board_profile.h#L188,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/boards-makeboardprofile/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/boards-makeboardprofile/component-diagram.html","anchor":"engineering:component:function:makeboardprofile:boards-t_echo_lite-include-boards-t_echo_lite-board_profile.h:188","relation":"contains","reason":"打开 函数节点:makeBoardProfile 是为了确认 boards 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 boards/t_echo_lite/include/boards/t_echo_lite/board_profile.h,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:boards-pinnum","kind":"component","title":"函数节点:pinNum","summary":"function 位于 boards/t_echo_lite/include/boards/t_echo_lite/board_profile.h#L8,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/boards-pinnum/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/boards-pinnum/component-diagram.html","anchor":"engineering:component:function:pinnum:boards-t_echo_lite-include-boards-t_echo_lite-board_profile.h:8","relation":"contains","reason":"打开 函数节点:pinNum 是为了确认 boards 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 boards/t_echo_lite/include/boards/t_echo_lite/board_profile.h,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:class-structural:boards-gat562_mesh_evb_pro-include-boards","kind":"class_structural","title":"结构协作:结构切片 boards · gat562_mesh_evb_pro/include/boards","summary":"解释 boards/gat562_mesh_evb_pro/include/boards 这一结构切片中类、接口、组件或值对象如何共同承担结构切片 boards中的结构职责;候选对象包括 Gat562Board、SX1262、Sx1262RadioPacketIo、Gat562Board::I2cGuard、GpsRuntime。","docPath":"docs/engineering/class-structural-diagrams/boards-gat562_mesh_evb_pro-include-boards/class-structural-diagram.md","htmlPath":"docs/engineering/class-structural-diagrams/boards-gat562_mesh_evb_pro-include-boards/class-structural-diagram.html","anchor":"engineering:class-structural:boards-gat562_mesh_evb_pro-include-boards","relation":"structural_context","reason":"打开 结构协作:结构切片 boards · gat562_mesh_evb_pro/include/boards 是为了从对象协作角度解释 boards:哪些对象像入口,哪些像编排核心,哪些像适配/共享边界;它帮助判断复杂度来自职责分布,而不只是文件数量。"},{"id":"engineering:diagram:class-structural:boards-t_echo_lite-include-boards","kind":"class_structural","title":"结构协作:结构切片 boards · t_echo_lite/include/boards","summary":"解释 boards/t_echo_lite/include/boards 这一结构切片中类、接口、组件或值对象如何共同承担结构切片 boards中的结构职责;候选对象包括 TEchoLiteBoard、Sx1262RadioPacketIo、TEchoLiteBoard::I2cGuard、GpsRuntime、Module。","docPath":"docs/engineering/class-structural-diagrams/boards-t_echo_lite-include-boards/class-structural-diagram.md","htmlPath":"docs/engineering/class-structural-diagrams/boards-t_echo_lite-include-boards/class-structural-diagram.html","anchor":"engineering:class-structural:boards-t_echo_lite-include-boards","relation":"structural_context","reason":"打开 结构协作:结构切片 boards · t_echo_lite/include/boards 是为了从对象协作角度解释 boards:哪些对象像入口,哪些像编排核心,哪些像适配/共享边界;它帮助判断复杂度来自职责分布,而不只是文件数量。"},{"id":"engineering:diagram:class-structural:boards-tab5-include-boards","kind":"class_structural","title":"结构协作:结构切片 boards · tab5/include/boards","summary":"解释 boards/tab5/include/boards 这一结构切片中类、接口、组件或值对象如何共同承担结构切片 boards中的结构职责;候选对象包括 Tab5Board、Tab5Board::ManagedSystemI2cGuard、Tab5Board::SysI2cGuard、CodecCompat。","docPath":"docs/engineering/class-structural-diagrams/boards-tab5-include-boards/class-structural-diagram.md","htmlPath":"docs/engineering/class-structural-diagrams/boards-tab5-include-boards/class-structural-diagram.html","anchor":"engineering:class-structural:boards-tab5-include-boards","relation":"structural_context","reason":"打开 结构协作:结构切片 boards · tab5/include/boards 是为了从对象协作角度解释 boards:哪些对象像入口,哪些像编排核心,哪些像适配/共享边界;它帮助判断复杂度来自职责分布,而不只是文件数量。"},{"id":"engineering:diagram:class-structural:boards-t_display_p4-include-boards","kind":"class_structural","title":"结构协作:结构切片 boards · t_display_p4/include/boards","summary":"解释 boards/t_display_p4/include/boards 这一结构切片中类、接口、组件或值对象如何共同承担结构切片 boards中的结构职责;候选对象包括 TDisplayP4Board、TDisplayP4Board::ManagedSystemI2cGuard。","docPath":"docs/engineering/class-structural-diagrams/boards-t_display_p4-include-boards/class-structural-diagram.md","htmlPath":"docs/engineering/class-structural-diagrams/boards-t_display_p4-include-boards/class-structural-diagram.html","anchor":"engineering:class-structural:boards-t_display_p4-include-boards","relation":"structural_context","reason":"打开 结构协作:结构切片 boards · t_display_p4/include/boards 是为了从对象协作角度解释 boards:哪些对象像入口,哪些像编排核心,哪些像适配/共享边界;它帮助判断复杂度来自职责分布,而不只是文件数量。"},{"id":"engineering:diagram:class-structural:boards-tlora_pager-include-boards","kind":"class_structural","title":"结构协作:结构切片 boards · tlora_pager/include/boards","summary":"解释 boards/tlora_pager/include/boards 这一结构切片中类、接口、组件或值对象如何共同承担结构切片 boards中的结构职责;候选对象包括 TLoRaPagerBoard、SX1262Access、AppContext。","docPath":"docs/engineering/class-structural-diagrams/boards-tlora_pager-include-boards/class-structural-diagram.md","htmlPath":"docs/engineering/class-structural-diagrams/boards-tlora_pager-include-boards/class-structural-diagram.html","anchor":"engineering:class-structural:boards-tlora_pager-include-boards","relation":"structural_context","reason":"打开 结构协作:结构切片 boards · tlora_pager/include/boards 是为了从对象协作角度解释 boards:哪些对象像入口,哪些像编排核心,哪些像适配/共享边界;它帮助判断复杂度来自职责分布,而不只是文件数量。"},{"id":"engineering:diagram:technical-hotspot:dependency-cluster--boards","kind":"technical_hotspot","title":"依赖簇:boards 技术热点","summary":"该模块依赖多个外部边界,当前按候选技术耦合中心处理;图中只保留仓库证据已经观察到的依赖方向和边界。","docPath":"docs/engineering/technical-hotspots/dependency-cluster--boards/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/dependency-cluster--boards/technical-hotspot.html","anchor":"engineering:hotspot:dependency-cluster:boards","relation":"risk_detail","reason":"查看 依赖簇:boards 技术热点 这个复杂度信号是否会抬高 boards 的阅读、修改、测试或回归成本。"}]},{"id":"engineering:diagram:package:managed_components:element:apps-linux_cardputer_zero","mermaidId":"dependency_4","label":"apps/linux_cardputer_zero","kind":"package","anchor":"engineering:package:apps-linux_cardputer_zero","summary":"apps/linux_cardputer_zero 是 managed_components 当前观察到的外部技术边界依赖;它说明当前模块不是孤立实现,而是需要借助另一组工程能力完成职责。","role":"跨模块技术依赖边界:当前 package 需要另一个 package/module 提供能力、契约、配置或运行支撑。","whyItExists":"本地仓库证据在 managed_components 与 apps/linux_cardputer_zero 之间观察到跨模块事实关系,因此该依赖被放入 Package Diagram,而不是只藏在代码 import/call 里。","relationshipMeaning":"managed_components -\u003e apps/linux_cardputer_zero 表示本地仓库证据观察到跨模块关系;它解释技术依赖方向,但不直接证明业务流程。","drilldownIntent":"下钻 apps/linux_cardputer_zero 可以查看它自己的 Package Diagram,再继续进入其组件、结构、sequence 或热点,判断当前依赖究竟落在入口、运行时、工具注册、模型适配还是基础设施边界。","businessRelevance":"managed_components 如果承载用户可见能力,那么对 apps/linux_cardputer_zero 的依赖可能是该能力的运行机制、扩展点或治理约束。该业务关联需要由组织/过程模型的 Use Case 证据确认。","changeImpact":"修改 apps/linux_cardputer_zero 的公共接口、路径或运行方式,可能让 managed_components 的调用链、打包入口、agent 工作流或 UI 行为发生连锁变化。","evidence":["dependency edge: managed_components -\u003e apps/linux_cardputer_zero","apps/linux_cardputer_zero/APP_SHELL_MANIFEST.md","apps/linux_cardputer_zero/CMakeLists.txt","apps/linux_cardputer_zero/packaging/trailmate-cardputer-zero-applaunch","apps/linux_cardputer_zero/packaging/trailmate-cardputer-zero.desktop","apps/linux_cardputer_zero/packaging/trailmate-cardputer-zero.png","apps/linux_cardputer_zero/README.md","apps/linux_cardputer_zero/src/cardputer_zero_input_method_port.cpp"],"risks":["跨模块依赖只能证明技术关系,不能直接证明业务关系。","如果该依赖只是因为实现方便而存在,未来变更可能形成边界漂移或隐式公共工具箱。"],"questions":["当前证据尚未证明 managed_components 依赖 apps/linux_cardputer_zero 与某个 Use Case、runtime command 或配置决策直接相关。","当前依赖方向按仓库事实记录为候选,尚未发现架构决策文档证明它是稳定边界。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:package:apps-linux_cardputer_zero","kind":"package","title":"模块边界:apps/linux_cardputer_zero","summary":"解释 apps/linux_cardputer_zero 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/apps-linux_cardputer_zero/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/apps-linux_cardputer_zero/package-diagram.html","anchor":"engineering:package:apps-linux_cardputer_zero","relation":"parent_boundary","reason":"打开 apps/linux_cardputer_zero 自己的包级边界,检查 managed_components 依赖它时借用的是运行命令、共享能力、治理工具、模型适配还是基础设施职责。"},{"id":"engineering:diagram:component:apps-linux_cardputer_zero-main","kind":"component","title":"函数节点:main","summary":"function 位于 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L49,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-main/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-main/component-diagram.html","anchor":"engineering:component:function:main:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:49","relation":"contains","reason":"打开 函数节点:main 是为了确认 apps/linux_cardputer_zero 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:apps-linux_cardputer_zero-contains","kind":"component","title":"函数节点:contains","summary":"function 位于 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L19,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-contains/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-contains/component-diagram.html","anchor":"engineering:component:function:contains:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:19","relation":"contains","reason":"打开 函数节点:contains 是为了确认 apps/linux_cardputer_zero 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:apps-linux_cardputer_zero-not_contains","kind":"component","title":"函数节点:not_contains","summary":"function 位于 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L24,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-not_contains/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-not_contains/component-diagram.html","anchor":"engineering:component:function:not_contains:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:24","relation":"contains","reason":"打开 函数节点:not_contains 是为了确认 apps/linux_cardputer_zero 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:apps-linux_cardputer_zero-read_file","kind":"component","title":"函数节点:read_file","summary":"function 位于 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L10,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-read_file/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-read_file/component-diagram.html","anchor":"engineering:component:function:read_file:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:10","relation":"contains","reason":"打开 函数节点:read_file 是为了确认 apps/linux_cardputer_zero 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--main","kind":"technical_hotspot","title":"承担外部协作的候选对象:main 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--main/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--main/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:main:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:49","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:main 技术热点 这个复杂度信号是否会抬高 apps/linux_cardputer_zero 的阅读、修改、测试或回归成本。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--contains","kind":"technical_hotspot","title":"被广泛复用的候选对象:contains 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--contains/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--contains/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:contains:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:19","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:contains 技术热点 这个复杂度信号是否会抬高 apps/linux_cardputer_zero 的阅读、修改、测试或回归成本。"}]},{"id":"engineering:diagram:package:managed_components:element:apps-nrf52_node","mermaidId":"dependency_5","label":"apps/nrf52_node","kind":"package","anchor":"engineering:package:apps-nrf52_node","summary":"apps/nrf52_node 是 managed_components 当前观察到的外部技术边界依赖;它说明当前模块不是孤立实现,而是需要借助另一组工程能力完成职责。","role":"跨模块技术依赖边界:当前 package 需要另一个 package/module 提供能力、契约、配置或运行支撑。","whyItExists":"本地仓库证据在 managed_components 与 apps/nrf52_node 之间观察到跨模块事实关系,因此该依赖被放入 Package Diagram,而不是只藏在代码 import/call 里。","relationshipMeaning":"managed_components -\u003e apps/nrf52_node 表示本地仓库证据观察到跨模块关系;它解释技术依赖方向,但不直接证明业务流程。","drilldownIntent":"下钻 apps/nrf52_node 可以查看它自己的 Package Diagram,再继续进入其组件、结构、sequence 或热点,判断当前依赖究竟落在入口、运行时、工具注册、模型适配还是基础设施边界。","businessRelevance":"managed_components 如果承载用户可见能力,那么对 apps/nrf52_node 的依赖可能是该能力的运行机制、扩展点或治理约束。该业务关联需要由组织/过程模型的 Use Case 证据确认。","changeImpact":"修改 apps/nrf52_node 的公共接口、路径或运行方式,可能让 managed_components 的调用链、打包入口、agent 工作流或 UI 行为发生连锁变化。","evidence":["dependency edge: managed_components -\u003e apps/nrf52_node","apps/nrf52_node/APP_SHELL_MANIFEST.md","apps/nrf52_node/library.json","apps/nrf52_node/README.md","apps/nrf52_node/src/nrf52_node_app_facade_runtime.cpp","apps/nrf52_node/src/nrf52_node_app_facade_runtime.h","apps/nrf52_node/src/nrf52_node_app_runtime_access.cpp","apps/nrf52_node/src/nrf52_node_app_runtime_access.h"],"risks":["跨模块依赖只能证明技术关系,不能直接证明业务关系。","如果该依赖只是因为实现方便而存在,未来变更可能形成边界漂移或隐式公共工具箱。"],"questions":["当前证据尚未证明 managed_components 依赖 apps/nrf52_node 与某个 Use Case、runtime command 或配置决策直接相关。","当前依赖方向按仓库事实记录为候选,尚未发现架构决策文档证明它是稳定边界。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:package:apps-nrf52_node","kind":"package","title":"模块边界:apps/nrf52_node","summary":"解释 apps/nrf52_node 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/apps-nrf52_node/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/apps-nrf52_node/package-diagram.html","anchor":"engineering:package:apps-nrf52_node","relation":"parent_boundary","reason":"打开 apps/nrf52_node 自己的包级边界,检查 managed_components 依赖它时借用的是运行命令、共享能力、治理工具、模型适配还是基础设施职责。"}]},{"id":"engineering:diagram:package:managed_components:element:apps-linux_uconsole_gtk","mermaidId":"dependency_6","label":"apps/linux_uconsole_gtk","kind":"package","anchor":"engineering:package:apps-linux_uconsole_gtk","summary":"apps/linux_uconsole_gtk 是 managed_components 当前观察到的外部技术边界依赖;它说明当前模块不是孤立实现,而是需要借助另一组工程能力完成职责。","role":"跨模块技术依赖边界:当前 package 需要另一个 package/module 提供能力、契约、配置或运行支撑。","whyItExists":"本地仓库证据在 managed_components 与 apps/linux_uconsole_gtk 之间观察到跨模块事实关系,因此该依赖被放入 Package Diagram,而不是只藏在代码 import/call 里。","relationshipMeaning":"managed_components -\u003e apps/linux_uconsole_gtk 表示本地仓库证据观察到跨模块关系;它解释技术依赖方向,但不直接证明业务流程。","drilldownIntent":"下钻 apps/linux_uconsole_gtk 可以查看它自己的 Package Diagram,再继续进入其组件、结构、sequence 或热点,判断当前依赖究竟落在入口、运行时、工具注册、模型适配还是基础设施边界。","businessRelevance":"managed_components 如果承载用户可见能力,那么对 apps/linux_uconsole_gtk 的依赖可能是该能力的运行机制、扩展点或治理约束。该业务关联需要由组织/过程模型的 Use Case 证据确认。","changeImpact":"修改 apps/linux_uconsole_gtk 的公共接口、路径或运行方式,可能让 managed_components 的调用链、打包入口、agent 工作流或 UI 行为发生连锁变化。","evidence":["dependency edge: managed_components -\u003e apps/linux_uconsole_gtk","apps/linux_uconsole_gtk/APP_SHELL_MANIFEST.md","apps/linux_uconsole_gtk/CMakeLists.txt","apps/linux_uconsole_gtk/packaging/trailmate-uconsole.desktop","apps/linux_uconsole_gtk/packaging/trailmate-uconsole.png","apps/linux_uconsole_gtk/README.md","apps/linux_uconsole_gtk/src/linux_uconsole_gtk_app_shell.cpp","apps/linux_uconsole_gtk/src/linux_uconsole_gtk_app_shell.h"],"risks":["跨模块依赖只能证明技术关系,不能直接证明业务关系。","如果该依赖只是因为实现方便而存在,未来变更可能形成边界漂移或隐式公共工具箱。"],"questions":["当前证据尚未证明 managed_components 依赖 apps/linux_uconsole_gtk 与某个 Use Case、runtime command 或配置决策直接相关。","当前依赖方向按仓库事实记录为候选,尚未发现架构决策文档证明它是稳定边界。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:package:apps-linux_uconsole_gtk","kind":"package","title":"模块边界:apps/linux_uconsole_gtk","summary":"解释 apps/linux_uconsole_gtk 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/apps-linux_uconsole_gtk/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/apps-linux_uconsole_gtk/package-diagram.html","anchor":"engineering:package:apps-linux_uconsole_gtk","relation":"parent_boundary","reason":"打开 apps/linux_uconsole_gtk 自己的包级边界,检查 managed_components 依赖它时借用的是运行命令、共享能力、治理工具、模型适配还是基础设施职责。"},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-launchsettingslayout","kind":"component","title":"函数节点:launchSettingsLayout","summary":"function 位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L110,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-launchsettingslayout/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-launchsettingslayout/component-diagram.html","anchor":"engineering:component:function:launchsettingslayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:110","relation":"contains","reason":"打开 函数节点:launchSettingsLayout 是为了确认 apps/linux_uconsole_gtk 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-makelabel","kind":"component","title":"函数节点:makeLabel","summary":"function 位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp#L9,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-makelabel/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-makelabel/component-diagram.html","anchor":"engineering:component:function:makelabel:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp:9","relation":"contains","reason":"打开 函数节点:makeLabel 是为了确认 apps/linux_uconsole_gtk 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-makesettingsrow","kind":"component","title":"函数节点:makeSettingsRow","summary":"function 位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L22,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-makesettingsrow/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-makesettingsrow/component-diagram.html","anchor":"engineering:component:function:makesettingsrow:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:22","relation":"contains","reason":"打开 函数节点:makeSettingsRow 是为了确认 apps/linux_uconsole_gtk 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-refreshui","kind":"component","title":"函数节点:refreshUi","summary":"function 位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_shell.cpp#L285,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-refreshui/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-refreshui/component-diagram.html","anchor":"engineering:component:function:refreshui:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_shell.cpp:285","relation":"contains","reason":"打开 函数节点:refreshUi 是为了确认 apps/linux_uconsole_gtk 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_shell.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-refreshmap","kind":"component","title":"函数节点:refreshMap","summary":"function 位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_map_logic.cpp#L1243,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-refreshmap/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-refreshmap/component-diagram.html","anchor":"engineering:component:function:refreshmap:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_map_logic.cpp:1243","relation":"contains","reason":"打开 函数节点:refreshMap 是为了确认 apps/linux_uconsole_gtk 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_map_logic.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-main","kind":"component","title":"函数节点:main","summary":"function 位于 apps/linux_uconsole_gtk/tests/uconsole_meshtastic_node_payload_smoke.cpp#L89,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-main/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-main/component-diagram.html","anchor":"engineering:component:function:main:apps-linux_uconsole_gtk-tests-uconsole_meshtastic_node_payload_smoke.cpp:89","relation":"contains","reason":"打开 函数节点:main 是为了确认 apps/linux_uconsole_gtk 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/linux_uconsole_gtk/tests/uconsole_meshtastic_node_payload_smoke.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-launchmaplayout","kind":"component","title":"函数节点:launchMapLayout","summary":"function 位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_map_layout.cpp#L105,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-launchmaplayout/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-launchmaplayout/component-diagram.html","anchor":"engineering:component:function:launchmaplayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_map_layout.cpp:105","relation":"contains","reason":"打开 函数节点:launchMapLayout 是为了确认 apps/linux_uconsole_gtk 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_map_layout.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-expect","kind":"component","title":"函数节点:expect","summary":"function 位于 apps/linux_uconsole_gtk/tests/uconsole_meshtastic_node_payload_smoke.cpp#L15,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-expect/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-expect/component-diagram.html","anchor":"engineering:component:function:expect:apps-linux_uconsole_gtk-tests-uconsole_meshtastic_node_payload_smoke.cpp:15","relation":"contains","reason":"打开 函数节点:expect 是为了确认 apps/linux_uconsole_gtk 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/linux_uconsole_gtk/tests/uconsole_meshtastic_node_payload_smoke.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"}]}]},{"id":"engineering:diagram:package:build-t_display_p4_tft","kind":"package","title":"模块边界:build.t_display_p4_tft","summary":"解释 build.t_display_p4_tft 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/build-t_display_p4_tft/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/build-t_display_p4_tft/package-diagram.html","anchor":"engineering:package:build.t_display_p4_tft","status":"candidate","confidence":"high","mermaidKind":"flowchart","mermaid":"flowchart LR\n package_node[\"build.t_display_p4_tft\"]\n package_node --- isolated[\"未观察到跨模块依赖\"]","readingGuide":["这张 Package Diagram 以 build.t_display_p4_tft 为中心,展示它作为工程模块边界时观察到的文件规模、符号规模和跨模块依赖。","图中的箭头表示本地仓库证据观察到的跨模块关系,主要用于理解技术依赖方向;它不是业务流程顺序,也不是运行时消息时序。","当前没有观察到明确的外部模块依赖,这可能表示模块相对独立,也可能表示扫描粒度尚不足。"],"technicalAnalysis":["build.t_display_p4_tft 当前包含 2722 个文件和 2069 个符号,属于软件结构模型识别出的技术组织边界。","跨模块关系呈现为:被其它模块引用或调用 0 次,主动依赖或调用外部模块 0 次,因此它复用迹象和外部协作迹象相对接近。","当前对外依赖未形成明显异常,但仍应结合具体业务入口判断依赖方向是否稳定。"],"businessRelation":["build.t_display_p4_tft 不是业务故事本身,而是业务能力落地时可能经过的技术边界。","如果组织/过程模型中某个 Use Case 的证据、入口或下钻图落在 build.t_display_p4_tft,该 Use Case 应当反向链接到这张 Package Diagram,说明业务故事由哪个工程模块承载。","当前关联仍是 CANDIDATE:这里只能根据仓库证据解释技术边界,不能替代组织/过程模型对业务故事、参与者和业务目标的确认。"],"governanceNotes":["新增功能时,优先确认它属于该模块的稳定职责,而不是因为调用方便而落入该模块。","保持该模块的依赖方向可解释,避免形成隐式公共工具箱。","当业务 Use Case 文档引用该模块时,应在 Use Case 下钻文档中记录具体入口、调用链或配置证据。"],"coverage":["模块路径:build.t_display_p4_tft","文件数:2722","符号数:2069","被其他模块依赖或调用:0","依赖或调用外部模块:0"],"evidencePaths":["build.t_display_p4_tft/app-flash_args","build.t_display_p4_tft/bootloader-flash_args","build.t_display_p4_tft/bootloader-prefix/src/bootloader-stamp/bootloader-configure","build.t_display_p4_tft/bootloader-prefix/src/bootloader-stamp/bootloader-done","build.t_display_p4_tft/bootloader-prefix/src/bootloader-stamp/bootloader-download","build.t_display_p4_tft/bootloader-prefix/src/bootloader-stamp/bootloader-mkdir","build.t_display_p4_tft/bootloader-prefix/src/bootloader-stamp/bootloader-patch","build.t_display_p4_tft/bootloader-prefix/src/bootloader-stamp/bootloader-patch-info.txt"],"questions":["当前仓库证据没有观察到跨模块依赖;因此该模块暂按相对独立边界处理,置信度保持为候选。"],"scope":{"packageId":"build.t_display_p4_tft","filePath":"build.t_display_p4_tft"},"drilldowns":[{"id":"engineering:diagram:technical-hotspot:large-file--build-t_display_p4_tft-bootloader-config-kconfig_menus-json","kind":"technical_hotspot","title":"大文件:build.t_display_p4_tft/bootloader/config/kconfig_menus.json 技术热点","summary":"该文件约 13990 行,可能形成阅读、变更和评审负担。","docPath":"docs/engineering/technical-hotspots/large-file--build-t_display_p4_tft-bootloader-config-kconfig_menus-json/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/large-file--build-t_display_p4_tft-bootloader-config-kconfig_menus-json/technical-hotspot.html","anchor":"engineering:hotspot:large-file:build.t_display_p4_tft-bootloader-config-kconfig_menus.json","relation":"risk_detail","reason":"查看 大文件:build.t_display_p4_tft/bootloader/config/kconfig_menus.json 技术热点 这个复杂度信号是否会抬高 build.t_display_p4_tft 的阅读、修改、测试或回归成本。"}],"elements":[{"id":"engineering:diagram:package:build-t_display_p4_tft:element:build.t_display_p4_tft","mermaidId":"package_node","label":"build.t_display_p4_tft","kind":"package","anchor":"engineering:package:build.t_display_p4_tft","summary":"build.t_display_p4_tft 是当前 Package Diagram 的中心工程边界,用来观察它自身规模、依赖方向和可下钻技术复杂度。","role":"技术组织边界:它把 build.t_display_p4_tft 下的文件、符号和跨模块关系聚合成一个可讨论的工程单元。","whyItExists":"本地仓库证据在 build.t_display_p4_tft 下观察到足够文件、符号或跨模块关系,因此它值得被提升为软件结构模型中的 package 级入口。","relationshipMeaning":"图中从 build.t_display_p4_tft 指向其它节点的箭头表示当前边界依赖外部 package/module;被其他模块依赖或调用 0 次、依赖或调用外部模块 0 次,用于判断它更像稳定复用边界还是编排/桥接边界。","drilldownIntent":"下钻该节点可以继续查看 build.t_display_p4_tft 内的关键组件、结构协作切片、运行链路、部署节点和复杂度热点,从而理解这个工程边界如何承载功能变化。","businessRelevance":"该节点不是业务故事本身,但组织/过程模型中落到 build.t_display_p4_tft 的 Use Case 可以把这里作为技术承载边界引用。当前关联仍是 CANDIDATE。","changeImpact":"修改 build.t_display_p4_tft 的公共入口、依赖方向或目录边界,可能影响引用它的组件图、sequence 片段、部署配置和相关业务故事的验证路径。","evidence":["package scope: build.t_display_p4_tft","模块路径:build.t_display_p4_tft","文件数:2722","符号数:2069","被其他模块依赖或调用:0","依赖或调用外部模块:0","build.t_display_p4_tft/app-flash_args","build.t_display_p4_tft/bootloader-flash_args"],"risks":["如果只把该节点当作目录名,会遗漏它作为稳定工程边界的职责判断。","如果依赖外部模块的迹象持续增加,可能说明该边界承担过多编排或桥接职责。"],"questions":["当前仓库证据没有观察到跨模块依赖;因此该模块暂按相对独立边界处理,置信度保持为候选。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:technical-hotspot:large-file--build-t_display_p4_tft-bootloader-config-kconfig_menus-json","kind":"technical_hotspot","title":"大文件:build.t_display_p4_tft/bootloader/config/kconfig_menus.json 技术热点","summary":"该文件约 13990 行,可能形成阅读、变更和评审负担。","docPath":"docs/engineering/technical-hotspots/large-file--build-t_display_p4_tft-bootloader-config-kconfig_menus-json/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/large-file--build-t_display_p4_tft-bootloader-config-kconfig_menus-json/technical-hotspot.html","anchor":"engineering:hotspot:large-file:build.t_display_p4_tft-bootloader-config-kconfig_menus.json","relation":"risk_detail","reason":"查看 大文件:build.t_display_p4_tft/bootloader/config/kconfig_menus.json 技术热点 这个复杂度信号是否会抬高 build.t_display_p4_tft 的阅读、修改、测试或回归成本。"}]}]},{"id":"engineering:diagram:package:build-tdisplayp4_tft","kind":"package","title":"模块边界:build.tdisplayp4_tft","summary":"解释 build.tdisplayp4_tft 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/build-tdisplayp4_tft/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/build-tdisplayp4_tft/package-diagram.html","anchor":"engineering:package:build.tdisplayp4_tft","status":"candidate","confidence":"high","mermaidKind":"flowchart","mermaid":"flowchart LR\n package_node[\"build.tdisplayp4_tft\"]\n package_node --- isolated[\"未观察到跨模块依赖\"]","readingGuide":["这张 Package Diagram 以 build.tdisplayp4_tft 为中心,展示它作为工程模块边界时观察到的文件规模、符号规模和跨模块依赖。","图中的箭头表示本地仓库证据观察到的跨模块关系,主要用于理解技术依赖方向;它不是业务流程顺序,也不是运行时消息时序。","当前没有观察到明确的外部模块依赖,这可能表示模块相对独立,也可能表示扫描粒度尚不足。"],"technicalAnalysis":["build.tdisplayp4_tft 当前包含 2400 个文件和 1961 个符号,属于软件结构模型识别出的技术组织边界。","跨模块关系呈现为:被其它模块引用或调用 0 次,主动依赖或调用外部模块 0 次,因此它复用迹象和外部协作迹象相对接近。","当前对外依赖未形成明显异常,但仍应结合具体业务入口判断依赖方向是否稳定。"],"businessRelation":["build.tdisplayp4_tft 不是业务故事本身,而是业务能力落地时可能经过的技术边界。","如果组织/过程模型中某个 Use Case 的证据、入口或下钻图落在 build.tdisplayp4_tft,该 Use Case 应当反向链接到这张 Package Diagram,说明业务故事由哪个工程模块承载。","当前关联仍是 CANDIDATE:这里只能根据仓库证据解释技术边界,不能替代组织/过程模型对业务故事、参与者和业务目标的确认。"],"governanceNotes":["新增功能时,优先确认它属于该模块的稳定职责,而不是因为调用方便而落入该模块。","保持该模块的依赖方向可解释,避免形成隐式公共工具箱。","当业务 Use Case 文档引用该模块时,应在 Use Case 下钻文档中记录具体入口、调用链或配置证据。"],"coverage":["模块路径:build.tdisplayp4_tft","文件数:2400","符号数:1961","被其他模块依赖或调用:0","依赖或调用外部模块:0"],"evidencePaths":["build.tdisplayp4_tft/app-flash_args","build.tdisplayp4_tft/bootloader-flash_args","build.tdisplayp4_tft/bootloader-prefix/src/bootloader-stamp/bootloader-configure","build.tdisplayp4_tft/bootloader-prefix/src/bootloader-stamp/bootloader-done","build.tdisplayp4_tft/bootloader-prefix/src/bootloader-stamp/bootloader-download","build.tdisplayp4_tft/bootloader-prefix/src/bootloader-stamp/bootloader-mkdir","build.tdisplayp4_tft/bootloader-prefix/src/bootloader-stamp/bootloader-patch","build.tdisplayp4_tft/bootloader-prefix/src/bootloader-stamp/bootloader-patch-info.txt"],"questions":["当前仓库证据没有观察到跨模块依赖;因此该模块暂按相对独立边界处理,置信度保持为候选。"],"scope":{"packageId":"build.tdisplayp4_tft","filePath":"build.tdisplayp4_tft"},"drilldowns":[{"id":"engineering:diagram:technical-hotspot:large-file--build-tdisplayp4_tft-bootloader-config-kconfig_menus-json","kind":"technical_hotspot","title":"大文件:build.tdisplayp4_tft/bootloader/config/kconfig_menus.json 技术热点","summary":"该文件约 13990 行,可能形成阅读、变更和评审负担。","docPath":"docs/engineering/technical-hotspots/large-file--build-tdisplayp4_tft-bootloader-config-kconfig_menus-json/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/large-file--build-tdisplayp4_tft-bootloader-config-kconfig_menus-json/technical-hotspot.html","anchor":"engineering:hotspot:large-file:build.tdisplayp4_tft-bootloader-config-kconfig_menus.json","relation":"risk_detail","reason":"查看 大文件:build.tdisplayp4_tft/bootloader/config/kconfig_menus.json 技术热点 这个复杂度信号是否会抬高 build.tdisplayp4_tft 的阅读、修改、测试或回归成本。"}],"elements":[{"id":"engineering:diagram:package:build-tdisplayp4_tft:element:build.tdisplayp4_tft","mermaidId":"package_node","label":"build.tdisplayp4_tft","kind":"package","anchor":"engineering:package:build.tdisplayp4_tft","summary":"build.tdisplayp4_tft 是当前 Package Diagram 的中心工程边界,用来观察它自身规模、依赖方向和可下钻技术复杂度。","role":"技术组织边界:它把 build.tdisplayp4_tft 下的文件、符号和跨模块关系聚合成一个可讨论的工程单元。","whyItExists":"本地仓库证据在 build.tdisplayp4_tft 下观察到足够文件、符号或跨模块关系,因此它值得被提升为软件结构模型中的 package 级入口。","relationshipMeaning":"图中从 build.tdisplayp4_tft 指向其它节点的箭头表示当前边界依赖外部 package/module;被其他模块依赖或调用 0 次、依赖或调用外部模块 0 次,用于判断它更像稳定复用边界还是编排/桥接边界。","drilldownIntent":"下钻该节点可以继续查看 build.tdisplayp4_tft 内的关键组件、结构协作切片、运行链路、部署节点和复杂度热点,从而理解这个工程边界如何承载功能变化。","businessRelevance":"该节点不是业务故事本身,但组织/过程模型中落到 build.tdisplayp4_tft 的 Use Case 可以把这里作为技术承载边界引用。当前关联仍是 CANDIDATE。","changeImpact":"修改 build.tdisplayp4_tft 的公共入口、依赖方向或目录边界,可能影响引用它的组件图、sequence 片段、部署配置和相关业务故事的验证路径。","evidence":["package scope: build.tdisplayp4_tft","模块路径:build.tdisplayp4_tft","文件数:2400","符号数:1961","被其他模块依赖或调用:0","依赖或调用外部模块:0","build.tdisplayp4_tft/app-flash_args","build.tdisplayp4_tft/bootloader-flash_args"],"risks":["如果只把该节点当作目录名,会遗漏它作为稳定工程边界的职责判断。","如果依赖外部模块的迹象持续增加,可能说明该边界承担过多编排或桥接职责。"],"questions":["当前仓库证据没有观察到跨模块依赖;因此该模块暂按相对独立边界处理,置信度保持为候选。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:technical-hotspot:large-file--build-tdisplayp4_tft-bootloader-config-kconfig_menus-json","kind":"technical_hotspot","title":"大文件:build.tdisplayp4_tft/bootloader/config/kconfig_menus.json 技术热点","summary":"该文件约 13990 行,可能形成阅读、变更和评审负担。","docPath":"docs/engineering/technical-hotspots/large-file--build-tdisplayp4_tft-bootloader-config-kconfig_menus-json/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/large-file--build-tdisplayp4_tft-bootloader-config-kconfig_menus-json/technical-hotspot.html","anchor":"engineering:hotspot:large-file:build.tdisplayp4_tft-bootloader-config-kconfig_menus.json","relation":"risk_detail","reason":"查看 大文件:build.tdisplayp4_tft/bootloader/config/kconfig_menus.json 技术热点 这个复杂度信号是否会抬高 build.tdisplayp4_tft 的阅读、修改、测试或回归成本。"}]}]},{"id":"engineering:diagram:package:boards","kind":"package","title":"模块边界:boards","summary":"解释 boards 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/boards/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/boards/package-diagram.html","anchor":"engineering:package:boards","status":"candidate","confidence":"high","mermaidKind":"flowchart","mermaid":"flowchart LR\n package_node[\"boards\"]\n dependency_1[\"apps/esp32_lvgl\"]\n package_node --\u003e dependency_1\n dependency_2[\"apps/linux_cardputer_zero\"]\n package_node --\u003e dependency_2\n dependency_3[\"apps/nrf52_node\"]\n package_node --\u003e dependency_3\n dependency_4[\"apps/linux_uconsole_gtk\"]\n package_node --\u003e dependency_4\n dependency_5[\"apps/linux_sim_shell\"]\n package_node --\u003e dependency_5\n dependency_6[\"firmware\"]\n package_node --\u003e dependency_6","readingGuide":["这张 Package Diagram 以 boards 为中心,展示它作为工程模块边界时观察到的文件规模、符号规模和跨模块依赖。","图中的箭头表示本地仓库证据观察到的跨模块关系,主要用于理解技术依赖方向;它不是业务流程顺序,也不是运行时消息时序。","当前观察到的主要外部依赖包括:apps/esp32_lvgl、apps/linux_cardputer_zero、apps/nrf52_node、apps/linux_uconsole_gtk、apps/linux_sim_shell、firmware。"],"technicalAnalysis":["boards 当前包含 92 个文件和 1952 个符号,属于软件结构模型识别出的技术组织边界。","跨模块关系呈现为:被其它模块引用或调用 47 次,主动依赖或调用外部模块 183 次,因此它依赖外部模块更多。","较多外部依赖可能说明该模块承担编排、聚合或桥接多处能力的职责;当前按候选技术耦合中心处理。"],"businessRelation":["boards 不是业务故事本身,而是业务能力落地时可能经过的技术边界。","如果组织/过程模型中某个 Use Case 的证据、入口或下钻图落在 boards,该 Use Case 应当反向链接到这张 Package Diagram,说明业务故事由哪个工程模块承载。","当前关联仍是 CANDIDATE:这里只能根据仓库证据解释技术边界,不能替代组织/过程模型对业务故事、参与者和业务目标的确认。"],"governanceNotes":["新增功能时,优先确认它属于该模块的稳定职责,而不是因为调用方便而落入该模块。","如果未来多次变更都增加该模块的外部依赖,应考虑拆分端口、适配器或应用服务边界。","当业务 Use Case 文档引用该模块时,应在 Use Case 下钻文档中记录具体入口、调用链或配置证据。"],"coverage":["模块路径:boards","文件数:92","符号数:1952","被其他模块依赖或调用:47","依赖或调用外部模块:183"],"evidencePaths":["boards/cardputerzero/board_facts.h","boards/cardputerzero/BOARD.md","boards/gat562_mesh_evb_pro.json","boards/gat562_mesh_evb_pro/board_facts.h","boards/gat562_mesh_evb_pro/BOARD.md","boards/gat562_mesh_evb_pro/include/boards/gat562_mesh_evb_pro/board_profile.h","boards/gat562_mesh_evb_pro/include/boards/gat562_mesh_evb_pro/gat562_board.h","boards/gat562_mesh_evb_pro/include/boards/gat562_mesh_evb_pro/gps_runtime.h"],"questions":[],"scope":{"packageId":"boards","filePath":"boards"},"drilldowns":[{"id":"engineering:diagram:component:boards-makeboardprofile","kind":"component","title":"函数节点:makeBoardProfile","summary":"function 位于 boards/t_echo_lite/include/boards/t_echo_lite/board_profile.h#L188,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/boards-makeboardprofile/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/boards-makeboardprofile/component-diagram.html","anchor":"engineering:component:function:makeboardprofile:boards-t_echo_lite-include-boards-t_echo_lite-board_profile.h:188","relation":"contains","reason":"打开 函数节点:makeBoardProfile 是为了确认 boards 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 boards/t_echo_lite/include/boards/t_echo_lite/board_profile.h,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:boards-pinnum","kind":"component","title":"函数节点:pinNum","summary":"function 位于 boards/t_echo_lite/include/boards/t_echo_lite/board_profile.h#L8,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/boards-pinnum/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/boards-pinnum/component-diagram.html","anchor":"engineering:component:function:pinnum:boards-t_echo_lite-include-boards-t_echo_lite-board_profile.h:8","relation":"contains","reason":"打开 函数节点:pinNum 是为了确认 boards 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 boards/t_echo_lite/include/boards/t_echo_lite/board_profile.h,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:class-structural:boards-gat562_mesh_evb_pro-include-boards","kind":"class_structural","title":"结构协作:结构切片 boards · gat562_mesh_evb_pro/include/boards","summary":"解释 boards/gat562_mesh_evb_pro/include/boards 这一结构切片中类、接口、组件或值对象如何共同承担结构切片 boards中的结构职责;候选对象包括 Gat562Board、SX1262、Sx1262RadioPacketIo、Gat562Board::I2cGuard、GpsRuntime。","docPath":"docs/engineering/class-structural-diagrams/boards-gat562_mesh_evb_pro-include-boards/class-structural-diagram.md","htmlPath":"docs/engineering/class-structural-diagrams/boards-gat562_mesh_evb_pro-include-boards/class-structural-diagram.html","anchor":"engineering:class-structural:boards-gat562_mesh_evb_pro-include-boards","relation":"structural_context","reason":"打开 结构协作:结构切片 boards · gat562_mesh_evb_pro/include/boards 是为了从对象协作角度解释 boards:哪些对象像入口,哪些像编排核心,哪些像适配/共享边界;它帮助判断复杂度来自职责分布,而不只是文件数量。"},{"id":"engineering:diagram:class-structural:boards-t_echo_lite-include-boards","kind":"class_structural","title":"结构协作:结构切片 boards · t_echo_lite/include/boards","summary":"解释 boards/t_echo_lite/include/boards 这一结构切片中类、接口、组件或值对象如何共同承担结构切片 boards中的结构职责;候选对象包括 TEchoLiteBoard、Sx1262RadioPacketIo、TEchoLiteBoard::I2cGuard、GpsRuntime、Module。","docPath":"docs/engineering/class-structural-diagrams/boards-t_echo_lite-include-boards/class-structural-diagram.md","htmlPath":"docs/engineering/class-structural-diagrams/boards-t_echo_lite-include-boards/class-structural-diagram.html","anchor":"engineering:class-structural:boards-t_echo_lite-include-boards","relation":"structural_context","reason":"打开 结构协作:结构切片 boards · t_echo_lite/include/boards 是为了从对象协作角度解释 boards:哪些对象像入口,哪些像编排核心,哪些像适配/共享边界;它帮助判断复杂度来自职责分布,而不只是文件数量。"},{"id":"engineering:diagram:class-structural:boards-tab5-include-boards","kind":"class_structural","title":"结构协作:结构切片 boards · tab5/include/boards","summary":"解释 boards/tab5/include/boards 这一结构切片中类、接口、组件或值对象如何共同承担结构切片 boards中的结构职责;候选对象包括 Tab5Board、Tab5Board::ManagedSystemI2cGuard、Tab5Board::SysI2cGuard、CodecCompat。","docPath":"docs/engineering/class-structural-diagrams/boards-tab5-include-boards/class-structural-diagram.md","htmlPath":"docs/engineering/class-structural-diagrams/boards-tab5-include-boards/class-structural-diagram.html","anchor":"engineering:class-structural:boards-tab5-include-boards","relation":"structural_context","reason":"打开 结构协作:结构切片 boards · tab5/include/boards 是为了从对象协作角度解释 boards:哪些对象像入口,哪些像编排核心,哪些像适配/共享边界;它帮助判断复杂度来自职责分布,而不只是文件数量。"},{"id":"engineering:diagram:class-structural:boards-t_display_p4-include-boards","kind":"class_structural","title":"结构协作:结构切片 boards · t_display_p4/include/boards","summary":"解释 boards/t_display_p4/include/boards 这一结构切片中类、接口、组件或值对象如何共同承担结构切片 boards中的结构职责;候选对象包括 TDisplayP4Board、TDisplayP4Board::ManagedSystemI2cGuard。","docPath":"docs/engineering/class-structural-diagrams/boards-t_display_p4-include-boards/class-structural-diagram.md","htmlPath":"docs/engineering/class-structural-diagrams/boards-t_display_p4-include-boards/class-structural-diagram.html","anchor":"engineering:class-structural:boards-t_display_p4-include-boards","relation":"structural_context","reason":"打开 结构协作:结构切片 boards · t_display_p4/include/boards 是为了从对象协作角度解释 boards:哪些对象像入口,哪些像编排核心,哪些像适配/共享边界;它帮助判断复杂度来自职责分布,而不只是文件数量。"},{"id":"engineering:diagram:class-structural:boards-tlora_pager-include-boards","kind":"class_structural","title":"结构协作:结构切片 boards · tlora_pager/include/boards","summary":"解释 boards/tlora_pager/include/boards 这一结构切片中类、接口、组件或值对象如何共同承担结构切片 boards中的结构职责;候选对象包括 TLoRaPagerBoard、SX1262Access、AppContext。","docPath":"docs/engineering/class-structural-diagrams/boards-tlora_pager-include-boards/class-structural-diagram.md","htmlPath":"docs/engineering/class-structural-diagrams/boards-tlora_pager-include-boards/class-structural-diagram.html","anchor":"engineering:class-structural:boards-tlora_pager-include-boards","relation":"structural_context","reason":"打开 结构协作:结构切片 boards · tlora_pager/include/boards 是为了从对象协作角度解释 boards:哪些对象像入口,哪些像编排核心,哪些像适配/共享边界;它帮助判断复杂度来自职责分布,而不只是文件数量。"},{"id":"engineering:diagram:technical-hotspot:dependency-cluster--boards","kind":"technical_hotspot","title":"依赖簇:boards 技术热点","summary":"该模块依赖多个外部边界,当前按候选技术耦合中心处理;图中只保留仓库证据已经观察到的依赖方向和边界。","docPath":"docs/engineering/technical-hotspots/dependency-cluster--boards/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/dependency-cluster--boards/technical-hotspot.html","anchor":"engineering:hotspot:dependency-cluster:boards","relation":"risk_detail","reason":"查看 依赖簇:boards 技术热点 这个复杂度信号是否会抬高 boards 的阅读、修改、测试或回归成本。"},{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--boards-tlora_pager-src-tlora_pager_board-cpp","kind":"technical_hotspot","title":"承担外部协作的候选对象:boards/tlora_pager/src/tlora_pager_board.cpp 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--boards-tlora_pager-src-tlora_pager_board-cpp/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--boards-tlora_pager-src-tlora_pager_board-cpp/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:boards-tlora_pager-src-tlora_pager_board.cpp:boards-tlora_pager-src-tlora_pager_board.cpp:1","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:boards/tlora_pager/src/tlora_pager_board.cpp 技术热点 这个复杂度信号是否会抬高 boards 的阅读、修改、测试或回归成本。"}],"elements":[{"id":"engineering:diagram:package:boards:element:boards","mermaidId":"package_node","label":"boards","kind":"package","anchor":"engineering:package:boards","summary":"boards 是当前 Package Diagram 的中心工程边界,用来观察它自身规模、依赖方向和可下钻技术复杂度。","role":"技术组织边界:它把 boards 下的文件、符号和跨模块关系聚合成一个可讨论的工程单元。","whyItExists":"本地仓库证据在 boards 下观察到足够文件、符号或跨模块关系,因此它值得被提升为软件结构模型中的 package 级入口。","relationshipMeaning":"图中从 boards 指向其它节点的箭头表示当前边界依赖外部 package/module;被其他模块依赖或调用 47 次、依赖或调用外部模块 183 次,用于判断它更像稳定复用边界还是编排/桥接边界。","drilldownIntent":"下钻该节点可以继续查看 boards 内的关键组件、结构协作切片、运行链路、部署节点和复杂度热点,从而理解这个工程边界如何承载功能变化。","businessRelevance":"该节点不是业务故事本身,但组织/过程模型中落到 boards 的 Use Case 可以把这里作为技术承载边界引用。当前关联仍是 CANDIDATE。","changeImpact":"修改 boards 的公共入口、依赖方向或目录边界,可能影响引用它的组件图、sequence 片段、部署配置和相关业务故事的验证路径。","evidence":["package scope: boards","模块路径:boards","文件数:92","符号数:1952","被其他模块依赖或调用:47","依赖或调用外部模块:183","boards/cardputerzero/board_facts.h","boards/cardputerzero/BOARD.md"],"risks":["如果只把该节点当作目录名,会遗漏它作为稳定工程边界的职责判断。","如果依赖外部模块的迹象持续增加,可能说明该边界承担过多编排或桥接职责。"],"questions":["当前仓库证据尚未把该 package 明确 Trace 到某个 Use Case;因此业务关联保持候选。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:component:boards-makeboardprofile","kind":"component","title":"函数节点:makeBoardProfile","summary":"function 位于 boards/t_echo_lite/include/boards/t_echo_lite/board_profile.h#L188,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/boards-makeboardprofile/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/boards-makeboardprofile/component-diagram.html","anchor":"engineering:component:function:makeboardprofile:boards-t_echo_lite-include-boards-t_echo_lite-board_profile.h:188","relation":"contains","reason":"打开 函数节点:makeBoardProfile 是为了确认 boards 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 boards/t_echo_lite/include/boards/t_echo_lite/board_profile.h,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:boards-pinnum","kind":"component","title":"函数节点:pinNum","summary":"function 位于 boards/t_echo_lite/include/boards/t_echo_lite/board_profile.h#L8,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/boards-pinnum/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/boards-pinnum/component-diagram.html","anchor":"engineering:component:function:pinnum:boards-t_echo_lite-include-boards-t_echo_lite-board_profile.h:8","relation":"contains","reason":"打开 函数节点:pinNum 是为了确认 boards 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 boards/t_echo_lite/include/boards/t_echo_lite/board_profile.h,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:class-structural:boards-gat562_mesh_evb_pro-include-boards","kind":"class_structural","title":"结构协作:结构切片 boards · gat562_mesh_evb_pro/include/boards","summary":"解释 boards/gat562_mesh_evb_pro/include/boards 这一结构切片中类、接口、组件或值对象如何共同承担结构切片 boards中的结构职责;候选对象包括 Gat562Board、SX1262、Sx1262RadioPacketIo、Gat562Board::I2cGuard、GpsRuntime。","docPath":"docs/engineering/class-structural-diagrams/boards-gat562_mesh_evb_pro-include-boards/class-structural-diagram.md","htmlPath":"docs/engineering/class-structural-diagrams/boards-gat562_mesh_evb_pro-include-boards/class-structural-diagram.html","anchor":"engineering:class-structural:boards-gat562_mesh_evb_pro-include-boards","relation":"structural_context","reason":"打开 结构协作:结构切片 boards · gat562_mesh_evb_pro/include/boards 是为了从对象协作角度解释 boards:哪些对象像入口,哪些像编排核心,哪些像适配/共享边界;它帮助判断复杂度来自职责分布,而不只是文件数量。"},{"id":"engineering:diagram:class-structural:boards-t_echo_lite-include-boards","kind":"class_structural","title":"结构协作:结构切片 boards · t_echo_lite/include/boards","summary":"解释 boards/t_echo_lite/include/boards 这一结构切片中类、接口、组件或值对象如何共同承担结构切片 boards中的结构职责;候选对象包括 TEchoLiteBoard、Sx1262RadioPacketIo、TEchoLiteBoard::I2cGuard、GpsRuntime、Module。","docPath":"docs/engineering/class-structural-diagrams/boards-t_echo_lite-include-boards/class-structural-diagram.md","htmlPath":"docs/engineering/class-structural-diagrams/boards-t_echo_lite-include-boards/class-structural-diagram.html","anchor":"engineering:class-structural:boards-t_echo_lite-include-boards","relation":"structural_context","reason":"打开 结构协作:结构切片 boards · t_echo_lite/include/boards 是为了从对象协作角度解释 boards:哪些对象像入口,哪些像编排核心,哪些像适配/共享边界;它帮助判断复杂度来自职责分布,而不只是文件数量。"},{"id":"engineering:diagram:class-structural:boards-tab5-include-boards","kind":"class_structural","title":"结构协作:结构切片 boards · tab5/include/boards","summary":"解释 boards/tab5/include/boards 这一结构切片中类、接口、组件或值对象如何共同承担结构切片 boards中的结构职责;候选对象包括 Tab5Board、Tab5Board::ManagedSystemI2cGuard、Tab5Board::SysI2cGuard、CodecCompat。","docPath":"docs/engineering/class-structural-diagrams/boards-tab5-include-boards/class-structural-diagram.md","htmlPath":"docs/engineering/class-structural-diagrams/boards-tab5-include-boards/class-structural-diagram.html","anchor":"engineering:class-structural:boards-tab5-include-boards","relation":"structural_context","reason":"打开 结构协作:结构切片 boards · tab5/include/boards 是为了从对象协作角度解释 boards:哪些对象像入口,哪些像编排核心,哪些像适配/共享边界;它帮助判断复杂度来自职责分布,而不只是文件数量。"},{"id":"engineering:diagram:class-structural:boards-t_display_p4-include-boards","kind":"class_structural","title":"结构协作:结构切片 boards · t_display_p4/include/boards","summary":"解释 boards/t_display_p4/include/boards 这一结构切片中类、接口、组件或值对象如何共同承担结构切片 boards中的结构职责;候选对象包括 TDisplayP4Board、TDisplayP4Board::ManagedSystemI2cGuard。","docPath":"docs/engineering/class-structural-diagrams/boards-t_display_p4-include-boards/class-structural-diagram.md","htmlPath":"docs/engineering/class-structural-diagrams/boards-t_display_p4-include-boards/class-structural-diagram.html","anchor":"engineering:class-structural:boards-t_display_p4-include-boards","relation":"structural_context","reason":"打开 结构协作:结构切片 boards · t_display_p4/include/boards 是为了从对象协作角度解释 boards:哪些对象像入口,哪些像编排核心,哪些像适配/共享边界;它帮助判断复杂度来自职责分布,而不只是文件数量。"},{"id":"engineering:diagram:class-structural:boards-tlora_pager-include-boards","kind":"class_structural","title":"结构协作:结构切片 boards · tlora_pager/include/boards","summary":"解释 boards/tlora_pager/include/boards 这一结构切片中类、接口、组件或值对象如何共同承担结构切片 boards中的结构职责;候选对象包括 TLoRaPagerBoard、SX1262Access、AppContext。","docPath":"docs/engineering/class-structural-diagrams/boards-tlora_pager-include-boards/class-structural-diagram.md","htmlPath":"docs/engineering/class-structural-diagrams/boards-tlora_pager-include-boards/class-structural-diagram.html","anchor":"engineering:class-structural:boards-tlora_pager-include-boards","relation":"structural_context","reason":"打开 结构协作:结构切片 boards · tlora_pager/include/boards 是为了从对象协作角度解释 boards:哪些对象像入口,哪些像编排核心,哪些像适配/共享边界;它帮助判断复杂度来自职责分布,而不只是文件数量。"},{"id":"engineering:diagram:technical-hotspot:dependency-cluster--boards","kind":"technical_hotspot","title":"依赖簇:boards 技术热点","summary":"该模块依赖多个外部边界,当前按候选技术耦合中心处理;图中只保留仓库证据已经观察到的依赖方向和边界。","docPath":"docs/engineering/technical-hotspots/dependency-cluster--boards/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/dependency-cluster--boards/technical-hotspot.html","anchor":"engineering:hotspot:dependency-cluster:boards","relation":"risk_detail","reason":"查看 依赖簇:boards 技术热点 这个复杂度信号是否会抬高 boards 的阅读、修改、测试或回归成本。"},{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--boards-tlora_pager-src-tlora_pager_board-cpp","kind":"technical_hotspot","title":"承担外部协作的候选对象:boards/tlora_pager/src/tlora_pager_board.cpp 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--boards-tlora_pager-src-tlora_pager_board-cpp/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--boards-tlora_pager-src-tlora_pager_board-cpp/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:boards-tlora_pager-src-tlora_pager_board.cpp:boards-tlora_pager-src-tlora_pager_board.cpp:1","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:boards/tlora_pager/src/tlora_pager_board.cpp 技术热点 这个复杂度信号是否会抬高 boards 的阅读、修改、测试或回归成本。"}]},{"id":"engineering:diagram:package:boards:element:apps-esp32_lvgl","mermaidId":"dependency_1","label":"apps/esp32_lvgl","kind":"package","anchor":"engineering:package:apps-esp32_lvgl","summary":"apps/esp32_lvgl 是 boards 当前观察到的外部技术边界依赖;它说明当前模块不是孤立实现,而是需要借助另一组工程能力完成职责。","role":"跨模块技术依赖边界:当前 package 需要另一个 package/module 提供能力、契约、配置或运行支撑。","whyItExists":"本地仓库证据在 boards 与 apps/esp32_lvgl 之间观察到跨模块事实关系,因此该依赖被放入 Package Diagram,而不是只藏在代码 import/call 里。","relationshipMeaning":"boards -\u003e apps/esp32_lvgl 表示本地仓库证据观察到跨模块关系;它解释技术依赖方向,但不直接证明业务流程。","drilldownIntent":"下钻 apps/esp32_lvgl 可以查看它自己的 Package Diagram,再继续进入其组件、结构、sequence 或热点,判断当前依赖究竟落在入口、运行时、工具注册、模型适配还是基础设施边界。","businessRelevance":"boards 如果承载用户可见能力,那么对 apps/esp32_lvgl 的依赖可能是该能力的运行机制、扩展点或治理约束。该业务关联需要由组织/过程模型的 Use Case 证据确认。","changeImpact":"修改 apps/esp32_lvgl 的公共接口、路径或运行方式,可能让 boards 的调用链、打包入口、agent 工作流或 UI 行为发生连锁变化。","evidence":["dependency edge: boards -\u003e apps/esp32_lvgl","apps/esp32_lvgl/APP_SHELL_MANIFEST.md","apps/esp32_lvgl/CMakeLists.txt","apps/esp32_lvgl/library.json","apps/esp32_lvgl/README.md","apps/esp32_lvgl/src/esp32_lvgl_app_shell.cpp","apps/esp32_lvgl/src/esp32_lvgl_app_shell.h","apps/esp32_lvgl/src/esp32_lvgl_arduino_app_registry.cpp"],"risks":["跨模块依赖只能证明技术关系,不能直接证明业务关系。","如果该依赖只是因为实现方便而存在,未来变更可能形成边界漂移或隐式公共工具箱。"],"questions":["当前证据尚未证明 boards 依赖 apps/esp32_lvgl 与某个 Use Case、runtime command 或配置决策直接相关。","当前依赖方向按仓库事实记录为候选,尚未发现架构决策文档证明它是稳定边界。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:package:apps-esp32_lvgl","kind":"package","title":"模块边界:apps/esp32_lvgl","summary":"解释 apps/esp32_lvgl 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/apps-esp32_lvgl/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/apps-esp32_lvgl/package-diagram.html","anchor":"engineering:package:apps-esp32_lvgl","relation":"parent_boundary","reason":"打开 apps/esp32_lvgl 自己的包级边界,检查 boards 依赖它时借用的是运行命令、共享能力、治理工具、模型适配还是基础设施职责。"},{"id":"engineering:diagram:component:apps-esp32_lvgl-main","kind":"component","title":"函数节点:main","summary":"function 位于 apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp#L33,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-main/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-main/component-diagram.html","anchor":"engineering:component:function:main:apps-esp32_lvgl-tests-esp32_lvgl_sd_coredump_contract_smoke.cpp:33","relation":"contains","reason":"打开 函数节点:main 是为了确认 apps/esp32_lvgl 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:apps-esp32_lvgl-contains","kind":"component","title":"函数节点:contains","summary":"function 位于 apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp#L19,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-contains/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-contains/component-diagram.html","anchor":"engineering:component:function:contains:apps-esp32_lvgl-tests-esp32_lvgl_sd_coredump_contract_smoke.cpp:19","relation":"contains","reason":"打开 函数节点:contains 是为了确认 apps/esp32_lvgl 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:apps-esp32_lvgl-companion_enter","kind":"component","title":"函数节点:companion_enter","summary":"function 位于 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp#L72,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-companion_enter/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-companion_enter/component-diagram.html","anchor":"engineering:component:function:companion_enter:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:72","relation":"contains","reason":"打开 函数节点:companion_enter 是为了确认 apps/esp32_lvgl 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:sequence:tick-calls-log_loop_interval","kind":"sequence","title":"动态协作:tick 调用 log_loop_interval","summary":"apps/esp32_lvgl/src/esp32_lvgl_arduino_loop_runtime.cpp 中的 tick calls apps/esp32_lvgl/src/esp32_lvgl_arduino_loop_runtime.cpp 中的 log_loop_interval。","docPath":"docs/engineering/sequence-diagrams/tick-calls-log_loop_interval/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/tick-calls-log_loop_interval/sequence-diagram.html","anchor":"engineering:runtime-flow:tick:log_loop_interval:apps-esp32_lvgl-src-esp32_lvgl_arduino_loop_runtime.cpp:apps-esp32_lvgl-src-esp32_lvgl_arduino_loop_runtime.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了把 apps/esp32_lvgl 的静态依赖还原成一段可读协作:tick -\u003e log_loop_interval。重点判断这是 import、调用、引用还是消息方向,以及它是否真的影响运行路径。"},{"id":"engineering:diagram:sequence:add_status_line-calls-add_label","kind":"sequence","title":"动态协作:add_status_line 调用 add_label","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_status_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_label。","docPath":"docs/engineering/sequence-diagrams/add_status_line-calls-add_label/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/add_status_line-calls-add_label/sequence-diagram.html","anchor":"engineering:runtime-flow:add_status_line:add_label:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了把 apps/esp32_lvgl 的静态依赖还原成一段可读协作:add_status_line -\u003e add_label。重点判断这是 import、调用、引用还是消息方向,以及它是否真的影响运行路径。"},{"id":"engineering:diagram:sequence:add_u32_line-calls-add_label","kind":"sequence","title":"动态协作:add_u32_line 调用 add_label","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_u32_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_label。","docPath":"docs/engineering/sequence-diagrams/add_u32_line-calls-add_label/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/add_u32_line-calls-add_label/sequence-diagram.html","anchor":"engineering:runtime-flow:add_u32_line:add_label:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了把 apps/esp32_lvgl 的静态依赖还原成一段可读协作:add_u32_line -\u003e add_label。重点判断这是 import、调用、引用还是消息方向,以及它是否真的影响运行路径。"},{"id":"engineering:diagram:sequence:add_hex_line-calls-add_status_line","kind":"sequence","title":"动态协作:add_hex_line 调用 add_status_line","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_hex_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_status_line。","docPath":"docs/engineering/sequence-diagrams/add_hex_line-calls-add_status_line/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/add_hex_line-calls-add_status_line/sequence-diagram.html","anchor":"engineering:runtime-flow:add_hex_line:add_status_line:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了把 apps/esp32_lvgl 的静态依赖还原成一段可读协作:add_hex_line -\u003e add_status_line。重点判断这是 import、调用、引用还是消息方向,以及它是否真的影响运行路径。"},{"id":"engineering:diagram:sequence:companion_enter-calls-add_label","kind":"sequence","title":"动态协作:companion_enter 调用 add_label","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 companion_enter calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_label。","docPath":"docs/engineering/sequence-diagrams/companion_enter-calls-add_label/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/companion_enter-calls-add_label/sequence-diagram.html","anchor":"engineering:runtime-flow:companion_enter:add_label:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了把 apps/esp32_lvgl 的静态依赖还原成一段可读协作:companion_enter -\u003e add_label。重点判断这是 import、调用、引用还是消息方向,以及它是否真的影响运行路径。"}]},{"id":"engineering:diagram:package:boards:element:apps-linux_cardputer_zero","mermaidId":"dependency_2","label":"apps/linux_cardputer_zero","kind":"package","anchor":"engineering:package:apps-linux_cardputer_zero","summary":"apps/linux_cardputer_zero 是 boards 当前观察到的外部技术边界依赖;它说明当前模块不是孤立实现,而是需要借助另一组工程能力完成职责。","role":"跨模块技术依赖边界:当前 package 需要另一个 package/module 提供能力、契约、配置或运行支撑。","whyItExists":"本地仓库证据在 boards 与 apps/linux_cardputer_zero 之间观察到跨模块事实关系,因此该依赖被放入 Package Diagram,而不是只藏在代码 import/call 里。","relationshipMeaning":"boards -\u003e apps/linux_cardputer_zero 表示本地仓库证据观察到跨模块关系;它解释技术依赖方向,但不直接证明业务流程。","drilldownIntent":"下钻 apps/linux_cardputer_zero 可以查看它自己的 Package Diagram,再继续进入其组件、结构、sequence 或热点,判断当前依赖究竟落在入口、运行时、工具注册、模型适配还是基础设施边界。","businessRelevance":"boards 如果承载用户可见能力,那么对 apps/linux_cardputer_zero 的依赖可能是该能力的运行机制、扩展点或治理约束。该业务关联需要由组织/过程模型的 Use Case 证据确认。","changeImpact":"修改 apps/linux_cardputer_zero 的公共接口、路径或运行方式,可能让 boards 的调用链、打包入口、agent 工作流或 UI 行为发生连锁变化。","evidence":["dependency edge: boards -\u003e apps/linux_cardputer_zero","apps/linux_cardputer_zero/APP_SHELL_MANIFEST.md","apps/linux_cardputer_zero/CMakeLists.txt","apps/linux_cardputer_zero/packaging/trailmate-cardputer-zero-applaunch","apps/linux_cardputer_zero/packaging/trailmate-cardputer-zero.desktop","apps/linux_cardputer_zero/packaging/trailmate-cardputer-zero.png","apps/linux_cardputer_zero/README.md","apps/linux_cardputer_zero/src/cardputer_zero_input_method_port.cpp"],"risks":["跨模块依赖只能证明技术关系,不能直接证明业务关系。","如果该依赖只是因为实现方便而存在,未来变更可能形成边界漂移或隐式公共工具箱。"],"questions":["当前证据尚未证明 boards 依赖 apps/linux_cardputer_zero 与某个 Use Case、runtime command 或配置决策直接相关。","当前依赖方向按仓库事实记录为候选,尚未发现架构决策文档证明它是稳定边界。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:package:apps-linux_cardputer_zero","kind":"package","title":"模块边界:apps/linux_cardputer_zero","summary":"解释 apps/linux_cardputer_zero 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/apps-linux_cardputer_zero/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/apps-linux_cardputer_zero/package-diagram.html","anchor":"engineering:package:apps-linux_cardputer_zero","relation":"parent_boundary","reason":"打开 apps/linux_cardputer_zero 自己的包级边界,检查 boards 依赖它时借用的是运行命令、共享能力、治理工具、模型适配还是基础设施职责。"},{"id":"engineering:diagram:component:apps-linux_cardputer_zero-main","kind":"component","title":"函数节点:main","summary":"function 位于 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L49,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-main/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-main/component-diagram.html","anchor":"engineering:component:function:main:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:49","relation":"contains","reason":"打开 函数节点:main 是为了确认 apps/linux_cardputer_zero 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:apps-linux_cardputer_zero-contains","kind":"component","title":"函数节点:contains","summary":"function 位于 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L19,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-contains/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-contains/component-diagram.html","anchor":"engineering:component:function:contains:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:19","relation":"contains","reason":"打开 函数节点:contains 是为了确认 apps/linux_cardputer_zero 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:apps-linux_cardputer_zero-not_contains","kind":"component","title":"函数节点:not_contains","summary":"function 位于 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L24,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-not_contains/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-not_contains/component-diagram.html","anchor":"engineering:component:function:not_contains:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:24","relation":"contains","reason":"打开 函数节点:not_contains 是为了确认 apps/linux_cardputer_zero 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:apps-linux_cardputer_zero-read_file","kind":"component","title":"函数节点:read_file","summary":"function 位于 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L10,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-read_file/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-read_file/component-diagram.html","anchor":"engineering:component:function:read_file:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:10","relation":"contains","reason":"打开 函数节点:read_file 是为了确认 apps/linux_cardputer_zero 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--main","kind":"technical_hotspot","title":"承担外部协作的候选对象:main 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--main/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--main/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:main:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:49","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:main 技术热点 这个复杂度信号是否会抬高 apps/linux_cardputer_zero 的阅读、修改、测试或回归成本。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--contains","kind":"technical_hotspot","title":"被广泛复用的候选对象:contains 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--contains/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--contains/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:contains:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:19","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:contains 技术热点 这个复杂度信号是否会抬高 apps/linux_cardputer_zero 的阅读、修改、测试或回归成本。"}]},{"id":"engineering:diagram:package:boards:element:apps-nrf52_node","mermaidId":"dependency_3","label":"apps/nrf52_node","kind":"package","anchor":"engineering:package:apps-nrf52_node","summary":"apps/nrf52_node 是 boards 当前观察到的外部技术边界依赖;它说明当前模块不是孤立实现,而是需要借助另一组工程能力完成职责。","role":"跨模块技术依赖边界:当前 package 需要另一个 package/module 提供能力、契约、配置或运行支撑。","whyItExists":"本地仓库证据在 boards 与 apps/nrf52_node 之间观察到跨模块事实关系,因此该依赖被放入 Package Diagram,而不是只藏在代码 import/call 里。","relationshipMeaning":"boards -\u003e apps/nrf52_node 表示本地仓库证据观察到跨模块关系;它解释技术依赖方向,但不直接证明业务流程。","drilldownIntent":"下钻 apps/nrf52_node 可以查看它自己的 Package Diagram,再继续进入其组件、结构、sequence 或热点,判断当前依赖究竟落在入口、运行时、工具注册、模型适配还是基础设施边界。","businessRelevance":"boards 如果承载用户可见能力,那么对 apps/nrf52_node 的依赖可能是该能力的运行机制、扩展点或治理约束。该业务关联需要由组织/过程模型的 Use Case 证据确认。","changeImpact":"修改 apps/nrf52_node 的公共接口、路径或运行方式,可能让 boards 的调用链、打包入口、agent 工作流或 UI 行为发生连锁变化。","evidence":["dependency edge: boards -\u003e apps/nrf52_node","apps/nrf52_node/APP_SHELL_MANIFEST.md","apps/nrf52_node/library.json","apps/nrf52_node/README.md","apps/nrf52_node/src/nrf52_node_app_facade_runtime.cpp","apps/nrf52_node/src/nrf52_node_app_facade_runtime.h","apps/nrf52_node/src/nrf52_node_app_runtime_access.cpp","apps/nrf52_node/src/nrf52_node_app_runtime_access.h"],"risks":["跨模块依赖只能证明技术关系,不能直接证明业务关系。","如果该依赖只是因为实现方便而存在,未来变更可能形成边界漂移或隐式公共工具箱。"],"questions":["当前证据尚未证明 boards 依赖 apps/nrf52_node 与某个 Use Case、runtime command 或配置决策直接相关。","当前依赖方向按仓库事实记录为候选,尚未发现架构决策文档证明它是稳定边界。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:package:apps-nrf52_node","kind":"package","title":"模块边界:apps/nrf52_node","summary":"解释 apps/nrf52_node 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/apps-nrf52_node/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/apps-nrf52_node/package-diagram.html","anchor":"engineering:package:apps-nrf52_node","relation":"parent_boundary","reason":"打开 apps/nrf52_node 自己的包级边界,检查 boards 依赖它时借用的是运行命令、共享能力、治理工具、模型适配还是基础设施职责。"}]},{"id":"engineering:diagram:package:boards:element:apps-linux_uconsole_gtk","mermaidId":"dependency_4","label":"apps/linux_uconsole_gtk","kind":"package","anchor":"engineering:package:apps-linux_uconsole_gtk","summary":"apps/linux_uconsole_gtk 是 boards 当前观察到的外部技术边界依赖;它说明当前模块不是孤立实现,而是需要借助另一组工程能力完成职责。","role":"跨模块技术依赖边界:当前 package 需要另一个 package/module 提供能力、契约、配置或运行支撑。","whyItExists":"本地仓库证据在 boards 与 apps/linux_uconsole_gtk 之间观察到跨模块事实关系,因此该依赖被放入 Package Diagram,而不是只藏在代码 import/call 里。","relationshipMeaning":"boards -\u003e apps/linux_uconsole_gtk 表示本地仓库证据观察到跨模块关系;它解释技术依赖方向,但不直接证明业务流程。","drilldownIntent":"下钻 apps/linux_uconsole_gtk 可以查看它自己的 Package Diagram,再继续进入其组件、结构、sequence 或热点,判断当前依赖究竟落在入口、运行时、工具注册、模型适配还是基础设施边界。","businessRelevance":"boards 如果承载用户可见能力,那么对 apps/linux_uconsole_gtk 的依赖可能是该能力的运行机制、扩展点或治理约束。该业务关联需要由组织/过程模型的 Use Case 证据确认。","changeImpact":"修改 apps/linux_uconsole_gtk 的公共接口、路径或运行方式,可能让 boards 的调用链、打包入口、agent 工作流或 UI 行为发生连锁变化。","evidence":["dependency edge: boards -\u003e apps/linux_uconsole_gtk","apps/linux_uconsole_gtk/APP_SHELL_MANIFEST.md","apps/linux_uconsole_gtk/CMakeLists.txt","apps/linux_uconsole_gtk/packaging/trailmate-uconsole.desktop","apps/linux_uconsole_gtk/packaging/trailmate-uconsole.png","apps/linux_uconsole_gtk/README.md","apps/linux_uconsole_gtk/src/linux_uconsole_gtk_app_shell.cpp","apps/linux_uconsole_gtk/src/linux_uconsole_gtk_app_shell.h"],"risks":["跨模块依赖只能证明技术关系,不能直接证明业务关系。","如果该依赖只是因为实现方便而存在,未来变更可能形成边界漂移或隐式公共工具箱。"],"questions":["当前证据尚未证明 boards 依赖 apps/linux_uconsole_gtk 与某个 Use Case、runtime command 或配置决策直接相关。","当前依赖方向按仓库事实记录为候选,尚未发现架构决策文档证明它是稳定边界。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:package:apps-linux_uconsole_gtk","kind":"package","title":"模块边界:apps/linux_uconsole_gtk","summary":"解释 apps/linux_uconsole_gtk 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/apps-linux_uconsole_gtk/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/apps-linux_uconsole_gtk/package-diagram.html","anchor":"engineering:package:apps-linux_uconsole_gtk","relation":"parent_boundary","reason":"打开 apps/linux_uconsole_gtk 自己的包级边界,检查 boards 依赖它时借用的是运行命令、共享能力、治理工具、模型适配还是基础设施职责。"},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-launchsettingslayout","kind":"component","title":"函数节点:launchSettingsLayout","summary":"function 位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L110,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-launchsettingslayout/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-launchsettingslayout/component-diagram.html","anchor":"engineering:component:function:launchsettingslayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:110","relation":"contains","reason":"打开 函数节点:launchSettingsLayout 是为了确认 apps/linux_uconsole_gtk 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-makelabel","kind":"component","title":"函数节点:makeLabel","summary":"function 位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp#L9,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-makelabel/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-makelabel/component-diagram.html","anchor":"engineering:component:function:makelabel:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp:9","relation":"contains","reason":"打开 函数节点:makeLabel 是为了确认 apps/linux_uconsole_gtk 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-makesettingsrow","kind":"component","title":"函数节点:makeSettingsRow","summary":"function 位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L22,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-makesettingsrow/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-makesettingsrow/component-diagram.html","anchor":"engineering:component:function:makesettingsrow:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:22","relation":"contains","reason":"打开 函数节点:makeSettingsRow 是为了确认 apps/linux_uconsole_gtk 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-refreshui","kind":"component","title":"函数节点:refreshUi","summary":"function 位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_shell.cpp#L285,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-refreshui/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-refreshui/component-diagram.html","anchor":"engineering:component:function:refreshui:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_shell.cpp:285","relation":"contains","reason":"打开 函数节点:refreshUi 是为了确认 apps/linux_uconsole_gtk 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_shell.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-refreshmap","kind":"component","title":"函数节点:refreshMap","summary":"function 位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_map_logic.cpp#L1243,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-refreshmap/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-refreshmap/component-diagram.html","anchor":"engineering:component:function:refreshmap:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_map_logic.cpp:1243","relation":"contains","reason":"打开 函数节点:refreshMap 是为了确认 apps/linux_uconsole_gtk 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_map_logic.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-main","kind":"component","title":"函数节点:main","summary":"function 位于 apps/linux_uconsole_gtk/tests/uconsole_meshtastic_node_payload_smoke.cpp#L89,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-main/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-main/component-diagram.html","anchor":"engineering:component:function:main:apps-linux_uconsole_gtk-tests-uconsole_meshtastic_node_payload_smoke.cpp:89","relation":"contains","reason":"打开 函数节点:main 是为了确认 apps/linux_uconsole_gtk 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/linux_uconsole_gtk/tests/uconsole_meshtastic_node_payload_smoke.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-launchmaplayout","kind":"component","title":"函数节点:launchMapLayout","summary":"function 位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_map_layout.cpp#L105,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-launchmaplayout/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-launchmaplayout/component-diagram.html","anchor":"engineering:component:function:launchmaplayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_map_layout.cpp:105","relation":"contains","reason":"打开 函数节点:launchMapLayout 是为了确认 apps/linux_uconsole_gtk 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_map_layout.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-expect","kind":"component","title":"函数节点:expect","summary":"function 位于 apps/linux_uconsole_gtk/tests/uconsole_meshtastic_node_payload_smoke.cpp#L15,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-expect/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-expect/component-diagram.html","anchor":"engineering:component:function:expect:apps-linux_uconsole_gtk-tests-uconsole_meshtastic_node_payload_smoke.cpp:15","relation":"contains","reason":"打开 函数节点:expect 是为了确认 apps/linux_uconsole_gtk 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/linux_uconsole_gtk/tests/uconsole_meshtastic_node_payload_smoke.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"}]},{"id":"engineering:diagram:package:boards:element:apps-linux_sim_shell","mermaidId":"dependency_5","label":"apps/linux_sim_shell","kind":"package","anchor":"engineering:package:apps-linux_sim_shell","summary":"apps/linux_sim_shell 是 boards 当前观察到的外部技术边界依赖;它说明当前模块不是孤立实现,而是需要借助另一组工程能力完成职责。","role":"跨模块技术依赖边界:当前 package 需要另一个 package/module 提供能力、契约、配置或运行支撑。","whyItExists":"本地仓库证据在 boards 与 apps/linux_sim_shell 之间观察到跨模块事实关系,因此该依赖被放入 Package Diagram,而不是只藏在代码 import/call 里。","relationshipMeaning":"boards -\u003e apps/linux_sim_shell 表示本地仓库证据观察到跨模块关系;它解释技术依赖方向,但不直接证明业务流程。","drilldownIntent":"下钻 apps/linux_sim_shell 可以查看它自己的 Package Diagram,再继续进入其组件、结构、sequence 或热点,判断当前依赖究竟落在入口、运行时、工具注册、模型适配还是基础设施边界。","businessRelevance":"boards 如果承载用户可见能力,那么对 apps/linux_sim_shell 的依赖可能是该能力的运行机制、扩展点或治理约束。该业务关联需要由组织/过程模型的 Use Case 证据确认。","changeImpact":"修改 apps/linux_sim_shell 的公共接口、路径或运行方式,可能让 boards 的调用链、打包入口、agent 工作流或 UI 行为发生连锁变化。","evidence":["dependency edge: boards -\u003e apps/linux_sim_shell","apps/linux_sim_shell/APP_SHELL_MANIFEST.md","apps/linux_sim_shell/CMakeLists.txt","apps/linux_sim_shell/README.md","apps/linux_sim_shell/src/linux_sim_app_shell.cpp","apps/linux_sim_shell/src/linux_sim_app_shell.h","apps/linux_sim_shell/src/linux_sim_runtime_entry_adoption_probe.cpp","apps/linux_sim_shell/src/linux_sim_runtime_entry_adoption_probe.h"],"risks":["跨模块依赖只能证明技术关系,不能直接证明业务关系。","如果该依赖只是因为实现方便而存在,未来变更可能形成边界漂移或隐式公共工具箱。"],"questions":["当前证据尚未证明 boards 依赖 apps/linux_sim_shell 与某个 Use Case、runtime command 或配置决策直接相关。","当前依赖方向按仓库事实记录为候选,尚未发现架构决策文档证明它是稳定边界。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:package:apps-linux_sim_shell","kind":"package","title":"模块边界:apps/linux_sim_shell","summary":"解释 apps/linux_sim_shell 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/apps-linux_sim_shell/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/apps-linux_sim_shell/package-diagram.html","anchor":"engineering:package:apps-linux_sim_shell","relation":"parent_boundary","reason":"打开 apps/linux_sim_shell 自己的包级边界,检查 boards 依赖它时借用的是运行命令、共享能力、治理工具、模型适配还是基础设施职责。"}]},{"id":"engineering:diagram:package:boards:element:firmware","mermaidId":"dependency_6","label":"firmware","kind":"package","anchor":"engineering:package:firmware","summary":"firmware 是 boards 当前观察到的外部技术边界依赖;它说明当前模块不是孤立实现,而是需要借助另一组工程能力完成职责。","role":"跨模块技术依赖边界:当前 package 需要另一个 package/module 提供能力、契约、配置或运行支撑。","whyItExists":"本地仓库证据在 boards 与 firmware 之间观察到跨模块事实关系,因此该依赖被放入 Package Diagram,而不是只藏在代码 import/call 里。","relationshipMeaning":"boards -\u003e firmware 表示本地仓库证据观察到跨模块关系;它解释技术依赖方向,但不直接证明业务流程。","drilldownIntent":"下钻 firmware 可以查看它自己的 Package Diagram,再继续进入其组件、结构、sequence 或热点,判断当前依赖究竟落在入口、运行时、工具注册、模型适配还是基础设施边界。","businessRelevance":"boards 如果承载用户可见能力,那么对 firmware 的依赖可能是该能力的运行机制、扩展点或治理约束。该业务关联需要由组织/过程模型的 Use Case 证据确认。","changeImpact":"修改 firmware 的公共接口、路径或运行方式,可能让 boards 的调用链、打包入口、agent 工作流或 UI 行为发生连锁变化。","evidence":["dependency edge: boards -\u003e firmware","firmware/c6_companion/CMakeLists.txt","firmware/c6_companion/components/tm_ble/CMakeLists.txt","firmware/c6_companion/components/tm_ble/include/tm_ble.h","firmware/c6_companion/components/tm_ble/tm_ble.c","firmware/c6_companion/components/tm_diag/CMakeLists.txt","firmware/c6_companion/components/tm_diag/include/tm_diag.h","firmware/c6_companion/components/tm_diag/tm_diag.c"],"risks":["跨模块依赖只能证明技术关系,不能直接证明业务关系。","如果该依赖只是因为实现方便而存在,未来变更可能形成边界漂移或隐式公共工具箱。"],"questions":["当前证据尚未证明 boards 依赖 firmware 与某个 Use Case、runtime command 或配置决策直接相关。","当前依赖方向按仓库事实记录为候选,尚未发现架构决策文档证明它是稳定边界。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:package:firmware","kind":"package","title":"模块边界:firmware","summary":"解释 firmware 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/firmware/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/firmware/package-diagram.html","anchor":"engineering:package:firmware","relation":"parent_boundary","reason":"打开 firmware 自己的包级边界,检查 boards 依赖它时借用的是运行命令、共享能力、治理工具、模型适配还是基础设施职责。"},{"id":"engineering:diagram:component:firmware-main","kind":"component","title":"服务对象:main","summary":"function 位于 firmware/c6_companion/tests/test_tm_services_functional.cpp#L97,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/firmware-main/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/firmware-main/component-diagram.html","anchor":"engineering:component:function:main:firmware-c6_companion-tests-test_tm_services_functional.cpp:97","relation":"contains","reason":"打开 服务对象:main 是为了确认 firmware 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 firmware/c6_companion/tests/test_tm_services_functional.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:firmware-tm_services_record_error","kind":"component","title":"界面组件:tm_services_record_error","summary":"function 位于 firmware/c6_companion/components/tm_services/tm_services.c#L471,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/firmware-tm_services_record_error/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/firmware-tm_services_record_error/component-diagram.html","anchor":"engineering:component:function:tm_services_record_error:firmware-c6_companion-components-tm_services-tm_services.c:471","relation":"contains","reason":"打开 界面组件:tm_services_record_error 是为了确认 firmware 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 firmware/c6_companion/components/tm_services/tm_services.c,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"}]}]},{"id":"engineering:diagram:package:build-tdisplayp4_amoled","kind":"package","title":"模块边界:build.tdisplayp4_amoled","summary":"解释 build.tdisplayp4_amoled 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/build-tdisplayp4_amoled/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/build-tdisplayp4_amoled/package-diagram.html","anchor":"engineering:package:build.tdisplayp4_amoled","status":"candidate","confidence":"high","mermaidKind":"flowchart","mermaid":"flowchart LR\n package_node[\"build.tdisplayp4_amoled\"]\n package_node --- isolated[\"未观察到跨模块依赖\"]","readingGuide":["这张 Package Diagram 以 build.tdisplayp4_amoled 为中心,展示它作为工程模块边界时观察到的文件规模、符号规模和跨模块依赖。","图中的箭头表示本地仓库证据观察到的跨模块关系,主要用于理解技术依赖方向;它不是业务流程顺序,也不是运行时消息时序。","当前没有观察到明确的外部模块依赖,这可能表示模块相对独立,也可能表示扫描粒度尚不足。"],"technicalAnalysis":["build.tdisplayp4_amoled 当前包含 2394 个文件和 1867 个符号,属于软件结构模型识别出的技术组织边界。","跨模块关系呈现为:被其它模块引用或调用 0 次,主动依赖或调用外部模块 0 次,因此它复用迹象和外部协作迹象相对接近。","当前对外依赖未形成明显异常,但仍应结合具体业务入口判断依赖方向是否稳定。"],"businessRelation":["build.tdisplayp4_amoled 不是业务故事本身,而是业务能力落地时可能经过的技术边界。","如果组织/过程模型中某个 Use Case 的证据、入口或下钻图落在 build.tdisplayp4_amoled,该 Use Case 应当反向链接到这张 Package Diagram,说明业务故事由哪个工程模块承载。","当前关联仍是 CANDIDATE:这里只能根据仓库证据解释技术边界,不能替代组织/过程模型对业务故事、参与者和业务目标的确认。"],"governanceNotes":["新增功能时,优先确认它属于该模块的稳定职责,而不是因为调用方便而落入该模块。","保持该模块的依赖方向可解释,避免形成隐式公共工具箱。","当业务 Use Case 文档引用该模块时,应在 Use Case 下钻文档中记录具体入口、调用链或配置证据。"],"coverage":["模块路径:build.tdisplayp4_amoled","文件数:2394","符号数:1867","被其他模块依赖或调用:0","依赖或调用外部模块:0"],"evidencePaths":["build.tdisplayp4_amoled/app-flash_args","build.tdisplayp4_amoled/bootloader-flash_args","build.tdisplayp4_amoled/bootloader-prefix/src/bootloader-stamp/bootloader-configure","build.tdisplayp4_amoled/bootloader-prefix/src/bootloader-stamp/bootloader-done","build.tdisplayp4_amoled/bootloader-prefix/src/bootloader-stamp/bootloader-download","build.tdisplayp4_amoled/bootloader-prefix/src/bootloader-stamp/bootloader-mkdir","build.tdisplayp4_amoled/bootloader-prefix/src/bootloader-stamp/bootloader-patch","build.tdisplayp4_amoled/bootloader-prefix/src/bootloader-stamp/bootloader-patch-info.txt"],"questions":["当前仓库证据没有观察到跨模块依赖;因此该模块暂按相对独立边界处理,置信度保持为候选。"],"scope":{"packageId":"build.tdisplayp4_amoled","filePath":"build.tdisplayp4_amoled"},"drilldowns":[{"id":"engineering:diagram:technical-hotspot:large-file--build-tdisplayp4_amoled-bootloader-config-kconfig_menus-json","kind":"technical_hotspot","title":"大文件:build.tdisplayp4_amoled/bootloader/config/kconfig_menus.json 技术热点","summary":"该文件约 13990 行,可能形成阅读、变更和评审负担。","docPath":"docs/engineering/technical-hotspots/large-file--build-tdisplayp4_amoled-bootloader-config-kconfig_menus-json/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/large-file--build-tdisplayp4_amoled-bootloader-config-kconfig_menus-json/technical-hotspot.html","anchor":"engineering:hotspot:large-file:build.tdisplayp4_amoled-bootloader-config-kconfig_menus.json","relation":"risk_detail","reason":"查看 大文件:build.tdisplayp4_amoled/bootloader/config/kconfig_menus.json 技术热点 这个复杂度信号是否会抬高 build.tdisplayp4_amoled 的阅读、修改、测试或回归成本。"}],"elements":[{"id":"engineering:diagram:package:build-tdisplayp4_amoled:element:build.tdisplayp4_amoled","mermaidId":"package_node","label":"build.tdisplayp4_amoled","kind":"package","anchor":"engineering:package:build.tdisplayp4_amoled","summary":"build.tdisplayp4_amoled 是当前 Package Diagram 的中心工程边界,用来观察它自身规模、依赖方向和可下钻技术复杂度。","role":"技术组织边界:它把 build.tdisplayp4_amoled 下的文件、符号和跨模块关系聚合成一个可讨论的工程单元。","whyItExists":"本地仓库证据在 build.tdisplayp4_amoled 下观察到足够文件、符号或跨模块关系,因此它值得被提升为软件结构模型中的 package 级入口。","relationshipMeaning":"图中从 build.tdisplayp4_amoled 指向其它节点的箭头表示当前边界依赖外部 package/module;被其他模块依赖或调用 0 次、依赖或调用外部模块 0 次,用于判断它更像稳定复用边界还是编排/桥接边界。","drilldownIntent":"下钻该节点可以继续查看 build.tdisplayp4_amoled 内的关键组件、结构协作切片、运行链路、部署节点和复杂度热点,从而理解这个工程边界如何承载功能变化。","businessRelevance":"该节点不是业务故事本身,但组织/过程模型中落到 build.tdisplayp4_amoled 的 Use Case 可以把这里作为技术承载边界引用。当前关联仍是 CANDIDATE。","changeImpact":"修改 build.tdisplayp4_amoled 的公共入口、依赖方向或目录边界,可能影响引用它的组件图、sequence 片段、部署配置和相关业务故事的验证路径。","evidence":["package scope: build.tdisplayp4_amoled","模块路径:build.tdisplayp4_amoled","文件数:2394","符号数:1867","被其他模块依赖或调用:0","依赖或调用外部模块:0","build.tdisplayp4_amoled/app-flash_args","build.tdisplayp4_amoled/bootloader-flash_args"],"risks":["如果只把该节点当作目录名,会遗漏它作为稳定工程边界的职责判断。","如果依赖外部模块的迹象持续增加,可能说明该边界承担过多编排或桥接职责。"],"questions":["当前仓库证据没有观察到跨模块依赖;因此该模块暂按相对独立边界处理,置信度保持为候选。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:technical-hotspot:large-file--build-tdisplayp4_amoled-bootloader-config-kconfig_menus-json","kind":"technical_hotspot","title":"大文件:build.tdisplayp4_amoled/bootloader/config/kconfig_menus.json 技术热点","summary":"该文件约 13990 行,可能形成阅读、变更和评审负担。","docPath":"docs/engineering/technical-hotspots/large-file--build-tdisplayp4_amoled-bootloader-config-kconfig_menus-json/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/large-file--build-tdisplayp4_amoled-bootloader-config-kconfig_menus-json/technical-hotspot.html","anchor":"engineering:hotspot:large-file:build.tdisplayp4_amoled-bootloader-config-kconfig_menus.json","relation":"risk_detail","reason":"查看 大文件:build.tdisplayp4_amoled/bootloader/config/kconfig_menus.json 技术热点 这个复杂度信号是否会抬高 build.tdisplayp4_amoled 的阅读、修改、测试或回归成本。"}]}]},{"id":"engineering:diagram:package:build-c6_companion","kind":"package","title":"模块边界:build.c6_companion","summary":"解释 build.c6_companion 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/build-c6_companion/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/build-c6_companion/package-diagram.html","anchor":"engineering:package:build.c6_companion","status":"candidate","confidence":"high","mermaidKind":"flowchart","mermaid":"flowchart LR\n package_node[\"build.c6_companion\"]\n package_node --- isolated[\"未观察到跨模块依赖\"]","readingGuide":["这张 Package Diagram 以 build.c6_companion 为中心,展示它作为工程模块边界时观察到的文件规模、符号规模和跨模块依赖。","图中的箭头表示本地仓库证据观察到的跨模块关系,主要用于理解技术依赖方向;它不是业务流程顺序,也不是运行时消息时序。","当前没有观察到明确的外部模块依赖,这可能表示模块相对独立,也可能表示扫描粒度尚不足。"],"technicalAnalysis":["build.c6_companion 当前包含 1641 个文件和 1527 个符号,属于软件结构模型识别出的技术组织边界。","跨模块关系呈现为:被其它模块引用或调用 0 次,主动依赖或调用外部模块 0 次,因此它复用迹象和外部协作迹象相对接近。","当前对外依赖未形成明显异常,但仍应结合具体业务入口判断依赖方向是否稳定。"],"businessRelation":["build.c6_companion 不是业务故事本身,而是业务能力落地时可能经过的技术边界。","如果组织/过程模型中某个 Use Case 的证据、入口或下钻图落在 build.c6_companion,该 Use Case 应当反向链接到这张 Package Diagram,说明业务故事由哪个工程模块承载。","当前关联仍是 CANDIDATE:这里只能根据仓库证据解释技术边界,不能替代组织/过程模型对业务故事、参与者和业务目标的确认。"],"governanceNotes":["新增功能时,优先确认它属于该模块的稳定职责,而不是因为调用方便而落入该模块。","保持该模块的依赖方向可解释,避免形成隐式公共工具箱。","当业务 Use Case 文档引用该模块时,应在 Use Case 下钻文档中记录具体入口、调用链或配置证据。"],"coverage":["模块路径:build.c6_companion","文件数:1641","符号数:1527","被其他模块依赖或调用:0","依赖或调用外部模块:0"],"evidencePaths":["build.c6_companion/app-flash_args","build.c6_companion/bootloader-flash_args","build.c6_companion/bootloader-prefix/src/bootloader-stamp/bootloader-configure","build.c6_companion/bootloader-prefix/src/bootloader-stamp/bootloader-done","build.c6_companion/bootloader-prefix/src/bootloader-stamp/bootloader-download","build.c6_companion/bootloader-prefix/src/bootloader-stamp/bootloader-mkdir","build.c6_companion/bootloader-prefix/src/bootloader-stamp/bootloader-patch","build.c6_companion/bootloader-prefix/src/bootloader-stamp/bootloader-patch-info.txt"],"questions":["当前仓库证据没有观察到跨模块依赖;因此该模块暂按相对独立边界处理,置信度保持为候选。"],"scope":{"packageId":"build.c6_companion","filePath":"build.c6_companion"},"drilldowns":[{"id":"engineering:diagram:technical-hotspot:large-file--build-c6_companion-bootloader-config-kconfig_menus-json","kind":"technical_hotspot","title":"大文件:build.c6_companion/bootloader/config/kconfig_menus.json 技术热点","summary":"该文件约 12312 行,可能形成阅读、变更和评审负担。","docPath":"docs/engineering/technical-hotspots/large-file--build-c6_companion-bootloader-config-kconfig_menus-json/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/large-file--build-c6_companion-bootloader-config-kconfig_menus-json/technical-hotspot.html","anchor":"engineering:hotspot:large-file:build.c6_companion-bootloader-config-kconfig_menus.json","relation":"risk_detail","reason":"查看 大文件:build.c6_companion/bootloader/config/kconfig_menus.json 技术热点 这个复杂度信号是否会抬高 build.c6_companion 的阅读、修改、测试或回归成本。"}],"elements":[{"id":"engineering:diagram:package:build-c6_companion:element:build.c6_companion","mermaidId":"package_node","label":"build.c6_companion","kind":"package","anchor":"engineering:package:build.c6_companion","summary":"build.c6_companion 是当前 Package Diagram 的中心工程边界,用来观察它自身规模、依赖方向和可下钻技术复杂度。","role":"技术组织边界:它把 build.c6_companion 下的文件、符号和跨模块关系聚合成一个可讨论的工程单元。","whyItExists":"本地仓库证据在 build.c6_companion 下观察到足够文件、符号或跨模块关系,因此它值得被提升为软件结构模型中的 package 级入口。","relationshipMeaning":"图中从 build.c6_companion 指向其它节点的箭头表示当前边界依赖外部 package/module;被其他模块依赖或调用 0 次、依赖或调用外部模块 0 次,用于判断它更像稳定复用边界还是编排/桥接边界。","drilldownIntent":"下钻该节点可以继续查看 build.c6_companion 内的关键组件、结构协作切片、运行链路、部署节点和复杂度热点,从而理解这个工程边界如何承载功能变化。","businessRelevance":"该节点不是业务故事本身,但组织/过程模型中落到 build.c6_companion 的 Use Case 可以把这里作为技术承载边界引用。当前关联仍是 CANDIDATE。","changeImpact":"修改 build.c6_companion 的公共入口、依赖方向或目录边界,可能影响引用它的组件图、sequence 片段、部署配置和相关业务故事的验证路径。","evidence":["package scope: build.c6_companion","模块路径:build.c6_companion","文件数:1641","符号数:1527","被其他模块依赖或调用:0","依赖或调用外部模块:0","build.c6_companion/app-flash_args","build.c6_companion/bootloader-flash_args"],"risks":["如果只把该节点当作目录名,会遗漏它作为稳定工程边界的职责判断。","如果依赖外部模块的迹象持续增加,可能说明该边界承担过多编排或桥接职责。"],"questions":["当前仓库证据没有观察到跨模块依赖;因此该模块暂按相对独立边界处理,置信度保持为候选。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:technical-hotspot:large-file--build-c6_companion-bootloader-config-kconfig_menus-json","kind":"technical_hotspot","title":"大文件:build.c6_companion/bootloader/config/kconfig_menus.json 技术热点","summary":"该文件约 12312 行,可能形成阅读、变更和评审负担。","docPath":"docs/engineering/technical-hotspots/large-file--build-c6_companion-bootloader-config-kconfig_menus-json/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/large-file--build-c6_companion-bootloader-config-kconfig_menus-json/technical-hotspot.html","anchor":"engineering:hotspot:large-file:build.c6_companion-bootloader-config-kconfig_menus.json","relation":"risk_detail","reason":"查看 大文件:build.c6_companion/bootloader/config/kconfig_menus.json 技术热点 这个复杂度信号是否会抬高 build.c6_companion 的阅读、修改、测试或回归成本。"}]}]},{"id":"engineering:diagram:package:apps-linux_uconsole_gtk","kind":"package","title":"模块边界:apps/linux_uconsole_gtk","summary":"解释 apps/linux_uconsole_gtk 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/apps-linux_uconsole_gtk/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/apps-linux_uconsole_gtk/package-diagram.html","anchor":"engineering:package:apps-linux_uconsole_gtk","status":"candidate","confidence":"high","mermaidKind":"flowchart","mermaid":"flowchart LR\n package_node[\"apps/linux_uconsole_gtk\"]\n dependency_1[\"apps/esp32_lvgl\"]\n package_node --\u003e dependency_1\n dependency_2[\"apps/linux_sim_shell\"]\n package_node --\u003e dependency_2\n dependency_3[\"apps/linux_cardputer_zero\"]\n package_node --\u003e dependency_3","readingGuide":["这张 Package Diagram 以 apps/linux_uconsole_gtk 为中心,展示它作为工程模块边界时观察到的文件规模、符号规模和跨模块依赖。","图中的箭头表示本地仓库证据观察到的跨模块关系,主要用于理解技术依赖方向;它不是业务流程顺序,也不是运行时消息时序。","当前观察到的主要外部依赖包括:apps/esp32_lvgl、apps/linux_sim_shell、apps/linux_cardputer_zero。"],"technicalAnalysis":["apps/linux_uconsole_gtk 当前包含 54 个文件和 697 个符号,属于软件结构模型识别出的技术组织边界。","跨模块关系呈现为:被其它模块引用或调用 41 次,主动依赖或调用外部模块 43 次,因此它依赖外部模块更多。","较多外部依赖可能说明该模块承担编排、聚合或桥接多处能力的职责;当前按候选技术耦合中心处理。"],"businessRelation":["apps/linux_uconsole_gtk 不是业务故事本身,而是业务能力落地时可能经过的技术边界。","如果组织/过程模型中某个 Use Case 的证据、入口或下钻图落在 apps/linux_uconsole_gtk,该 Use Case 应当反向链接到这张 Package Diagram,说明业务故事由哪个工程模块承载。","当前关联仍是 CANDIDATE:这里只能根据仓库证据解释技术边界,不能替代组织/过程模型对业务故事、参与者和业务目标的确认。"],"governanceNotes":["新增功能时,优先确认它属于该模块的稳定职责,而不是因为调用方便而落入该模块。","如果未来多次变更都增加该模块的外部依赖,应考虑拆分端口、适配器或应用服务边界。","当业务 Use Case 文档引用该模块时,应在 Use Case 下钻文档中记录具体入口、调用链或配置证据。"],"coverage":["模块路径:apps/linux_uconsole_gtk","文件数:54","符号数:697","被其他模块依赖或调用:41","依赖或调用外部模块:43"],"evidencePaths":["apps/linux_uconsole_gtk/APP_SHELL_MANIFEST.md","apps/linux_uconsole_gtk/CMakeLists.txt","apps/linux_uconsole_gtk/packaging/trailmate-uconsole.desktop","apps/linux_uconsole_gtk/packaging/trailmate-uconsole.png","apps/linux_uconsole_gtk/README.md","apps/linux_uconsole_gtk/src/linux_uconsole_gtk_app_shell.cpp","apps/linux_uconsole_gtk/src/linux_uconsole_gtk_app_shell.h","apps/linux_uconsole_gtk/src/linux_uconsole_gtk_page_registry_adoption.cpp"],"questions":[],"scope":{"packageId":"apps/linux_uconsole_gtk","filePath":"apps/linux_uconsole_gtk"},"drilldowns":[{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-launchsettingslayout","kind":"component","title":"函数节点:launchSettingsLayout","summary":"function 位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L110,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-launchsettingslayout/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-launchsettingslayout/component-diagram.html","anchor":"engineering:component:function:launchsettingslayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:110","relation":"contains","reason":"打开 函数节点:launchSettingsLayout 是为了确认 apps/linux_uconsole_gtk 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-makelabel","kind":"component","title":"函数节点:makeLabel","summary":"function 位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp#L9,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-makelabel/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-makelabel/component-diagram.html","anchor":"engineering:component:function:makelabel:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp:9","relation":"contains","reason":"打开 函数节点:makeLabel 是为了确认 apps/linux_uconsole_gtk 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-makesettingsrow","kind":"component","title":"函数节点:makeSettingsRow","summary":"function 位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L22,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-makesettingsrow/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-makesettingsrow/component-diagram.html","anchor":"engineering:component:function:makesettingsrow:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:22","relation":"contains","reason":"打开 函数节点:makeSettingsRow 是为了确认 apps/linux_uconsole_gtk 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-refreshui","kind":"component","title":"函数节点:refreshUi","summary":"function 位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_shell.cpp#L285,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-refreshui/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-refreshui/component-diagram.html","anchor":"engineering:component:function:refreshui:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_shell.cpp:285","relation":"contains","reason":"打开 函数节点:refreshUi 是为了确认 apps/linux_uconsole_gtk 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_shell.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-refreshmap","kind":"component","title":"函数节点:refreshMap","summary":"function 位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_map_logic.cpp#L1243,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-refreshmap/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-refreshmap/component-diagram.html","anchor":"engineering:component:function:refreshmap:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_map_logic.cpp:1243","relation":"contains","reason":"打开 函数节点:refreshMap 是为了确认 apps/linux_uconsole_gtk 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_map_logic.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-main","kind":"component","title":"函数节点:main","summary":"function 位于 apps/linux_uconsole_gtk/tests/uconsole_meshtastic_node_payload_smoke.cpp#L89,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-main/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-main/component-diagram.html","anchor":"engineering:component:function:main:apps-linux_uconsole_gtk-tests-uconsole_meshtastic_node_payload_smoke.cpp:89","relation":"contains","reason":"打开 函数节点:main 是为了确认 apps/linux_uconsole_gtk 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/linux_uconsole_gtk/tests/uconsole_meshtastic_node_payload_smoke.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-launchmaplayout","kind":"component","title":"函数节点:launchMapLayout","summary":"function 位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_map_layout.cpp#L105,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-launchmaplayout/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-launchmaplayout/component-diagram.html","anchor":"engineering:component:function:launchmaplayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_map_layout.cpp:105","relation":"contains","reason":"打开 函数节点:launchMapLayout 是为了确认 apps/linux_uconsole_gtk 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_map_layout.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-expect","kind":"component","title":"函数节点:expect","summary":"function 位于 apps/linux_uconsole_gtk/tests/uconsole_meshtastic_node_payload_smoke.cpp#L15,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-expect/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-expect/component-diagram.html","anchor":"engineering:component:function:expect:apps-linux_uconsole_gtk-tests-uconsole_meshtastic_node_payload_smoke.cpp:15","relation":"contains","reason":"打开 函数节点:expect 是为了确认 apps/linux_uconsole_gtk 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/linux_uconsole_gtk/tests/uconsole_meshtastic_node_payload_smoke.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--launchsettingslayout","kind":"technical_hotspot","title":"承担外部协作的候选对象:launchSettingsLayout 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:launchsettingslayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:110","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:launchSettingsLayout 技术热点 这个复杂度信号是否会抬高 apps/linux_uconsole_gtk 的阅读、修改、测试或回归成本。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makelabel","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeLabel 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makelabel:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp:9","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeLabel 技术热点 这个复杂度信号是否会抬高 apps/linux_uconsole_gtk 的阅读、修改、测试或回归成本。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makesettingsrow","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeSettingsRow 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makesettingsrow:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:22","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeSettingsRow 技术热点 这个复杂度信号是否会抬高 apps/linux_uconsole_gtk 的阅读、修改、测试或回归成本。"}],"elements":[{"id":"engineering:diagram:package:apps-linux_uconsole_gtk:element:apps-linux_uconsole_gtk","mermaidId":"package_node","label":"apps/linux_uconsole_gtk","kind":"package","anchor":"engineering:package:apps-linux_uconsole_gtk","summary":"apps/linux_uconsole_gtk 是当前 Package Diagram 的中心工程边界,用来观察它自身规模、依赖方向和可下钻技术复杂度。","role":"技术组织边界:它把 apps/linux_uconsole_gtk 下的文件、符号和跨模块关系聚合成一个可讨论的工程单元。","whyItExists":"本地仓库证据在 apps/linux_uconsole_gtk 下观察到足够文件、符号或跨模块关系,因此它值得被提升为软件结构模型中的 package 级入口。","relationshipMeaning":"图中从 apps/linux_uconsole_gtk 指向其它节点的箭头表示当前边界依赖外部 package/module;被其他模块依赖或调用 41 次、依赖或调用外部模块 43 次,用于判断它更像稳定复用边界还是编排/桥接边界。","drilldownIntent":"下钻该节点可以继续查看 apps/linux_uconsole_gtk 内的关键组件、结构协作切片、运行链路、部署节点和复杂度热点,从而理解这个工程边界如何承载功能变化。","businessRelevance":"该节点不是业务故事本身,但组织/过程模型中落到 apps/linux_uconsole_gtk 的 Use Case 可以把这里作为技术承载边界引用。当前关联仍是 CANDIDATE。","changeImpact":"修改 apps/linux_uconsole_gtk 的公共入口、依赖方向或目录边界,可能影响引用它的组件图、sequence 片段、部署配置和相关业务故事的验证路径。","evidence":["package scope: apps/linux_uconsole_gtk","模块路径:apps/linux_uconsole_gtk","文件数:54","符号数:697","被其他模块依赖或调用:41","依赖或调用外部模块:43","apps/linux_uconsole_gtk/APP_SHELL_MANIFEST.md","apps/linux_uconsole_gtk/CMakeLists.txt"],"risks":["如果只把该节点当作目录名,会遗漏它作为稳定工程边界的职责判断。","如果依赖外部模块的迹象持续增加,可能说明该边界承担过多编排或桥接职责。"],"questions":["当前仓库证据尚未把该 package 明确 Trace 到某个 Use Case;因此业务关联保持候选。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-launchsettingslayout","kind":"component","title":"函数节点:launchSettingsLayout","summary":"function 位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L110,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-launchsettingslayout/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-launchsettingslayout/component-diagram.html","anchor":"engineering:component:function:launchsettingslayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:110","relation":"contains","reason":"打开 函数节点:launchSettingsLayout 是为了确认 apps/linux_uconsole_gtk 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-makelabel","kind":"component","title":"函数节点:makeLabel","summary":"function 位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp#L9,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-makelabel/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-makelabel/component-diagram.html","anchor":"engineering:component:function:makelabel:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp:9","relation":"contains","reason":"打开 函数节点:makeLabel 是为了确认 apps/linux_uconsole_gtk 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-makesettingsrow","kind":"component","title":"函数节点:makeSettingsRow","summary":"function 位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L22,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-makesettingsrow/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-makesettingsrow/component-diagram.html","anchor":"engineering:component:function:makesettingsrow:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:22","relation":"contains","reason":"打开 函数节点:makeSettingsRow 是为了确认 apps/linux_uconsole_gtk 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-refreshui","kind":"component","title":"函数节点:refreshUi","summary":"function 位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_shell.cpp#L285,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-refreshui/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-refreshui/component-diagram.html","anchor":"engineering:component:function:refreshui:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_shell.cpp:285","relation":"contains","reason":"打开 函数节点:refreshUi 是为了确认 apps/linux_uconsole_gtk 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_shell.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-refreshmap","kind":"component","title":"函数节点:refreshMap","summary":"function 位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_map_logic.cpp#L1243,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-refreshmap/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-refreshmap/component-diagram.html","anchor":"engineering:component:function:refreshmap:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_map_logic.cpp:1243","relation":"contains","reason":"打开 函数节点:refreshMap 是为了确认 apps/linux_uconsole_gtk 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_map_logic.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-main","kind":"component","title":"函数节点:main","summary":"function 位于 apps/linux_uconsole_gtk/tests/uconsole_meshtastic_node_payload_smoke.cpp#L89,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-main/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-main/component-diagram.html","anchor":"engineering:component:function:main:apps-linux_uconsole_gtk-tests-uconsole_meshtastic_node_payload_smoke.cpp:89","relation":"contains","reason":"打开 函数节点:main 是为了确认 apps/linux_uconsole_gtk 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/linux_uconsole_gtk/tests/uconsole_meshtastic_node_payload_smoke.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-launchmaplayout","kind":"component","title":"函数节点:launchMapLayout","summary":"function 位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_map_layout.cpp#L105,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-launchmaplayout/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-launchmaplayout/component-diagram.html","anchor":"engineering:component:function:launchmaplayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_map_layout.cpp:105","relation":"contains","reason":"打开 函数节点:launchMapLayout 是为了确认 apps/linux_uconsole_gtk 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_map_layout.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-expect","kind":"component","title":"函数节点:expect","summary":"function 位于 apps/linux_uconsole_gtk/tests/uconsole_meshtastic_node_payload_smoke.cpp#L15,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-expect/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-expect/component-diagram.html","anchor":"engineering:component:function:expect:apps-linux_uconsole_gtk-tests-uconsole_meshtastic_node_payload_smoke.cpp:15","relation":"contains","reason":"打开 函数节点:expect 是为了确认 apps/linux_uconsole_gtk 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/linux_uconsole_gtk/tests/uconsole_meshtastic_node_payload_smoke.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--launchsettingslayout","kind":"technical_hotspot","title":"承担外部协作的候选对象:launchSettingsLayout 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:launchsettingslayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:110","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:launchSettingsLayout 技术热点 这个复杂度信号是否会抬高 apps/linux_uconsole_gtk 的阅读、修改、测试或回归成本。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makelabel","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeLabel 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makelabel:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp:9","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeLabel 技术热点 这个复杂度信号是否会抬高 apps/linux_uconsole_gtk 的阅读、修改、测试或回归成本。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makesettingsrow","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeSettingsRow 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makesettingsrow:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:22","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeSettingsRow 技术热点 这个复杂度信号是否会抬高 apps/linux_uconsole_gtk 的阅读、修改、测试或回归成本。"}]},{"id":"engineering:diagram:package:apps-linux_uconsole_gtk:element:apps-esp32_lvgl","mermaidId":"dependency_1","label":"apps/esp32_lvgl","kind":"package","anchor":"engineering:package:apps-esp32_lvgl","summary":"apps/esp32_lvgl 是 apps/linux_uconsole_gtk 当前观察到的外部技术边界依赖;它说明当前模块不是孤立实现,而是需要借助另一组工程能力完成职责。","role":"跨模块技术依赖边界:当前 package 需要另一个 package/module 提供能力、契约、配置或运行支撑。","whyItExists":"本地仓库证据在 apps/linux_uconsole_gtk 与 apps/esp32_lvgl 之间观察到跨模块事实关系,因此该依赖被放入 Package Diagram,而不是只藏在代码 import/call 里。","relationshipMeaning":"apps/linux_uconsole_gtk -\u003e apps/esp32_lvgl 表示本地仓库证据观察到跨模块关系;它解释技术依赖方向,但不直接证明业务流程。","drilldownIntent":"下钻 apps/esp32_lvgl 可以查看它自己的 Package Diagram,再继续进入其组件、结构、sequence 或热点,判断当前依赖究竟落在入口、运行时、工具注册、模型适配还是基础设施边界。","businessRelevance":"apps/linux_uconsole_gtk 如果承载用户可见能力,那么对 apps/esp32_lvgl 的依赖可能是该能力的运行机制、扩展点或治理约束。该业务关联需要由组织/过程模型的 Use Case 证据确认。","changeImpact":"修改 apps/esp32_lvgl 的公共接口、路径或运行方式,可能让 apps/linux_uconsole_gtk 的调用链、打包入口、agent 工作流或 UI 行为发生连锁变化。","evidence":["dependency edge: apps/linux_uconsole_gtk -\u003e apps/esp32_lvgl","apps/esp32_lvgl/APP_SHELL_MANIFEST.md","apps/esp32_lvgl/CMakeLists.txt","apps/esp32_lvgl/library.json","apps/esp32_lvgl/README.md","apps/esp32_lvgl/src/esp32_lvgl_app_shell.cpp","apps/esp32_lvgl/src/esp32_lvgl_app_shell.h","apps/esp32_lvgl/src/esp32_lvgl_arduino_app_registry.cpp"],"risks":["跨模块依赖只能证明技术关系,不能直接证明业务关系。","如果该依赖只是因为实现方便而存在,未来变更可能形成边界漂移或隐式公共工具箱。"],"questions":["当前证据尚未证明 apps/linux_uconsole_gtk 依赖 apps/esp32_lvgl 与某个 Use Case、runtime command 或配置决策直接相关。","当前依赖方向按仓库事实记录为候选,尚未发现架构决策文档证明它是稳定边界。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:package:apps-esp32_lvgl","kind":"package","title":"模块边界:apps/esp32_lvgl","summary":"解释 apps/esp32_lvgl 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/apps-esp32_lvgl/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/apps-esp32_lvgl/package-diagram.html","anchor":"engineering:package:apps-esp32_lvgl","relation":"parent_boundary","reason":"打开 apps/esp32_lvgl 自己的包级边界,检查 apps/linux_uconsole_gtk 依赖它时借用的是运行命令、共享能力、治理工具、模型适配还是基础设施职责。"},{"id":"engineering:diagram:component:apps-esp32_lvgl-main","kind":"component","title":"函数节点:main","summary":"function 位于 apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp#L33,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-main/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-main/component-diagram.html","anchor":"engineering:component:function:main:apps-esp32_lvgl-tests-esp32_lvgl_sd_coredump_contract_smoke.cpp:33","relation":"contains","reason":"打开 函数节点:main 是为了确认 apps/esp32_lvgl 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:apps-esp32_lvgl-contains","kind":"component","title":"函数节点:contains","summary":"function 位于 apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp#L19,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-contains/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-contains/component-diagram.html","anchor":"engineering:component:function:contains:apps-esp32_lvgl-tests-esp32_lvgl_sd_coredump_contract_smoke.cpp:19","relation":"contains","reason":"打开 函数节点:contains 是为了确认 apps/esp32_lvgl 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:apps-esp32_lvgl-companion_enter","kind":"component","title":"函数节点:companion_enter","summary":"function 位于 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp#L72,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-companion_enter/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-companion_enter/component-diagram.html","anchor":"engineering:component:function:companion_enter:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:72","relation":"contains","reason":"打开 函数节点:companion_enter 是为了确认 apps/esp32_lvgl 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:sequence:tick-calls-log_loop_interval","kind":"sequence","title":"动态协作:tick 调用 log_loop_interval","summary":"apps/esp32_lvgl/src/esp32_lvgl_arduino_loop_runtime.cpp 中的 tick calls apps/esp32_lvgl/src/esp32_lvgl_arduino_loop_runtime.cpp 中的 log_loop_interval。","docPath":"docs/engineering/sequence-diagrams/tick-calls-log_loop_interval/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/tick-calls-log_loop_interval/sequence-diagram.html","anchor":"engineering:runtime-flow:tick:log_loop_interval:apps-esp32_lvgl-src-esp32_lvgl_arduino_loop_runtime.cpp:apps-esp32_lvgl-src-esp32_lvgl_arduino_loop_runtime.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了把 apps/esp32_lvgl 的静态依赖还原成一段可读协作:tick -\u003e log_loop_interval。重点判断这是 import、调用、引用还是消息方向,以及它是否真的影响运行路径。"},{"id":"engineering:diagram:sequence:add_status_line-calls-add_label","kind":"sequence","title":"动态协作:add_status_line 调用 add_label","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_status_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_label。","docPath":"docs/engineering/sequence-diagrams/add_status_line-calls-add_label/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/add_status_line-calls-add_label/sequence-diagram.html","anchor":"engineering:runtime-flow:add_status_line:add_label:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了把 apps/esp32_lvgl 的静态依赖还原成一段可读协作:add_status_line -\u003e add_label。重点判断这是 import、调用、引用还是消息方向,以及它是否真的影响运行路径。"},{"id":"engineering:diagram:sequence:add_u32_line-calls-add_label","kind":"sequence","title":"动态协作:add_u32_line 调用 add_label","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_u32_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_label。","docPath":"docs/engineering/sequence-diagrams/add_u32_line-calls-add_label/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/add_u32_line-calls-add_label/sequence-diagram.html","anchor":"engineering:runtime-flow:add_u32_line:add_label:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了把 apps/esp32_lvgl 的静态依赖还原成一段可读协作:add_u32_line -\u003e add_label。重点判断这是 import、调用、引用还是消息方向,以及它是否真的影响运行路径。"},{"id":"engineering:diagram:sequence:add_hex_line-calls-add_status_line","kind":"sequence","title":"动态协作:add_hex_line 调用 add_status_line","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_hex_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_status_line。","docPath":"docs/engineering/sequence-diagrams/add_hex_line-calls-add_status_line/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/add_hex_line-calls-add_status_line/sequence-diagram.html","anchor":"engineering:runtime-flow:add_hex_line:add_status_line:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了把 apps/esp32_lvgl 的静态依赖还原成一段可读协作:add_hex_line -\u003e add_status_line。重点判断这是 import、调用、引用还是消息方向,以及它是否真的影响运行路径。"},{"id":"engineering:diagram:sequence:companion_enter-calls-add_label","kind":"sequence","title":"动态协作:companion_enter 调用 add_label","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 companion_enter calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_label。","docPath":"docs/engineering/sequence-diagrams/companion_enter-calls-add_label/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/companion_enter-calls-add_label/sequence-diagram.html","anchor":"engineering:runtime-flow:companion_enter:add_label:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了把 apps/esp32_lvgl 的静态依赖还原成一段可读协作:companion_enter -\u003e add_label。重点判断这是 import、调用、引用还是消息方向,以及它是否真的影响运行路径。"}]},{"id":"engineering:diagram:package:apps-linux_uconsole_gtk:element:apps-linux_sim_shell","mermaidId":"dependency_2","label":"apps/linux_sim_shell","kind":"package","anchor":"engineering:package:apps-linux_sim_shell","summary":"apps/linux_sim_shell 是 apps/linux_uconsole_gtk 当前观察到的外部技术边界依赖;它说明当前模块不是孤立实现,而是需要借助另一组工程能力完成职责。","role":"跨模块技术依赖边界:当前 package 需要另一个 package/module 提供能力、契约、配置或运行支撑。","whyItExists":"本地仓库证据在 apps/linux_uconsole_gtk 与 apps/linux_sim_shell 之间观察到跨模块事实关系,因此该依赖被放入 Package Diagram,而不是只藏在代码 import/call 里。","relationshipMeaning":"apps/linux_uconsole_gtk -\u003e apps/linux_sim_shell 表示本地仓库证据观察到跨模块关系;它解释技术依赖方向,但不直接证明业务流程。","drilldownIntent":"下钻 apps/linux_sim_shell 可以查看它自己的 Package Diagram,再继续进入其组件、结构、sequence 或热点,判断当前依赖究竟落在入口、运行时、工具注册、模型适配还是基础设施边界。","businessRelevance":"apps/linux_uconsole_gtk 如果承载用户可见能力,那么对 apps/linux_sim_shell 的依赖可能是该能力的运行机制、扩展点或治理约束。该业务关联需要由组织/过程模型的 Use Case 证据确认。","changeImpact":"修改 apps/linux_sim_shell 的公共接口、路径或运行方式,可能让 apps/linux_uconsole_gtk 的调用链、打包入口、agent 工作流或 UI 行为发生连锁变化。","evidence":["dependency edge: apps/linux_uconsole_gtk -\u003e apps/linux_sim_shell","apps/linux_sim_shell/APP_SHELL_MANIFEST.md","apps/linux_sim_shell/CMakeLists.txt","apps/linux_sim_shell/README.md","apps/linux_sim_shell/src/linux_sim_app_shell.cpp","apps/linux_sim_shell/src/linux_sim_app_shell.h","apps/linux_sim_shell/src/linux_sim_runtime_entry_adoption_probe.cpp","apps/linux_sim_shell/src/linux_sim_runtime_entry_adoption_probe.h"],"risks":["跨模块依赖只能证明技术关系,不能直接证明业务关系。","如果该依赖只是因为实现方便而存在,未来变更可能形成边界漂移或隐式公共工具箱。"],"questions":["当前证据尚未证明 apps/linux_uconsole_gtk 依赖 apps/linux_sim_shell 与某个 Use Case、runtime command 或配置决策直接相关。","当前依赖方向按仓库事实记录为候选,尚未发现架构决策文档证明它是稳定边界。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:package:apps-linux_sim_shell","kind":"package","title":"模块边界:apps/linux_sim_shell","summary":"解释 apps/linux_sim_shell 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/apps-linux_sim_shell/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/apps-linux_sim_shell/package-diagram.html","anchor":"engineering:package:apps-linux_sim_shell","relation":"parent_boundary","reason":"打开 apps/linux_sim_shell 自己的包级边界,检查 apps/linux_uconsole_gtk 依赖它时借用的是运行命令、共享能力、治理工具、模型适配还是基础设施职责。"}]},{"id":"engineering:diagram:package:apps-linux_uconsole_gtk:element:apps-linux_cardputer_zero","mermaidId":"dependency_3","label":"apps/linux_cardputer_zero","kind":"package","anchor":"engineering:package:apps-linux_cardputer_zero","summary":"apps/linux_cardputer_zero 是 apps/linux_uconsole_gtk 当前观察到的外部技术边界依赖;它说明当前模块不是孤立实现,而是需要借助另一组工程能力完成职责。","role":"跨模块技术依赖边界:当前 package 需要另一个 package/module 提供能力、契约、配置或运行支撑。","whyItExists":"本地仓库证据在 apps/linux_uconsole_gtk 与 apps/linux_cardputer_zero 之间观察到跨模块事实关系,因此该依赖被放入 Package Diagram,而不是只藏在代码 import/call 里。","relationshipMeaning":"apps/linux_uconsole_gtk -\u003e apps/linux_cardputer_zero 表示本地仓库证据观察到跨模块关系;它解释技术依赖方向,但不直接证明业务流程。","drilldownIntent":"下钻 apps/linux_cardputer_zero 可以查看它自己的 Package Diagram,再继续进入其组件、结构、sequence 或热点,判断当前依赖究竟落在入口、运行时、工具注册、模型适配还是基础设施边界。","businessRelevance":"apps/linux_uconsole_gtk 如果承载用户可见能力,那么对 apps/linux_cardputer_zero 的依赖可能是该能力的运行机制、扩展点或治理约束。该业务关联需要由组织/过程模型的 Use Case 证据确认。","changeImpact":"修改 apps/linux_cardputer_zero 的公共接口、路径或运行方式,可能让 apps/linux_uconsole_gtk 的调用链、打包入口、agent 工作流或 UI 行为发生连锁变化。","evidence":["dependency edge: apps/linux_uconsole_gtk -\u003e apps/linux_cardputer_zero","apps/linux_cardputer_zero/APP_SHELL_MANIFEST.md","apps/linux_cardputer_zero/CMakeLists.txt","apps/linux_cardputer_zero/packaging/trailmate-cardputer-zero-applaunch","apps/linux_cardputer_zero/packaging/trailmate-cardputer-zero.desktop","apps/linux_cardputer_zero/packaging/trailmate-cardputer-zero.png","apps/linux_cardputer_zero/README.md","apps/linux_cardputer_zero/src/cardputer_zero_input_method_port.cpp"],"risks":["跨模块依赖只能证明技术关系,不能直接证明业务关系。","如果该依赖只是因为实现方便而存在,未来变更可能形成边界漂移或隐式公共工具箱。"],"questions":["当前证据尚未证明 apps/linux_uconsole_gtk 依赖 apps/linux_cardputer_zero 与某个 Use Case、runtime command 或配置决策直接相关。","当前依赖方向按仓库事实记录为候选,尚未发现架构决策文档证明它是稳定边界。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:package:apps-linux_cardputer_zero","kind":"package","title":"模块边界:apps/linux_cardputer_zero","summary":"解释 apps/linux_cardputer_zero 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/apps-linux_cardputer_zero/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/apps-linux_cardputer_zero/package-diagram.html","anchor":"engineering:package:apps-linux_cardputer_zero","relation":"parent_boundary","reason":"打开 apps/linux_cardputer_zero 自己的包级边界,检查 apps/linux_uconsole_gtk 依赖它时借用的是运行命令、共享能力、治理工具、模型适配还是基础设施职责。"},{"id":"engineering:diagram:component:apps-linux_cardputer_zero-main","kind":"component","title":"函数节点:main","summary":"function 位于 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L49,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-main/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-main/component-diagram.html","anchor":"engineering:component:function:main:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:49","relation":"contains","reason":"打开 函数节点:main 是为了确认 apps/linux_cardputer_zero 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:apps-linux_cardputer_zero-contains","kind":"component","title":"函数节点:contains","summary":"function 位于 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L19,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-contains/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-contains/component-diagram.html","anchor":"engineering:component:function:contains:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:19","relation":"contains","reason":"打开 函数节点:contains 是为了确认 apps/linux_cardputer_zero 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:apps-linux_cardputer_zero-not_contains","kind":"component","title":"函数节点:not_contains","summary":"function 位于 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L24,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-not_contains/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-not_contains/component-diagram.html","anchor":"engineering:component:function:not_contains:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:24","relation":"contains","reason":"打开 函数节点:not_contains 是为了确认 apps/linux_cardputer_zero 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:apps-linux_cardputer_zero-read_file","kind":"component","title":"函数节点:read_file","summary":"function 位于 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L10,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-read_file/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-read_file/component-diagram.html","anchor":"engineering:component:function:read_file:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:10","relation":"contains","reason":"打开 函数节点:read_file 是为了确认 apps/linux_cardputer_zero 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--main","kind":"technical_hotspot","title":"承担外部协作的候选对象:main 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--main/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--main/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:main:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:49","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:main 技术热点 这个复杂度信号是否会抬高 apps/linux_cardputer_zero 的阅读、修改、测试或回归成本。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--contains","kind":"technical_hotspot","title":"被广泛复用的候选对象:contains 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--contains/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--contains/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:contains:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:19","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:contains 技术热点 这个复杂度信号是否会抬高 apps/linux_cardputer_zero 的阅读、修改、测试或回归成本。"}]}]},{"id":"engineering:diagram:package:apps-esp32_lvgl","kind":"package","title":"模块边界:apps/esp32_lvgl","summary":"解释 apps/esp32_lvgl 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/apps-esp32_lvgl/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/apps-esp32_lvgl/package-diagram.html","anchor":"engineering:package:apps-esp32_lvgl","status":"candidate","confidence":"high","mermaidKind":"flowchart","mermaid":"flowchart LR\n package_node[\"apps/esp32_lvgl\"]\n dependency_1[\"firmware\"]\n package_node --\u003e dependency_1\n dependency_2[\"apps/linux_uconsole_gtk\"]\n package_node --\u003e dependency_2","readingGuide":["这张 Package Diagram 以 apps/esp32_lvgl 为中心,展示它作为工程模块边界时观察到的文件规模、符号规模和跨模块依赖。","图中的箭头表示本地仓库证据观察到的跨模块关系,主要用于理解技术依赖方向;它不是业务流程顺序,也不是运行时消息时序。","当前观察到的主要外部依赖包括:firmware、apps/linux_uconsole_gtk。"],"technicalAnalysis":["apps/esp32_lvgl 当前包含 31 个文件和 402 个符号,属于软件结构模型识别出的技术组织边界。","跨模块关系呈现为:被其它模块引用或调用 217 次,主动依赖或调用外部模块 3 次,因此它被其他模块依赖更多。","当前对外依赖未形成明显异常,但仍应结合具体业务入口判断依赖方向是否稳定。"],"businessRelation":["apps/esp32_lvgl 不是业务故事本身,而是业务能力落地时可能经过的技术边界。","如果组织/过程模型中某个 Use Case 的证据、入口或下钻图落在 apps/esp32_lvgl,该 Use Case 应当反向链接到这张 Package Diagram,说明业务故事由哪个工程模块承载。","当前关联仍是 CANDIDATE:这里只能根据仓库证据解释技术边界,不能替代组织/过程模型对业务故事、参与者和业务目标的确认。"],"governanceNotes":["新增功能时,优先确认它属于该模块的稳定职责,而不是因为调用方便而落入该模块。","保持该模块的依赖方向可解释,避免形成隐式公共工具箱。","当业务 Use Case 文档引用该模块时,应在 Use Case 下钻文档中记录具体入口、调用链或配置证据。"],"coverage":["模块路径:apps/esp32_lvgl","文件数:31","符号数:402","被其他模块依赖或调用:217","依赖或调用外部模块:3"],"evidencePaths":["apps/esp32_lvgl/APP_SHELL_MANIFEST.md","apps/esp32_lvgl/CMakeLists.txt","apps/esp32_lvgl/library.json","apps/esp32_lvgl/README.md","apps/esp32_lvgl/src/esp32_lvgl_app_shell.cpp","apps/esp32_lvgl/src/esp32_lvgl_app_shell.h","apps/esp32_lvgl/src/esp32_lvgl_arduino_app_registry.cpp","apps/esp32_lvgl/src/esp32_lvgl_arduino_app_runtime_access.cpp"],"questions":[],"scope":{"packageId":"apps/esp32_lvgl","filePath":"apps/esp32_lvgl"},"drilldowns":[{"id":"engineering:diagram:component:apps-esp32_lvgl-main","kind":"component","title":"函数节点:main","summary":"function 位于 apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp#L33,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-main/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-main/component-diagram.html","anchor":"engineering:component:function:main:apps-esp32_lvgl-tests-esp32_lvgl_sd_coredump_contract_smoke.cpp:33","relation":"contains","reason":"打开 函数节点:main 是为了确认 apps/esp32_lvgl 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:apps-esp32_lvgl-contains","kind":"component","title":"函数节点:contains","summary":"function 位于 apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp#L19,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-contains/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-contains/component-diagram.html","anchor":"engineering:component:function:contains:apps-esp32_lvgl-tests-esp32_lvgl_sd_coredump_contract_smoke.cpp:19","relation":"contains","reason":"打开 函数节点:contains 是为了确认 apps/esp32_lvgl 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:apps-esp32_lvgl-companion_enter","kind":"component","title":"函数节点:companion_enter","summary":"function 位于 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp#L72,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-companion_enter/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-companion_enter/component-diagram.html","anchor":"engineering:component:function:companion_enter:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:72","relation":"contains","reason":"打开 函数节点:companion_enter 是为了确认 apps/esp32_lvgl 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:sequence:tick-calls-log_loop_interval","kind":"sequence","title":"动态协作:tick 调用 log_loop_interval","summary":"apps/esp32_lvgl/src/esp32_lvgl_arduino_loop_runtime.cpp 中的 tick calls apps/esp32_lvgl/src/esp32_lvgl_arduino_loop_runtime.cpp 中的 log_loop_interval。","docPath":"docs/engineering/sequence-diagrams/tick-calls-log_loop_interval/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/tick-calls-log_loop_interval/sequence-diagram.html","anchor":"engineering:runtime-flow:tick:log_loop_interval:apps-esp32_lvgl-src-esp32_lvgl_arduino_loop_runtime.cpp:apps-esp32_lvgl-src-esp32_lvgl_arduino_loop_runtime.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了把 apps/esp32_lvgl 的静态依赖还原成一段可读协作:tick -\u003e log_loop_interval。重点判断这是 import、调用、引用还是消息方向,以及它是否真的影响运行路径。"},{"id":"engineering:diagram:sequence:add_status_line-calls-add_label","kind":"sequence","title":"动态协作:add_status_line 调用 add_label","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_status_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_label。","docPath":"docs/engineering/sequence-diagrams/add_status_line-calls-add_label/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/add_status_line-calls-add_label/sequence-diagram.html","anchor":"engineering:runtime-flow:add_status_line:add_label:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了把 apps/esp32_lvgl 的静态依赖还原成一段可读协作:add_status_line -\u003e add_label。重点判断这是 import、调用、引用还是消息方向,以及它是否真的影响运行路径。"},{"id":"engineering:diagram:sequence:add_u32_line-calls-add_label","kind":"sequence","title":"动态协作:add_u32_line 调用 add_label","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_u32_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_label。","docPath":"docs/engineering/sequence-diagrams/add_u32_line-calls-add_label/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/add_u32_line-calls-add_label/sequence-diagram.html","anchor":"engineering:runtime-flow:add_u32_line:add_label:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了把 apps/esp32_lvgl 的静态依赖还原成一段可读协作:add_u32_line -\u003e add_label。重点判断这是 import、调用、引用还是消息方向,以及它是否真的影响运行路径。"},{"id":"engineering:diagram:sequence:add_hex_line-calls-add_status_line","kind":"sequence","title":"动态协作:add_hex_line 调用 add_status_line","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_hex_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_status_line。","docPath":"docs/engineering/sequence-diagrams/add_hex_line-calls-add_status_line/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/add_hex_line-calls-add_status_line/sequence-diagram.html","anchor":"engineering:runtime-flow:add_hex_line:add_status_line:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了把 apps/esp32_lvgl 的静态依赖还原成一段可读协作:add_hex_line -\u003e add_status_line。重点判断这是 import、调用、引用还是消息方向,以及它是否真的影响运行路径。"},{"id":"engineering:diagram:sequence:companion_enter-calls-add_label","kind":"sequence","title":"动态协作:companion_enter 调用 add_label","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 companion_enter calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_label。","docPath":"docs/engineering/sequence-diagrams/companion_enter-calls-add_label/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/companion_enter-calls-add_label/sequence-diagram.html","anchor":"engineering:runtime-flow:companion_enter:add_label:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了把 apps/esp32_lvgl 的静态依赖还原成一段可读协作:companion_enter -\u003e add_label。重点判断这是 import、调用、引用还是消息方向,以及它是否真的影响运行路径。"},{"id":"engineering:diagram:sequence:companion_enter-calls-add_status_line","kind":"sequence","title":"动态协作:companion_enter 调用 add_status_line","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 companion_enter calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_status_line。","docPath":"docs/engineering/sequence-diagrams/companion_enter-calls-add_status_line/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/companion_enter-calls-add_status_line/sequence-diagram.html","anchor":"engineering:runtime-flow:companion_enter:add_status_line:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了把 apps/esp32_lvgl 的静态依赖还原成一段可读协作:companion_enter -\u003e add_status_line。重点判断这是 import、调用、引用还是消息方向,以及它是否真的影响运行路径。"}],"elements":[{"id":"engineering:diagram:package:apps-esp32_lvgl:element:apps-esp32_lvgl","mermaidId":"package_node","label":"apps/esp32_lvgl","kind":"package","anchor":"engineering:package:apps-esp32_lvgl","summary":"apps/esp32_lvgl 是当前 Package Diagram 的中心工程边界,用来观察它自身规模、依赖方向和可下钻技术复杂度。","role":"技术组织边界:它把 apps/esp32_lvgl 下的文件、符号和跨模块关系聚合成一个可讨论的工程单元。","whyItExists":"本地仓库证据在 apps/esp32_lvgl 下观察到足够文件、符号或跨模块关系,因此它值得被提升为软件结构模型中的 package 级入口。","relationshipMeaning":"图中从 apps/esp32_lvgl 指向其它节点的箭头表示当前边界依赖外部 package/module;被其他模块依赖或调用 217 次、依赖或调用外部模块 3 次,用于判断它更像稳定复用边界还是编排/桥接边界。","drilldownIntent":"下钻该节点可以继续查看 apps/esp32_lvgl 内的关键组件、结构协作切片、运行链路、部署节点和复杂度热点,从而理解这个工程边界如何承载功能变化。","businessRelevance":"该节点不是业务故事本身,但组织/过程模型中落到 apps/esp32_lvgl 的 Use Case 可以把这里作为技术承载边界引用。当前关联仍是 CANDIDATE。","changeImpact":"修改 apps/esp32_lvgl 的公共入口、依赖方向或目录边界,可能影响引用它的组件图、sequence 片段、部署配置和相关业务故事的验证路径。","evidence":["package scope: apps/esp32_lvgl","模块路径:apps/esp32_lvgl","文件数:31","符号数:402","被其他模块依赖或调用:217","依赖或调用外部模块:3","apps/esp32_lvgl/APP_SHELL_MANIFEST.md","apps/esp32_lvgl/CMakeLists.txt"],"risks":["如果只把该节点当作目录名,会遗漏它作为稳定工程边界的职责判断。","如果依赖外部模块的迹象持续增加,可能说明该边界承担过多编排或桥接职责。"],"questions":["当前仓库证据尚未把该 package 明确 Trace 到某个 Use Case;因此业务关联保持候选。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:component:apps-esp32_lvgl-main","kind":"component","title":"函数节点:main","summary":"function 位于 apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp#L33,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-main/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-main/component-diagram.html","anchor":"engineering:component:function:main:apps-esp32_lvgl-tests-esp32_lvgl_sd_coredump_contract_smoke.cpp:33","relation":"contains","reason":"打开 函数节点:main 是为了确认 apps/esp32_lvgl 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:apps-esp32_lvgl-contains","kind":"component","title":"函数节点:contains","summary":"function 位于 apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp#L19,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-contains/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-contains/component-diagram.html","anchor":"engineering:component:function:contains:apps-esp32_lvgl-tests-esp32_lvgl_sd_coredump_contract_smoke.cpp:19","relation":"contains","reason":"打开 函数节点:contains 是为了确认 apps/esp32_lvgl 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:apps-esp32_lvgl-companion_enter","kind":"component","title":"函数节点:companion_enter","summary":"function 位于 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp#L72,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-companion_enter/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-companion_enter/component-diagram.html","anchor":"engineering:component:function:companion_enter:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:72","relation":"contains","reason":"打开 函数节点:companion_enter 是为了确认 apps/esp32_lvgl 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:sequence:tick-calls-log_loop_interval","kind":"sequence","title":"动态协作:tick 调用 log_loop_interval","summary":"apps/esp32_lvgl/src/esp32_lvgl_arduino_loop_runtime.cpp 中的 tick calls apps/esp32_lvgl/src/esp32_lvgl_arduino_loop_runtime.cpp 中的 log_loop_interval。","docPath":"docs/engineering/sequence-diagrams/tick-calls-log_loop_interval/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/tick-calls-log_loop_interval/sequence-diagram.html","anchor":"engineering:runtime-flow:tick:log_loop_interval:apps-esp32_lvgl-src-esp32_lvgl_arduino_loop_runtime.cpp:apps-esp32_lvgl-src-esp32_lvgl_arduino_loop_runtime.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了把 apps/esp32_lvgl 的静态依赖还原成一段可读协作:tick -\u003e log_loop_interval。重点判断这是 import、调用、引用还是消息方向,以及它是否真的影响运行路径。"},{"id":"engineering:diagram:sequence:add_status_line-calls-add_label","kind":"sequence","title":"动态协作:add_status_line 调用 add_label","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_status_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_label。","docPath":"docs/engineering/sequence-diagrams/add_status_line-calls-add_label/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/add_status_line-calls-add_label/sequence-diagram.html","anchor":"engineering:runtime-flow:add_status_line:add_label:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了把 apps/esp32_lvgl 的静态依赖还原成一段可读协作:add_status_line -\u003e add_label。重点判断这是 import、调用、引用还是消息方向,以及它是否真的影响运行路径。"},{"id":"engineering:diagram:sequence:add_u32_line-calls-add_label","kind":"sequence","title":"动态协作:add_u32_line 调用 add_label","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_u32_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_label。","docPath":"docs/engineering/sequence-diagrams/add_u32_line-calls-add_label/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/add_u32_line-calls-add_label/sequence-diagram.html","anchor":"engineering:runtime-flow:add_u32_line:add_label:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了把 apps/esp32_lvgl 的静态依赖还原成一段可读协作:add_u32_line -\u003e add_label。重点判断这是 import、调用、引用还是消息方向,以及它是否真的影响运行路径。"},{"id":"engineering:diagram:sequence:add_hex_line-calls-add_status_line","kind":"sequence","title":"动态协作:add_hex_line 调用 add_status_line","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_hex_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_status_line。","docPath":"docs/engineering/sequence-diagrams/add_hex_line-calls-add_status_line/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/add_hex_line-calls-add_status_line/sequence-diagram.html","anchor":"engineering:runtime-flow:add_hex_line:add_status_line:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了把 apps/esp32_lvgl 的静态依赖还原成一段可读协作:add_hex_line -\u003e add_status_line。重点判断这是 import、调用、引用还是消息方向,以及它是否真的影响运行路径。"},{"id":"engineering:diagram:sequence:companion_enter-calls-add_label","kind":"sequence","title":"动态协作:companion_enter 调用 add_label","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 companion_enter calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_label。","docPath":"docs/engineering/sequence-diagrams/companion_enter-calls-add_label/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/companion_enter-calls-add_label/sequence-diagram.html","anchor":"engineering:runtime-flow:companion_enter:add_label:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了把 apps/esp32_lvgl 的静态依赖还原成一段可读协作:companion_enter -\u003e add_label。重点判断这是 import、调用、引用还是消息方向,以及它是否真的影响运行路径。"},{"id":"engineering:diagram:sequence:companion_enter-calls-add_status_line","kind":"sequence","title":"动态协作:companion_enter 调用 add_status_line","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 companion_enter calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_status_line。","docPath":"docs/engineering/sequence-diagrams/companion_enter-calls-add_status_line/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/companion_enter-calls-add_status_line/sequence-diagram.html","anchor":"engineering:runtime-flow:companion_enter:add_status_line:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了把 apps/esp32_lvgl 的静态依赖还原成一段可读协作:companion_enter -\u003e add_status_line。重点判断这是 import、调用、引用还是消息方向,以及它是否真的影响运行路径。"}]},{"id":"engineering:diagram:package:apps-esp32_lvgl:element:firmware","mermaidId":"dependency_1","label":"firmware","kind":"package","anchor":"engineering:package:firmware","summary":"firmware 是 apps/esp32_lvgl 当前观察到的外部技术边界依赖;它说明当前模块不是孤立实现,而是需要借助另一组工程能力完成职责。","role":"跨模块技术依赖边界:当前 package 需要另一个 package/module 提供能力、契约、配置或运行支撑。","whyItExists":"本地仓库证据在 apps/esp32_lvgl 与 firmware 之间观察到跨模块事实关系,因此该依赖被放入 Package Diagram,而不是只藏在代码 import/call 里。","relationshipMeaning":"apps/esp32_lvgl -\u003e firmware 表示本地仓库证据观察到跨模块关系;它解释技术依赖方向,但不直接证明业务流程。","drilldownIntent":"下钻 firmware 可以查看它自己的 Package Diagram,再继续进入其组件、结构、sequence 或热点,判断当前依赖究竟落在入口、运行时、工具注册、模型适配还是基础设施边界。","businessRelevance":"apps/esp32_lvgl 如果承载用户可见能力,那么对 firmware 的依赖可能是该能力的运行机制、扩展点或治理约束。该业务关联需要由组织/过程模型的 Use Case 证据确认。","changeImpact":"修改 firmware 的公共接口、路径或运行方式,可能让 apps/esp32_lvgl 的调用链、打包入口、agent 工作流或 UI 行为发生连锁变化。","evidence":["dependency edge: apps/esp32_lvgl -\u003e firmware","firmware/c6_companion/CMakeLists.txt","firmware/c6_companion/components/tm_ble/CMakeLists.txt","firmware/c6_companion/components/tm_ble/include/tm_ble.h","firmware/c6_companion/components/tm_ble/tm_ble.c","firmware/c6_companion/components/tm_diag/CMakeLists.txt","firmware/c6_companion/components/tm_diag/include/tm_diag.h","firmware/c6_companion/components/tm_diag/tm_diag.c"],"risks":["跨模块依赖只能证明技术关系,不能直接证明业务关系。","如果该依赖只是因为实现方便而存在,未来变更可能形成边界漂移或隐式公共工具箱。"],"questions":["当前证据尚未证明 apps/esp32_lvgl 依赖 firmware 与某个 Use Case、runtime command 或配置决策直接相关。","当前依赖方向按仓库事实记录为候选,尚未发现架构决策文档证明它是稳定边界。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:package:firmware","kind":"package","title":"模块边界:firmware","summary":"解释 firmware 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/firmware/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/firmware/package-diagram.html","anchor":"engineering:package:firmware","relation":"parent_boundary","reason":"打开 firmware 自己的包级边界,检查 apps/esp32_lvgl 依赖它时借用的是运行命令、共享能力、治理工具、模型适配还是基础设施职责。"},{"id":"engineering:diagram:component:firmware-main","kind":"component","title":"服务对象:main","summary":"function 位于 firmware/c6_companion/tests/test_tm_services_functional.cpp#L97,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/firmware-main/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/firmware-main/component-diagram.html","anchor":"engineering:component:function:main:firmware-c6_companion-tests-test_tm_services_functional.cpp:97","relation":"contains","reason":"打开 服务对象:main 是为了确认 firmware 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 firmware/c6_companion/tests/test_tm_services_functional.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:firmware-tm_services_record_error","kind":"component","title":"界面组件:tm_services_record_error","summary":"function 位于 firmware/c6_companion/components/tm_services/tm_services.c#L471,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/firmware-tm_services_record_error/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/firmware-tm_services_record_error/component-diagram.html","anchor":"engineering:component:function:tm_services_record_error:firmware-c6_companion-components-tm_services-tm_services.c:471","relation":"contains","reason":"打开 界面组件:tm_services_record_error 是为了确认 firmware 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 firmware/c6_companion/components/tm_services/tm_services.c,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"}]},{"id":"engineering:diagram:package:apps-esp32_lvgl:element:apps-linux_uconsole_gtk","mermaidId":"dependency_2","label":"apps/linux_uconsole_gtk","kind":"package","anchor":"engineering:package:apps-linux_uconsole_gtk","summary":"apps/linux_uconsole_gtk 是 apps/esp32_lvgl 当前观察到的外部技术边界依赖;它说明当前模块不是孤立实现,而是需要借助另一组工程能力完成职责。","role":"跨模块技术依赖边界:当前 package 需要另一个 package/module 提供能力、契约、配置或运行支撑。","whyItExists":"本地仓库证据在 apps/esp32_lvgl 与 apps/linux_uconsole_gtk 之间观察到跨模块事实关系,因此该依赖被放入 Package Diagram,而不是只藏在代码 import/call 里。","relationshipMeaning":"apps/esp32_lvgl -\u003e apps/linux_uconsole_gtk 表示本地仓库证据观察到跨模块关系;它解释技术依赖方向,但不直接证明业务流程。","drilldownIntent":"下钻 apps/linux_uconsole_gtk 可以查看它自己的 Package Diagram,再继续进入其组件、结构、sequence 或热点,判断当前依赖究竟落在入口、运行时、工具注册、模型适配还是基础设施边界。","businessRelevance":"apps/esp32_lvgl 如果承载用户可见能力,那么对 apps/linux_uconsole_gtk 的依赖可能是该能力的运行机制、扩展点或治理约束。该业务关联需要由组织/过程模型的 Use Case 证据确认。","changeImpact":"修改 apps/linux_uconsole_gtk 的公共接口、路径或运行方式,可能让 apps/esp32_lvgl 的调用链、打包入口、agent 工作流或 UI 行为发生连锁变化。","evidence":["dependency edge: apps/esp32_lvgl -\u003e apps/linux_uconsole_gtk","apps/linux_uconsole_gtk/APP_SHELL_MANIFEST.md","apps/linux_uconsole_gtk/CMakeLists.txt","apps/linux_uconsole_gtk/packaging/trailmate-uconsole.desktop","apps/linux_uconsole_gtk/packaging/trailmate-uconsole.png","apps/linux_uconsole_gtk/README.md","apps/linux_uconsole_gtk/src/linux_uconsole_gtk_app_shell.cpp","apps/linux_uconsole_gtk/src/linux_uconsole_gtk_app_shell.h"],"risks":["跨模块依赖只能证明技术关系,不能直接证明业务关系。","如果该依赖只是因为实现方便而存在,未来变更可能形成边界漂移或隐式公共工具箱。"],"questions":["当前证据尚未证明 apps/esp32_lvgl 依赖 apps/linux_uconsole_gtk 与某个 Use Case、runtime command 或配置决策直接相关。","当前依赖方向按仓库事实记录为候选,尚未发现架构决策文档证明它是稳定边界。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:package:apps-linux_uconsole_gtk","kind":"package","title":"模块边界:apps/linux_uconsole_gtk","summary":"解释 apps/linux_uconsole_gtk 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/apps-linux_uconsole_gtk/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/apps-linux_uconsole_gtk/package-diagram.html","anchor":"engineering:package:apps-linux_uconsole_gtk","relation":"parent_boundary","reason":"打开 apps/linux_uconsole_gtk 自己的包级边界,检查 apps/esp32_lvgl 依赖它时借用的是运行命令、共享能力、治理工具、模型适配还是基础设施职责。"},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-launchsettingslayout","kind":"component","title":"函数节点:launchSettingsLayout","summary":"function 位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L110,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-launchsettingslayout/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-launchsettingslayout/component-diagram.html","anchor":"engineering:component:function:launchsettingslayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:110","relation":"contains","reason":"打开 函数节点:launchSettingsLayout 是为了确认 apps/linux_uconsole_gtk 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-makelabel","kind":"component","title":"函数节点:makeLabel","summary":"function 位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp#L9,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-makelabel/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-makelabel/component-diagram.html","anchor":"engineering:component:function:makelabel:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp:9","relation":"contains","reason":"打开 函数节点:makeLabel 是为了确认 apps/linux_uconsole_gtk 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-makesettingsrow","kind":"component","title":"函数节点:makeSettingsRow","summary":"function 位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L22,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-makesettingsrow/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-makesettingsrow/component-diagram.html","anchor":"engineering:component:function:makesettingsrow:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:22","relation":"contains","reason":"打开 函数节点:makeSettingsRow 是为了确认 apps/linux_uconsole_gtk 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-refreshui","kind":"component","title":"函数节点:refreshUi","summary":"function 位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_shell.cpp#L285,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-refreshui/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-refreshui/component-diagram.html","anchor":"engineering:component:function:refreshui:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_shell.cpp:285","relation":"contains","reason":"打开 函数节点:refreshUi 是为了确认 apps/linux_uconsole_gtk 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_shell.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-refreshmap","kind":"component","title":"函数节点:refreshMap","summary":"function 位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_map_logic.cpp#L1243,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-refreshmap/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-refreshmap/component-diagram.html","anchor":"engineering:component:function:refreshmap:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_map_logic.cpp:1243","relation":"contains","reason":"打开 函数节点:refreshMap 是为了确认 apps/linux_uconsole_gtk 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_map_logic.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-main","kind":"component","title":"函数节点:main","summary":"function 位于 apps/linux_uconsole_gtk/tests/uconsole_meshtastic_node_payload_smoke.cpp#L89,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-main/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-main/component-diagram.html","anchor":"engineering:component:function:main:apps-linux_uconsole_gtk-tests-uconsole_meshtastic_node_payload_smoke.cpp:89","relation":"contains","reason":"打开 函数节点:main 是为了确认 apps/linux_uconsole_gtk 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/linux_uconsole_gtk/tests/uconsole_meshtastic_node_payload_smoke.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-launchmaplayout","kind":"component","title":"函数节点:launchMapLayout","summary":"function 位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_map_layout.cpp#L105,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-launchmaplayout/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-launchmaplayout/component-diagram.html","anchor":"engineering:component:function:launchmaplayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_map_layout.cpp:105","relation":"contains","reason":"打开 函数节点:launchMapLayout 是为了确认 apps/linux_uconsole_gtk 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_map_layout.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-expect","kind":"component","title":"函数节点:expect","summary":"function 位于 apps/linux_uconsole_gtk/tests/uconsole_meshtastic_node_payload_smoke.cpp#L15,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-expect/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-expect/component-diagram.html","anchor":"engineering:component:function:expect:apps-linux_uconsole_gtk-tests-uconsole_meshtastic_node_payload_smoke.cpp:15","relation":"contains","reason":"打开 函数节点:expect 是为了确认 apps/linux_uconsole_gtk 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/linux_uconsole_gtk/tests/uconsole_meshtastic_node_payload_smoke.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"}]}]},{"id":"engineering:diagram:package:firmware","kind":"package","title":"模块边界:firmware","summary":"解释 firmware 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/firmware/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/firmware/package-diagram.html","anchor":"engineering:package:firmware","status":"candidate","confidence":"high","mermaidKind":"flowchart","mermaid":"flowchart LR\n package_node[\"firmware\"]\n dependency_1[\"boards\"]\n package_node --\u003e dependency_1\n dependency_2[\"apps/esp32_lvgl\"]\n package_node --\u003e dependency_2\n dependency_3[\"apps/linux_uconsole_gtk\"]\n package_node --\u003e dependency_3","readingGuide":["这张 Package Diagram 以 firmware 为中心,展示它作为工程模块边界时观察到的文件规模、符号规模和跨模块依赖。","图中的箭头表示本地仓库证据观察到的跨模块关系,主要用于理解技术依赖方向;它不是业务流程顺序,也不是运行时消息时序。","当前观察到的主要外部依赖包括:boards、apps/esp32_lvgl、apps/linux_uconsole_gtk。"],"technicalAnalysis":["firmware 当前包含 33 个文件和 376 个符号,属于软件结构模型识别出的技术组织边界。","跨模块关系呈现为:被其它模块引用或调用 68 次,主动依赖或调用外部模块 23 次,因此它被其他模块依赖更多。","当前对外依赖未形成明显异常,但仍应结合具体业务入口判断依赖方向是否稳定。"],"businessRelation":["firmware 不是业务故事本身,而是业务能力落地时可能经过的技术边界。","如果组织/过程模型中某个 Use Case 的证据、入口或下钻图落在 firmware,该 Use Case 应当反向链接到这张 Package Diagram,说明业务故事由哪个工程模块承载。","当前关联仍是 CANDIDATE:这里只能根据仓库证据解释技术边界,不能替代组织/过程模型对业务故事、参与者和业务目标的确认。"],"governanceNotes":["新增功能时,优先确认它属于该模块的稳定职责,而不是因为调用方便而落入该模块。","保持该模块的依赖方向可解释,避免形成隐式公共工具箱。","当业务 Use Case 文档引用该模块时,应在 Use Case 下钻文档中记录具体入口、调用链或配置证据。"],"coverage":["模块路径:firmware","文件数:33","符号数:376","被其他模块依赖或调用:68","依赖或调用外部模块:23"],"evidencePaths":["firmware/c6_companion/CMakeLists.txt","firmware/c6_companion/components/tm_ble/CMakeLists.txt","firmware/c6_companion/components/tm_ble/include/tm_ble.h","firmware/c6_companion/components/tm_ble/tm_ble.c","firmware/c6_companion/components/tm_diag/CMakeLists.txt","firmware/c6_companion/components/tm_diag/include/tm_diag.h","firmware/c6_companion/components/tm_diag/tm_diag.c","firmware/c6_companion/components/tm_espnow/CMakeLists.txt"],"questions":[],"scope":{"packageId":"firmware","filePath":"firmware"},"drilldowns":[{"id":"engineering:diagram:component:firmware-main","kind":"component","title":"服务对象:main","summary":"function 位于 firmware/c6_companion/tests/test_tm_services_functional.cpp#L97,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/firmware-main/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/firmware-main/component-diagram.html","anchor":"engineering:component:function:main:firmware-c6_companion-tests-test_tm_services_functional.cpp:97","relation":"contains","reason":"打开 服务对象:main 是为了确认 firmware 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 firmware/c6_companion/tests/test_tm_services_functional.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:firmware-tm_services_record_error","kind":"component","title":"界面组件:tm_services_record_error","summary":"function 位于 firmware/c6_companion/components/tm_services/tm_services.c#L471,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/firmware-tm_services_record_error/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/firmware-tm_services_record_error/component-diagram.html","anchor":"engineering:component:function:tm_services_record_error:firmware-c6_companion-components-tm_services-tm_services.c:471","relation":"contains","reason":"打开 界面组件:tm_services_record_error 是为了确认 firmware 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 firmware/c6_companion/components/tm_services/tm_services.c,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"}],"elements":[{"id":"engineering:diagram:package:firmware:element:firmware","mermaidId":"package_node","label":"firmware","kind":"package","anchor":"engineering:package:firmware","summary":"firmware 是当前 Package Diagram 的中心工程边界,用来观察它自身规模、依赖方向和可下钻技术复杂度。","role":"技术组织边界:它把 firmware 下的文件、符号和跨模块关系聚合成一个可讨论的工程单元。","whyItExists":"本地仓库证据在 firmware 下观察到足够文件、符号或跨模块关系,因此它值得被提升为软件结构模型中的 package 级入口。","relationshipMeaning":"图中从 firmware 指向其它节点的箭头表示当前边界依赖外部 package/module;被其他模块依赖或调用 68 次、依赖或调用外部模块 23 次,用于判断它更像稳定复用边界还是编排/桥接边界。","drilldownIntent":"下钻该节点可以继续查看 firmware 内的关键组件、结构协作切片、运行链路、部署节点和复杂度热点,从而理解这个工程边界如何承载功能变化。","businessRelevance":"该节点不是业务故事本身,但组织/过程模型中落到 firmware 的 Use Case 可以把这里作为技术承载边界引用。当前关联仍是 CANDIDATE。","changeImpact":"修改 firmware 的公共入口、依赖方向或目录边界,可能影响引用它的组件图、sequence 片段、部署配置和相关业务故事的验证路径。","evidence":["package scope: firmware","模块路径:firmware","文件数:33","符号数:376","被其他模块依赖或调用:68","依赖或调用外部模块:23","firmware/c6_companion/CMakeLists.txt","firmware/c6_companion/components/tm_ble/CMakeLists.txt"],"risks":["如果只把该节点当作目录名,会遗漏它作为稳定工程边界的职责判断。","如果依赖外部模块的迹象持续增加,可能说明该边界承担过多编排或桥接职责。"],"questions":["当前仓库证据尚未把该 package 明确 Trace 到某个 Use Case;因此业务关联保持候选。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:component:firmware-main","kind":"component","title":"服务对象:main","summary":"function 位于 firmware/c6_companion/tests/test_tm_services_functional.cpp#L97,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/firmware-main/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/firmware-main/component-diagram.html","anchor":"engineering:component:function:main:firmware-c6_companion-tests-test_tm_services_functional.cpp:97","relation":"contains","reason":"打开 服务对象:main 是为了确认 firmware 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 firmware/c6_companion/tests/test_tm_services_functional.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:firmware-tm_services_record_error","kind":"component","title":"界面组件:tm_services_record_error","summary":"function 位于 firmware/c6_companion/components/tm_services/tm_services.c#L471,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/firmware-tm_services_record_error/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/firmware-tm_services_record_error/component-diagram.html","anchor":"engineering:component:function:tm_services_record_error:firmware-c6_companion-components-tm_services-tm_services.c:471","relation":"contains","reason":"打开 界面组件:tm_services_record_error 是为了确认 firmware 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 firmware/c6_companion/components/tm_services/tm_services.c,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"}]},{"id":"engineering:diagram:package:firmware:element:boards","mermaidId":"dependency_1","label":"boards","kind":"package","anchor":"engineering:package:boards","summary":"boards 是 firmware 当前观察到的外部技术边界依赖;它说明当前模块不是孤立实现,而是需要借助另一组工程能力完成职责。","role":"跨模块技术依赖边界:当前 package 需要另一个 package/module 提供能力、契约、配置或运行支撑。","whyItExists":"本地仓库证据在 firmware 与 boards 之间观察到跨模块事实关系,因此该依赖被放入 Package Diagram,而不是只藏在代码 import/call 里。","relationshipMeaning":"firmware -\u003e boards 表示本地仓库证据观察到跨模块关系;它解释技术依赖方向,但不直接证明业务流程。","drilldownIntent":"下钻 boards 可以查看它自己的 Package Diagram,再继续进入其组件、结构、sequence 或热点,判断当前依赖究竟落在入口、运行时、工具注册、模型适配还是基础设施边界。","businessRelevance":"firmware 如果承载用户可见能力,那么对 boards 的依赖可能是该能力的运行机制、扩展点或治理约束。该业务关联需要由组织/过程模型的 Use Case 证据确认。","changeImpact":"修改 boards 的公共接口、路径或运行方式,可能让 firmware 的调用链、打包入口、agent 工作流或 UI 行为发生连锁变化。","evidence":["dependency edge: firmware -\u003e boards","boards/cardputerzero/board_facts.h","boards/cardputerzero/BOARD.md","boards/gat562_mesh_evb_pro.json","boards/gat562_mesh_evb_pro/board_facts.h","boards/gat562_mesh_evb_pro/BOARD.md","boards/gat562_mesh_evb_pro/include/boards/gat562_mesh_evb_pro/board_profile.h","boards/gat562_mesh_evb_pro/include/boards/gat562_mesh_evb_pro/gat562_board.h"],"risks":["跨模块依赖只能证明技术关系,不能直接证明业务关系。","如果该依赖只是因为实现方便而存在,未来变更可能形成边界漂移或隐式公共工具箱。"],"questions":["当前证据尚未证明 firmware 依赖 boards 与某个 Use Case、runtime command 或配置决策直接相关。","当前依赖方向按仓库事实记录为候选,尚未发现架构决策文档证明它是稳定边界。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:package:boards","kind":"package","title":"模块边界:boards","summary":"解释 boards 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/boards/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/boards/package-diagram.html","anchor":"engineering:package:boards","relation":"parent_boundary","reason":"打开 boards 自己的包级边界,检查 firmware 依赖它时借用的是运行命令、共享能力、治理工具、模型适配还是基础设施职责。"},{"id":"engineering:diagram:component:boards-makeboardprofile","kind":"component","title":"函数节点:makeBoardProfile","summary":"function 位于 boards/t_echo_lite/include/boards/t_echo_lite/board_profile.h#L188,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/boards-makeboardprofile/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/boards-makeboardprofile/component-diagram.html","anchor":"engineering:component:function:makeboardprofile:boards-t_echo_lite-include-boards-t_echo_lite-board_profile.h:188","relation":"contains","reason":"打开 函数节点:makeBoardProfile 是为了确认 boards 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 boards/t_echo_lite/include/boards/t_echo_lite/board_profile.h,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:boards-pinnum","kind":"component","title":"函数节点:pinNum","summary":"function 位于 boards/t_echo_lite/include/boards/t_echo_lite/board_profile.h#L8,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/boards-pinnum/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/boards-pinnum/component-diagram.html","anchor":"engineering:component:function:pinnum:boards-t_echo_lite-include-boards-t_echo_lite-board_profile.h:8","relation":"contains","reason":"打开 函数节点:pinNum 是为了确认 boards 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 boards/t_echo_lite/include/boards/t_echo_lite/board_profile.h,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:class-structural:boards-gat562_mesh_evb_pro-include-boards","kind":"class_structural","title":"结构协作:结构切片 boards · gat562_mesh_evb_pro/include/boards","summary":"解释 boards/gat562_mesh_evb_pro/include/boards 这一结构切片中类、接口、组件或值对象如何共同承担结构切片 boards中的结构职责;候选对象包括 Gat562Board、SX1262、Sx1262RadioPacketIo、Gat562Board::I2cGuard、GpsRuntime。","docPath":"docs/engineering/class-structural-diagrams/boards-gat562_mesh_evb_pro-include-boards/class-structural-diagram.md","htmlPath":"docs/engineering/class-structural-diagrams/boards-gat562_mesh_evb_pro-include-boards/class-structural-diagram.html","anchor":"engineering:class-structural:boards-gat562_mesh_evb_pro-include-boards","relation":"structural_context","reason":"打开 结构协作:结构切片 boards · gat562_mesh_evb_pro/include/boards 是为了从对象协作角度解释 boards:哪些对象像入口,哪些像编排核心,哪些像适配/共享边界;它帮助判断复杂度来自职责分布,而不只是文件数量。"},{"id":"engineering:diagram:class-structural:boards-t_echo_lite-include-boards","kind":"class_structural","title":"结构协作:结构切片 boards · t_echo_lite/include/boards","summary":"解释 boards/t_echo_lite/include/boards 这一结构切片中类、接口、组件或值对象如何共同承担结构切片 boards中的结构职责;候选对象包括 TEchoLiteBoard、Sx1262RadioPacketIo、TEchoLiteBoard::I2cGuard、GpsRuntime、Module。","docPath":"docs/engineering/class-structural-diagrams/boards-t_echo_lite-include-boards/class-structural-diagram.md","htmlPath":"docs/engineering/class-structural-diagrams/boards-t_echo_lite-include-boards/class-structural-diagram.html","anchor":"engineering:class-structural:boards-t_echo_lite-include-boards","relation":"structural_context","reason":"打开 结构协作:结构切片 boards · t_echo_lite/include/boards 是为了从对象协作角度解释 boards:哪些对象像入口,哪些像编排核心,哪些像适配/共享边界;它帮助判断复杂度来自职责分布,而不只是文件数量。"},{"id":"engineering:diagram:class-structural:boards-tab5-include-boards","kind":"class_structural","title":"结构协作:结构切片 boards · tab5/include/boards","summary":"解释 boards/tab5/include/boards 这一结构切片中类、接口、组件或值对象如何共同承担结构切片 boards中的结构职责;候选对象包括 Tab5Board、Tab5Board::ManagedSystemI2cGuard、Tab5Board::SysI2cGuard、CodecCompat。","docPath":"docs/engineering/class-structural-diagrams/boards-tab5-include-boards/class-structural-diagram.md","htmlPath":"docs/engineering/class-structural-diagrams/boards-tab5-include-boards/class-structural-diagram.html","anchor":"engineering:class-structural:boards-tab5-include-boards","relation":"structural_context","reason":"打开 结构协作:结构切片 boards · tab5/include/boards 是为了从对象协作角度解释 boards:哪些对象像入口,哪些像编排核心,哪些像适配/共享边界;它帮助判断复杂度来自职责分布,而不只是文件数量。"},{"id":"engineering:diagram:class-structural:boards-t_display_p4-include-boards","kind":"class_structural","title":"结构协作:结构切片 boards · t_display_p4/include/boards","summary":"解释 boards/t_display_p4/include/boards 这一结构切片中类、接口、组件或值对象如何共同承担结构切片 boards中的结构职责;候选对象包括 TDisplayP4Board、TDisplayP4Board::ManagedSystemI2cGuard。","docPath":"docs/engineering/class-structural-diagrams/boards-t_display_p4-include-boards/class-structural-diagram.md","htmlPath":"docs/engineering/class-structural-diagrams/boards-t_display_p4-include-boards/class-structural-diagram.html","anchor":"engineering:class-structural:boards-t_display_p4-include-boards","relation":"structural_context","reason":"打开 结构协作:结构切片 boards · t_display_p4/include/boards 是为了从对象协作角度解释 boards:哪些对象像入口,哪些像编排核心,哪些像适配/共享边界;它帮助判断复杂度来自职责分布,而不只是文件数量。"},{"id":"engineering:diagram:class-structural:boards-tlora_pager-include-boards","kind":"class_structural","title":"结构协作:结构切片 boards · tlora_pager/include/boards","summary":"解释 boards/tlora_pager/include/boards 这一结构切片中类、接口、组件或值对象如何共同承担结构切片 boards中的结构职责;候选对象包括 TLoRaPagerBoard、SX1262Access、AppContext。","docPath":"docs/engineering/class-structural-diagrams/boards-tlora_pager-include-boards/class-structural-diagram.md","htmlPath":"docs/engineering/class-structural-diagrams/boards-tlora_pager-include-boards/class-structural-diagram.html","anchor":"engineering:class-structural:boards-tlora_pager-include-boards","relation":"structural_context","reason":"打开 结构协作:结构切片 boards · tlora_pager/include/boards 是为了从对象协作角度解释 boards:哪些对象像入口,哪些像编排核心,哪些像适配/共享边界;它帮助判断复杂度来自职责分布,而不只是文件数量。"},{"id":"engineering:diagram:technical-hotspot:dependency-cluster--boards","kind":"technical_hotspot","title":"依赖簇:boards 技术热点","summary":"该模块依赖多个外部边界,当前按候选技术耦合中心处理;图中只保留仓库证据已经观察到的依赖方向和边界。","docPath":"docs/engineering/technical-hotspots/dependency-cluster--boards/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/dependency-cluster--boards/technical-hotspot.html","anchor":"engineering:hotspot:dependency-cluster:boards","relation":"risk_detail","reason":"查看 依赖簇:boards 技术热点 这个复杂度信号是否会抬高 boards 的阅读、修改、测试或回归成本。"}]},{"id":"engineering:diagram:package:firmware:element:apps-esp32_lvgl","mermaidId":"dependency_2","label":"apps/esp32_lvgl","kind":"package","anchor":"engineering:package:apps-esp32_lvgl","summary":"apps/esp32_lvgl 是 firmware 当前观察到的外部技术边界依赖;它说明当前模块不是孤立实现,而是需要借助另一组工程能力完成职责。","role":"跨模块技术依赖边界:当前 package 需要另一个 package/module 提供能力、契约、配置或运行支撑。","whyItExists":"本地仓库证据在 firmware 与 apps/esp32_lvgl 之间观察到跨模块事实关系,因此该依赖被放入 Package Diagram,而不是只藏在代码 import/call 里。","relationshipMeaning":"firmware -\u003e apps/esp32_lvgl 表示本地仓库证据观察到跨模块关系;它解释技术依赖方向,但不直接证明业务流程。","drilldownIntent":"下钻 apps/esp32_lvgl 可以查看它自己的 Package Diagram,再继续进入其组件、结构、sequence 或热点,判断当前依赖究竟落在入口、运行时、工具注册、模型适配还是基础设施边界。","businessRelevance":"firmware 如果承载用户可见能力,那么对 apps/esp32_lvgl 的依赖可能是该能力的运行机制、扩展点或治理约束。该业务关联需要由组织/过程模型的 Use Case 证据确认。","changeImpact":"修改 apps/esp32_lvgl 的公共接口、路径或运行方式,可能让 firmware 的调用链、打包入口、agent 工作流或 UI 行为发生连锁变化。","evidence":["dependency edge: firmware -\u003e apps/esp32_lvgl","apps/esp32_lvgl/APP_SHELL_MANIFEST.md","apps/esp32_lvgl/CMakeLists.txt","apps/esp32_lvgl/library.json","apps/esp32_lvgl/README.md","apps/esp32_lvgl/src/esp32_lvgl_app_shell.cpp","apps/esp32_lvgl/src/esp32_lvgl_app_shell.h","apps/esp32_lvgl/src/esp32_lvgl_arduino_app_registry.cpp"],"risks":["跨模块依赖只能证明技术关系,不能直接证明业务关系。","如果该依赖只是因为实现方便而存在,未来变更可能形成边界漂移或隐式公共工具箱。"],"questions":["当前证据尚未证明 firmware 依赖 apps/esp32_lvgl 与某个 Use Case、runtime command 或配置决策直接相关。","当前依赖方向按仓库事实记录为候选,尚未发现架构决策文档证明它是稳定边界。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:package:apps-esp32_lvgl","kind":"package","title":"模块边界:apps/esp32_lvgl","summary":"解释 apps/esp32_lvgl 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/apps-esp32_lvgl/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/apps-esp32_lvgl/package-diagram.html","anchor":"engineering:package:apps-esp32_lvgl","relation":"parent_boundary","reason":"打开 apps/esp32_lvgl 自己的包级边界,检查 firmware 依赖它时借用的是运行命令、共享能力、治理工具、模型适配还是基础设施职责。"},{"id":"engineering:diagram:component:apps-esp32_lvgl-main","kind":"component","title":"函数节点:main","summary":"function 位于 apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp#L33,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-main/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-main/component-diagram.html","anchor":"engineering:component:function:main:apps-esp32_lvgl-tests-esp32_lvgl_sd_coredump_contract_smoke.cpp:33","relation":"contains","reason":"打开 函数节点:main 是为了确认 apps/esp32_lvgl 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:apps-esp32_lvgl-contains","kind":"component","title":"函数节点:contains","summary":"function 位于 apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp#L19,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-contains/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-contains/component-diagram.html","anchor":"engineering:component:function:contains:apps-esp32_lvgl-tests-esp32_lvgl_sd_coredump_contract_smoke.cpp:19","relation":"contains","reason":"打开 函数节点:contains 是为了确认 apps/esp32_lvgl 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:apps-esp32_lvgl-companion_enter","kind":"component","title":"函数节点:companion_enter","summary":"function 位于 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp#L72,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-companion_enter/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-companion_enter/component-diagram.html","anchor":"engineering:component:function:companion_enter:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:72","relation":"contains","reason":"打开 函数节点:companion_enter 是为了确认 apps/esp32_lvgl 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:sequence:tick-calls-log_loop_interval","kind":"sequence","title":"动态协作:tick 调用 log_loop_interval","summary":"apps/esp32_lvgl/src/esp32_lvgl_arduino_loop_runtime.cpp 中的 tick calls apps/esp32_lvgl/src/esp32_lvgl_arduino_loop_runtime.cpp 中的 log_loop_interval。","docPath":"docs/engineering/sequence-diagrams/tick-calls-log_loop_interval/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/tick-calls-log_loop_interval/sequence-diagram.html","anchor":"engineering:runtime-flow:tick:log_loop_interval:apps-esp32_lvgl-src-esp32_lvgl_arduino_loop_runtime.cpp:apps-esp32_lvgl-src-esp32_lvgl_arduino_loop_runtime.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了把 apps/esp32_lvgl 的静态依赖还原成一段可读协作:tick -\u003e log_loop_interval。重点判断这是 import、调用、引用还是消息方向,以及它是否真的影响运行路径。"},{"id":"engineering:diagram:sequence:add_status_line-calls-add_label","kind":"sequence","title":"动态协作:add_status_line 调用 add_label","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_status_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_label。","docPath":"docs/engineering/sequence-diagrams/add_status_line-calls-add_label/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/add_status_line-calls-add_label/sequence-diagram.html","anchor":"engineering:runtime-flow:add_status_line:add_label:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了把 apps/esp32_lvgl 的静态依赖还原成一段可读协作:add_status_line -\u003e add_label。重点判断这是 import、调用、引用还是消息方向,以及它是否真的影响运行路径。"},{"id":"engineering:diagram:sequence:add_u32_line-calls-add_label","kind":"sequence","title":"动态协作:add_u32_line 调用 add_label","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_u32_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_label。","docPath":"docs/engineering/sequence-diagrams/add_u32_line-calls-add_label/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/add_u32_line-calls-add_label/sequence-diagram.html","anchor":"engineering:runtime-flow:add_u32_line:add_label:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了把 apps/esp32_lvgl 的静态依赖还原成一段可读协作:add_u32_line -\u003e add_label。重点判断这是 import、调用、引用还是消息方向,以及它是否真的影响运行路径。"},{"id":"engineering:diagram:sequence:add_hex_line-calls-add_status_line","kind":"sequence","title":"动态协作:add_hex_line 调用 add_status_line","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_hex_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_status_line。","docPath":"docs/engineering/sequence-diagrams/add_hex_line-calls-add_status_line/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/add_hex_line-calls-add_status_line/sequence-diagram.html","anchor":"engineering:runtime-flow:add_hex_line:add_status_line:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了把 apps/esp32_lvgl 的静态依赖还原成一段可读协作:add_hex_line -\u003e add_status_line。重点判断这是 import、调用、引用还是消息方向,以及它是否真的影响运行路径。"},{"id":"engineering:diagram:sequence:companion_enter-calls-add_label","kind":"sequence","title":"动态协作:companion_enter 调用 add_label","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 companion_enter calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_label。","docPath":"docs/engineering/sequence-diagrams/companion_enter-calls-add_label/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/companion_enter-calls-add_label/sequence-diagram.html","anchor":"engineering:runtime-flow:companion_enter:add_label:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了把 apps/esp32_lvgl 的静态依赖还原成一段可读协作:companion_enter -\u003e add_label。重点判断这是 import、调用、引用还是消息方向,以及它是否真的影响运行路径。"}]},{"id":"engineering:diagram:package:firmware:element:apps-linux_uconsole_gtk","mermaidId":"dependency_3","label":"apps/linux_uconsole_gtk","kind":"package","anchor":"engineering:package:apps-linux_uconsole_gtk","summary":"apps/linux_uconsole_gtk 是 firmware 当前观察到的外部技术边界依赖;它说明当前模块不是孤立实现,而是需要借助另一组工程能力完成职责。","role":"跨模块技术依赖边界:当前 package 需要另一个 package/module 提供能力、契约、配置或运行支撑。","whyItExists":"本地仓库证据在 firmware 与 apps/linux_uconsole_gtk 之间观察到跨模块事实关系,因此该依赖被放入 Package Diagram,而不是只藏在代码 import/call 里。","relationshipMeaning":"firmware -\u003e apps/linux_uconsole_gtk 表示本地仓库证据观察到跨模块关系;它解释技术依赖方向,但不直接证明业务流程。","drilldownIntent":"下钻 apps/linux_uconsole_gtk 可以查看它自己的 Package Diagram,再继续进入其组件、结构、sequence 或热点,判断当前依赖究竟落在入口、运行时、工具注册、模型适配还是基础设施边界。","businessRelevance":"firmware 如果承载用户可见能力,那么对 apps/linux_uconsole_gtk 的依赖可能是该能力的运行机制、扩展点或治理约束。该业务关联需要由组织/过程模型的 Use Case 证据确认。","changeImpact":"修改 apps/linux_uconsole_gtk 的公共接口、路径或运行方式,可能让 firmware 的调用链、打包入口、agent 工作流或 UI 行为发生连锁变化。","evidence":["dependency edge: firmware -\u003e apps/linux_uconsole_gtk","apps/linux_uconsole_gtk/APP_SHELL_MANIFEST.md","apps/linux_uconsole_gtk/CMakeLists.txt","apps/linux_uconsole_gtk/packaging/trailmate-uconsole.desktop","apps/linux_uconsole_gtk/packaging/trailmate-uconsole.png","apps/linux_uconsole_gtk/README.md","apps/linux_uconsole_gtk/src/linux_uconsole_gtk_app_shell.cpp","apps/linux_uconsole_gtk/src/linux_uconsole_gtk_app_shell.h"],"risks":["跨模块依赖只能证明技术关系,不能直接证明业务关系。","如果该依赖只是因为实现方便而存在,未来变更可能形成边界漂移或隐式公共工具箱。"],"questions":["当前证据尚未证明 firmware 依赖 apps/linux_uconsole_gtk 与某个 Use Case、runtime command 或配置决策直接相关。","当前依赖方向按仓库事实记录为候选,尚未发现架构决策文档证明它是稳定边界。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:package:apps-linux_uconsole_gtk","kind":"package","title":"模块边界:apps/linux_uconsole_gtk","summary":"解释 apps/linux_uconsole_gtk 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/apps-linux_uconsole_gtk/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/apps-linux_uconsole_gtk/package-diagram.html","anchor":"engineering:package:apps-linux_uconsole_gtk","relation":"parent_boundary","reason":"打开 apps/linux_uconsole_gtk 自己的包级边界,检查 firmware 依赖它时借用的是运行命令、共享能力、治理工具、模型适配还是基础设施职责。"},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-launchsettingslayout","kind":"component","title":"函数节点:launchSettingsLayout","summary":"function 位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L110,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-launchsettingslayout/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-launchsettingslayout/component-diagram.html","anchor":"engineering:component:function:launchsettingslayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:110","relation":"contains","reason":"打开 函数节点:launchSettingsLayout 是为了确认 apps/linux_uconsole_gtk 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-makelabel","kind":"component","title":"函数节点:makeLabel","summary":"function 位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp#L9,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-makelabel/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-makelabel/component-diagram.html","anchor":"engineering:component:function:makelabel:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp:9","relation":"contains","reason":"打开 函数节点:makeLabel 是为了确认 apps/linux_uconsole_gtk 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-makesettingsrow","kind":"component","title":"函数节点:makeSettingsRow","summary":"function 位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L22,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-makesettingsrow/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-makesettingsrow/component-diagram.html","anchor":"engineering:component:function:makesettingsrow:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:22","relation":"contains","reason":"打开 函数节点:makeSettingsRow 是为了确认 apps/linux_uconsole_gtk 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-refreshui","kind":"component","title":"函数节点:refreshUi","summary":"function 位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_shell.cpp#L285,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-refreshui/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-refreshui/component-diagram.html","anchor":"engineering:component:function:refreshui:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_shell.cpp:285","relation":"contains","reason":"打开 函数节点:refreshUi 是为了确认 apps/linux_uconsole_gtk 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_shell.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-refreshmap","kind":"component","title":"函数节点:refreshMap","summary":"function 位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_map_logic.cpp#L1243,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-refreshmap/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-refreshmap/component-diagram.html","anchor":"engineering:component:function:refreshmap:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_map_logic.cpp:1243","relation":"contains","reason":"打开 函数节点:refreshMap 是为了确认 apps/linux_uconsole_gtk 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_map_logic.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-main","kind":"component","title":"函数节点:main","summary":"function 位于 apps/linux_uconsole_gtk/tests/uconsole_meshtastic_node_payload_smoke.cpp#L89,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-main/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-main/component-diagram.html","anchor":"engineering:component:function:main:apps-linux_uconsole_gtk-tests-uconsole_meshtastic_node_payload_smoke.cpp:89","relation":"contains","reason":"打开 函数节点:main 是为了确认 apps/linux_uconsole_gtk 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/linux_uconsole_gtk/tests/uconsole_meshtastic_node_payload_smoke.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-launchmaplayout","kind":"component","title":"函数节点:launchMapLayout","summary":"function 位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_map_layout.cpp#L105,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-launchmaplayout/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-launchmaplayout/component-diagram.html","anchor":"engineering:component:function:launchmaplayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_map_layout.cpp:105","relation":"contains","reason":"打开 函数节点:launchMapLayout 是为了确认 apps/linux_uconsole_gtk 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_map_layout.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-expect","kind":"component","title":"函数节点:expect","summary":"function 位于 apps/linux_uconsole_gtk/tests/uconsole_meshtastic_node_payload_smoke.cpp#L15,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-expect/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-expect/component-diagram.html","anchor":"engineering:component:function:expect:apps-linux_uconsole_gtk-tests-uconsole_meshtastic_node_payload_smoke.cpp:15","relation":"contains","reason":"打开 函数节点:expect 是为了确认 apps/linux_uconsole_gtk 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/linux_uconsole_gtk/tests/uconsole_meshtastic_node_payload_smoke.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"}]}]},{"id":"engineering:diagram:package:apps-nrf52_node","kind":"package","title":"模块边界:apps/nrf52_node","summary":"解释 apps/nrf52_node 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/apps-nrf52_node/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/apps-nrf52_node/package-diagram.html","anchor":"engineering:package:apps-nrf52_node","status":"candidate","confidence":"high","mermaidKind":"flowchart","mermaid":"flowchart LR\n package_node[\"apps/nrf52_node\"]\n dependency_1[\"apps/esp32_lvgl\"]\n package_node --\u003e dependency_1\n dependency_2[\"apps/linux_uconsole_gtk\"]\n package_node --\u003e dependency_2\n dependency_3[\"apps/linux_cardputer_zero\"]\n package_node --\u003e dependency_3\n dependency_4[\"boards\"]\n package_node --\u003e dependency_4","readingGuide":["这张 Package Diagram 以 apps/nrf52_node 为中心,展示它作为工程模块边界时观察到的文件规模、符号规模和跨模块依赖。","图中的箭头表示本地仓库证据观察到的跨模块关系,主要用于理解技术依赖方向;它不是业务流程顺序,也不是运行时消息时序。","当前观察到的主要外部依赖包括:apps/esp32_lvgl、apps/linux_uconsole_gtk、apps/linux_cardputer_zero、boards。"],"technicalAnalysis":["apps/nrf52_node 当前包含 23 个文件和 287 个符号,属于软件结构模型识别出的技术组织边界。","跨模块关系呈现为:被其它模块引用或调用 20 次,主动依赖或调用外部模块 72 次,因此它依赖外部模块更多。","较多外部依赖可能说明该模块承担编排、聚合或桥接多处能力的职责;当前按候选技术耦合中心处理。"],"businessRelation":["apps/nrf52_node 不是业务故事本身,而是业务能力落地时可能经过的技术边界。","如果组织/过程模型中某个 Use Case 的证据、入口或下钻图落在 apps/nrf52_node,该 Use Case 应当反向链接到这张 Package Diagram,说明业务故事由哪个工程模块承载。","当前关联仍是 CANDIDATE:这里只能根据仓库证据解释技术边界,不能替代组织/过程模型对业务故事、参与者和业务目标的确认。"],"governanceNotes":["新增功能时,优先确认它属于该模块的稳定职责,而不是因为调用方便而落入该模块。","如果未来多次变更都增加该模块的外部依赖,应考虑拆分端口、适配器或应用服务边界。","当业务 Use Case 文档引用该模块时,应在 Use Case 下钻文档中记录具体入口、调用链或配置证据。"],"coverage":["模块路径:apps/nrf52_node","文件数:23","符号数:287","被其他模块依赖或调用:20","依赖或调用外部模块:72"],"evidencePaths":["apps/nrf52_node/APP_SHELL_MANIFEST.md","apps/nrf52_node/library.json","apps/nrf52_node/README.md","apps/nrf52_node/src/nrf52_node_app_facade_runtime.cpp","apps/nrf52_node/src/nrf52_node_app_facade_runtime.h","apps/nrf52_node/src/nrf52_node_app_runtime_access.cpp","apps/nrf52_node/src/nrf52_node_app_runtime_access.h","apps/nrf52_node/src/nrf52_node_app_shell.cpp"],"questions":[],"scope":{"packageId":"apps/nrf52_node","filePath":"apps/nrf52_node"},"drilldowns":[],"elements":[{"id":"engineering:diagram:package:apps-nrf52_node:element:apps-nrf52_node","mermaidId":"package_node","label":"apps/nrf52_node","kind":"package","anchor":"engineering:package:apps-nrf52_node","summary":"apps/nrf52_node 是当前 Package Diagram 的中心工程边界,用来观察它自身规模、依赖方向和可下钻技术复杂度。","role":"技术组织边界:它把 apps/nrf52_node 下的文件、符号和跨模块关系聚合成一个可讨论的工程单元。","whyItExists":"本地仓库证据在 apps/nrf52_node 下观察到足够文件、符号或跨模块关系,因此它值得被提升为软件结构模型中的 package 级入口。","relationshipMeaning":"图中从 apps/nrf52_node 指向其它节点的箭头表示当前边界依赖外部 package/module;被其他模块依赖或调用 20 次、依赖或调用外部模块 72 次,用于判断它更像稳定复用边界还是编排/桥接边界。","drilldownIntent":"下钻该节点可以继续查看 apps/nrf52_node 内的关键组件、结构协作切片、运行链路、部署节点和复杂度热点,从而理解这个工程边界如何承载功能变化。","businessRelevance":"该节点不是业务故事本身,但组织/过程模型中落到 apps/nrf52_node 的 Use Case 可以把这里作为技术承载边界引用。当前关联仍是 CANDIDATE。","changeImpact":"修改 apps/nrf52_node 的公共入口、依赖方向或目录边界,可能影响引用它的组件图、sequence 片段、部署配置和相关业务故事的验证路径。","evidence":["package scope: apps/nrf52_node","模块路径:apps/nrf52_node","文件数:23","符号数:287","被其他模块依赖或调用:20","依赖或调用外部模块:72","apps/nrf52_node/APP_SHELL_MANIFEST.md","apps/nrf52_node/library.json"],"risks":["如果只把该节点当作目录名,会遗漏它作为稳定工程边界的职责判断。","如果依赖外部模块的迹象持续增加,可能说明该边界承担过多编排或桥接职责。"],"questions":["当前仓库证据尚未把该 package 明确 Trace 到某个 Use Case;因此业务关联保持候选。"],"confidence":"high","drilldowns":[]},{"id":"engineering:diagram:package:apps-nrf52_node:element:apps-esp32_lvgl","mermaidId":"dependency_1","label":"apps/esp32_lvgl","kind":"package","anchor":"engineering:package:apps-esp32_lvgl","summary":"apps/esp32_lvgl 是 apps/nrf52_node 当前观察到的外部技术边界依赖;它说明当前模块不是孤立实现,而是需要借助另一组工程能力完成职责。","role":"跨模块技术依赖边界:当前 package 需要另一个 package/module 提供能力、契约、配置或运行支撑。","whyItExists":"本地仓库证据在 apps/nrf52_node 与 apps/esp32_lvgl 之间观察到跨模块事实关系,因此该依赖被放入 Package Diagram,而不是只藏在代码 import/call 里。","relationshipMeaning":"apps/nrf52_node -\u003e apps/esp32_lvgl 表示本地仓库证据观察到跨模块关系;它解释技术依赖方向,但不直接证明业务流程。","drilldownIntent":"下钻 apps/esp32_lvgl 可以查看它自己的 Package Diagram,再继续进入其组件、结构、sequence 或热点,判断当前依赖究竟落在入口、运行时、工具注册、模型适配还是基础设施边界。","businessRelevance":"apps/nrf52_node 如果承载用户可见能力,那么对 apps/esp32_lvgl 的依赖可能是该能力的运行机制、扩展点或治理约束。该业务关联需要由组织/过程模型的 Use Case 证据确认。","changeImpact":"修改 apps/esp32_lvgl 的公共接口、路径或运行方式,可能让 apps/nrf52_node 的调用链、打包入口、agent 工作流或 UI 行为发生连锁变化。","evidence":["dependency edge: apps/nrf52_node -\u003e apps/esp32_lvgl","apps/esp32_lvgl/APP_SHELL_MANIFEST.md","apps/esp32_lvgl/CMakeLists.txt","apps/esp32_lvgl/library.json","apps/esp32_lvgl/README.md","apps/esp32_lvgl/src/esp32_lvgl_app_shell.cpp","apps/esp32_lvgl/src/esp32_lvgl_app_shell.h","apps/esp32_lvgl/src/esp32_lvgl_arduino_app_registry.cpp"],"risks":["跨模块依赖只能证明技术关系,不能直接证明业务关系。","如果该依赖只是因为实现方便而存在,未来变更可能形成边界漂移或隐式公共工具箱。"],"questions":["当前证据尚未证明 apps/nrf52_node 依赖 apps/esp32_lvgl 与某个 Use Case、runtime command 或配置决策直接相关。","当前依赖方向按仓库事实记录为候选,尚未发现架构决策文档证明它是稳定边界。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:package:apps-esp32_lvgl","kind":"package","title":"模块边界:apps/esp32_lvgl","summary":"解释 apps/esp32_lvgl 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/apps-esp32_lvgl/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/apps-esp32_lvgl/package-diagram.html","anchor":"engineering:package:apps-esp32_lvgl","relation":"parent_boundary","reason":"打开 apps/esp32_lvgl 自己的包级边界,检查 apps/nrf52_node 依赖它时借用的是运行命令、共享能力、治理工具、模型适配还是基础设施职责。"},{"id":"engineering:diagram:component:apps-esp32_lvgl-main","kind":"component","title":"函数节点:main","summary":"function 位于 apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp#L33,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-main/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-main/component-diagram.html","anchor":"engineering:component:function:main:apps-esp32_lvgl-tests-esp32_lvgl_sd_coredump_contract_smoke.cpp:33","relation":"contains","reason":"打开 函数节点:main 是为了确认 apps/esp32_lvgl 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:apps-esp32_lvgl-contains","kind":"component","title":"函数节点:contains","summary":"function 位于 apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp#L19,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-contains/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-contains/component-diagram.html","anchor":"engineering:component:function:contains:apps-esp32_lvgl-tests-esp32_lvgl_sd_coredump_contract_smoke.cpp:19","relation":"contains","reason":"打开 函数节点:contains 是为了确认 apps/esp32_lvgl 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:apps-esp32_lvgl-companion_enter","kind":"component","title":"函数节点:companion_enter","summary":"function 位于 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp#L72,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-companion_enter/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-companion_enter/component-diagram.html","anchor":"engineering:component:function:companion_enter:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:72","relation":"contains","reason":"打开 函数节点:companion_enter 是为了确认 apps/esp32_lvgl 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:sequence:tick-calls-log_loop_interval","kind":"sequence","title":"动态协作:tick 调用 log_loop_interval","summary":"apps/esp32_lvgl/src/esp32_lvgl_arduino_loop_runtime.cpp 中的 tick calls apps/esp32_lvgl/src/esp32_lvgl_arduino_loop_runtime.cpp 中的 log_loop_interval。","docPath":"docs/engineering/sequence-diagrams/tick-calls-log_loop_interval/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/tick-calls-log_loop_interval/sequence-diagram.html","anchor":"engineering:runtime-flow:tick:log_loop_interval:apps-esp32_lvgl-src-esp32_lvgl_arduino_loop_runtime.cpp:apps-esp32_lvgl-src-esp32_lvgl_arduino_loop_runtime.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了把 apps/esp32_lvgl 的静态依赖还原成一段可读协作:tick -\u003e log_loop_interval。重点判断这是 import、调用、引用还是消息方向,以及它是否真的影响运行路径。"},{"id":"engineering:diagram:sequence:add_status_line-calls-add_label","kind":"sequence","title":"动态协作:add_status_line 调用 add_label","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_status_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_label。","docPath":"docs/engineering/sequence-diagrams/add_status_line-calls-add_label/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/add_status_line-calls-add_label/sequence-diagram.html","anchor":"engineering:runtime-flow:add_status_line:add_label:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了把 apps/esp32_lvgl 的静态依赖还原成一段可读协作:add_status_line -\u003e add_label。重点判断这是 import、调用、引用还是消息方向,以及它是否真的影响运行路径。"},{"id":"engineering:diagram:sequence:add_u32_line-calls-add_label","kind":"sequence","title":"动态协作:add_u32_line 调用 add_label","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_u32_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_label。","docPath":"docs/engineering/sequence-diagrams/add_u32_line-calls-add_label/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/add_u32_line-calls-add_label/sequence-diagram.html","anchor":"engineering:runtime-flow:add_u32_line:add_label:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了把 apps/esp32_lvgl 的静态依赖还原成一段可读协作:add_u32_line -\u003e add_label。重点判断这是 import、调用、引用还是消息方向,以及它是否真的影响运行路径。"},{"id":"engineering:diagram:sequence:add_hex_line-calls-add_status_line","kind":"sequence","title":"动态协作:add_hex_line 调用 add_status_line","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_hex_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_status_line。","docPath":"docs/engineering/sequence-diagrams/add_hex_line-calls-add_status_line/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/add_hex_line-calls-add_status_line/sequence-diagram.html","anchor":"engineering:runtime-flow:add_hex_line:add_status_line:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了把 apps/esp32_lvgl 的静态依赖还原成一段可读协作:add_hex_line -\u003e add_status_line。重点判断这是 import、调用、引用还是消息方向,以及它是否真的影响运行路径。"},{"id":"engineering:diagram:sequence:companion_enter-calls-add_label","kind":"sequence","title":"动态协作:companion_enter 调用 add_label","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 companion_enter calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_label。","docPath":"docs/engineering/sequence-diagrams/companion_enter-calls-add_label/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/companion_enter-calls-add_label/sequence-diagram.html","anchor":"engineering:runtime-flow:companion_enter:add_label:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了把 apps/esp32_lvgl 的静态依赖还原成一段可读协作:companion_enter -\u003e add_label。重点判断这是 import、调用、引用还是消息方向,以及它是否真的影响运行路径。"}]},{"id":"engineering:diagram:package:apps-nrf52_node:element:apps-linux_uconsole_gtk","mermaidId":"dependency_2","label":"apps/linux_uconsole_gtk","kind":"package","anchor":"engineering:package:apps-linux_uconsole_gtk","summary":"apps/linux_uconsole_gtk 是 apps/nrf52_node 当前观察到的外部技术边界依赖;它说明当前模块不是孤立实现,而是需要借助另一组工程能力完成职责。","role":"跨模块技术依赖边界:当前 package 需要另一个 package/module 提供能力、契约、配置或运行支撑。","whyItExists":"本地仓库证据在 apps/nrf52_node 与 apps/linux_uconsole_gtk 之间观察到跨模块事实关系,因此该依赖被放入 Package Diagram,而不是只藏在代码 import/call 里。","relationshipMeaning":"apps/nrf52_node -\u003e apps/linux_uconsole_gtk 表示本地仓库证据观察到跨模块关系;它解释技术依赖方向,但不直接证明业务流程。","drilldownIntent":"下钻 apps/linux_uconsole_gtk 可以查看它自己的 Package Diagram,再继续进入其组件、结构、sequence 或热点,判断当前依赖究竟落在入口、运行时、工具注册、模型适配还是基础设施边界。","businessRelevance":"apps/nrf52_node 如果承载用户可见能力,那么对 apps/linux_uconsole_gtk 的依赖可能是该能力的运行机制、扩展点或治理约束。该业务关联需要由组织/过程模型的 Use Case 证据确认。","changeImpact":"修改 apps/linux_uconsole_gtk 的公共接口、路径或运行方式,可能让 apps/nrf52_node 的调用链、打包入口、agent 工作流或 UI 行为发生连锁变化。","evidence":["dependency edge: apps/nrf52_node -\u003e apps/linux_uconsole_gtk","apps/linux_uconsole_gtk/APP_SHELL_MANIFEST.md","apps/linux_uconsole_gtk/CMakeLists.txt","apps/linux_uconsole_gtk/packaging/trailmate-uconsole.desktop","apps/linux_uconsole_gtk/packaging/trailmate-uconsole.png","apps/linux_uconsole_gtk/README.md","apps/linux_uconsole_gtk/src/linux_uconsole_gtk_app_shell.cpp","apps/linux_uconsole_gtk/src/linux_uconsole_gtk_app_shell.h"],"risks":["跨模块依赖只能证明技术关系,不能直接证明业务关系。","如果该依赖只是因为实现方便而存在,未来变更可能形成边界漂移或隐式公共工具箱。"],"questions":["当前证据尚未证明 apps/nrf52_node 依赖 apps/linux_uconsole_gtk 与某个 Use Case、runtime command 或配置决策直接相关。","当前依赖方向按仓库事实记录为候选,尚未发现架构决策文档证明它是稳定边界。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:package:apps-linux_uconsole_gtk","kind":"package","title":"模块边界:apps/linux_uconsole_gtk","summary":"解释 apps/linux_uconsole_gtk 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/apps-linux_uconsole_gtk/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/apps-linux_uconsole_gtk/package-diagram.html","anchor":"engineering:package:apps-linux_uconsole_gtk","relation":"parent_boundary","reason":"打开 apps/linux_uconsole_gtk 自己的包级边界,检查 apps/nrf52_node 依赖它时借用的是运行命令、共享能力、治理工具、模型适配还是基础设施职责。"},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-launchsettingslayout","kind":"component","title":"函数节点:launchSettingsLayout","summary":"function 位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L110,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-launchsettingslayout/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-launchsettingslayout/component-diagram.html","anchor":"engineering:component:function:launchsettingslayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:110","relation":"contains","reason":"打开 函数节点:launchSettingsLayout 是为了确认 apps/linux_uconsole_gtk 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-makelabel","kind":"component","title":"函数节点:makeLabel","summary":"function 位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp#L9,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-makelabel/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-makelabel/component-diagram.html","anchor":"engineering:component:function:makelabel:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp:9","relation":"contains","reason":"打开 函数节点:makeLabel 是为了确认 apps/linux_uconsole_gtk 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-makesettingsrow","kind":"component","title":"函数节点:makeSettingsRow","summary":"function 位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L22,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-makesettingsrow/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-makesettingsrow/component-diagram.html","anchor":"engineering:component:function:makesettingsrow:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:22","relation":"contains","reason":"打开 函数节点:makeSettingsRow 是为了确认 apps/linux_uconsole_gtk 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-refreshui","kind":"component","title":"函数节点:refreshUi","summary":"function 位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_shell.cpp#L285,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-refreshui/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-refreshui/component-diagram.html","anchor":"engineering:component:function:refreshui:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_shell.cpp:285","relation":"contains","reason":"打开 函数节点:refreshUi 是为了确认 apps/linux_uconsole_gtk 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_shell.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-refreshmap","kind":"component","title":"函数节点:refreshMap","summary":"function 位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_map_logic.cpp#L1243,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-refreshmap/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-refreshmap/component-diagram.html","anchor":"engineering:component:function:refreshmap:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_map_logic.cpp:1243","relation":"contains","reason":"打开 函数节点:refreshMap 是为了确认 apps/linux_uconsole_gtk 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_map_logic.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-main","kind":"component","title":"函数节点:main","summary":"function 位于 apps/linux_uconsole_gtk/tests/uconsole_meshtastic_node_payload_smoke.cpp#L89,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-main/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-main/component-diagram.html","anchor":"engineering:component:function:main:apps-linux_uconsole_gtk-tests-uconsole_meshtastic_node_payload_smoke.cpp:89","relation":"contains","reason":"打开 函数节点:main 是为了确认 apps/linux_uconsole_gtk 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/linux_uconsole_gtk/tests/uconsole_meshtastic_node_payload_smoke.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-launchmaplayout","kind":"component","title":"函数节点:launchMapLayout","summary":"function 位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_map_layout.cpp#L105,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-launchmaplayout/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-launchmaplayout/component-diagram.html","anchor":"engineering:component:function:launchmaplayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_map_layout.cpp:105","relation":"contains","reason":"打开 函数节点:launchMapLayout 是为了确认 apps/linux_uconsole_gtk 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_map_layout.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-expect","kind":"component","title":"函数节点:expect","summary":"function 位于 apps/linux_uconsole_gtk/tests/uconsole_meshtastic_node_payload_smoke.cpp#L15,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-expect/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-expect/component-diagram.html","anchor":"engineering:component:function:expect:apps-linux_uconsole_gtk-tests-uconsole_meshtastic_node_payload_smoke.cpp:15","relation":"contains","reason":"打开 函数节点:expect 是为了确认 apps/linux_uconsole_gtk 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/linux_uconsole_gtk/tests/uconsole_meshtastic_node_payload_smoke.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"}]},{"id":"engineering:diagram:package:apps-nrf52_node:element:apps-linux_cardputer_zero","mermaidId":"dependency_3","label":"apps/linux_cardputer_zero","kind":"package","anchor":"engineering:package:apps-linux_cardputer_zero","summary":"apps/linux_cardputer_zero 是 apps/nrf52_node 当前观察到的外部技术边界依赖;它说明当前模块不是孤立实现,而是需要借助另一组工程能力完成职责。","role":"跨模块技术依赖边界:当前 package 需要另一个 package/module 提供能力、契约、配置或运行支撑。","whyItExists":"本地仓库证据在 apps/nrf52_node 与 apps/linux_cardputer_zero 之间观察到跨模块事实关系,因此该依赖被放入 Package Diagram,而不是只藏在代码 import/call 里。","relationshipMeaning":"apps/nrf52_node -\u003e apps/linux_cardputer_zero 表示本地仓库证据观察到跨模块关系;它解释技术依赖方向,但不直接证明业务流程。","drilldownIntent":"下钻 apps/linux_cardputer_zero 可以查看它自己的 Package Diagram,再继续进入其组件、结构、sequence 或热点,判断当前依赖究竟落在入口、运行时、工具注册、模型适配还是基础设施边界。","businessRelevance":"apps/nrf52_node 如果承载用户可见能力,那么对 apps/linux_cardputer_zero 的依赖可能是该能力的运行机制、扩展点或治理约束。该业务关联需要由组织/过程模型的 Use Case 证据确认。","changeImpact":"修改 apps/linux_cardputer_zero 的公共接口、路径或运行方式,可能让 apps/nrf52_node 的调用链、打包入口、agent 工作流或 UI 行为发生连锁变化。","evidence":["dependency edge: apps/nrf52_node -\u003e apps/linux_cardputer_zero","apps/linux_cardputer_zero/APP_SHELL_MANIFEST.md","apps/linux_cardputer_zero/CMakeLists.txt","apps/linux_cardputer_zero/packaging/trailmate-cardputer-zero-applaunch","apps/linux_cardputer_zero/packaging/trailmate-cardputer-zero.desktop","apps/linux_cardputer_zero/packaging/trailmate-cardputer-zero.png","apps/linux_cardputer_zero/README.md","apps/linux_cardputer_zero/src/cardputer_zero_input_method_port.cpp"],"risks":["跨模块依赖只能证明技术关系,不能直接证明业务关系。","如果该依赖只是因为实现方便而存在,未来变更可能形成边界漂移或隐式公共工具箱。"],"questions":["当前证据尚未证明 apps/nrf52_node 依赖 apps/linux_cardputer_zero 与某个 Use Case、runtime command 或配置决策直接相关。","当前依赖方向按仓库事实记录为候选,尚未发现架构决策文档证明它是稳定边界。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:package:apps-linux_cardputer_zero","kind":"package","title":"模块边界:apps/linux_cardputer_zero","summary":"解释 apps/linux_cardputer_zero 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/apps-linux_cardputer_zero/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/apps-linux_cardputer_zero/package-diagram.html","anchor":"engineering:package:apps-linux_cardputer_zero","relation":"parent_boundary","reason":"打开 apps/linux_cardputer_zero 自己的包级边界,检查 apps/nrf52_node 依赖它时借用的是运行命令、共享能力、治理工具、模型适配还是基础设施职责。"},{"id":"engineering:diagram:component:apps-linux_cardputer_zero-main","kind":"component","title":"函数节点:main","summary":"function 位于 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L49,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-main/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-main/component-diagram.html","anchor":"engineering:component:function:main:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:49","relation":"contains","reason":"打开 函数节点:main 是为了确认 apps/linux_cardputer_zero 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:apps-linux_cardputer_zero-contains","kind":"component","title":"函数节点:contains","summary":"function 位于 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L19,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-contains/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-contains/component-diagram.html","anchor":"engineering:component:function:contains:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:19","relation":"contains","reason":"打开 函数节点:contains 是为了确认 apps/linux_cardputer_zero 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:apps-linux_cardputer_zero-not_contains","kind":"component","title":"函数节点:not_contains","summary":"function 位于 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L24,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-not_contains/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-not_contains/component-diagram.html","anchor":"engineering:component:function:not_contains:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:24","relation":"contains","reason":"打开 函数节点:not_contains 是为了确认 apps/linux_cardputer_zero 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:apps-linux_cardputer_zero-read_file","kind":"component","title":"函数节点:read_file","summary":"function 位于 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L10,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-read_file/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-read_file/component-diagram.html","anchor":"engineering:component:function:read_file:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:10","relation":"contains","reason":"打开 函数节点:read_file 是为了确认 apps/linux_cardputer_zero 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--main","kind":"technical_hotspot","title":"承担外部协作的候选对象:main 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--main/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--main/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:main:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:49","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:main 技术热点 这个复杂度信号是否会抬高 apps/linux_cardputer_zero 的阅读、修改、测试或回归成本。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--contains","kind":"technical_hotspot","title":"被广泛复用的候选对象:contains 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--contains/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--contains/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:contains:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:19","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:contains 技术热点 这个复杂度信号是否会抬高 apps/linux_cardputer_zero 的阅读、修改、测试或回归成本。"}]},{"id":"engineering:diagram:package:apps-nrf52_node:element:boards","mermaidId":"dependency_4","label":"boards","kind":"package","anchor":"engineering:package:boards","summary":"boards 是 apps/nrf52_node 当前观察到的外部技术边界依赖;它说明当前模块不是孤立实现,而是需要借助另一组工程能力完成职责。","role":"跨模块技术依赖边界:当前 package 需要另一个 package/module 提供能力、契约、配置或运行支撑。","whyItExists":"本地仓库证据在 apps/nrf52_node 与 boards 之间观察到跨模块事实关系,因此该依赖被放入 Package Diagram,而不是只藏在代码 import/call 里。","relationshipMeaning":"apps/nrf52_node -\u003e boards 表示本地仓库证据观察到跨模块关系;它解释技术依赖方向,但不直接证明业务流程。","drilldownIntent":"下钻 boards 可以查看它自己的 Package Diagram,再继续进入其组件、结构、sequence 或热点,判断当前依赖究竟落在入口、运行时、工具注册、模型适配还是基础设施边界。","businessRelevance":"apps/nrf52_node 如果承载用户可见能力,那么对 boards 的依赖可能是该能力的运行机制、扩展点或治理约束。该业务关联需要由组织/过程模型的 Use Case 证据确认。","changeImpact":"修改 boards 的公共接口、路径或运行方式,可能让 apps/nrf52_node 的调用链、打包入口、agent 工作流或 UI 行为发生连锁变化。","evidence":["dependency edge: apps/nrf52_node -\u003e boards","boards/cardputerzero/board_facts.h","boards/cardputerzero/BOARD.md","boards/gat562_mesh_evb_pro.json","boards/gat562_mesh_evb_pro/board_facts.h","boards/gat562_mesh_evb_pro/BOARD.md","boards/gat562_mesh_evb_pro/include/boards/gat562_mesh_evb_pro/board_profile.h","boards/gat562_mesh_evb_pro/include/boards/gat562_mesh_evb_pro/gat562_board.h"],"risks":["跨模块依赖只能证明技术关系,不能直接证明业务关系。","如果该依赖只是因为实现方便而存在,未来变更可能形成边界漂移或隐式公共工具箱。"],"questions":["当前证据尚未证明 apps/nrf52_node 依赖 boards 与某个 Use Case、runtime command 或配置决策直接相关。","当前依赖方向按仓库事实记录为候选,尚未发现架构决策文档证明它是稳定边界。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:package:boards","kind":"package","title":"模块边界:boards","summary":"解释 boards 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/boards/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/boards/package-diagram.html","anchor":"engineering:package:boards","relation":"parent_boundary","reason":"打开 boards 自己的包级边界,检查 apps/nrf52_node 依赖它时借用的是运行命令、共享能力、治理工具、模型适配还是基础设施职责。"},{"id":"engineering:diagram:component:boards-makeboardprofile","kind":"component","title":"函数节点:makeBoardProfile","summary":"function 位于 boards/t_echo_lite/include/boards/t_echo_lite/board_profile.h#L188,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/boards-makeboardprofile/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/boards-makeboardprofile/component-diagram.html","anchor":"engineering:component:function:makeboardprofile:boards-t_echo_lite-include-boards-t_echo_lite-board_profile.h:188","relation":"contains","reason":"打开 函数节点:makeBoardProfile 是为了确认 boards 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 boards/t_echo_lite/include/boards/t_echo_lite/board_profile.h,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:boards-pinnum","kind":"component","title":"函数节点:pinNum","summary":"function 位于 boards/t_echo_lite/include/boards/t_echo_lite/board_profile.h#L8,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/boards-pinnum/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/boards-pinnum/component-diagram.html","anchor":"engineering:component:function:pinnum:boards-t_echo_lite-include-boards-t_echo_lite-board_profile.h:8","relation":"contains","reason":"打开 函数节点:pinNum 是为了确认 boards 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 boards/t_echo_lite/include/boards/t_echo_lite/board_profile.h,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:class-structural:boards-gat562_mesh_evb_pro-include-boards","kind":"class_structural","title":"结构协作:结构切片 boards · gat562_mesh_evb_pro/include/boards","summary":"解释 boards/gat562_mesh_evb_pro/include/boards 这一结构切片中类、接口、组件或值对象如何共同承担结构切片 boards中的结构职责;候选对象包括 Gat562Board、SX1262、Sx1262RadioPacketIo、Gat562Board::I2cGuard、GpsRuntime。","docPath":"docs/engineering/class-structural-diagrams/boards-gat562_mesh_evb_pro-include-boards/class-structural-diagram.md","htmlPath":"docs/engineering/class-structural-diagrams/boards-gat562_mesh_evb_pro-include-boards/class-structural-diagram.html","anchor":"engineering:class-structural:boards-gat562_mesh_evb_pro-include-boards","relation":"structural_context","reason":"打开 结构协作:结构切片 boards · gat562_mesh_evb_pro/include/boards 是为了从对象协作角度解释 boards:哪些对象像入口,哪些像编排核心,哪些像适配/共享边界;它帮助判断复杂度来自职责分布,而不只是文件数量。"},{"id":"engineering:diagram:class-structural:boards-t_echo_lite-include-boards","kind":"class_structural","title":"结构协作:结构切片 boards · t_echo_lite/include/boards","summary":"解释 boards/t_echo_lite/include/boards 这一结构切片中类、接口、组件或值对象如何共同承担结构切片 boards中的结构职责;候选对象包括 TEchoLiteBoard、Sx1262RadioPacketIo、TEchoLiteBoard::I2cGuard、GpsRuntime、Module。","docPath":"docs/engineering/class-structural-diagrams/boards-t_echo_lite-include-boards/class-structural-diagram.md","htmlPath":"docs/engineering/class-structural-diagrams/boards-t_echo_lite-include-boards/class-structural-diagram.html","anchor":"engineering:class-structural:boards-t_echo_lite-include-boards","relation":"structural_context","reason":"打开 结构协作:结构切片 boards · t_echo_lite/include/boards 是为了从对象协作角度解释 boards:哪些对象像入口,哪些像编排核心,哪些像适配/共享边界;它帮助判断复杂度来自职责分布,而不只是文件数量。"},{"id":"engineering:diagram:class-structural:boards-tab5-include-boards","kind":"class_structural","title":"结构协作:结构切片 boards · tab5/include/boards","summary":"解释 boards/tab5/include/boards 这一结构切片中类、接口、组件或值对象如何共同承担结构切片 boards中的结构职责;候选对象包括 Tab5Board、Tab5Board::ManagedSystemI2cGuard、Tab5Board::SysI2cGuard、CodecCompat。","docPath":"docs/engineering/class-structural-diagrams/boards-tab5-include-boards/class-structural-diagram.md","htmlPath":"docs/engineering/class-structural-diagrams/boards-tab5-include-boards/class-structural-diagram.html","anchor":"engineering:class-structural:boards-tab5-include-boards","relation":"structural_context","reason":"打开 结构协作:结构切片 boards · tab5/include/boards 是为了从对象协作角度解释 boards:哪些对象像入口,哪些像编排核心,哪些像适配/共享边界;它帮助判断复杂度来自职责分布,而不只是文件数量。"},{"id":"engineering:diagram:class-structural:boards-t_display_p4-include-boards","kind":"class_structural","title":"结构协作:结构切片 boards · t_display_p4/include/boards","summary":"解释 boards/t_display_p4/include/boards 这一结构切片中类、接口、组件或值对象如何共同承担结构切片 boards中的结构职责;候选对象包括 TDisplayP4Board、TDisplayP4Board::ManagedSystemI2cGuard。","docPath":"docs/engineering/class-structural-diagrams/boards-t_display_p4-include-boards/class-structural-diagram.md","htmlPath":"docs/engineering/class-structural-diagrams/boards-t_display_p4-include-boards/class-structural-diagram.html","anchor":"engineering:class-structural:boards-t_display_p4-include-boards","relation":"structural_context","reason":"打开 结构协作:结构切片 boards · t_display_p4/include/boards 是为了从对象协作角度解释 boards:哪些对象像入口,哪些像编排核心,哪些像适配/共享边界;它帮助判断复杂度来自职责分布,而不只是文件数量。"},{"id":"engineering:diagram:class-structural:boards-tlora_pager-include-boards","kind":"class_structural","title":"结构协作:结构切片 boards · tlora_pager/include/boards","summary":"解释 boards/tlora_pager/include/boards 这一结构切片中类、接口、组件或值对象如何共同承担结构切片 boards中的结构职责;候选对象包括 TLoRaPagerBoard、SX1262Access、AppContext。","docPath":"docs/engineering/class-structural-diagrams/boards-tlora_pager-include-boards/class-structural-diagram.md","htmlPath":"docs/engineering/class-structural-diagrams/boards-tlora_pager-include-boards/class-structural-diagram.html","anchor":"engineering:class-structural:boards-tlora_pager-include-boards","relation":"structural_context","reason":"打开 结构协作:结构切片 boards · tlora_pager/include/boards 是为了从对象协作角度解释 boards:哪些对象像入口,哪些像编排核心,哪些像适配/共享边界;它帮助判断复杂度来自职责分布,而不只是文件数量。"},{"id":"engineering:diagram:technical-hotspot:dependency-cluster--boards","kind":"technical_hotspot","title":"依赖簇:boards 技术热点","summary":"该模块依赖多个外部边界,当前按候选技术耦合中心处理;图中只保留仓库证据已经观察到的依赖方向和边界。","docPath":"docs/engineering/technical-hotspots/dependency-cluster--boards/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/dependency-cluster--boards/technical-hotspot.html","anchor":"engineering:hotspot:dependency-cluster:boards","relation":"risk_detail","reason":"查看 依赖簇:boards 技术热点 这个复杂度信号是否会抬高 boards 的阅读、修改、测试或回归成本。"}]}]},{"id":"engineering:diagram:package:apps-linux_cardputer_zero","kind":"package","title":"模块边界:apps/linux_cardputer_zero","summary":"解释 apps/linux_cardputer_zero 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/apps-linux_cardputer_zero/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/apps-linux_cardputer_zero/package-diagram.html","anchor":"engineering:package:apps-linux_cardputer_zero","status":"candidate","confidence":"high","mermaidKind":"flowchart","mermaid":"flowchart LR\n package_node[\"apps/linux_cardputer_zero\"]\n dependency_1[\"apps/esp32_lvgl\"]\n package_node --\u003e dependency_1\n dependency_2[\"boards\"]\n package_node --\u003e dependency_2","readingGuide":["这张 Package Diagram 以 apps/linux_cardputer_zero 为中心,展示它作为工程模块边界时观察到的文件规模、符号规模和跨模块依赖。","图中的箭头表示本地仓库证据观察到的跨模块关系,主要用于理解技术依赖方向;它不是业务流程顺序,也不是运行时消息时序。","当前观察到的主要外部依赖包括:apps/esp32_lvgl、boards。"],"technicalAnalysis":["apps/linux_cardputer_zero 当前包含 24 个文件和 230 个符号,属于软件结构模型识别出的技术组织边界。","跨模块关系呈现为:被其它模块引用或调用 40 次,主动依赖或调用外部模块 11 次,因此它被其他模块依赖更多。","当前对外依赖未形成明显异常,但仍应结合具体业务入口判断依赖方向是否稳定。"],"businessRelation":["apps/linux_cardputer_zero 不是业务故事本身,而是业务能力落地时可能经过的技术边界。","如果组织/过程模型中某个 Use Case 的证据、入口或下钻图落在 apps/linux_cardputer_zero,该 Use Case 应当反向链接到这张 Package Diagram,说明业务故事由哪个工程模块承载。","当前关联仍是 CANDIDATE:这里只能根据仓库证据解释技术边界,不能替代组织/过程模型对业务故事、参与者和业务目标的确认。"],"governanceNotes":["新增功能时,优先确认它属于该模块的稳定职责,而不是因为调用方便而落入该模块。","保持该模块的依赖方向可解释,避免形成隐式公共工具箱。","当业务 Use Case 文档引用该模块时,应在 Use Case 下钻文档中记录具体入口、调用链或配置证据。"],"coverage":["模块路径:apps/linux_cardputer_zero","文件数:24","符号数:230","被其他模块依赖或调用:40","依赖或调用外部模块:11"],"evidencePaths":["apps/linux_cardputer_zero/APP_SHELL_MANIFEST.md","apps/linux_cardputer_zero/CMakeLists.txt","apps/linux_cardputer_zero/packaging/trailmate-cardputer-zero-applaunch","apps/linux_cardputer_zero/packaging/trailmate-cardputer-zero.desktop","apps/linux_cardputer_zero/packaging/trailmate-cardputer-zero.png","apps/linux_cardputer_zero/README.md","apps/linux_cardputer_zero/src/cardputer_zero_input_method_port.cpp","apps/linux_cardputer_zero/src/cardputer_zero_input_method_port.h"],"questions":[],"scope":{"packageId":"apps/linux_cardputer_zero","filePath":"apps/linux_cardputer_zero"},"drilldowns":[{"id":"engineering:diagram:component:apps-linux_cardputer_zero-main","kind":"component","title":"函数节点:main","summary":"function 位于 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L49,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-main/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-main/component-diagram.html","anchor":"engineering:component:function:main:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:49","relation":"contains","reason":"打开 函数节点:main 是为了确认 apps/linux_cardputer_zero 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:apps-linux_cardputer_zero-contains","kind":"component","title":"函数节点:contains","summary":"function 位于 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L19,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-contains/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-contains/component-diagram.html","anchor":"engineering:component:function:contains:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:19","relation":"contains","reason":"打开 函数节点:contains 是为了确认 apps/linux_cardputer_zero 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:apps-linux_cardputer_zero-not_contains","kind":"component","title":"函数节点:not_contains","summary":"function 位于 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L24,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-not_contains/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-not_contains/component-diagram.html","anchor":"engineering:component:function:not_contains:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:24","relation":"contains","reason":"打开 函数节点:not_contains 是为了确认 apps/linux_cardputer_zero 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:apps-linux_cardputer_zero-read_file","kind":"component","title":"函数节点:read_file","summary":"function 位于 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L10,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-read_file/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-read_file/component-diagram.html","anchor":"engineering:component:function:read_file:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:10","relation":"contains","reason":"打开 函数节点:read_file 是为了确认 apps/linux_cardputer_zero 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--main","kind":"technical_hotspot","title":"承担外部协作的候选对象:main 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--main/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--main/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:main:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:49","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:main 技术热点 这个复杂度信号是否会抬高 apps/linux_cardputer_zero 的阅读、修改、测试或回归成本。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--contains","kind":"technical_hotspot","title":"被广泛复用的候选对象:contains 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--contains/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--contains/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:contains:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:19","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:contains 技术热点 这个复杂度信号是否会抬高 apps/linux_cardputer_zero 的阅读、修改、测试或回归成本。"}],"elements":[{"id":"engineering:diagram:package:apps-linux_cardputer_zero:element:apps-linux_cardputer_zero","mermaidId":"package_node","label":"apps/linux_cardputer_zero","kind":"package","anchor":"engineering:package:apps-linux_cardputer_zero","summary":"apps/linux_cardputer_zero 是当前 Package Diagram 的中心工程边界,用来观察它自身规模、依赖方向和可下钻技术复杂度。","role":"技术组织边界:它把 apps/linux_cardputer_zero 下的文件、符号和跨模块关系聚合成一个可讨论的工程单元。","whyItExists":"本地仓库证据在 apps/linux_cardputer_zero 下观察到足够文件、符号或跨模块关系,因此它值得被提升为软件结构模型中的 package 级入口。","relationshipMeaning":"图中从 apps/linux_cardputer_zero 指向其它节点的箭头表示当前边界依赖外部 package/module;被其他模块依赖或调用 40 次、依赖或调用外部模块 11 次,用于判断它更像稳定复用边界还是编排/桥接边界。","drilldownIntent":"下钻该节点可以继续查看 apps/linux_cardputer_zero 内的关键组件、结构协作切片、运行链路、部署节点和复杂度热点,从而理解这个工程边界如何承载功能变化。","businessRelevance":"该节点不是业务故事本身,但组织/过程模型中落到 apps/linux_cardputer_zero 的 Use Case 可以把这里作为技术承载边界引用。当前关联仍是 CANDIDATE。","changeImpact":"修改 apps/linux_cardputer_zero 的公共入口、依赖方向或目录边界,可能影响引用它的组件图、sequence 片段、部署配置和相关业务故事的验证路径。","evidence":["package scope: apps/linux_cardputer_zero","模块路径:apps/linux_cardputer_zero","文件数:24","符号数:230","被其他模块依赖或调用:40","依赖或调用外部模块:11","apps/linux_cardputer_zero/APP_SHELL_MANIFEST.md","apps/linux_cardputer_zero/CMakeLists.txt"],"risks":["如果只把该节点当作目录名,会遗漏它作为稳定工程边界的职责判断。","如果依赖外部模块的迹象持续增加,可能说明该边界承担过多编排或桥接职责。"],"questions":["当前仓库证据尚未把该 package 明确 Trace 到某个 Use Case;因此业务关联保持候选。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:component:apps-linux_cardputer_zero-main","kind":"component","title":"函数节点:main","summary":"function 位于 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L49,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-main/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-main/component-diagram.html","anchor":"engineering:component:function:main:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:49","relation":"contains","reason":"打开 函数节点:main 是为了确认 apps/linux_cardputer_zero 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:apps-linux_cardputer_zero-contains","kind":"component","title":"函数节点:contains","summary":"function 位于 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L19,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-contains/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-contains/component-diagram.html","anchor":"engineering:component:function:contains:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:19","relation":"contains","reason":"打开 函数节点:contains 是为了确认 apps/linux_cardputer_zero 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:apps-linux_cardputer_zero-not_contains","kind":"component","title":"函数节点:not_contains","summary":"function 位于 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L24,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-not_contains/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-not_contains/component-diagram.html","anchor":"engineering:component:function:not_contains:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:24","relation":"contains","reason":"打开 函数节点:not_contains 是为了确认 apps/linux_cardputer_zero 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:apps-linux_cardputer_zero-read_file","kind":"component","title":"函数节点:read_file","summary":"function 位于 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L10,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-read_file/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-read_file/component-diagram.html","anchor":"engineering:component:function:read_file:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:10","relation":"contains","reason":"打开 函数节点:read_file 是为了确认 apps/linux_cardputer_zero 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--main","kind":"technical_hotspot","title":"承担外部协作的候选对象:main 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--main/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--main/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:main:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:49","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:main 技术热点 这个复杂度信号是否会抬高 apps/linux_cardputer_zero 的阅读、修改、测试或回归成本。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--contains","kind":"technical_hotspot","title":"被广泛复用的候选对象:contains 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--contains/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--contains/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:contains:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:19","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:contains 技术热点 这个复杂度信号是否会抬高 apps/linux_cardputer_zero 的阅读、修改、测试或回归成本。"}]},{"id":"engineering:diagram:package:apps-linux_cardputer_zero:element:apps-esp32_lvgl","mermaidId":"dependency_1","label":"apps/esp32_lvgl","kind":"package","anchor":"engineering:package:apps-esp32_lvgl","summary":"apps/esp32_lvgl 是 apps/linux_cardputer_zero 当前观察到的外部技术边界依赖;它说明当前模块不是孤立实现,而是需要借助另一组工程能力完成职责。","role":"跨模块技术依赖边界:当前 package 需要另一个 package/module 提供能力、契约、配置或运行支撑。","whyItExists":"本地仓库证据在 apps/linux_cardputer_zero 与 apps/esp32_lvgl 之间观察到跨模块事实关系,因此该依赖被放入 Package Diagram,而不是只藏在代码 import/call 里。","relationshipMeaning":"apps/linux_cardputer_zero -\u003e apps/esp32_lvgl 表示本地仓库证据观察到跨模块关系;它解释技术依赖方向,但不直接证明业务流程。","drilldownIntent":"下钻 apps/esp32_lvgl 可以查看它自己的 Package Diagram,再继续进入其组件、结构、sequence 或热点,判断当前依赖究竟落在入口、运行时、工具注册、模型适配还是基础设施边界。","businessRelevance":"apps/linux_cardputer_zero 如果承载用户可见能力,那么对 apps/esp32_lvgl 的依赖可能是该能力的运行机制、扩展点或治理约束。该业务关联需要由组织/过程模型的 Use Case 证据确认。","changeImpact":"修改 apps/esp32_lvgl 的公共接口、路径或运行方式,可能让 apps/linux_cardputer_zero 的调用链、打包入口、agent 工作流或 UI 行为发生连锁变化。","evidence":["dependency edge: apps/linux_cardputer_zero -\u003e apps/esp32_lvgl","apps/esp32_lvgl/APP_SHELL_MANIFEST.md","apps/esp32_lvgl/CMakeLists.txt","apps/esp32_lvgl/library.json","apps/esp32_lvgl/README.md","apps/esp32_lvgl/src/esp32_lvgl_app_shell.cpp","apps/esp32_lvgl/src/esp32_lvgl_app_shell.h","apps/esp32_lvgl/src/esp32_lvgl_arduino_app_registry.cpp"],"risks":["跨模块依赖只能证明技术关系,不能直接证明业务关系。","如果该依赖只是因为实现方便而存在,未来变更可能形成边界漂移或隐式公共工具箱。"],"questions":["当前证据尚未证明 apps/linux_cardputer_zero 依赖 apps/esp32_lvgl 与某个 Use Case、runtime command 或配置决策直接相关。","当前依赖方向按仓库事实记录为候选,尚未发现架构决策文档证明它是稳定边界。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:package:apps-esp32_lvgl","kind":"package","title":"模块边界:apps/esp32_lvgl","summary":"解释 apps/esp32_lvgl 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/apps-esp32_lvgl/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/apps-esp32_lvgl/package-diagram.html","anchor":"engineering:package:apps-esp32_lvgl","relation":"parent_boundary","reason":"打开 apps/esp32_lvgl 自己的包级边界,检查 apps/linux_cardputer_zero 依赖它时借用的是运行命令、共享能力、治理工具、模型适配还是基础设施职责。"},{"id":"engineering:diagram:component:apps-esp32_lvgl-main","kind":"component","title":"函数节点:main","summary":"function 位于 apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp#L33,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-main/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-main/component-diagram.html","anchor":"engineering:component:function:main:apps-esp32_lvgl-tests-esp32_lvgl_sd_coredump_contract_smoke.cpp:33","relation":"contains","reason":"打开 函数节点:main 是为了确认 apps/esp32_lvgl 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:apps-esp32_lvgl-contains","kind":"component","title":"函数节点:contains","summary":"function 位于 apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp#L19,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-contains/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-contains/component-diagram.html","anchor":"engineering:component:function:contains:apps-esp32_lvgl-tests-esp32_lvgl_sd_coredump_contract_smoke.cpp:19","relation":"contains","reason":"打开 函数节点:contains 是为了确认 apps/esp32_lvgl 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:apps-esp32_lvgl-companion_enter","kind":"component","title":"函数节点:companion_enter","summary":"function 位于 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp#L72,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-companion_enter/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-companion_enter/component-diagram.html","anchor":"engineering:component:function:companion_enter:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:72","relation":"contains","reason":"打开 函数节点:companion_enter 是为了确认 apps/esp32_lvgl 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:sequence:tick-calls-log_loop_interval","kind":"sequence","title":"动态协作:tick 调用 log_loop_interval","summary":"apps/esp32_lvgl/src/esp32_lvgl_arduino_loop_runtime.cpp 中的 tick calls apps/esp32_lvgl/src/esp32_lvgl_arduino_loop_runtime.cpp 中的 log_loop_interval。","docPath":"docs/engineering/sequence-diagrams/tick-calls-log_loop_interval/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/tick-calls-log_loop_interval/sequence-diagram.html","anchor":"engineering:runtime-flow:tick:log_loop_interval:apps-esp32_lvgl-src-esp32_lvgl_arduino_loop_runtime.cpp:apps-esp32_lvgl-src-esp32_lvgl_arduino_loop_runtime.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了把 apps/esp32_lvgl 的静态依赖还原成一段可读协作:tick -\u003e log_loop_interval。重点判断这是 import、调用、引用还是消息方向,以及它是否真的影响运行路径。"},{"id":"engineering:diagram:sequence:add_status_line-calls-add_label","kind":"sequence","title":"动态协作:add_status_line 调用 add_label","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_status_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_label。","docPath":"docs/engineering/sequence-diagrams/add_status_line-calls-add_label/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/add_status_line-calls-add_label/sequence-diagram.html","anchor":"engineering:runtime-flow:add_status_line:add_label:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了把 apps/esp32_lvgl 的静态依赖还原成一段可读协作:add_status_line -\u003e add_label。重点判断这是 import、调用、引用还是消息方向,以及它是否真的影响运行路径。"},{"id":"engineering:diagram:sequence:add_u32_line-calls-add_label","kind":"sequence","title":"动态协作:add_u32_line 调用 add_label","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_u32_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_label。","docPath":"docs/engineering/sequence-diagrams/add_u32_line-calls-add_label/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/add_u32_line-calls-add_label/sequence-diagram.html","anchor":"engineering:runtime-flow:add_u32_line:add_label:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了把 apps/esp32_lvgl 的静态依赖还原成一段可读协作:add_u32_line -\u003e add_label。重点判断这是 import、调用、引用还是消息方向,以及它是否真的影响运行路径。"},{"id":"engineering:diagram:sequence:add_hex_line-calls-add_status_line","kind":"sequence","title":"动态协作:add_hex_line 调用 add_status_line","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_hex_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_status_line。","docPath":"docs/engineering/sequence-diagrams/add_hex_line-calls-add_status_line/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/add_hex_line-calls-add_status_line/sequence-diagram.html","anchor":"engineering:runtime-flow:add_hex_line:add_status_line:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了把 apps/esp32_lvgl 的静态依赖还原成一段可读协作add_hex_line -\u003e add_status_line。重点判断这是 import、调用、引用还是消息方向,以及它是否真的影响运行路径。"},{"id":"engineering:diagram:sequence:companion_enter-calls-add_label","kind":"sequence","title":"动态协作:companion_enter 调用 add_label","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 companion_enter calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_label。","docPath":"docs/engineering/sequence-diagrams/companion_enter-calls-add_label/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/companion_enter-calls-add_label/sequence-diagram.html","anchor":"engineering:runtime-flow:companion_enter:add_label:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了把 apps/esp32_lvgl 的静态依赖还原成一段可读协作:companion_enter -\u003e add_label。重点判断这是 import、调用、引用还是消息方向,以及它是否真的影响运行路径。"}]},{"id":"engineering:diagram:package:apps-linux_cardputer_zero:element:boards","mermaidId":"dependency_2","label":"boards","kind":"package","anchor":"engineering:package:boards","summary":"boards 是 apps/linux_cardputer_zero 当前观察到的外部技术边界依赖;它说明当前模块不是孤立实现,而是需要借助另一组工程能力完成职责。","role":"跨模块技术依赖边界:当前 package 需要另一个 package/module 提供能力、契约、配置或运行支撑。","whyItExists":"本地仓库证据在 apps/linux_cardputer_zero 与 boards 之间观察到跨模块事实关系,因此该依赖被放入 Package Diagram,而不是只藏在代码 import/call 里。","relationshipMeaning":"apps/linux_cardputer_zero -\u003e boards 表示本地仓库证据观察到跨模块关系;它解释技术依赖方向,但不直接证明业务流程。","drilldownIntent":"下钻 boards 可以查看它自己的 Package Diagram,再继续进入其组件、结构、sequence 或热点,判断当前依赖究竟落在入口、运行时、工具注册、模型适配还是基础设施边界。","businessRelevance":"apps/linux_cardputer_zero 如果承载用户可见能力,那么对 boards 的依赖可能是该能力的运行机制、扩展点或治理约束。该业务关联需要由组织/过程模型的 Use Case 证据确认。","changeImpact":"修改 boards 的公共接口、路径或运行方式,可能让 apps/linux_cardputer_zero 的调用链、打包入口、agent 工作流或 UI 行为发生连锁变化。","evidence":["dependency edge: apps/linux_cardputer_zero -\u003e boards","boards/cardputerzero/board_facts.h","boards/cardputerzero/BOARD.md","boards/gat562_mesh_evb_pro.json","boards/gat562_mesh_evb_pro/board_facts.h","boards/gat562_mesh_evb_pro/BOARD.md","boards/gat562_mesh_evb_pro/include/boards/gat562_mesh_evb_pro/board_profile.h","boards/gat562_mesh_evb_pro/include/boards/gat562_mesh_evb_pro/gat562_board.h"],"risks":["跨模块依赖只能证明技术关系,不能直接证明业务关系。","如果该依赖只是因为实现方便而存在,未来变更可能形成边界漂移或隐式公共工具箱。"],"questions":["当前证据尚未证明 apps/linux_cardputer_zero 依赖 boards 与某个 Use Case、runtime command 或配置决策直接相关。","当前依赖方向按仓库事实记录为候选,尚未发现架构决策文档证明它是稳定边界。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:package:boards","kind":"package","title":"模块边界:boards","summary":"解释 boards 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/boards/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/boards/package-diagram.html","anchor":"engineering:package:boards","relation":"parent_boundary","reason":"打开 boards 自己的包级边界,检查 apps/linux_cardputer_zero 依赖它时借用的是运行命令、共享能力、治理工具、模型适配还是基础设施职责。"},{"id":"engineering:diagram:component:boards-makeboardprofile","kind":"component","title":"函数节点:makeBoardProfile","summary":"function 位于 boards/t_echo_lite/include/boards/t_echo_lite/board_profile.h#L188,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/boards-makeboardprofile/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/boards-makeboardprofile/component-diagram.html","anchor":"engineering:component:function:makeboardprofile:boards-t_echo_lite-include-boards-t_echo_lite-board_profile.h:188","relation":"contains","reason":"打开 函数节点:makeBoardProfile 是为了确认 boards 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 boards/t_echo_lite/include/boards/t_echo_lite/board_profile.h,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:boards-pinnum","kind":"component","title":"函数节点:pinNum","summary":"function 位于 boards/t_echo_lite/include/boards/t_echo_lite/board_profile.h#L8,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/boards-pinnum/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/boards-pinnum/component-diagram.html","anchor":"engineering:component:function:pinnum:boards-t_echo_lite-include-boards-t_echo_lite-board_profile.h:8","relation":"contains","reason":"打开 函数节点:pinNum 是为了确认 boards 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 boards/t_echo_lite/include/boards/t_echo_lite/board_profile.h,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:class-structural:boards-gat562_mesh_evb_pro-include-boards","kind":"class_structural","title":"结构协作:结构切片 boards · gat562_mesh_evb_pro/include/boards","summary":"解释 boards/gat562_mesh_evb_pro/include/boards 这一结构切片中类、接口、组件或值对象如何共同承担结构切片 boards中的结构职责;候选对象包括 Gat562Board、SX1262、Sx1262RadioPacketIo、Gat562Board::I2cGuard、GpsRuntime。","docPath":"docs/engineering/class-structural-diagrams/boards-gat562_mesh_evb_pro-include-boards/class-structural-diagram.md","htmlPath":"docs/engineering/class-structural-diagrams/boards-gat562_mesh_evb_pro-include-boards/class-structural-diagram.html","anchor":"engineering:class-structural:boards-gat562_mesh_evb_pro-include-boards","relation":"structural_context","reason":"打开 结构协作:结构切片 boards · gat562_mesh_evb_pro/include/boards 是为了从对象协作角度解释 boards:哪些对象像入口,哪些像编排核心,哪些像适配/共享边界;它帮助判断复杂度来自职责分布,而不只是文件数量。"},{"id":"engineering:diagram:class-structural:boards-t_echo_lite-include-boards","kind":"class_structural","title":"结构协作:结构切片 boards · t_echo_lite/include/boards","summary":"解释 boards/t_echo_lite/include/boards 这一结构切片中类、接口、组件或值对象如何共同承担结构切片 boards中的结构职责;候选对象包括 TEchoLiteBoard、Sx1262RadioPacketIo、TEchoLiteBoard::I2cGuard、GpsRuntime、Module。","docPath":"docs/engineering/class-structural-diagrams/boards-t_echo_lite-include-boards/class-structural-diagram.md","htmlPath":"docs/engineering/class-structural-diagrams/boards-t_echo_lite-include-boards/class-structural-diagram.html","anchor":"engineering:class-structural:boards-t_echo_lite-include-boards","relation":"structural_context","reason":"打开 结构协作:结构切片 boards · t_echo_lite/include/boards 是为了从对象协作角度解释 boards:哪些对象像入口,哪些像编排核心,哪些像适配/共享边界;它帮助判断复杂度来自职责分布,而不只是文件数量。"},{"id":"engineering:diagram:class-structural:boards-tab5-include-boards","kind":"class_structural","title":"结构协作:结构切片 boards · tab5/include/boards","summary":"解释 boards/tab5/include/boards 这一结构切片中类、接口、组件或值对象如何共同承担结构切片 boards中的结构职责;候选对象包括 Tab5Board、Tab5Board::ManagedSystemI2cGuard、Tab5Board::SysI2cGuard、CodecCompat。","docPath":"docs/engineering/class-structural-diagrams/boards-tab5-include-boards/class-structural-diagram.md","htmlPath":"docs/engineering/class-structural-diagrams/boards-tab5-include-boards/class-structural-diagram.html","anchor":"engineering:class-structural:boards-tab5-include-boards","relation":"structural_context","reason":"打开 结构协作:结构切片 boards · tab5/include/boards 是为了从对象协作角度解释 boards:哪些对象像入口,哪些像编排核心,哪些像适配/共享边界;它帮助判断复杂度来自职责分布,而不只是文件数量。"},{"id":"engineering:diagram:class-structural:boards-t_display_p4-include-boards","kind":"class_structural","title":"结构协作:结构切片 boards · t_display_p4/include/boards","summary":"解释 boards/t_display_p4/include/boards 这一结构切片中类、接口、组件或值对象如何共同承担结构切片 boards中的结构职责;候选对象包括 TDisplayP4Board、TDisplayP4Board::ManagedSystemI2cGuard。","docPath":"docs/engineering/class-structural-diagrams/boards-t_display_p4-include-boards/class-structural-diagram.md","htmlPath":"docs/engineering/class-structural-diagrams/boards-t_display_p4-include-boards/class-structural-diagram.html","anchor":"engineering:class-structural:boards-t_display_p4-include-boards","relation":"structural_context","reason":"打开 结构协作:结构切片 boards · t_display_p4/include/boards 是为了从对象协作角度解释 boards:哪些对象像入口,哪些像编排核心,哪些像适配/共享边界;它帮助判断复杂度来自职责分布,而不只是文件数量。"},{"id":"engineering:diagram:class-structural:boards-tlora_pager-include-boards","kind":"class_structural","title":"结构协作:结构切片 boards · tlora_pager/include/boards","summary":"解释 boards/tlora_pager/include/boards 这一结构切片中类、接口、组件或值对象如何共同承担结构切片 boards中的结构职责;候选对象包括 TLoRaPagerBoard、SX1262Access、AppContext。","docPath":"docs/engineering/class-structural-diagrams/boards-tlora_pager-include-boards/class-structural-diagram.md","htmlPath":"docs/engineering/class-structural-diagrams/boards-tlora_pager-include-boards/class-structural-diagram.html","anchor":"engineering:class-structural:boards-tlora_pager-include-boards","relation":"structural_context","reason":"打开 结构协作:结构切片 boards · tlora_pager/include/boards 是为了从对象协作角度解释 boards:哪些对象像入口,哪些像编排核心,哪些像适配/共享边界;它帮助判断复杂度来自职责分布,而不只是文件数量。"},{"id":"engineering:diagram:technical-hotspot:dependency-cluster--boards","kind":"technical_hotspot","title":"依赖簇:boards 技术热点","summary":"该模块依赖多个外部边界,当前按候选技术耦合中心处理;图中只保留仓库证据已经观察到的依赖方向和边界。","docPath":"docs/engineering/technical-hotspots/dependency-cluster--boards/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/dependency-cluster--boards/technical-hotspot.html","anchor":"engineering:hotspot:dependency-cluster:boards","relation":"risk_detail","reason":"查看 依赖簇:boards 技术热点 这个复杂度信号是否会抬高 boards 的阅读、修改、测试或回归成本。"}]}]},{"id":"engineering:diagram:package:apps-linux_sim_shell","kind":"package","title":"模块边界:apps/linux_sim_shell","summary":"解释 apps/linux_sim_shell 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/apps-linux_sim_shell/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/apps-linux_sim_shell/package-diagram.html","anchor":"engineering:package:apps-linux_sim_shell","status":"candidate","confidence":"high","mermaidKind":"flowchart","mermaid":"flowchart LR\n package_node[\"apps/linux_sim_shell\"]\n dependency_1[\"apps/esp32_lvgl\"]\n package_node --\u003e dependency_1","readingGuide":["这张 Package Diagram 以 apps/linux_sim_shell 为中心,展示它作为工程模块边界时观察到的文件规模、符号规模和跨模块依赖。","图中的箭头表示本地仓库证据观察到的跨模块关系,主要用于理解技术依赖方向;它不是业务流程顺序,也不是运行时消息时序。","当前观察到的主要外部依赖包括:apps/esp32_lvgl。"],"technicalAnalysis":["apps/linux_sim_shell 当前包含 15 个文件和 102 个符号,属于软件结构模型识别出的技术组织边界。","跨模块关系呈现为:被其它模块引用或调用 6 次,主动依赖或调用外部模块 12 次,因此它依赖外部模块更多。","当前对外依赖未形成明显异常,但仍应结合具体业务入口判断依赖方向是否稳定。"],"businessRelation":["apps/linux_sim_shell 不是业务故事本身,而是业务能力落地时可能经过的技术边界。","如果组织/过程模型中某个 Use Case 的证据、入口或下钻图落在 apps/linux_sim_shell,该 Use Case 应当反向链接到这张 Package Diagram,说明业务故事由哪个工程模块承载。","当前关联仍是 CANDIDATE:这里只能根据仓库证据解释技术边界,不能替代组织/过程模型对业务故事、参与者和业务目标的确认。"],"governanceNotes":["新增功能时,优先确认它属于该模块的稳定职责,而不是因为调用方便而落入该模块。","保持该模块的依赖方向可解释,避免形成隐式公共工具箱。","当业务 Use Case 文档引用该模块时,应在 Use Case 下钻文档中记录具体入口、调用链或配置证据。"],"coverage":["模块路径:apps/linux_sim_shell","文件数:15","符号数:102","被其他模块依赖或调用:6","依赖或调用外部模块:12"],"evidencePaths":["apps/linux_sim_shell/APP_SHELL_MANIFEST.md","apps/linux_sim_shell/CMakeLists.txt","apps/linux_sim_shell/README.md","apps/linux_sim_shell/src/linux_sim_app_shell.cpp","apps/linux_sim_shell/src/linux_sim_app_shell.h","apps/linux_sim_shell/src/linux_sim_runtime_entry_adoption_probe.cpp","apps/linux_sim_shell/src/linux_sim_runtime_entry_adoption_probe.h","apps/linux_sim_shell/src/linux_sim_runtime_entry.cpp"],"questions":[],"scope":{"packageId":"apps/linux_sim_shell","filePath":"apps/linux_sim_shell"},"drilldowns":[],"elements":[{"id":"engineering:diagram:package:apps-linux_sim_shell:element:apps-linux_sim_shell","mermaidId":"package_node","label":"apps/linux_sim_shell","kind":"package","anchor":"engineering:package:apps-linux_sim_shell","summary":"apps/linux_sim_shell 是当前 Package Diagram 的中心工程边界,用来观察它自身规模、依赖方向和可下钻技术复杂度。","role":"技术组织边界:它把 apps/linux_sim_shell 下的文件、符号和跨模块关系聚合成一个可讨论的工程单元。","whyItExists":"本地仓库证据在 apps/linux_sim_shell 下观察到足够文件、符号或跨模块关系,因此它值得被提升为软件结构模型中的 package 级入口。","relationshipMeaning":"图中从 apps/linux_sim_shell 指向其它节点的箭头表示当前边界依赖外部 package/module;被其他模块依赖或调用 6 次、依赖或调用外部模块 12 次,用于判断它更像稳定复用边界还是编排/桥接边界。","drilldownIntent":"下钻该节点可以继续查看 apps/linux_sim_shell 内的关键组件、结构协作切片、运行链路、部署节点和复杂度热点,从而理解这个工程边界如何承载功能变化。","businessRelevance":"该节点不是业务故事本身,但组织/过程模型中落到 apps/linux_sim_shell 的 Use Case 可以把这里作为技术承载边界引用。当前关联仍是 CANDIDATE。","changeImpact":"修改 apps/linux_sim_shell 的公共入口、依赖方向或目录边界,可能影响引用它的组件图、sequence 片段、部署配置和相关业务故事的验证路径。","evidence":["package scope: apps/linux_sim_shell","模块路径:apps/linux_sim_shell","文件数:15","符号数:102","被其他模块依赖或调用:6","依赖或调用外部模块:12","apps/linux_sim_shell/APP_SHELL_MANIFEST.md","apps/linux_sim_shell/CMakeLists.txt"],"risks":["如果只把该节点当作目录名,会遗漏它作为稳定工程边界的职责判断。","如果依赖外部模块的迹象持续增加,可能说明该边界承担过多编排或桥接职责。"],"questions":["当前仓库证据尚未把该 package 明确 Trace 到某个 Use Case;因此业务关联保持候选。"],"confidence":"high","drilldowns":[]},{"id":"engineering:diagram:package:apps-linux_sim_shell:element:apps-esp32_lvgl","mermaidId":"dependency_1","label":"apps/esp32_lvgl","kind":"package","anchor":"engineering:package:apps-esp32_lvgl","summary":"apps/esp32_lvgl 是 apps/linux_sim_shell 当前观察到的外部技术边界依赖;它说明当前模块不是孤立实现,而是需要借助另一组工程能力完成职责。","role":"跨模块技术依赖边界:当前 package 需要另一个 package/module 提供能力、契约、配置或运行支撑。","whyItExists":"本地仓库证据在 apps/linux_sim_shell 与 apps/esp32_lvgl 之间观察到跨模块事实关系,因此该依赖被放入 Package Diagram,而不是只藏在代码 import/call 里。","relationshipMeaning":"apps/linux_sim_shell -\u003e apps/esp32_lvgl 表示本地仓库证据观察到跨模块关系;它解释技术依赖方向,但不直接证明业务流程。","drilldownIntent":"下钻 apps/esp32_lvgl 可以查看它自己的 Package Diagram,再继续进入其组件、结构、sequence 或热点,判断当前依赖究竟落在入口、运行时、工具注册、模型适配还是基础设施边界。","businessRelevance":"apps/linux_sim_shell 如果承载用户可见能力,那么对 apps/esp32_lvgl 的依赖可能是该能力的运行机制、扩展点或治理约束。该业务关联需要由组织/过程模型的 Use Case 证据确认。","changeImpact":"修改 apps/esp32_lvgl 的公共接口、路径或运行方式,可能让 apps/linux_sim_shell 的调用链、打包入口、agent 工作流或 UI 行为发生连锁变化。","evidence":["dependency edge: apps/linux_sim_shell -\u003e apps/esp32_lvgl","apps/esp32_lvgl/APP_SHELL_MANIFEST.md","apps/esp32_lvgl/CMakeLists.txt","apps/esp32_lvgl/library.json","apps/esp32_lvgl/README.md","apps/esp32_lvgl/src/esp32_lvgl_app_shell.cpp","apps/esp32_lvgl/src/esp32_lvgl_app_shell.h","apps/esp32_lvgl/src/esp32_lvgl_arduino_app_registry.cpp"],"risks":["跨模块依赖只能证明技术关系,不能直接证明业务关系。","如果该依赖只是因为实现方便而存在,未来变更可能形成边界漂移或隐式公共工具箱。"],"questions":["当前证据尚未证明 apps/linux_sim_shell 依赖 apps/esp32_lvgl 与某个 Use Case、runtime command 或配置决策直接相关。","当前依赖方向按仓库事实记录为候选,尚未发现架构决策文档证明它是稳定边界。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:package:apps-esp32_lvgl","kind":"package","title":"模块边界:apps/esp32_lvgl","summary":"解释 apps/esp32_lvgl 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/apps-esp32_lvgl/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/apps-esp32_lvgl/package-diagram.html","anchor":"engineering:package:apps-esp32_lvgl","relation":"parent_boundary","reason":"打开 apps/esp32_lvgl 自己的包级边界,检查 apps/linux_sim_shell 依赖它时借用的是运行命令、共享能力、治理工具、模型适配还是基础设施职责。"},{"id":"engineering:diagram:component:apps-esp32_lvgl-main","kind":"component","title":"函数节点:main","summary":"function 位于 apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp#L33,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-main/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-main/component-diagram.html","anchor":"engineering:component:function:main:apps-esp32_lvgl-tests-esp32_lvgl_sd_coredump_contract_smoke.cpp:33","relation":"contains","reason":"打开 函数节点:main 是为了确认 apps/esp32_lvgl 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:apps-esp32_lvgl-contains","kind":"component","title":"函数节点:contains","summary":"function 位于 apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp#L19,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-contains/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-contains/component-diagram.html","anchor":"engineering:component:function:contains:apps-esp32_lvgl-tests-esp32_lvgl_sd_coredump_contract_smoke.cpp:19","relation":"contains","reason":"打开 函数节点:contains 是为了确认 apps/esp32_lvgl 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:apps-esp32_lvgl-companion_enter","kind":"component","title":"函数节点:companion_enter","summary":"function 位于 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp#L72,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-companion_enter/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-companion_enter/component-diagram.html","anchor":"engineering:component:function:companion_enter:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:72","relation":"contains","reason":"打开 函数节点:companion_enter 是为了确认 apps/esp32_lvgl 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:sequence:tick-calls-log_loop_interval","kind":"sequence","title":"动态协作:tick 调用 log_loop_interval","summary":"apps/esp32_lvgl/src/esp32_lvgl_arduino_loop_runtime.cpp 中的 tick calls apps/esp32_lvgl/src/esp32_lvgl_arduino_loop_runtime.cpp 中的 log_loop_interval。","docPath":"docs/engineering/sequence-diagrams/tick-calls-log_loop_interval/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/tick-calls-log_loop_interval/sequence-diagram.html","anchor":"engineering:runtime-flow:tick:log_loop_interval:apps-esp32_lvgl-src-esp32_lvgl_arduino_loop_runtime.cpp:apps-esp32_lvgl-src-esp32_lvgl_arduino_loop_runtime.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了把 apps/esp32_lvgl 的静态依赖还原成一段可读协作:tick -\u003e log_loop_interval。重点判断这是 import、调用、引用还是消息方向,以及它是否真的影响运行路径。"},{"id":"engineering:diagram:sequence:add_status_line-calls-add_label","kind":"sequence","title":"动态协作:add_status_line 调用 add_label","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_status_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_label。","docPath":"docs/engineering/sequence-diagrams/add_status_line-calls-add_label/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/add_status_line-calls-add_label/sequence-diagram.html","anchor":"engineering:runtime-flow:add_status_line:add_label:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了把 apps/esp32_lvgl 的静态依赖还原成一段可读协作:add_status_line -\u003e add_label。重点判断这是 import、调用、引用还是消息方向,以及它是否真的影响运行路径。"},{"id":"engineering:diagram:sequence:add_u32_line-calls-add_label","kind":"sequence","title":"动态协作:add_u32_line 调用 add_label","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_u32_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_label。","docPath":"docs/engineering/sequence-diagrams/add_u32_line-calls-add_label/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/add_u32_line-calls-add_label/sequence-diagram.html","anchor":"engineering:runtime-flow:add_u32_line:add_label:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了把 apps/esp32_lvgl 的静态依赖还原成一段可读协作:add_u32_line -\u003e add_label。重点判断这是 import、调用、引用还是消息方向,以及它是否真的影响运行路径。"},{"id":"engineering:diagram:sequence:add_hex_line-calls-add_status_line","kind":"sequence","title":"动态协作:add_hex_line 调用 add_status_line","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_hex_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_status_line。","docPath":"docs/engineering/sequence-diagrams/add_hex_line-calls-add_status_line/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/add_hex_line-calls-add_status_line/sequence-diagram.html","anchor":"engineering:runtime-flow:add_hex_line:add_status_line:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了把 apps/esp32_lvgl 的静态依赖还原成一段可读协作:add_hex_line -\u003e add_status_line。重点判断这是 import、调用、引用还是消息方向,以及它是否真的影响运行路径。"},{"id":"engineering:diagram:sequence:companion_enter-calls-add_label","kind":"sequence","title":"动态协作:companion_enter 调用 add_label","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 companion_enter calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_label。","docPath":"docs/engineering/sequence-diagrams/companion_enter-calls-add_label/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/companion_enter-calls-add_label/sequence-diagram.html","anchor":"engineering:runtime-flow:companion_enter:add_label:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了把 apps/esp32_lvgl 的静态依赖还原成一段可读协作:companion_enter -\u003e add_label。重点判断这是 import、调用、引用还是消息方向,以及它是否真的影响运行路径。"}]}]},{"id":"engineering:diagram:package:builds","kind":"package","title":"模块边界:builds","summary":"解释 builds 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/builds/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/builds/package-diagram.html","anchor":"engineering:package:builds","status":"candidate","confidence":"high","mermaidKind":"flowchart","mermaid":"flowchart LR\n package_node[\"builds\"]\n dependency_1[\"apps/esp32_lvgl\"]\n package_node --\u003e dependency_1\n dependency_2[\"apps/nrf52_node\"]\n package_node --\u003e dependency_2","readingGuide":["这张 Package Diagram 以 builds 为中心,展示它作为工程模块边界时观察到的文件规模、符号规模和跨模块依赖。","图中的箭头表示本地仓库证据观察到的跨模块关系,主要用于理解技术依赖方向;它不是业务流程顺序,也不是运行时消息时序。","当前观察到的主要外部依赖包括:apps/esp32_lvgl、apps/nrf52_node。"],"technicalAnalysis":["builds 当前包含 34 个文件和 46 个符号,属于软件结构模型识别出的技术组织边界。","跨模块关系呈现为:被其它模块引用或调用 0 次,主动依赖或调用外部模块 5 次,因此它依赖外部模块更多。","当前对外依赖未形成明显异常,但仍应结合具体业务入口判断依赖方向是否稳定。"],"businessRelation":["builds 不是业务故事本身,而是业务能力落地时可能经过的技术边界。","如果组织/过程模型中某个 Use Case 的证据、入口或下钻图落在 builds,该 Use Case 应当反向链接到这张 Package Diagram,说明业务故事由哪个工程模块承载。","当前关联仍是 CANDIDATE:这里只能根据仓库证据解释技术边界,不能替代组织/过程模型对业务故事、参与者和业务目标的确认。"],"governanceNotes":["新增功能时,优先确认它属于该模块的稳定职责,而不是因为调用方便而落入该模块。","保持该模块的依赖方向可解释,避免形成隐式公共工具箱。","当业务 Use Case 文档引用该模块时,应在 Use Case 下钻文档中记录具体入口、调用链或配置证据。"],"coverage":["模块路径:builds","文件数:34","符号数:46","被其他模块依赖或调用:0","依赖或调用外部模块:5"],"evidencePaths":["builds/esp_idf/CMakeLists.txt","builds/esp_idf/ESP_IDF_COMPONENT_SOURCES.cmake","builds/esp_idf/main/CMakeLists.txt","builds/esp_idf/main/idf_component.yml","builds/esp_idf/main/idf_entry.cpp","builds/esp_idf/README.md","builds/esp_idf/target_profiles.cmake","builds/esp_idf/targets/README.md"],"questions":[],"scope":{"packageId":"builds","filePath":"builds"},"drilldowns":[],"elements":[{"id":"engineering:diagram:package:builds:element:builds","mermaidId":"package_node","label":"builds","kind":"package","anchor":"engineering:package:builds","summary":"builds 是当前 Package Diagram 的中心工程边界,用来观察它自身规模、依赖方向和可下钻技术复杂度。","role":"技术组织边界:它把 builds 下的文件、符号和跨模块关系聚合成一个可讨论的工程单元。","whyItExists":"本地仓库证据在 builds 下观察到足够文件、符号或跨模块关系,因此它值得被提升为软件结构模型中的 package 级入口。","relationshipMeaning":"图中从 builds 指向其它节点的箭头表示当前边界依赖外部 package/module;被其他模块依赖或调用 0 次、依赖或调用外部模块 5 次,用于判断它更像稳定复用边界还是编排/桥接边界。","drilldownIntent":"下钻该节点可以继续查看 builds 内的关键组件、结构协作切片、运行链路、部署节点和复杂度热点,从而理解这个工程边界如何承载功能变化。","businessRelevance":"该节点不是业务故事本身,但组织/过程模型中落到 builds 的 Use Case 可以把这里作为技术承载边界引用。当前关联仍是 CANDIDATE。","changeImpact":"修改 builds 的公共入口、依赖方向或目录边界,可能影响引用它的组件图、sequence 片段、部署配置和相关业务故事的验证路径。","evidence":["package scope: builds","模块路径:builds","文件数:34","符号数:46","被其他模块依赖或调用:0","依赖或调用外部模块:5","builds/esp_idf/CMakeLists.txt","builds/esp_idf/ESP_IDF_COMPONENT_SOURCES.cmake"],"risks":["如果只把该节点当作目录名,会遗漏它作为稳定工程边界的职责判断。","如果依赖外部模块的迹象持续增加,可能说明该边界承担过多编排或桥接职责。"],"questions":["当前仓库证据尚未把该 package 明确 Trace 到某个 Use Case;因此业务关联保持候选。"],"confidence":"high","drilldowns":[]},{"id":"engineering:diagram:package:builds:element:apps-esp32_lvgl","mermaidId":"dependency_1","label":"apps/esp32_lvgl","kind":"package","anchor":"engineering:package:apps-esp32_lvgl","summary":"apps/esp32_lvgl 是 builds 当前观察到的外部技术边界依赖;它说明当前模块不是孤立实现,而是需要借助另一组工程能力完成职责。","role":"跨模块技术依赖边界:当前 package 需要另一个 package/module 提供能力、契约、配置或运行支撑。","whyItExists":"本地仓库证据在 builds 与 apps/esp32_lvgl 之间观察到跨模块事实关系,因此该依赖被放入 Package Diagram,而不是只藏在代码 import/call 里。","relationshipMeaning":"builds -\u003e apps/esp32_lvgl 表示本地仓库证据观察到跨模块关系;它解释技术依赖方向,但不直接证明业务流程。","drilldownIntent":"下钻 apps/esp32_lvgl 可以查看它自己的 Package Diagram,再继续进入其组件、结构、sequence 或热点,判断当前依赖究竟落在入口、运行时、工具注册、模型适配还是基础设施边界。","businessRelevance":"builds 如果承载用户可见能力,那么对 apps/esp32_lvgl 的依赖可能是该能力的运行机制、扩展点或治理约束。该业务关联需要由组织/过程模型的 Use Case 证据确认。","changeImpact":"修改 apps/esp32_lvgl 的公共接口、路径或运行方式,可能让 builds 的调用链、打包入口、agent 工作流或 UI 行为发生连锁变化。","evidence":["dependency edge: builds -\u003e apps/esp32_lvgl","apps/esp32_lvgl/APP_SHELL_MANIFEST.md","apps/esp32_lvgl/CMakeLists.txt","apps/esp32_lvgl/library.json","apps/esp32_lvgl/README.md","apps/esp32_lvgl/src/esp32_lvgl_app_shell.cpp","apps/esp32_lvgl/src/esp32_lvgl_app_shell.h","apps/esp32_lvgl/src/esp32_lvgl_arduino_app_registry.cpp"],"risks":["跨模块依赖只能证明技术关系,不能直接证明业务关系。","如果该依赖只是因为实现方便而存在,未来变更可能形成边界漂移或隐式公共工具箱。"],"questions":["当前证据尚未证明 builds 依赖 apps/esp32_lvgl 与某个 Use Case、runtime command 或配置决策直接相关。","当前依赖方向按仓库事实记录为候选,尚未发现架构决策文档证明它是稳定边界。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:package:apps-esp32_lvgl","kind":"package","title":"模块边界:apps/esp32_lvgl","summary":"解释 apps/esp32_lvgl 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/apps-esp32_lvgl/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/apps-esp32_lvgl/package-diagram.html","anchor":"engineering:package:apps-esp32_lvgl","relation":"parent_boundary","reason":"打开 apps/esp32_lvgl 自己的包级边界,检查 builds 依赖它时借用的是运行命令、共享能力、治理工具、模型适配还是基础设施职责。"},{"id":"engineering:diagram:component:apps-esp32_lvgl-main","kind":"component","title":"函数节点:main","summary":"function 位于 apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp#L33,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-main/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-main/component-diagram.html","anchor":"engineering:component:function:main:apps-esp32_lvgl-tests-esp32_lvgl_sd_coredump_contract_smoke.cpp:33","relation":"contains","reason":"打开 函数节点:main 是为了确认 apps/esp32_lvgl 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:apps-esp32_lvgl-contains","kind":"component","title":"函数节点:contains","summary":"function 位于 apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp#L19,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-contains/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-contains/component-diagram.html","anchor":"engineering:component:function:contains:apps-esp32_lvgl-tests-esp32_lvgl_sd_coredump_contract_smoke.cpp:19","relation":"contains","reason":"打开 函数节点:contains 是为了确认 apps/esp32_lvgl 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:component:apps-esp32_lvgl-companion_enter","kind":"component","title":"函数节点:companion_enter","summary":"function 位于 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp#L72,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-companion_enter/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-companion_enter/component-diagram.html","anchor":"engineering:component:function:companion_enter:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:72","relation":"contains","reason":"打开 函数节点:companion_enter 是为了确认 apps/esp32_lvgl 内部哪一个具体对象承担入口、编排、适配、契约或共享职责。重点查看代码锚点 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp,以及它的被引用/调用关系和对外依赖/调用关系是否意味着变更会扩散。"},{"id":"engineering:diagram:sequence:tick-calls-log_loop_interval","kind":"sequence","title":"动态协作:tick 调用 log_loop_interval","summary":"apps/esp32_lvgl/src/esp32_lvgl_arduino_loop_runtime.cpp 中的 tick calls apps/esp32_lvgl/src/esp32_lvgl_arduino_loop_runtime.cpp 中的 log_loop_interval。","docPath":"docs/engineering/sequence-diagrams/tick-calls-log_loop_interval/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/tick-calls-log_loop_interval/sequence-diagram.html","anchor":"engineering:runtime-flow:tick:log_loop_interval:apps-esp32_lvgl-src-esp32_lvgl_arduino_loop_runtime.cpp:apps-esp32_lvgl-src-esp32_lvgl_arduino_loop_runtime.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了把 apps/esp32_lvgl 的静态依赖还原成一段可读协作:tick -\u003e log_loop_interval。重点判断这是 import、调用、引用还是消息方向,以及它是否真的影响运行路径。"},{"id":"engineering:diagram:sequence:add_status_line-calls-add_label","kind":"sequence","title":"动态协作:add_status_line 调用 add_label","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_status_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_label。","docPath":"docs/engineering/sequence-diagrams/add_status_line-calls-add_label/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/add_status_line-calls-add_label/sequence-diagram.html","anchor":"engineering:runtime-flow:add_status_line:add_label:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了把 apps/esp32_lvgl 的静态依赖还原成一段可读协作:add_status_line -\u003e add_label。重点判断这是 import、调用、引用还是消息方向,以及它是否真的影响运行路径。"},{"id":"engineering:diagram:sequence:add_u32_line-calls-add_label","kind":"sequence","title":"动态协作:add_u32_line 调用 add_label","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_u32_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_label。","docPath":"docs/engineering/sequence-diagrams/add_u32_line-calls-add_label/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/add_u32_line-calls-add_label/sequence-diagram.html","anchor":"engineering:runtime-flow:add_u32_line:add_label:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了把 apps/esp32_lvgl 的静态依赖还原成一段可读协作:add_u32_line -\u003e add_label。重点判断这是 import、调用、引用还是消息方向,以及它是否真的影响运行路径。"},{"id":"engineering:diagram:sequence:add_hex_line-calls-add_status_line","kind":"sequence","title":"动态协作:add_hex_line 调用 add_status_line","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_hex_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_status_line。","docPath":"docs/engineering/sequence-diagrams/add_hex_line-calls-add_status_line/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/add_hex_line-calls-add_status_line/sequence-diagram.html","anchor":"engineering:runtime-flow:add_hex_line:add_status_line:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了把 apps/esp32_lvgl 的静态依赖还原成一段可读协作:add_hex_line -\u003e add_status_line。重点判断这是 import、调用、引用还是消息方向,以及它是否真的影响运行路径。"},{"id":"engineering:diagram:sequence:companion_enter-calls-add_label","kind":"sequence","title":"动态协作:companion_enter 调用 add_label","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 companion_enter calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_label。","docPath":"docs/engineering/sequence-diagrams/companion_enter-calls-add_label/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/companion_enter-calls-add_label/sequence-diagram.html","anchor":"engineering:runtime-flow:companion_enter:add_label:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了把 apps/esp32_lvgl 的静态依赖还原成一段可读协作:companion_enter -\u003e add_label。重点判断这是 import、调用、引用还是消息方向,以及它是否真的影响运行路径。"}]},{"id":"engineering:diagram:package:builds:element:apps-nrf52_node","mermaidId":"dependency_2","label":"apps/nrf52_node","kind":"package","anchor":"engineering:package:apps-nrf52_node","summary":"apps/nrf52_node 是 builds 当前观察到的外部技术边界依赖;它说明当前模块不是孤立实现,而是需要借助另一组工程能力完成职责。","role":"跨模块技术依赖边界:当前 package 需要另一个 package/module 提供能力、契约、配置或运行支撑。","whyItExists":"本地仓库证据在 builds 与 apps/nrf52_node 之间观察到跨模块事实关系,因此该依赖被放入 Package Diagram,而不是只藏在代码 import/call 里。","relationshipMeaning":"builds -\u003e apps/nrf52_node 表示本地仓库证据观察到跨模块关系;它解释技术依赖方向,但不直接证明业务流程。","drilldownIntent":"下钻 apps/nrf52_node 可以查看它自己的 Package Diagram,再继续进入其组件、结构、sequence 或热点,判断当前依赖究竟落在入口、运行时、工具注册、模型适配还是基础设施边界。","businessRelevance":"builds 如果承载用户可见能力,那么对 apps/nrf52_node 的依赖可能是该能力的运行机制、扩展点或治理约束。该业务关联需要由组织/过程模型的 Use Case 证据确认。","changeImpact":"修改 apps/nrf52_node 的公共接口、路径或运行方式,可能让 builds 的调用链、打包入口、agent 工作流或 UI 行为发生连锁变化。","evidence":["dependency edge: builds -\u003e apps/nrf52_node","apps/nrf52_node/APP_SHELL_MANIFEST.md","apps/nrf52_node/library.json","apps/nrf52_node/README.md","apps/nrf52_node/src/nrf52_node_app_facade_runtime.cpp","apps/nrf52_node/src/nrf52_node_app_facade_runtime.h","apps/nrf52_node/src/nrf52_node_app_runtime_access.cpp","apps/nrf52_node/src/nrf52_node_app_runtime_access.h"],"risks":["跨模块依赖只能证明技术关系,不能直接证明业务关系。","如果该依赖只是因为实现方便而存在,未来变更可能形成边界漂移或隐式公共工具箱。"],"questions":["当前证据尚未证明 builds 依赖 apps/nrf52_node 与某个 Use Case、runtime command 或配置决策直接相关。","当前依赖方向按仓库事实记录为候选,尚未发现架构决策文档证明它是稳定边界。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:package:apps-nrf52_node","kind":"package","title":"模块边界:apps/nrf52_node","summary":"解释 apps/nrf52_node 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/apps-nrf52_node/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/apps-nrf52_node/package-diagram.html","anchor":"engineering:package:apps-nrf52_node","relation":"parent_boundary","reason":"打开 apps/nrf52_node 自己的包级边界,检查 builds 依赖它时借用的是运行命令、共享能力、治理工具、模型适配还是基础设施职责。"}]}]},{"id":"engineering:diagram:package:images","kind":"package","title":"模块边界:images","summary":"解释 images 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/images/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/images/package-diagram.html","anchor":"engineering:package:images","status":"candidate","confidence":"high","mermaidKind":"flowchart","mermaid":"flowchart LR\n package_node[\"images\"]\n package_node --- isolated[\"未观察到跨模块依赖\"]","readingGuide":["这张 Package Diagram 以 images 为中心,展示它作为工程模块边界时观察到的文件规模、符号规模和跨模块依赖。","图中的箭头表示本地仓库证据观察到的跨模块关系,主要用于理解技术依赖方向;它不是业务流程顺序,也不是运行时消息时序。","当前没有观察到明确的外部模块依赖,这可能表示模块相对独立,也可能表示扫描粒度尚不足。"],"technicalAnalysis":["images 当前包含 36 个文件和 36 个符号,属于软件结构模型识别出的技术组织边界。","跨模块关系呈现为:被其它模块引用或调用 0 次,主动依赖或调用外部模块 0 次,因此它复用迹象和外部协作迹象相对接近。","当前对外依赖未形成明显异常,但仍应结合具体业务入口判断依赖方向是否稳定。"],"businessRelation":["images 不是业务故事本身,而是业务能力落地时可能经过的技术边界。","如果组织/过程模型中某个 Use Case 的证据、入口或下钻图落在 images,该 Use Case 应当反向链接到这张 Package Diagram,说明业务故事由哪个工程模块承载。","当前关联仍是 CANDIDATE:这里只能根据仓库证据解释技术边界,不能替代组织/过程模型对业务故事、参与者和业务目标的确认。"],"governanceNotes":["新增功能时,优先确认它属于该模块的稳定职责,而不是因为调用方便而落入该模块。","保持该模块的依赖方向可解释,避免形成隐式公共工具箱。","当业务 Use Case 文档引用该模块时,应在 Use Case 下钻文档中记录具体入口、调用链或配置证据。"],"coverage":["模块路径:images","文件数:36","符号数:36","被其他模块依赖或调用:0","依赖或调用外部模块:0"],"evidencePaths":["images/alert.png","images/aprs.png","images/AreaCleared.png","images/BaseCamp.png","images/ble_topbar.png","images/Chat.png","images/contract.png","images/ext.png"],"questions":["当前仓库证据没有观察到跨模块依赖;因此该模块暂按相对独立边界处理,置信度保持为候选。"],"scope":{"packageId":"images","filePath":"images"},"drilldowns":[],"elements":[{"id":"engineering:diagram:package:images:element:images","mermaidId":"package_node","label":"images","kind":"package","anchor":"engineering:package:images","summary":"images 是当前 Package Diagram 的中心工程边界,用来观察它自身规模、依赖方向和可下钻技术复杂度。","role":"技术组织边界:它把 images 下的文件、符号和跨模块关系聚合成一个可讨论的工程单元。","whyItExists":"本地仓库证据在 images 下观察到足够文件、符号或跨模块关系,因此它值得被提升为软件结构模型中的 package 级入口。","relationshipMeaning":"图中从 images 指向其它节点的箭头表示当前边界依赖外部 package/module;被其他模块依赖或调用 0 次、依赖或调用外部模块 0 次,用于判断它更像稳定复用边界还是编排/桥接边界。","drilldownIntent":"下钻该节点可以继续查看 images 内的关键组件、结构协作切片、运行链路、部署节点和复杂度热点,从而理解这个工程边界如何承载功能变化。","businessRelevance":"该节点不是业务故事本身,但组织/过程模型中落到 images 的 Use Case 可以把这里作为技术承载边界引用。当前关联仍是 CANDIDATE。","changeImpact":"修改 images 的公共入口、依赖方向或目录边界,可能影响引用它的组件图、sequence 片段、部署配置和相关业务故事的验证路径。","evidence":["package scope: images","模块路径:images","文件数:36","符号数:36","被其他模块依赖或调用:0","依赖或调用外部模块:0","images/alert.png","images/aprs.png"],"risks":["如果只把该节点当作目录名,会遗漏它作为稳定工程边界的职责判断。","如果依赖外部模块的迹象持续增加,可能说明该边界承担过多编排或桥接职责。"],"questions":["当前仓库证据没有观察到跨模块依赖;因此该模块暂按相对独立边界处理,置信度保持为候选。"],"confidence":"high","drilldowns":[]}]},{"id":"engineering:diagram:package:cmake","kind":"package","title":"模块边界:cmake","summary":"解释 cmake 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/cmake/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/cmake/package-diagram.html","anchor":"engineering:package:cmake","status":"candidate","confidence":"high","mermaidKind":"flowchart","mermaid":"flowchart LR\n package_node[\"cmake\"]\n package_node --- isolated[\"未观察到跨模块依赖\"]","readingGuide":["这张 Package Diagram 以 cmake 为中心,展示它作为工程模块边界时观察到的文件规模、符号规模和跨模块依赖。","图中的箭头表示本地仓库证据观察到的跨模块关系,主要用于理解技术依赖方向;它不是业务流程顺序,也不是运行时消息时序。","当前没有观察到明确的外部模块依赖,这可能表示模块相对独立,也可能表示扫描粒度尚不足。"],"technicalAnalysis":["cmake 当前包含 2 个文件和 2 个符号,属于软件结构模型识别出的技术组织边界。","跨模块关系呈现为:被其它模块引用或调用 0 次,主动依赖或调用外部模块 0 次,因此它复用迹象和外部协作迹象相对接近。","当前对外依赖未形成明显异常,但仍应结合具体业务入口判断依赖方向是否稳定。"],"businessRelation":["cmake 不是业务故事本身,而是业务能力落地时可能经过的技术边界。","如果组织/过程模型中某个 Use Case 的证据、入口或下钻图落在 cmake,该 Use Case 应当反向链接到这张 Package Diagram,说明业务故事由哪个工程模块承载。","当前关联仍是 CANDIDATE:这里只能根据仓库证据解释技术边界,不能替代组织/过程模型对业务故事、参与者和业务目标的确认。"],"governanceNotes":["新增功能时,优先确认它属于该模块的稳定职责,而不是因为调用方便而落入该模块。","保持该模块的依赖方向可解释,避免形成隐式公共工具箱。","当业务 Use Case 文档引用该模块时,应在 Use Case 下钻文档中记录具体入口、调用链或配置证据。"],"coverage":["模块路径:cmake","文件数:2","符号数:2","被其他模块依赖或调用:0","依赖或调用外部模块:0"],"evidencePaths":["cmake/TrailMateLinuxSources.cmake","cmake/TrailMateUxPacks.cmake"],"questions":["当前仓库证据没有观察到跨模块依赖;因此该模块暂按相对独立边界处理,置信度保持为候选。"],"scope":{"packageId":"cmake","filePath":"cmake"},"drilldowns":[],"elements":[{"id":"engineering:diagram:package:cmake:element:cmake","mermaidId":"package_node","label":"cmake","kind":"package","anchor":"engineering:package:cmake","summary":"cmake 是当前 Package Diagram 的中心工程边界,用来观察它自身规模、依赖方向和可下钻技术复杂度。","role":"技术组织边界:它把 cmake 下的文件、符号和跨模块关系聚合成一个可讨论的工程单元。","whyItExists":"本地仓库证据在 cmake 下观察到足够文件、符号或跨模块关系,因此它值得被提升为软件结构模型中的 package 级入口。","relationshipMeaning":"图中从 cmake 指向其它节点的箭头表示当前边界依赖外部 package/module;被其他模块依赖或调用 0 次、依赖或调用外部模块 0 次,用于判断它更像稳定复用边界还是编排/桥接边界。","drilldownIntent":"下钻该节点可以继续查看 cmake 内的关键组件、结构协作切片、运行链路、部署节点和复杂度热点,从而理解这个工程边界如何承载功能变化。","businessRelevance":"该节点不是业务故事本身,但组织/过程模型中落到 cmake 的 Use Case 可以把这里作为技术承载边界引用。当前关联仍是 CANDIDATE。","changeImpact":"修改 cmake 的公共入口、依赖方向或目录边界,可能影响引用它的组件图、sequence 片段、部署配置和相关业务故事的验证路径。","evidence":["package scope: cmake","模块路径:cmake","文件数:2","符号数:2","被其他模块依赖或调用:0","依赖或调用外部模块:0","cmake/TrailMateLinuxSources.cmake","cmake/TrailMateUxPacks.cmake"],"risks":["如果只把该节点当作目录名,会遗漏它作为稳定工程边界的职责判断。","如果依赖外部模块的迹象持续增加,可能说明该边界承担过多编排或桥接职责。"],"questions":["当前仓库证据没有观察到跨模块依赖;因此该模块暂按相对独立边界处理,置信度保持为候选。"],"confidence":"high","drilldowns":[]}]},{"id":"engineering:diagram:package:apps-readme-md","kind":"package","title":"模块边界:apps/README.md","summary":"解释 apps/README.md 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/apps-readme-md/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/apps-readme-md/package-diagram.html","anchor":"engineering:package:apps-readme.md","status":"candidate","confidence":"high","mermaidKind":"flowchart","mermaid":"flowchart LR\n package_node[\"apps/README.md\"]\n package_node --- isolated[\"未观察到跨模块依赖\"]","readingGuide":["这张 Package Diagram 以 apps/README.md 为中心,展示它作为工程模块边界时观察到的文件规模、符号规模和跨模块依赖。","图中的箭头表示本地仓库证据观察到的跨模块关系,主要用于理解技术依赖方向;它不是业务流程顺序,也不是运行时消息时序。","当前没有观察到明确的外部模块依赖,这可能表示模块相对独立,也可能表示扫描粒度尚不足。"],"technicalAnalysis":["apps/README.md 当前包含 1 个文件和 1 个符号,属于软件结构模型识别出的技术组织边界。","跨模块关系呈现为:被其它模块引用或调用 0 次,主动依赖或调用外部模块 0 次,因此它复用迹象和外部协作迹象相对接近。","当前对外依赖未形成明显异常,但仍应结合具体业务入口判断依赖方向是否稳定。"],"businessRelation":["apps/README.md 不是业务故事本身,而是业务能力落地时可能经过的技术边界。","如果组织/过程模型中某个 Use Case 的证据、入口或下钻图落在 apps/README.md,该 Use Case 应当反向链接到这张 Package Diagram,说明业务故事由哪个工程模块承载。","当前关联仍是 CANDIDATE:这里只能根据仓库证据解释技术边界,不能替代组织/过程模型对业务故事、参与者和业务目标的确认。"],"governanceNotes":["新增功能时,优先确认它属于该模块的稳定职责,而不是因为调用方便而落入该模块。","保持该模块的依赖方向可解释,避免形成隐式公共工具箱。","当业务 Use Case 文档引用该模块时,应在 Use Case 下钻文档中记录具体入口、调用链或配置证据。"],"coverage":["模块路径:apps/README.md","文件数:1","符号数:1","被其他模块依赖或调用:0","依赖或调用外部模块:0"],"evidencePaths":["apps/README.md"],"questions":["当前仓库证据没有观察到跨模块依赖;因此该模块暂按相对独立边界处理,置信度保持为候选。"],"scope":{"packageId":"apps/README.md","filePath":"apps/README.md"},"drilldowns":[],"elements":[{"id":"engineering:diagram:package:apps-readme-md:element:apps-readme.md","mermaidId":"package_node","label":"apps/README.md","kind":"package","anchor":"engineering:package:apps-readme.md","summary":"apps/README.md 是当前 Package Diagram 的中心工程边界,用来观察它自身规模、依赖方向和可下钻技术复杂度。","role":"技术组织边界:它把 apps/README.md 下的文件、符号和跨模块关系聚合成一个可讨论的工程单元。","whyItExists":"本地仓库证据在 apps/README.md 下观察到足够文件、符号或跨模块关系,因此它值得被提升为软件结构模型中的 package 级入口。","relationshipMeaning":"图中从 apps/README.md 指向其它节点的箭头表示当前边界依赖外部 package/module;被其他模块依赖或调用 0 次、依赖或调用外部模块 0 次,用于判断它更像稳定复用边界还是编排/桥接边界。","drilldownIntent":"下钻该节点可以继续查看 apps/README.md 内的关键组件、结构协作切片、运行链路、部署节点和复杂度热点,从而理解这个工程边界如何承载功能变化。","businessRelevance":"该节点不是业务故事本身,但组织/过程模型中落到 apps/README.md 的 Use Case 可以把这里作为技术承载边界引用。当前关联仍是 CANDIDATE。","changeImpact":"修改 apps/README.md 的公共入口、依赖方向或目录边界,可能影响引用它的组件图、sequence 片段、部署配置和相关业务故事的验证路径。","evidence":["package scope: apps/README.md","模块路径:apps/README.md","文件数:1","符号数:1","被其他模块依赖或调用:0","依赖或调用外部模块:0","apps/README.md"],"risks":["如果只把该节点当作目录名,会遗漏它作为稳定工程边界的职责判断。","如果依赖外部模块的迹象持续增加,可能说明该边界承担过多编排或桥接职责。"],"questions":["当前仓库证据没有观察到跨模块依赖;因此该模块暂按相对独立边界处理,置信度保持为候选。"],"confidence":"high","drilldowns":[]}]},{"id":"engineering:diagram:package:copyright","kind":"package","title":"模块边界:COPYRIGHT","summary":"解释 COPYRIGHT 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/copyright/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/copyright/package-diagram.html","anchor":"engineering:package:copyright","status":"candidate","confidence":"high","mermaidKind":"flowchart","mermaid":"flowchart LR\n package_node[\"COPYRIGHT\"]\n package_node --- isolated[\"未观察到跨模块依赖\"]","readingGuide":["这张 Package Diagram 以 COPYRIGHT 为中心,展示它作为工程模块边界时观察到的文件规模、符号规模和跨模块依赖。","图中的箭头表示本地仓库证据观察到的跨模块关系,主要用于理解技术依赖方向;它不是业务流程顺序,也不是运行时消息时序。","当前没有观察到明确的外部模块依赖,这可能表示模块相对独立,也可能表示扫描粒度尚不足。"],"technicalAnalysis":["COPYRIGHT 当前包含 1 个文件和 1 个符号,属于软件结构模型识别出的技术组织边界。","跨模块关系呈现为:被其它模块引用或调用 0 次,主动依赖或调用外部模块 0 次,因此它复用迹象和外部协作迹象相对接近。","当前对外依赖未形成明显异常,但仍应结合具体业务入口判断依赖方向是否稳定。"],"businessRelation":["COPYRIGHT 不是业务故事本身,而是业务能力落地时可能经过的技术边界。","如果组织/过程模型中某个 Use Case 的证据、入口或下钻图落在 COPYRIGHT,该 Use Case 应当反向链接到这张 Package Diagram,说明业务故事由哪个工程模块承载。","当前关联仍是 CANDIDATE:这里只能根据仓库证据解释技术边界,不能替代组织/过程模型对业务故事、参与者和业务目标的确认。"],"governanceNotes":["新增功能时,优先确认它属于该模块的稳定职责,而不是因为调用方便而落入该模块。","保持该模块的依赖方向可解释,避免形成隐式公共工具箱。","当业务 Use Case 文档引用该模块时,应在 Use Case 下钻文档中记录具体入口、调用链或配置证据。"],"coverage":["模块路径:COPYRIGHT","文件数:1","符号数:1","被其他模块依赖或调用:0","依赖或调用外部模块:0"],"evidencePaths":["COPYRIGHT"],"questions":["当前仓库证据没有观察到跨模块依赖;因此该模块暂按相对独立边界处理,置信度保持为候选。"],"scope":{"packageId":"COPYRIGHT","filePath":"COPYRIGHT"},"drilldowns":[],"elements":[{"id":"engineering:diagram:package:copyright:element:copyright","mermaidId":"package_node","label":"COPYRIGHT","kind":"package","anchor":"engineering:package:copyright","summary":"COPYRIGHT 是当前 Package Diagram 的中心工程边界,用来观察它自身规模、依赖方向和可下钻技术复杂度。","role":"技术组织边界:它把 COPYRIGHT 下的文件、符号和跨模块关系聚合成一个可讨论的工程单元。","whyItExists":"本地仓库证据在 COPYRIGHT 下观察到足够文件、符号或跨模块关系,因此它值得被提升为软件结构模型中的 package 级入口。","relationshipMeaning":"图中从 COPYRIGHT 指向其它节点的箭头表示当前边界依赖外部 package/module;被其他模块依赖或调用 0 次、依赖或调用外部模块 0 次,用于判断它更像稳定复用边界还是编排/桥接边界。","drilldownIntent":"下钻该节点可以继续查看 COPYRIGHT 内的关键组件、结构协作切片、运行链路、部署节点和复杂度热点,从而理解这个工程边界如何承载功能变化。","businessRelevance":"该节点不是业务故事本身,但组织/过程模型中落到 COPYRIGHT 的 Use Case 可以把这里作为技术承载边界引用。当前关联仍是 CANDIDATE。","changeImpact":"修改 COPYRIGHT 的公共入口、依赖方向或目录边界,可能影响引用它的组件图、sequence 片段、部署配置和相关业务故事的验证路径。","evidence":["package scope: COPYRIGHT","模块路径:COPYRIGHT","文件数:1","符号数:1","被其他模块依赖或调用:0","依赖或调用外部模块:0","COPYRIGHT"],"risks":["如果只把该节点当作目录名,会遗漏它作为稳定工程边界的职责判断。","如果依赖外部模块的迹象持续增加,可能说明该边界承担过多编排或桥接职责。"],"questions":["当前仓库证据没有观察到跨模块依赖;因此该模块暂按相对独立边界处理,置信度保持为候选。"],"confidence":"high","drilldowns":[]}]},{"id":"engineering:diagram:package:license","kind":"package","title":"模块边界:LICENSE","summary":"解释 LICENSE 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/license/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/license/package-diagram.html","anchor":"engineering:package:license","status":"candidate","confidence":"high","mermaidKind":"flowchart","mermaid":"flowchart LR\n package_node[\"LICENSE\"]\n package_node --- isolated[\"未观察到跨模块依赖\"]","readingGuide":["这张 Package Diagram 以 LICENSE 为中心,展示它作为工程模块边界时观察到的文件规模、符号规模和跨模块依赖。","图中的箭头表示本地仓库证据观察到的跨模块关系,主要用于理解技术依赖方向;它不是业务流程顺序,也不是运行时消息时序。","当前没有观察到明确的外部模块依赖,这可能表示模块相对独立,也可能表示扫描粒度尚不足。"],"technicalAnalysis":["LICENSE 当前包含 1 个文件和 1 个符号,属于软件结构模型识别出的技术组织边界。","跨模块关系呈现为:被其它模块引用或调用 0 次,主动依赖或调用外部模块 0 次,因此它复用迹象和外部协作迹象相对接近。","当前对外依赖未形成明显异常,但仍应结合具体业务入口判断依赖方向是否稳定。"],"businessRelation":["LICENSE 不是业务故事本身,而是业务能力落地时可能经过的技术边界。","如果组织/过程模型中某个 Use Case 的证据、入口或下钻图落在 LICENSE,该 Use Case 应当反向链接到这张 Package Diagram,说明业务故事由哪个工程模块承载。","当前关联仍是 CANDIDATE:这里只能根据仓库证据解释技术边界,不能替代组织/过程模型对业务故事、参与者和业务目标的确认。"],"governanceNotes":["新增功能时,优先确认它属于该模块的稳定职责,而不是因为调用方便而落入该模块。","保持该模块的依赖方向可解释,避免形成隐式公共工具箱。","当业务 Use Case 文档引用该模块时,应在 Use Case 下钻文档中记录具体入口、调用链或配置证据。"],"coverage":["模块路径:LICENSE","文件数:1","符号数:1","被其他模块依赖或调用:0","依赖或调用外部模块:0"],"evidencePaths":["LICENSE"],"questions":["当前仓库证据没有观察到跨模块依赖;因此该模块暂按相对独立边界处理,置信度保持为候选。"],"scope":{"packageId":"LICENSE","filePath":"LICENSE"},"drilldowns":[],"elements":[{"id":"engineering:diagram:package:license:element:license","mermaidId":"package_node","label":"LICENSE","kind":"package","anchor":"engineering:package:license","summary":"LICENSE 是当前 Package Diagram 的中心工程边界,用来观察它自身规模、依赖方向和可下钻技术复杂度。","role":"技术组织边界:它把 LICENSE 下的文件、符号和跨模块关系聚合成一个可讨论的工程单元。","whyItExists":"本地仓库证据在 LICENSE 下观察到足够文件、符号或跨模块关系,因此它值得被提升为软件结构模型中的 package 级入口。","relationshipMeaning":"图中从 LICENSE 指向其它节点的箭头表示当前边界依赖外部 package/module;被其他模块依赖或调用 0 次、依赖或调用外部模块 0 次,用于判断它更像稳定复用边界还是编排/桥接边界。","drilldownIntent":"下钻该节点可以继续查看 LICENSE 内的关键组件、结构协作切片、运行链路、部署节点和复杂度热点,从而理解这个工程边界如何承载功能变化。","businessRelevance":"该节点不是业务故事本身,但组织/过程模型中落到 LICENSE 的 Use Case 可以把这里作为技术承载边界引用。当前关联仍是 CANDIDATE。","changeImpact":"修改 LICENSE 的公共入口、依赖方向或目录边界,可能影响引用它的组件图、sequence 片段、部署配置和相关业务故事的验证路径。","evidence":["package scope: LICENSE","模块路径:LICENSE","文件数:1","符号数:1","被其他模块依赖或调用:0","依赖或调用外部模块:0","LICENSE"],"risks":["如果只把该节点当作目录名,会遗漏它作为稳定工程边界的职责判断。","如果依赖外部模块的迹象持续增加,可能说明该边界承担过多编排或桥接职责。"],"questions":["当前仓库证据没有观察到跨模块依赖;因此该模块暂按相对独立边界处理,置信度保持为候选。"],"confidence":"high","drilldowns":[]}]}]},{"id":"engineering:category:component","kind":"component","title":"Component Diagrams","directory":"docs/engineering/component-diagrams","mapDocPath":"docs/engineering/component-diagrams/component-diagrams-maps.md","mapHtmlPath":"docs/engineering/component-diagrams/component-diagrams-maps.html","summary":"关键技术组件、入口和协作对象。","count":22,"items":[{"id":"engineering:diagram:component:apps-linux_cardputer_zero-main","kind":"component","title":"函数节点:main","summary":"function 位于 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L49,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-main/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-main/component-diagram.html","anchor":"engineering:component:function:main:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:49","status":"candidate","confidence":"high","mermaidKind":"flowchart","mermaid":"flowchart LR\n package_node[\"apps/linux_cardputer_zero\"]\n file_node[\"apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L49\"]\n component_node[\"function: main\"]\n package_node --\u003e file_node\n file_node --\u003e component_node\n component_node --\u003e outgoingRelations[\"协调多个外部对象\"]\n incomingRelations[\"存在复用线索\"] --\u003e component_node","readingGuide":["这张 Component Diagram 关注 main 这个 function,展示它所在文件、所属模块以及复用迹象、外部协作迹象。","复用迹象用于判断它是否是共享核心或公共接口;外部协作迹象用于判断它是否承担编排、聚合或桥接职责。","代码锚点是 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L49。"],"technicalAnalysis":["main 在当前仓库证据中呈现为:被复用/被依赖迹象:存在局部复用或依赖线索,外部协作/编排迹象:协调多个外部对象或能力,因此它在技术结构中更像编排者或聚合入口。","过多对外依赖往往意味着该组件连接过多职责,阅读、测试和变更影响面都会扩大。","所属模块 apps/linux_cardputer_zero 决定了它更适合作为局部实现细节还是跨模块协作点。"],"businessRelation":["main 可能是某些业务故事执行过程中的技术节点,但它本身不是业务用例。","从路径上无法直接判断业务角色,需要结合组织/过程模型的 Use Case 证据确认。","如果某个 Use Case 的 Activity、Sequence 或 Class Collaboration 图引用该组件,应在组织/过程模型中明确它承担的是入口、编排、领域规则、适配器还是基础设施职责。"],"governanceNotes":["在修改该组件前,优先查找它被哪些 Use Case 下钻文档引用,避免只看局部代码而忽略业务语义。","该组件协作压力较高,应在对应 Sequence Diagram 或 Class / Structural Diagram 中解释具体协作边界。","如果该组件承载业务规则,应把规则写回组织/过程模型或对应领域文档,而不仅保留在仓库证据中。"],"coverage":["组件类型:function","所属模块:apps/linux_cardputer_zero","代码锚点:apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L49","被复用/被依赖迹象:存在局部复用或依赖线索","外部协作/编排迹象:协调多个外部对象或能力"],"evidencePaths":["apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L49"],"questions":["该组件协作压力较高;当前文档按候选编排中心或公共接口处理,并通过下钻图说明它的职责证据。"],"scope":{"packageId":"apps/linux_cardputer_zero","filePath":"apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp"},"drilldowns":[{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--main","kind":"technical_hotspot","title":"承担外部协作的候选对象:main 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--main/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--main/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:main:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:49","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:main 技术热点 是否说明 函数节点:main 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--contains","kind":"technical_hotspot","title":"被广泛复用的候选对象:contains 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--contains/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--contains/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:contains:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:19","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:contains 技术热点 是否说明 函数节点:main 附近存在变更影响面、文件规模或协作压力风险。"}],"elements":[{"id":"engineering:diagram:component:apps-linux_cardputer_zero-main:element:apps-linux_cardputer_zero","mermaidId":"package_node","label":"apps/linux_cardputer_zero","kind":"package","anchor":"engineering:package:apps-linux_cardputer_zero","summary":"apps/linux_cardputer_zero 是 函数节点:main 所属的 package/module 边界,用来判断该组件是局部实现细节还是跨模块协作点。","role":"组件归属边界:它定义当前组件默认应该服务的工程上下文。","whyItExists":"组件不能脱离 package 解释;同一个符号如果位于不同 package,可能代表完全不同的职责、所有权和变更影响面。","relationshipMeaning":"apps/linux_cardputer_zero -\u003e 函数节点:main 表示该组件由这个技术边界承载;它的角色必须由入口、调用、导出、测试或配置证据来解释,而不是只由目录位置解释。","drilldownIntent":"下钻 package 可以查看 apps/linux_cardputer_zero 的跨模块依赖、结构协作和热点,从边界层解释该组件为何出现在这里。","businessRelevance":"如果 函数节点:main 被业务 Use Case 调用,那么 apps/linux_cardputer_zero 是该业务能力的候选技术落点。","changeImpact":"迁移或重命名该 package 可能改变组件导入路径、下钻索引和 Use Case 对技术承载边界的引用。","evidence":["component package: apps/linux_cardputer_zero","组件类型:function","所属模块:apps/linux_cardputer_zero","代码锚点:apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L49","被复用/被依赖迹象:存在局部复用或依赖线索","外部协作/编排迹象:协调多个外部对象或能力","apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L49"],"risks":["组件职责可能被路径误导;仍需结合调用、导入、导出、入口和测试等代码证据判断真实角色。"],"questions":["当前仓库证据尚未证明 函数节点:main 属于 apps/linux_cardputer_zero 的稳定职责,暂按候选归属处理。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:package:apps-linux_cardputer_zero","kind":"package","title":"模块边界:apps/linux_cardputer_zero","summary":"解释 apps/linux_cardputer_zero 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/apps-linux_cardputer_zero/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/apps-linux_cardputer_zero/package-diagram.html","anchor":"engineering:package:apps-linux_cardputer_zero","relation":"parent_boundary","reason":"回到 apps/linux_cardputer_zero 的包级边界,确认 函数节点:main 是否属于这个模块的稳定职责。"}]},{"id":"engineering:diagram:component:apps-linux_cardputer_zero-main:element:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp","mermaidId":"file_node","label":"apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp","kind":"file","anchor":"engineering:component:function:main:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:49:file","summary":"apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp 是当前组件的证据文件,说明 函数节点:main 的技术职责可以追溯到具体代码位置。","role":"代码证据锚点:它让组件解释可以回到具体文件,而不是停留在抽象图形上。","whyItExists":"软件结构模型必须把每个组件图绑定到可验证文件,否则 UI 只是投影而不是可追溯解释。","relationshipMeaning":"文件节点连接组件节点,表示该组件的实现、入口或符号事实来自这个文件。","drilldownIntent":"下钻该文件相关的组件、sequence 或 hotspot,可以检查该文件是否只是实现细节,还是已经成为多个能力共用的技术枢纽。","businessRelevance":"从路径上无法直接判断业务角色,需要结合组织/过程模型的 Use Case 证据确认。","changeImpact":"修改 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp 可能影响该组件图、相关 sequence、热点判断,以及引用该组件的业务下钻文档。","evidence":["apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp","apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L49"],"risks":["文件路径只能说明位置,不能单独证明业务职责。"],"questions":["当前文件锚点只能证明位置;如果同文件出现多个入口或职责,需在组件/sequence 文档中拆开解释。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--main","kind":"technical_hotspot","title":"承担外部协作的候选对象:main 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--main/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--main/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:main:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:49","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:main 技术热点 是否说明 函数节点:main 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--contains","kind":"technical_hotspot","title":"被广泛复用的候选对象:contains 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--contains/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--contains/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:contains:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:19","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:contains 技术热点 是否说明 函数节点:main 附近存在变更影响面、文件规模或协作压力风险。"}]},{"id":"engineering:diagram:component:apps-linux_cardputer_zero-main:element:main","mermaidId":"component_node","label":"函数节点:main","kind":"component","anchor":"engineering:component:function:main:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:49","summary":"函数节点:main 是当前 Component Diagram 的中心技术对象;这张图用它来解释职责、协作压力和下钻路径。","role":"关键技术对象:它需要结合复用迹象、外部协作迹象、文件位置和下钻图判断具体职责。","whyItExists":"本地仓库证据将它识别为关键组件或符号,且它具有可定位文件 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp、被引用/调用关系和对外依赖/调用关系。","relationshipMeaning":"package、file、被引用/调用关系和对外依赖/调用关系都围绕该组件组织,用来判断它是入口、编排者、共享能力还是风险集中点。","drilldownIntent":"下钻该组件可以进入它参与的 sequence、所属结构切片或附近热点,回答“它如何工作、谁调用它、它调用谁”。","businessRelevance":"函数节点:main 不是业务用例,但可能是业务能力落地时经过的技术节点。 从路径上无法直接判断业务角色,需要结合组织/过程模型的 Use Case 证据确认。 如果组织/过程模型的 Use Case 下钻图引用它,应在业务文档中说明它承担入口、编排、领域规则、适配器还是基础设施职责。","changeImpact":"修改 函数节点:main 可能影响 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp 中的入口逻辑、调用关系和引用它的业务/工程文档。","evidence":["apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp","组件类型:function","所属模块:apps/linux_cardputer_zero","代码锚点:apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L49","被复用/被依赖迹象:存在局部复用或依赖线索","外部协作/编排迹象:协调多个外部对象或能力","apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L49"],"risks":["协作压力高不必然代表设计问题;必须结合业务入口、测试和变更频率判断。"],"questions":["该组件协作压力较高;当前文档按候选编排中心或公共接口处理,并通过下钻图说明它的职责证据。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--main","kind":"technical_hotspot","title":"承担外部协作的候选对象:main 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--main/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--main/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:main:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:49","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:main 技术热点 是否说明 函数节点:main 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--contains","kind":"technical_hotspot","title":"被广泛复用的候选对象:contains 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--contains/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--contains/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:contains:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:19","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:contains 技术热点 是否说明 函数节点:main 附近存在变更影响面、文件规模或协作压力风险。"}]},{"id":"engineering:diagram:component:apps-linux_cardputer_zero-main:element:item","mermaidId":"incomingRelations","label":"被引用/调用关系","kind":"reuse_signal","anchor":"engineering:component:function:main:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:49:incoming-relations","summary":"被复用/被依赖迹象用于解释它在技术网络中的复用程度或编排程度;这里只展示含义,不把内部计数当作用户结论。","role":"复用压力线索:帮助识别共享核心、公共接口或高回归风险点。","whyItExists":"单看组件名称无法判断复杂度,被复用/被依赖迹象 把本地仓库关系证据转译为用户可理解的协作压力。","relationshipMeaning":"其它组件、文件或符号依赖当前组件;关系越多,修改它越可能影响更多调用方。","drilldownIntent":"下钻相关 sequence 或 hotspot,可以把抽象数字落到具体调用片段、文件和风险位置。","businessRelevance":"如果该组件支撑用户可见能力,这个关系指标会影响业务变更的验证成本和回归风险。","changeImpact":"重构被大量对象引用/调用的组件需要谨慎处理兼容性、调用方迁移和测试覆盖。","evidence":["组件类型:function","所属模块:apps/linux_cardputer_zero","代码锚点:apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L49","被复用/被依赖迹象:存在局部复用或依赖线索","外部协作/编排迹象:协调多个外部对象或能力","apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L49"],"risks":["关系指标来自本地仓库分析,可能受扫描粒度、生成文件或 import 噪声影响。"],"questions":["当前证据无法完全区分这些关系中的运行时调用、类型引用、导出聚合或生成物噪声,因此只作为候选协作压力。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--main","kind":"technical_hotspot","title":"承担外部协作的候选对象:main 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--main/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--main/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:main:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:49","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:main 技术热点 是否说明 函数节点:main 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--contains","kind":"technical_hotspot","title":"被广泛复用的候选对象:contains 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--contains/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--contains/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:contains:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:19","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:contains 技术热点 是否说明 函数节点:main 附近存在变更影响面、文件规模或协作压力风险。"}]},{"id":"engineering:diagram:component:apps-linux_cardputer_zero-main:element:item","mermaidId":"outgoingRelations","label":"对外依赖/调用关系","kind":"collaboration_signal","anchor":"engineering:component:function:main:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:49:outgoing-relations","summary":"外部协作/编排迹象用于解释它在技术网络中的复用程度或编排程度;这里只展示含义,不把内部计数当作用户结论。","role":"编排压力线索:帮助识别编排中心、聚合入口或耦合扩散点。","whyItExists":"单看组件名称无法判断复杂度,外部协作/编排迹象 把本地仓库关系证据转译为用户可理解的协作压力。","relationshipMeaning":"当前组件依赖其它组件、文件或符号;关系越多,越可能承担较宽的协调职责。","drilldownIntent":"下钻相关 sequence 或 hotspot,可以把抽象数字落到具体调用片段、文件和风险位置。","businessRelevance":"如果该组件支撑用户可见能力,这个关系指标会影响业务变更的验证成本和回归风险。","changeImpact":"降低过多对外依赖通常意味着拆分编排职责、引入接口边界或把适配逻辑移到更合适的位置。","evidence":["组件类型:function","所属模块:apps/linux_cardputer_zero","代码锚点:apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L49","被复用/被依赖迹象:存在局部复用或依赖线索","外部协作/编排迹象:协调多个外部对象或能力","apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L49"],"risks":["关系指标来自本地仓库分析,可能受扫描粒度、生成文件或 import 噪声影响。"],"questions":["当前证据无法完全区分这些关系中的运行时调用、类型引用、导出聚合或生成物噪声,因此只作为候选协作压力。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--main","kind":"technical_hotspot","title":"承担外部协作的候选对象:main 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--main/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--main/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:main:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:49","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:main 技术热点 是否说明 函数节点:main 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--contains","kind":"technical_hotspot","title":"被广泛复用的候选对象:contains 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--contains/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--contains/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:contains:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:19","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:contains 技术热点 是否说明 函数节点:main 附近存在变更影响面、文件规模或协作压力风险。"}]}]},{"id":"engineering:diagram:component:apps-linux_cardputer_zero-contains","kind":"component","title":"函数节点:contains","summary":"function 位于 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L19,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-contains/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-contains/component-diagram.html","anchor":"engineering:component:function:contains:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:19","status":"candidate","confidence":"high","mermaidKind":"flowchart","mermaid":"flowchart LR\n package_node[\"apps/linux_cardputer_zero\"]\n file_node[\"apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L19\"]\n component_node[\"function: contains\"]\n package_node --\u003e file_node\n file_node --\u003e component_node\n component_node --\u003e outgoingRelations[\"未观察到明显外部协作\"]\n incomingRelations[\"被多个对象复用\"] --\u003e component_node","readingGuide":["这张 Component Diagram 关注 contains 这个 function,展示它所在文件、所属模块以及复用迹象、外部协作迹象。","复用迹象用于判断它是否是共享核心或公共接口;外部协作迹象用于判断它是否承担编排、聚合或桥接职责。","代码锚点是 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L19。"],"technicalAnalysis":["contains 在当前仓库证据中呈现为:被复用/被依赖迹象:被多个对象复用或依赖,外部协作/编排迹象:当前未观察到明显外部协作线索,因此它在技术结构中更像共享接口、公共能力或被复用对象。","被大量对象引用或调用往往意味着该组件是共享核心,任何修改都需要谨慎评估兼容性。","所属模块 apps/linux_cardputer_zero 决定了它更适合作为局部实现细节还是跨模块协作点。"],"businessRelation":["contains 可能是某些业务故事执行过程中的技术节点,但它本身不是业务用例。","从路径上无法直接判断业务角色,需要结合组织/过程模型的 Use Case 证据确认。","如果某个 Use Case 的 Activity、Sequence 或 Class Collaboration 图引用该组件,应在组织/过程模型中明确它承担的是入口、编排、领域规则、适配器还是基础设施职责。"],"governanceNotes":["在修改该组件前,优先查找它被哪些 Use Case 下钻文档引用,避免只看局部代码而忽略业务语义。","该组件协作压力较高,应在对应 Sequence Diagram 或 Class / Structural Diagram 中解释具体协作边界。","如果该组件承载业务规则,应把规则写回组织/过程模型或对应领域文档,而不仅保留在仓库证据中。"],"coverage":["组件类型:function","所属模块:apps/linux_cardputer_zero","代码锚点:apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L19","被复用/被依赖迹象:被多个对象复用或依赖","外部协作/编排迹象:当前未观察到明显外部协作线索"],"evidencePaths":["apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L19"],"questions":["该组件协作压力较高;当前文档按候选编排中心或公共接口处理,并通过下钻图说明它的职责证据。"],"scope":{"packageId":"apps/linux_cardputer_zero","filePath":"apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp"},"drilldowns":[{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--main","kind":"technical_hotspot","title":"承担外部协作的候选对象:main 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--main/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--main/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:main:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:49","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:main 技术热点 是否说明 函数节点:contains 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--contains","kind":"technical_hotspot","title":"被广泛复用的候选对象:contains 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--contains/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--contains/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:contains:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:19","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:contains 技术热点 是否说明 函数节点:contains 附近存在变更影响面、文件规模或协作压力风险。"}],"elements":[{"id":"engineering:diagram:component:apps-linux_cardputer_zero-contains:element:apps-linux_cardputer_zero","mermaidId":"package_node","label":"apps/linux_cardputer_zero","kind":"package","anchor":"engineering:package:apps-linux_cardputer_zero","summary":"apps/linux_cardputer_zero 是 函数节点:contains 所属的 package/module 边界,用来判断该组件是局部实现细节还是跨模块协作点。","role":"组件归属边界:它定义当前组件默认应该服务的工程上下文。","whyItExists":"组件不能脱离 package 解释;同一个符号如果位于不同 package,可能代表完全不同的职责、所有权和变更影响面。","relationshipMeaning":"apps/linux_cardputer_zero -\u003e 函数节点:contains 表示该组件由这个技术边界承载;它的角色必须由入口、调用、导出、测试或配置证据来解释,而不是只由目录位置解释。","drilldownIntent":"下钻 package 可以查看 apps/linux_cardputer_zero 的跨模块依赖、结构协作和热点,从边界层解释该组件为何出现在这里。","businessRelevance":"如果 函数节点:contains 被业务 Use Case 调用,那么 apps/linux_cardputer_zero 是该业务能力的候选技术落点。","changeImpact":"迁移或重命名该 package 可能改变组件导入路径、下钻索引和 Use Case 对技术承载边界的引用。","evidence":["component package: apps/linux_cardputer_zero","组件类型:function","所属模块:apps/linux_cardputer_zero","代码锚点:apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L19","被复用/被依赖迹象:被多个对象复用或依赖","外部协作/编排迹象:当前未观察到明显外部协作线索","apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L19"],"risks":["组件职责可能被路径误导;仍需结合调用、导入、导出、入口和测试等代码证据判断真实角色。"],"questions":["当前仓库证据尚未证明 函数节点:contains 属于 apps/linux_cardputer_zero 的稳定职责,暂按候选归属处理。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:package:apps-linux_cardputer_zero","kind":"package","title":"模块边界:apps/linux_cardputer_zero","summary":"解释 apps/linux_cardputer_zero 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/apps-linux_cardputer_zero/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/apps-linux_cardputer_zero/package-diagram.html","anchor":"engineering:package:apps-linux_cardputer_zero","relation":"parent_boundary","reason":"回到 apps/linux_cardputer_zero 的包级边界,确认 函数节点:contains 是否属于这个模块的稳定职责。"}]},{"id":"engineering:diagram:component:apps-linux_cardputer_zero-contains:element:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp","mermaidId":"file_node","label":"apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp","kind":"file","anchor":"engineering:component:function:contains:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:19:file","summary":"apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp 是当前组件的证据文件,说明 函数节点:contains 的技术职责可以追溯到具体代码位置。","role":"代码证据锚点:它让组件解释可以回到具体文件,而不是停留在抽象图形上。","whyItExists":"软件结构模型必须把每个组件图绑定到可验证文件,否则 UI 只是投影而不是可追溯解释。","relationshipMeaning":"文件节点连接组件节点,表示该组件的实现、入口或符号事实来自这个文件。","drilldownIntent":"下钻该文件相关的组件、sequence 或 hotspot,可以检查该文件是否只是实现细节,还是已经成为多个能力共用的技术枢纽。","businessRelevance":"从路径上无法直接判断业务角色,需要结合组织/过程模型的 Use Case 证据确认。","changeImpact":"修改 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp 可能影响该组件图、相关 sequence、热点判断,以及引用该组件的业务下钻文档。","evidence":["apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp","apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L19"],"risks":["文件路径只能说明位置,不能单独证明业务职责。"],"questions":["当前文件锚点只能证明位置;如果同文件出现多个入口或职责,需在组件/sequence 文档中拆开解释。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--main","kind":"technical_hotspot","title":"承担外部协作的候选对象:main 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--main/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--main/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:main:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:49","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:main 技术热点 是否说明 函数节点:contains 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--contains","kind":"technical_hotspot","title":"被广泛复用的候选对象:contains 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--contains/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--contains/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:contains:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:19","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:contains 技术热点 是否说明 函数节点:contains 附近存在变更影响面、文件规模或协作压力风险。"}]},{"id":"engineering:diagram:component:apps-linux_cardputer_zero-contains:element:contains","mermaidId":"component_node","label":"函数节点:contains","kind":"component","anchor":"engineering:component:function:contains:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:19","summary":"函数节点:contains 是当前 Component Diagram 的中心技术对象;这张图用它来解释职责、协作压力和下钻路径。","role":"关键技术对象:它需要结合复用迹象、外部协作迹象、文件位置和下钻图判断具体职责。","whyItExists":"本地仓库证据将它识别为关键组件或符号,且它具有可定位文件 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp、被引用/调用关系和对外依赖/调用关系。","relationshipMeaning":"package、file、被引用/调用关系和对外依赖/调用关系都围绕该组件组织,用来判断它是入口、编排者、共享能力还是风险集中点。","drilldownIntent":"下钻该组件可以进入它参与的 sequence、所属结构切片或附近热点,回答“它如何工作、谁调用它、它调用谁”。","businessRelevance":"函数节点:contains 不是业务用例,但可能是业务能力落地时经过的技术节点。 从路径上无法直接判断业务角色,需要结合组织/过程模型的 Use Case 证据确认。 如果组织/过程模型的 Use Case 下钻图引用它,应在业务文档中说明它承担入口、编排、领域规则、适配器还是基础设施职责。","changeImpact":"修改 函数节点:contains 可能影响 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp 中的入口逻辑、调用关系和引用它的业务/工程文档。","evidence":["apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp","组件类型:function","所属模块:apps/linux_cardputer_zero","代码锚点:apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L19","被复用/被依赖迹象:被多个对象复用或依赖","外部协作/编排迹象:当前未观察到明显外部协作线索","apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L19"],"risks":["协作压力高不必然代表设计问题;必须结合业务入口、测试和变更频率判断。"],"questions":["该组件协作压力较高;当前文档按候选编排中心或公共接口处理,并通过下钻图说明它的职责证据。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--main","kind":"technical_hotspot","title":"承担外部协作的候选对象:main 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--main/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--main/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:main:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:49","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:main 技术热点 是否说明 函数节点:contains 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--contains","kind":"technical_hotspot","title":"被广泛复用的候选对象:contains 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--contains/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--contains/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:contains:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:19","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:contains 技术热点 是否说明 函数节点:contains 附近存在变更影响面、文件规模或协作压力风险。"}]},{"id":"engineering:diagram:component:apps-linux_cardputer_zero-contains:element:item","mermaidId":"incomingRelations","label":"被引用/调用关系","kind":"reuse_signal","anchor":"engineering:component:function:contains:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:19:incoming-relations","summary":"被复用/被依赖迹象用于解释它在技术网络中的复用程度或编排程度;这里只展示含义,不把内部计数当作用户结论。","role":"复用压力线索:帮助识别共享核心、公共接口或高回归风险点。","whyItExists":"单看组件名称无法判断复杂度,被复用/被依赖迹象 把本地仓库关系证据转译为用户可理解的协作压力。","relationshipMeaning":"其它组件、文件或符号依赖当前组件;关系越多,修改它越可能影响更多调用方。","drilldownIntent":"下钻相关 sequence 或 hotspot,可以把抽象数字落到具体调用片段、文件和风险位置。","businessRelevance":"如果该组件支撑用户可见能力,这个关系指标会影响业务变更的验证成本和回归风险。","changeImpact":"重构被大量对象引用/调用的组件需要谨慎处理兼容性、调用方迁移和测试覆盖。","evidence":["组件类型:function","所属模块:apps/linux_cardputer_zero","代码锚点:apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L19","被复用/被依赖迹象:被多个对象复用或依赖","外部协作/编排迹象:当前未观察到明显外部协作线索","apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L19"],"risks":["关系指标来自本地仓库分析,可能受扫描粒度、生成文件或 import 噪声影响。"],"questions":["当前证据无法完全区分这些关系中的运行时调用、类型引用、导出聚合或生成物噪声,因此只作为候选协作压力。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--main","kind":"technical_hotspot","title":"承担外部协作的候选对象:main 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--main/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--main/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:main:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:49","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:main 技术热点 是否说明 函数节点:contains 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--contains","kind":"technical_hotspot","title":"被广泛复用的候选对象:contains 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--contains/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--contains/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:contains:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:19","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:contains 技术热点 是否说明 函数节点:contains 附近存在变更影响面、文件规模或协作压力风险。"}]},{"id":"engineering:diagram:component:apps-linux_cardputer_zero-contains:element:item","mermaidId":"outgoingRelations","label":"对外依赖/调用关系","kind":"collaboration_signal","anchor":"engineering:component:function:contains:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:19:outgoing-relations","summary":"外部协作/编排迹象用于解释它在技术网络中的复用程度或编排程度;这里只展示含义,不把内部计数当作用户结论。","role":"编排压力线索:帮助识别编排中心、聚合入口或耦合扩散点。","whyItExists":"单看组件名称无法判断复杂度,外部协作/编排迹象 把本地仓库关系证据转译为用户可理解的协作压力。","relationshipMeaning":"当前组件依赖其它组件、文件或符号;关系越多,越可能承担较宽的协调职责。","drilldownIntent":"下钻相关 sequence 或 hotspot,可以把抽象数字落到具体调用片段、文件和风险位置。","businessRelevance":"如果该组件支撑用户可见能力,这个关系指标会影响业务变更的验证成本和回归风险。","changeImpact":"降低过多对外依赖通常意味着拆分编排职责、引入接口边界或把适配逻辑移到更合适的位置。","evidence":["组件类型:function","所属模块:apps/linux_cardputer_zero","代码锚点:apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L19","被复用/被依赖迹象:被多个对象复用或依赖","外部协作/编排迹象:当前未观察到明显外部协作线索","apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L19"],"risks":["关系指标来自本地仓库分析,可能受扫描粒度、生成文件或 import 噪声影响。"],"questions":["当前证据无法完全区分这些关系中的运行时调用、类型引用、导出聚合或生成物噪声,因此只作为候选协作压力。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--main","kind":"technical_hotspot","title":"承担外部协作的候选对象:main 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--main/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--main/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:main:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:49","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:main 技术热点 是否说明 函数节点:contains 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--contains","kind":"technical_hotspot","title":"被广泛复用的候选对象:contains 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--contains/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--contains/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:contains:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:19","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:contains 技术热点 是否说明 函数节点:contains 附近存在变更影响面、文件规模或协作压力风险。"}]}]},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-launchsettingslayout","kind":"component","title":"函数节点:launchSettingsLayout","summary":"function 位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L110,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-launchsettingslayout/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-launchsettingslayout/component-diagram.html","anchor":"engineering:component:function:launchsettingslayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:110","status":"candidate","confidence":"high","mermaidKind":"flowchart","mermaid":"flowchart LR\n package_node[\"apps/linux_uconsole_gtk\"]\n file_node[\"apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L110\"]\n component_node[\"function: launchSettingsLayout\"]\n package_node --\u003e file_node\n file_node --\u003e component_node\n component_node --\u003e outgoingRelations[\"协调多个外部对象\"]\n incomingRelations[\"存在复用线索\"] --\u003e component_node","readingGuide":["这张 Component Diagram 关注 launchSettingsLayout 这个 function,展示它所在文件、所属模块以及复用迹象、外部协作迹象。","复用迹象用于判断它是否是共享核心或公共接口;外部协作迹象用于判断它是否承担编排、聚合或桥接职责。","代码锚点是 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L110。"],"technicalAnalysis":["launchSettingsLayout 在当前仓库证据中呈现为:被复用/被依赖迹象:存在局部复用或依赖线索,外部协作/编排迹象:协调多个外部对象或能力,因此它在技术结构中更像编排者或聚合入口。","过多对外依赖往往意味着该组件连接过多职责,阅读、测试和变更影响面都会扩大。","所属模块 apps/linux_uconsole_gtk 决定了它更适合作为局部实现细节还是跨模块协作点。"],"businessRelation":["launchSettingsLayout 可能是某些业务故事执行过程中的技术节点,但它本身不是业务用例。","从路径上无法直接判断业务角色,需要结合组织/过程模型的 Use Case 证据确认。","如果某个 Use Case 的 Activity、Sequence 或 Class Collaboration 图引用该组件,应在组织/过程模型中明确它承担的是入口、编排、领域规则、适配器还是基础设施职责。"],"governanceNotes":["在修改该组件前,优先查找它被哪些 Use Case 下钻文档引用,避免只看局部代码而忽略业务语义。","该组件协作压力较高,应在对应 Sequence Diagram 或 Class / Structural Diagram 中解释具体协作边界。","如果该组件承载业务规则,应把规则写回组织/过程模型或对应领域文档,而不仅保留在仓库证据中。"],"coverage":["组件类型:function","所属模块:apps/linux_uconsole_gtk","代码锚点:apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L110","被复用/被依赖迹象:存在局部复用或依赖线索","外部协作/编排迹象:协调多个外部对象或能力"],"evidencePaths":["apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L110"],"questions":["该组件协作压力较高;当前文档按候选编排中心或公共接口处理,并通过下钻图说明它的职责证据。"],"scope":{"packageId":"apps/linux_uconsole_gtk","filePath":"apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp"},"drilldowns":[{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--launchsettingslayout","kind":"technical_hotspot","title":"承担外部协作的候选对象:launchSettingsLayout 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:launchsettingslayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:110","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:launchSettingsLayout 技术热点 是否说明 函数节点:launchSettingsLayout 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makelabel","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeLabel 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makelabel:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp:9","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeLabel 技术热点 是否说明 函数节点:launchSettingsLayout 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makesettingsrow","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeSettingsRow 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makesettingsrow:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:22","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeSettingsRow 技术热点 是否说明 函数节点:launchSettingsLayout 附近存在变更影响面、文件规模或协作压力风险。"}],"elements":[{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-launchsettingslayout:element:apps-linux_uconsole_gtk","mermaidId":"package_node","label":"apps/linux_uconsole_gtk","kind":"package","anchor":"engineering:package:apps-linux_uconsole_gtk","summary":"apps/linux_uconsole_gtk 是 函数节点:launchSettingsLayout 所属的 package/module 边界,用来判断该组件是局部实现细节还是跨模块协作点。","role":"组件归属边界:它定义当前组件默认应该服务的工程上下文。","whyItExists":"组件不能脱离 package 解释;同一个符号如果位于不同 package,可能代表完全不同的职责、所有权和变更影响面。","relationshipMeaning":"apps/linux_uconsole_gtk -\u003e 函数节点:launchSettingsLayout 表示该组件由这个技术边界承载;它的角色必须由入口、调用、导出、测试或配置证据来解释,而不是只由目录位置解释。","drilldownIntent":"下钻 package 可以查看 apps/linux_uconsole_gtk 的跨模块依赖、结构协作和热点,从边界层解释该组件为何出现在这里。","businessRelevance":"如果 函数节点:launchSettingsLayout 被业务 Use Case 调用,那么 apps/linux_uconsole_gtk 是该业务能力的候选技术落点。","changeImpact":"迁移或重命名该 package 可能改变组件导入路径、下钻索引和 Use Case 对技术承载边界的引用。","evidence":["component package: apps/linux_uconsole_gtk","组件类型:function","所属模块:apps/linux_uconsole_gtk","代码锚点:apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L110","被复用/被依赖迹象:存在局部复用或依赖线索","外部协作/编排迹象:协调多个外部对象或能力","apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L110"],"risks":["组件职责可能被路径误导;仍需结合调用、导入、导出、入口和测试等代码证据判断真实角色。"],"questions":["当前仓库证据尚未证明 函数节点:launchSettingsLayout 属于 apps/linux_uconsole_gtk 的稳定职责,暂按候选归属处理。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:package:apps-linux_uconsole_gtk","kind":"package","title":"模块边界:apps/linux_uconsole_gtk","summary":"解释 apps/linux_uconsole_gtk 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/apps-linux_uconsole_gtk/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/apps-linux_uconsole_gtk/package-diagram.html","anchor":"engineering:package:apps-linux_uconsole_gtk","relation":"parent_boundary","reason":"回到 apps/linux_uconsole_gtk 的包级边界,确认 函数节点:launchSettingsLayout 是否属于这个模块的稳定职责。"}]},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-launchsettingslayout:element:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp","mermaidId":"file_node","label":"apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp","kind":"file","anchor":"engineering:component:function:launchsettingslayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:110:file","summary":"apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp 是当前组件的证据文件,说明 函数节点:launchSettingsLayout 的技术职责可以追溯到具体代码位置。","role":"代码证据锚点:它让组件解释可以回到具体文件,而不是停留在抽象图形上。","whyItExists":"软件结构模型必须把每个组件图绑定到可验证文件,否则 UI 只是投影而不是可追溯解释。","relationshipMeaning":"文件节点连接组件节点,表示该组件的实现、入口或符号事实来自这个文件。","drilldownIntent":"下钻该文件相关的组件、sequence 或 hotspot,可以检查该文件是否只是实现细节,还是已经成为多个能力共用的技术枢纽。","businessRelevance":"从路径上无法直接判断业务角色,需要结合组织/过程模型的 Use Case 证据确认。","changeImpact":"修改 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp 可能影响该组件图、相关 sequence、热点判断,以及引用该组件的业务下钻文档。","evidence":["apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp","apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L110"],"risks":["文件路径只能说明位置,不能单独证明业务职责。"],"questions":["当前文件锚点只能证明位置;如果同文件出现多个入口或职责,需在组件/sequence 文档中拆开解释。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--launchsettingslayout","kind":"technical_hotspot","title":"承担外部协作的候选对象:launchSettingsLayout 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:launchsettingslayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:110","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:launchSettingsLayout 技术热点 是否说明 函数节点:launchSettingsLayout 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makelabel","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeLabel 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makelabel:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp:9","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeLabel 技术热点 是否说明 函数节点:launchSettingsLayout 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makesettingsrow","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeSettingsRow 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makesettingsrow:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:22","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeSettingsRow 技术热点 是否说明 函数节点:launchSettingsLayout 附近存在变更影响面、文件规模或协作压力风险。"}]},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-launchsettingslayout:element:launchsettingslayout","mermaidId":"component_node","label":"函数节点:launchSettingsLayout","kind":"component","anchor":"engineering:component:function:launchsettingslayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:110","summary":"函数节点:launchSettingsLayout 是当前 Component Diagram 的中心技术对象;这张图用它来解释职责、协作压力和下钻路径。","role":"关键技术对象:它需要结合复用迹象、外部协作迹象、文件位置和下钻图判断具体职责。","whyItExists":"本地仓库证据将它识别为关键组件或符号,且它具有可定位文件 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp、被引用/调用关系和对外依赖/调用关系。","relationshipMeaning":"package、file、被引用/调用关系和对外依赖/调用关系都围绕该组件组织,用来判断它是入口、编排者、共享能力还是风险集中点。","drilldownIntent":"下钻该组件可以进入它参与的 sequence、所属结构切片或附近热点,回答“它如何工作、谁调用它、它调用谁”。","businessRelevance":"函数节点:launchSettingsLayout 不是业务用例,但可能是业务能力落地时经过的技术节点。 从路径上无法直接判断业务角色,需要结合组织/过程模型的 Use Case 证据确认。 如果组织/过程模型的 Use Case 下钻图引用它,应在业务文档中说明它承担入口、编排、领域规则、适配器还是基础设施职责。","changeImpact":"修改 函数节点:launchSettingsLayout 可能影响 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp 中的入口逻辑、调用关系和引用它的业务/工程文档。","evidence":["apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp","组件类型:function","所属模块:apps/linux_uconsole_gtk","代码锚点:apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L110","被复用/被依赖迹象:存在局部复用或依赖线索","外部协作/编排迹象:协调多个外部对象或能力","apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L110"],"risks":["协作压力高不必然代表设计问题;必须结合业务入口、测试和变更频率判断。"],"questions":["该组件协作压力较高;当前文档按候选编排中心或公共接口处理,并通过下钻图说明它的职责证据。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--launchsettingslayout","kind":"technical_hotspot","title":"承担外部协作的候选对象:launchSettingsLayout 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:launchsettingslayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:110","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:launchSettingsLayout 技术热点 是否说明 函数节点:launchSettingsLayout 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makelabel","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeLabel 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makelabel:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp:9","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeLabel 技术热点 是否说明 函数节点:launchSettingsLayout 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makesettingsrow","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeSettingsRow 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makesettingsrow:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:22","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeSettingsRow 技术热点 是否说明 函数节点:launchSettingsLayout 附近存在变更影响面、文件规模或协作压力风险。"}]},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-launchsettingslayout:element:item","mermaidId":"incomingRelations","label":"被引用/调用关系","kind":"reuse_signal","anchor":"engineering:component:function:launchsettingslayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:110:incoming-relations","summary":"被复用/被依赖迹象用于解释它在技术网络中的复用程度或编排程度;这里只展示含义,不把内部计数当作用户结论。","role":"复用压力线索:帮助识别共享核心、公共接口或高回归风险点。","whyItExists":"单看组件名称无法判断复杂度,被复用/被依赖迹象 把本地仓库关系证据转译为用户可理解的协作压力。","relationshipMeaning":"其它组件、文件或符号依赖当前组件;关系越多,修改它越可能影响更多调用方。","drilldownIntent":"下钻相关 sequence 或 hotspot,可以把抽象数字落到具体调用片段、文件和风险位置。","businessRelevance":"如果该组件支撑用户可见能力,这个关系指标会影响业务变更的验证成本和回归风险。","changeImpact":"重构被大量对象引用/调用的组件需要谨慎处理兼容性、调用方迁移和测试覆盖。","evidence":["组件类型:function","所属模块:apps/linux_uconsole_gtk","代码锚点:apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L110","被复用/被依赖迹象:存在局部复用或依赖线索","外部协作/编排迹象:协调多个外部对象或能力","apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L110"],"risks":["关系指标来自本地仓库分析,可能受扫描粒度、生成文件或 import 噪声影响。"],"questions":["当前证据无法完全区分这些关系中的运行时调用、类型引用、导出聚合或生成物噪声,因此只作为候选协作压力。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--launchsettingslayout","kind":"technical_hotspot","title":"承担外部协作的候选对象:launchSettingsLayout 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:launchsettingslayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:110","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:launchSettingsLayout 技术热点 是否说明 函数节点:launchSettingsLayout 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makelabel","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeLabel 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makelabel:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp:9","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeLabel 技术热点 是否说明 函数节点:launchSettingsLayout 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makesettingsrow","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeSettingsRow 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makesettingsrow:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:22","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeSettingsRow 技术热点 是否说明 函数节点:launchSettingsLayout 附近存在变更影响面、文件规模或协作压力风险。"}]},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-launchsettingslayout:element:item","mermaidId":"outgoingRelations","label":"对外依赖/调用关系","kind":"collaboration_signal","anchor":"engineering:component:function:launchsettingslayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:110:outgoing-relations","summary":"外部协作/编排迹象用于解释它在技术网络中的复用程度或编排程度;这里只展示含义,不把内部计数当作用户结论。","role":"编排压力线索:帮助识别编排中心、聚合入口或耦合扩散点。","whyItExists":"单看组件名称无法判断复杂度,外部协作/编排迹象 把本地仓库关系证据转译为用户可理解的协作压力。","relationshipMeaning":"当前组件依赖其它组件、文件或符号;关系越多,越可能承担较宽的协调职责。","drilldownIntent":"下钻相关 sequence 或 hotspot,可以把抽象数字落到具体调用片段、文件和风险位置。","businessRelevance":"如果该组件支撑用户可见能力,这个关系指标会影响业务变更的验证成本和回归风险。","changeImpact":"降低过多对外依赖通常意味着拆分编排职责、引入接口边界或把适配逻辑移到更合适的位置。","evidence":["组件类型:function","所属模块:apps/linux_uconsole_gtk","代码锚点:apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L110","被复用/被依赖迹象:存在局部复用或依赖线索","外部协作/编排迹象:协调多个外部对象或能力","apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L110"],"risks":["关系指标来自本地仓库分析,可能受扫描粒度、生成文件或 import 噪声影响。"],"questions":["当前证据无法完全区分这些关系中的运行时调用、类型引用、导出聚合或生成物噪声,因此只作为候选协作压力。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--launchsettingslayout","kind":"technical_hotspot","title":"承担外部协作的候选对象:launchSettingsLayout 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:launchsettingslayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:110","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:launchSettingsLayout 技术热点 是否说明 函数节点:launchSettingsLayout 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makelabel","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeLabel 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makelabel:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp:9","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeLabel 技术热点 是否说明 函数节点:launchSettingsLayout 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makesettingsrow","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeSettingsRow 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makesettingsrow:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:22","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeSettingsRow 技术热点 是否说明 函数节点:launchSettingsLayout 附近存在变更影响面、文件规模或协作压力风险。"}]}]},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-makelabel","kind":"component","title":"函数节点:makeLabel","summary":"function 位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp#L9,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-makelabel/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-makelabel/component-diagram.html","anchor":"engineering:component:function:makelabel:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp:9","status":"candidate","confidence":"high","mermaidKind":"flowchart","mermaid":"flowchart LR\n package_node[\"apps/linux_uconsole_gtk\"]\n file_node[\"apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp#L9\"]\n component_node[\"function: makeLabel\"]\n package_node --\u003e file_node\n file_node --\u003e component_node\n component_node --\u003e outgoingRelations[\"未观察到明显外部协作\"]\n incomingRelations[\"被多个对象复用\"] --\u003e component_node","readingGuide":["这张 Component Diagram 关注 makeLabel 这个 function,展示它所在文件、所属模块以及复用迹象、外部协作迹象。","复用迹象用于判断它是否是共享核心或公共接口;外部协作迹象用于判断它是否承担编排、聚合或桥接职责。","代码锚点是 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp#L9。"],"technicalAnalysis":["makeLabel 在当前仓库证据中呈现为:被复用/被依赖迹象:被多个对象复用或依赖,外部协作/编排迹象:当前未观察到明显外部协作线索,因此它在技术结构中更像共享接口、公共能力或被复用对象。","被大量对象引用或调用往往意味着该组件是共享核心,任何修改都需要谨慎评估兼容性。","所属模块 apps/linux_uconsole_gtk 决定了它更适合作为局部实现细节还是跨模块协作点。"],"businessRelation":["makeLabel 可能是某些业务故事执行过程中的技术节点,但它本身不是业务用例。","从路径上无法直接判断业务角色,需要结合组织/过程模型的 Use Case 证据确认。","如果某个 Use Case 的 Activity、Sequence 或 Class Collaboration 图引用该组件,应在组织/过程模型中明确它承担的是入口、编排、领域规则、适配器还是基础设施职责。"],"governanceNotes":["在修改该组件前,优先查找它被哪些 Use Case 下钻文档引用,避免只看局部代码而忽略业务语义。","该组件协作压力较高,应在对应 Sequence Diagram 或 Class / Structural Diagram 中解释具体协作边界。","如果该组件承载业务规则,应把规则写回组织/过程模型或对应领域文档,而不仅保留在仓库证据中。"],"coverage":["组件类型:function","所属模块:apps/linux_uconsole_gtk","代码锚点:apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp#L9","被复用/被依赖迹象:被多个对象复用或依赖","外部协作/编排迹象:当前未观察到明显外部协作线索"],"evidencePaths":["apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp#L9"],"questions":["该组件协作压力较高;当前文档按候选编排中心或公共接口处理,并通过下钻图说明它的职责证据。"],"scope":{"packageId":"apps/linux_uconsole_gtk","filePath":"apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp"},"drilldowns":[{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--launchsettingslayout","kind":"technical_hotspot","title":"承担外部协作的候选对象:launchSettingsLayout 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:launchsettingslayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:110","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:launchSettingsLayout 技术热点 是否说明 函数节点:makeLabel 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makelabel","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeLabel 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makelabel:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp:9","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeLabel 技术热点 是否说明 函数节点:makeLabel 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makesettingsrow","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeSettingsRow 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makesettingsrow:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:22","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeSettingsRow 技术热点 是否说明 函数节点:makeLabel 附近存在变更影响面、文件规模或协作压力风险。"}],"elements":[{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-makelabel:element:apps-linux_uconsole_gtk","mermaidId":"package_node","label":"apps/linux_uconsole_gtk","kind":"package","anchor":"engineering:package:apps-linux_uconsole_gtk","summary":"apps/linux_uconsole_gtk 是 函数节点:makeLabel 所属的 package/module 边界,用来判断该组件是局部实现细节还是跨模块协作点。","role":"组件归属边界:它定义当前组件默认应该服务的工程上下文。","whyItExists":"组件不能脱离 package 解释;同一个符号如果位于不同 package,可能代表完全不同的职责、所有权和变更影响面。","relationshipMeaning":"apps/linux_uconsole_gtk -\u003e 函数节点:makeLabel 表示该组件由这个技术边界承载;它的角色必须由入口、调用、导出、测试或配置证据来解释,而不是只由目录位置解释。","drilldownIntent":"下钻 package 可以查看 apps/linux_uconsole_gtk 的跨模块依赖、结构协作和热点,从边界层解释该组件为何出现在这里。","businessRelevance":"如果 函数节点:makeLabel 被业务 Use Case 调用,那么 apps/linux_uconsole_gtk 是该业务能力的候选技术落点。","changeImpact":"迁移或重命名该 package 可能改变组件导入路径、下钻索引和 Use Case 对技术承载边界的引用。","evidence":["component package: apps/linux_uconsole_gtk","组件类型:function","所属模块:apps/linux_uconsole_gtk","代码锚点:apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp#L9","被复用/被依赖迹象:被多个对象复用或依赖","外部协作/编排迹象:当前未观察到明显外部协作线索","apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp#L9"],"risks":["组件职责可能被路径误导;仍需结合调用、导入、导出、入口和测试等代码证据判断真实角色。"],"questions":["当前仓库证据尚未证明 函数节点:makeLabel 属于 apps/linux_uconsole_gtk 的稳定职责,暂按候选归属处理。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:package:apps-linux_uconsole_gtk","kind":"package","title":"模块边界:apps/linux_uconsole_gtk","summary":"解释 apps/linux_uconsole_gtk 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/apps-linux_uconsole_gtk/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/apps-linux_uconsole_gtk/package-diagram.html","anchor":"engineering:package:apps-linux_uconsole_gtk","relation":"parent_boundary","reason":"回到 apps/linux_uconsole_gtk 的包级边界,确认 函数节点:makeLabel 是否属于这个模块的稳定职责。"}]},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-makelabel:element:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp","mermaidId":"file_node","label":"apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp","kind":"file","anchor":"engineering:component:function:makelabel:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp:9:file","summary":"apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp 是当前组件的证据文件,说明 函数节点:makeLabel 的技术职责可以追溯到具体代码位置。","role":"代码证据锚点:它让组件解释可以回到具体文件,而不是停留在抽象图形上。","whyItExists":"软件结构模型必须把每个组件图绑定到可验证文件,否则 UI 只是投影而不是可追溯解释。","relationshipMeaning":"文件节点连接组件节点,表示该组件的实现、入口或符号事实来自这个文件。","drilldownIntent":"下钻该文件相关的组件、sequence 或 hotspot,可以检查该文件是否只是实现细节,还是已经成为多个能力共用的技术枢纽。","businessRelevance":"从路径上无法直接判断业务角色,需要结合组织/过程模型的 Use Case 证据确认。","changeImpact":"修改 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp 可能影响该组件图、相关 sequence、热点判断,以及引用该组件的业务下钻文档。","evidence":["apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp","apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp#L9"],"risks":["文件路径只能说明位置,不能单独证明业务职责。"],"questions":["当前文件锚点只能证明位置;如果同文件出现多个入口或职责,需在组件/sequence 文档中拆开解释。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--launchsettingslayout","kind":"technical_hotspot","title":"承担外部协作的候选对象:launchSettingsLayout 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:launchsettingslayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:110","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:launchSettingsLayout 技术热点 是否说明 函数节点:makeLabel 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makelabel","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeLabel 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makelabel:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp:9","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeLabel 技术热点 是否说明 函数节点:makeLabel 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makesettingsrow","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeSettingsRow 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makesettingsrow:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:22","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeSettingsRow 技术热点 是否说明 函数节点:makeLabel 附近存在变更影响面、文件规模或协作压力风险。"}]},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-makelabel:element:makelabel","mermaidId":"component_node","label":"函数节点:makeLabel","kind":"component","anchor":"engineering:component:function:makelabel:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp:9","summary":"函数节点:makeLabel 是当前 Component Diagram 的中心技术对象;这张图用它来解释职责、协作压力和下钻路径。","role":"关键技术对象:它需要结合复用迹象、外部协作迹象、文件位置和下钻图判断具体职责。","whyItExists":"本地仓库证据将它识别为关键组件或符号,且它具有可定位文件 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp、被引用/调用关系和对外依赖/调用关系。","relationshipMeaning":"package、file、被引用/调用关系和对外依赖/调用关系都围绕该组件组织,用来判断它是入口、编排者、共享能力还是风险集中点。","drilldownIntent":"下钻该组件可以进入它参与的 sequence、所属结构切片或附近热点,回答“它如何工作、谁调用它、它调用谁”。","businessRelevance":"函数节点:makeLabel 不是业务用例,但可能是业务能力落地时经过的技术节点。 从路径上无法直接判断业务角色,需要结合组织/过程模型的 Use Case 证据确认。 如果组织/过程模型的 Use Case 下钻图引用它,应在业务文档中说明它承担入口、编排、领域规则、适配器还是基础设施职责。","changeImpact":"修改 函数节点:makeLabel 可能影响 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp 中的入口逻辑、调用关系和引用它的业务/工程文档。","evidence":["apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp","组件类型:function","所属模块:apps/linux_uconsole_gtk","代码锚点:apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp#L9","被复用/被依赖迹象:被多个对象复用或依赖","外部协作/编排迹象:当前未观察到明显外部协作线索","apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp#L9"],"risks":["协作压力高不必然代表设计问题;必须结合业务入口、测试和变更频率判断。"],"questions":["该组件协作压力较高;当前文档按候选编排中心或公共接口处理,并通过下钻图说明它的职责证据。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--launchsettingslayout","kind":"technical_hotspot","title":"承担外部协作的候选对象:launchSettingsLayout 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:launchsettingslayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:110","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:launchSettingsLayout 技术热点 是否说明 函数节点:makeLabel 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makelabel","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeLabel 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makelabel:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp:9","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeLabel 技术热点 是否说明 函数节点:makeLabel 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makesettingsrow","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeSettingsRow 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makesettingsrow:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:22","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeSettingsRow 技术热点 是否说明 函数节点:makeLabel 附近存在变更影响面、文件规模或协作压力风险。"}]},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-makelabel:element:item","mermaidId":"incomingRelations","label":"被引用/调用关系","kind":"reuse_signal","anchor":"engineering:component:function:makelabel:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp:9:incoming-relations","summary":"被复用/被依赖迹象用于解释它在技术网络中的复用程度或编排程度;这里只展示含义,不把内部计数当作用户结论。","role":"复用压力线索:帮助识别共享核心、公共接口或高回归风险点。","whyItExists":"单看组件名称无法判断复杂度,被复用/被依赖迹象 把本地仓库关系证据转译为用户可理解的协作压力。","relationshipMeaning":"其它组件、文件或符号依赖当前组件;关系越多,修改它越可能影响更多调用方。","drilldownIntent":"下钻相关 sequence 或 hotspot,可以把抽象数字落到具体调用片段、文件和风险位置。","businessRelevance":"如果该组件支撑用户可见能力,这个关系指标会影响业务变更的验证成本和回归风险。","changeImpact":"重构被大量对象引用/调用的组件需要谨慎处理兼容性、调用方迁移和测试覆盖。","evidence":["组件类型:function","所属模块:apps/linux_uconsole_gtk","代码锚点:apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp#L9","被复用/被依赖迹象:被多个对象复用或依赖","外部协作/编排迹象:当前未观察到明显外部协作线索","apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp#L9"],"risks":["关系指标来自本地仓库分析,可能受扫描粒度、生成文件或 import 噪声影响。"],"questions":["当前证据无法完全区分这些关系中的运行时调用、类型引用、导出聚合或生成物噪声,因此只作为候选协作压力。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--launchsettingslayout","kind":"technical_hotspot","title":"承担外部协作的候选对象:launchSettingsLayout 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:launchsettingslayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:110","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:launchSettingsLayout 技术热点 是否说明 函数节点:makeLabel 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makelabel","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeLabel 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makelabel:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp:9","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeLabel 技术热点 是否说明 函数节点:makeLabel 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makesettingsrow","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeSettingsRow 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makesettingsrow:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:22","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeSettingsRow 技术热点 是否说明 函数节点:makeLabel 附近存在变更影响面、文件规模或协作压力风险。"}]},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-makelabel:element:item","mermaidId":"outgoingRelations","label":"对外依赖/调用关系","kind":"collaboration_signal","anchor":"engineering:component:function:makelabel:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp:9:outgoing-relations","summary":"外部协作/编排迹象用于解释它在技术网络中的复用程度或编排程度;这里只展示含义,不把内部计数当作用户结论。","role":"编排压力线索:帮助识别编排中心、聚合入口或耦合扩散点。","whyItExists":"单看组件名称无法判断复杂度,外部协作/编排迹象 把本地仓库关系证据转译为用户可理解的协作压力。","relationshipMeaning":"当前组件依赖其它组件、文件或符号;关系越多,越可能承担较宽的协调职责。","drilldownIntent":"下钻相关 sequence 或 hotspot,可以把抽象数字落到具体调用片段、文件和风险位置。","businessRelevance":"如果该组件支撑用户可见能力,这个关系指标会影响业务变更的验证成本和回归风险。","changeImpact":"降低过多对外依赖通常意味着拆分编排职责、引入接口边界或把适配逻辑移到更合适的位置。","evidence":["组件类型:function","所属模块:apps/linux_uconsole_gtk","代码锚点:apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp#L9","被复用/被依赖迹象:被多个对象复用或依赖","外部协作/编排迹象:当前未观察到明显外部协作线索","apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp#L9"],"risks":["关系指标来自本地仓库分析,可能受扫描粒度、生成文件或 import 噪声影响。"],"questions":["当前证据无法完全区分这些关系中的运行时调用、类型引用、导出聚合或生成物噪声,因此只作为候选协作压力。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--launchsettingslayout","kind":"technical_hotspot","title":"承担外部协作的候选对象:launchSettingsLayout 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:launchsettingslayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:110","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:launchSettingsLayout 技术热点 是否说明 函数节点:makeLabel 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makelabel","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeLabel 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makelabel:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp:9","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeLabel 技术热点 是否说明 函数节点:makeLabel 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makesettingsrow","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeSettingsRow 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makesettingsrow:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:22","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeSettingsRow 技术热点 是否说明 函数节点:makeLabel 附近存在变更影响面、文件规模或协作压力风险。"}]}]},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-makesettingsrow","kind":"component","title":"函数节点:makeSettingsRow","summary":"function 位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L22,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-makesettingsrow/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-makesettingsrow/component-diagram.html","anchor":"engineering:component:function:makesettingsrow:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:22","status":"candidate","confidence":"high","mermaidKind":"flowchart","mermaid":"flowchart LR\n package_node[\"apps/linux_uconsole_gtk\"]\n file_node[\"apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L22\"]\n component_node[\"function: makeSettingsRow\"]\n package_node --\u003e file_node\n file_node --\u003e component_node\n component_node --\u003e outgoingRelations[\"存在外部协作线索\"]\n incomingRelations[\"被多个对象复用\"] --\u003e component_node","readingGuide":["这张 Component Diagram 关注 makeSettingsRow 这个 function,展示它所在文件、所属模块以及复用迹象、外部协作迹象。","复用迹象用于判断它是否是共享核心或公共接口;外部协作迹象用于判断它是否承担编排、聚合或桥接职责。","代码锚点是 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L22。"],"technicalAnalysis":["makeSettingsRow 在当前仓库证据中呈现为:被复用/被依赖迹象:被多个对象复用或依赖,外部协作/编排迹象:存在局部外部协作线索,因此它在技术结构中更像共享接口、公共能力或被复用对象。","被大量对象引用或调用往往意味着该组件是共享核心,任何修改都需要谨慎评估兼容性。","所属模块 apps/linux_uconsole_gtk 决定了它更适合作为局部实现细节还是跨模块协作点。"],"businessRelation":["makeSettingsRow 可能是某些业务故事执行过程中的技术节点,但它本身不是业务用例。","从路径上无法直接判断业务角色,需要结合组织/过程模型的 Use Case 证据确认。","如果某个 Use Case 的 Activity、Sequence 或 Class Collaboration 图引用该组件,应在组织/过程模型中明确它承担的是入口、编排、领域规则、适配器还是基础设施职责。"],"governanceNotes":["在修改该组件前,优先查找它被哪些 Use Case 下钻文档引用,避免只看局部代码而忽略业务语义。","该组件协作压力较高,应在对应 Sequence Diagram 或 Class / Structural Diagram 中解释具体协作边界。","如果该组件承载业务规则,应把规则写回组织/过程模型或对应领域文档,而不仅保留在仓库证据中。"],"coverage":["组件类型:function","所属模块:apps/linux_uconsole_gtk","代码锚点:apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L22","被复用/被依赖迹象:被多个对象复用或依赖","外部协作/编排迹象:存在局部外部协作线索"],"evidencePaths":["apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L22"],"questions":["该组件协作压力较高;当前文档按候选编排中心或公共接口处理,并通过下钻图说明它的职责证据。"],"scope":{"packageId":"apps/linux_uconsole_gtk","filePath":"apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp"},"drilldowns":[{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--launchsettingslayout","kind":"technical_hotspot","title":"承担外部协作的候选对象:launchSettingsLayout 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:launchsettingslayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:110","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:launchSettingsLayout 技术热点 是否说明 函数节点:makeSettingsRow 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makelabel","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeLabel 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makelabel:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp:9","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeLabel 技术热点 是否说明 函数节点:makeSettingsRow 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makesettingsrow","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeSettingsRow 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makesettingsrow:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:22","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeSettingsRow 技术热点 是否说明 函数节点:makeSettingsRow 附近存在变更影响面、文件规模或协作压力风险。"}],"elements":[{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-makesettingsrow:element:apps-linux_uconsole_gtk","mermaidId":"package_node","label":"apps/linux_uconsole_gtk","kind":"package","anchor":"engineering:package:apps-linux_uconsole_gtk","summary":"apps/linux_uconsole_gtk 是 函数节点:makeSettingsRow 所属的 package/module 边界,用来判断该组件是局部实现细节还是跨模块协作点。","role":"组件归属边界:它定义当前组件默认应该服务的工程上下文。","whyItExists":"组件不能脱离 package 解释;同一个符号如果位于不同 package,可能代表完全不同的职责、所有权和变更影响面。","relationshipMeaning":"apps/linux_uconsole_gtk -\u003e 函数节点:makeSettingsRow 表示该组件由这个技术边界承载;它的角色必须由入口、调用、导出、测试或配置证据来解释,而不是只由目录位置解释。","drilldownIntent":"下钻 package 可以查看 apps/linux_uconsole_gtk 的跨模块依赖、结构协作和热点,从边界层解释该组件为何出现在这里。","businessRelevance":"如果 函数节点:makeSettingsRow 被业务 Use Case 调用,那么 apps/linux_uconsole_gtk 是该业务能力的候选技术落点。","changeImpact":"迁移或重命名该 package 可能改变组件导入路径、下钻索引和 Use Case 对技术承载边界的引用。","evidence":["component package: apps/linux_uconsole_gtk","组件类型:function","所属模块:apps/linux_uconsole_gtk","代码锚点:apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L22","被复用/被依赖迹象:被多个对象复用或依赖","外部协作/编排迹象:存在局部外部协作线索","apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L22"],"risks":["组件职责可能被路径误导;仍需结合调用、导入、导出、入口和测试等代码证据判断真实角色。"],"questions":["当前仓库证据尚未证明 函数节点:makeSettingsRow 属于 apps/linux_uconsole_gtk 的稳定职责,暂按候选归属处理。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:package:apps-linux_uconsole_gtk","kind":"package","title":"模块边界:apps/linux_uconsole_gtk","summary":"解释 apps/linux_uconsole_gtk 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/apps-linux_uconsole_gtk/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/apps-linux_uconsole_gtk/package-diagram.html","anchor":"engineering:package:apps-linux_uconsole_gtk","relation":"parent_boundary","reason":"回到 apps/linux_uconsole_gtk 的包级边界,确认 函数节点:makeSettingsRow 是否属于这个模块的稳定职责。"}]},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-makesettingsrow:element:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp","mermaidId":"file_node","label":"apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp","kind":"file","anchor":"engineering:component:function:makesettingsrow:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:22:file","summary":"apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp 是当前组件的证据文件,说明 函数节点:makeSettingsRow 的技术职责可以追溯到具体代码位置。","role":"代码证据锚点:它让组件解释可以回到具体文件,而不是停留在抽象图形上。","whyItExists":"软件结构模型必须把每个组件图绑定到可验证文件,否则 UI 只是投影而不是可追溯解释。","relationshipMeaning":"文件节点连接组件节点,表示该组件的实现、入口或符号事实来自这个文件。","drilldownIntent":"下钻该文件相关的组件、sequence 或 hotspot,可以检查该文件是否只是实现细节,还是已经成为多个能力共用的技术枢纽。","businessRelevance":"从路径上无法直接判断业务角色,需要结合组织/过程模型的 Use Case 证据确认。","changeImpact":"修改 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp 可能影响该组件图、相关 sequence、热点判断,以及引用该组件的业务下钻文档。","evidence":["apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp","apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L22"],"risks":["文件路径只能说明位置,不能单独证明业务职责。"],"questions":["当前文件锚点只能证明位置;如果同文件出现多个入口或职责,需在组件/sequence 文档中拆开解释。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--launchsettingslayout","kind":"technical_hotspot","title":"承担外部协作的候选对象:launchSettingsLayout 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:launchsettingslayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:110","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:launchSettingsLayout 技术热点 是否说明 函数节点:makeSettingsRow 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makelabel","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeLabel 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makelabel:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp:9","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeLabel 技术热点 是否说明 函数节点:makeSettingsRow 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makesettingsrow","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeSettingsRow 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makesettingsrow:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:22","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeSettingsRow 技术热点 是否说明 函数节点:makeSettingsRow 附近存在变更影响面、文件规模或协作压力风险。"}]},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-makesettingsrow:element:makesettingsrow","mermaidId":"component_node","label":"函数节点:makeSettingsRow","kind":"component","anchor":"engineering:component:function:makesettingsrow:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:22","summary":"函数节点:makeSettingsRow 是当前 Component Diagram 的中心技术对象;这张图用它来解释职责、协作压力和下钻路径。","role":"关键技术对象:它需要结合复用迹象、外部协作迹象、文件位置和下钻图判断具体职责。","whyItExists":"本地仓库证据将它识别为关键组件或符号,且它具有可定位文件 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp、被引用/调用关系和对外依赖/调用关系。","relationshipMeaning":"package、file、被引用/调用关系和对外依赖/调用关系都围绕该组件组织,用来判断它是入口、编排者、共享能力还是风险集中点。","drilldownIntent":"下钻该组件可以进入它参与的 sequence、所属结构切片或附近热点,回答“它如何工作、谁调用它、它调用谁”。","businessRelevance":"函数节点:makeSettingsRow 不是业务用例,但可能是业务能力落地时经过的技术节点。 从路径上无法直接判断业务角色,需要结合组织/过程模型的 Use Case 证据确认。 如果组织/过程模型的 Use Case 下钻图引用它,应在业务文档中说明它承担入口、编排、领域规则、适配器还是基础设施职责。","changeImpact":"修改 函数节点:makeSettingsRow 可能影响 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp 中的入口逻辑、调用关系和引用它的业务/工程文档。","evidence":["apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp","组件类型:function","所属模块:apps/linux_uconsole_gtk","代码锚点:apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L22","被复用/被依赖迹象:被多个对象复用或依赖","外部协作/编排迹象:存在局部外部协作线索","apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L22"],"risks":["协作压力高不必然代表设计问题;必须结合业务入口、测试和变更频率判断。"],"questions":["该组件协作压力较高;当前文档按候选编排中心或公共接口处理,并通过下钻图说明它的职责证据。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--launchsettingslayout","kind":"technical_hotspot","title":"承担外部协作的候选对象:launchSettingsLayout 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:launchsettingslayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:110","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:launchSettingsLayout 技术热点 是否说明 函数节点:makeSettingsRow 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makelabel","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeLabel 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makelabel:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp:9","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeLabel 技术热点 是否说明 函数节点:makeSettingsRow 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makesettingsrow","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeSettingsRow 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makesettingsrow:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:22","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeSettingsRow 技术热点 是否说明 函数节点:makeSettingsRow 附近存在变更影响面、文件规模或协作压力风险。"}]},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-makesettingsrow:element:item","mermaidId":"incomingRelations","label":"被引用/调用关系","kind":"reuse_signal","anchor":"engineering:component:function:makesettingsrow:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:22:incoming-relations","summary":"被复用/被依赖迹象用于解释它在技术网络中的复用程度或编排程度;这里只展示含义,不把内部计数当作用户结论。","role":"复用压力线索:帮助识别共享核心、公共接口或高回归风险点。","whyItExists":"单看组件名称无法判断复杂度,被复用/被依赖迹象 把本地仓库关系证据转译为用户可理解的协作压力。","relationshipMeaning":"其它组件、文件或符号依赖当前组件;关系越多,修改它越可能影响更多调用方。","drilldownIntent":"下钻相关 sequence 或 hotspot,可以把抽象数字落到具体调用片段、文件和风险位置。","businessRelevance":"如果该组件支撑用户可见能力,这个关系指标会影响业务变更的验证成本和回归风险。","changeImpact":"重构被大量对象引用/调用的组件需要谨慎处理兼容性、调用方迁移和测试覆盖。","evidence":["组件类型:function","所属模块:apps/linux_uconsole_gtk","代码锚点:apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L22","被复用/被依赖迹象:被多个对象复用或依赖","外部协作/编排迹象:存在局部外部协作线索","apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L22"],"risks":["关系指标来自本地仓库分析,可能受扫描粒度、生成文件或 import 噪声影响。"],"questions":["当前证据无法完全区分这些关系中的运行时调用、类型引用、导出聚合或生成物噪声,因此只作为候选协作压力。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--launchsettingslayout","kind":"technical_hotspot","title":"承担外部协作的候选对象:launchSettingsLayout 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:launchsettingslayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:110","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:launchSettingsLayout 技术热点 是否说明 函数节点:makeSettingsRow 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makelabel","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeLabel 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makelabel:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp:9","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeLabel 技术热点 是否说明 函数节点:makeSettingsRow 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makesettingsrow","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeSettingsRow 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makesettingsrow:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:22","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeSettingsRow 技术热点 是否说明 函数节点:makeSettingsRow 附近存在变更影响面、文件规模或协作压力风险。"}]},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-makesettingsrow:element:item","mermaidId":"outgoingRelations","label":"对外依赖/调用关系","kind":"collaboration_signal","anchor":"engineering:component:function:makesettingsrow:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:22:outgoing-relations","summary":"外部协作/编排迹象用于解释它在技术网络中的复用程度或编排程度;这里只展示含义,不把内部计数当作用户结论。","role":"编排压力线索:帮助识别编排中心、聚合入口或耦合扩散点。","whyItExists":"单看组件名称无法判断复杂度,外部协作/编排迹象 把本地仓库关系证据转译为用户可理解的协作压力。","relationshipMeaning":"当前组件依赖其它组件、文件或符号;关系越多,越可能承担较宽的协调职责。","drilldownIntent":"下钻相关 sequence 或 hotspot,可以把抽象数字落到具体调用片段、文件和风险位置。","businessRelevance":"如果该组件支撑用户可见能力,这个关系指标会影响业务变更的验证成本和回归风险。","changeImpact":"降低过多对外依赖通常意味着拆分编排职责、引入接口边界或把适配逻辑移到更合适的位置。","evidence":["组件类型:function","所属模块:apps/linux_uconsole_gtk","代码锚点:apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L22","被复用/被依赖迹象:被多个对象复用或依赖","外部协作/编排迹象:存在局部外部协作线索","apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L22"],"risks":["关系指标来自本地仓库分析,可能受扫描粒度、生成文件或 import 噪声影响。"],"questions":["当前证据无法完全区分这些关系中的运行时调用、类型引用、导出聚合或生成物噪声,因此只作为候选协作压力。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--launchsettingslayout","kind":"technical_hotspot","title":"承担外部协作的候选对象:launchSettingsLayout 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:launchsettingslayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:110","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:launchSettingsLayout 技术热点 是否说明 函数节点:makeSettingsRow 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makelabel","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeLabel 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makelabel:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp:9","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeLabel 技术热点 是否说明 函数节点:makeSettingsRow 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makesettingsrow","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeSettingsRow 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makesettingsrow:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:22","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeSettingsRow 技术热点 是否说明 函数节点:makeSettingsRow 附近存在变更影响面、文件规模或协作压力风险。"}]}]},{"id":"engineering:diagram:component:apps-esp32_lvgl-main","kind":"component","title":"函数节点:main","summary":"function 位于 apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp#L33,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-main/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-main/component-diagram.html","anchor":"engineering:component:function:main:apps-esp32_lvgl-tests-esp32_lvgl_sd_coredump_contract_smoke.cpp:33","status":"candidate","confidence":"high","mermaidKind":"flowchart","mermaid":"flowchart LR\n package_node[\"apps/esp32_lvgl\"]\n file_node[\"apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp#L33\"]\n component_node[\"function: main\"]\n package_node --\u003e file_node\n file_node --\u003e component_node\n component_node --\u003e outgoingRelations[\"协调多个外部对象\"]\n incomingRelations[\"存在复用线索\"] --\u003e component_node","readingGuide":["这张 Component Diagram 关注 main 这个 function,展示它所在文件、所属模块以及复用迹象、外部协作迹象。","复用迹象用于判断它是否是共享核心或公共接口;外部协作迹象用于判断它是否承担编排、聚合或桥接职责。","代码锚点是 apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp#L33。"],"technicalAnalysis":["main 在当前仓库证据中呈现为:被复用/被依赖迹象:存在局部复用或依赖线索,外部协作/编排迹象:协调多个外部对象或能力,因此它在技术结构中更像编排者或聚合入口。","过多对外依赖往往意味着该组件连接过多职责,阅读、测试和变更影响面都会扩大。","所属模块 apps/esp32_lvgl 决定了它更适合作为局部实现细节还是跨模块协作点。"],"businessRelation":["main 可能是某些业务故事执行过程中的技术节点,但它本身不是业务用例。","从路径上无法直接判断业务角色,需要结合组织/过程模型的 Use Case 证据确认。","如果某个 Use Case 的 Activity、Sequence 或 Class Collaboration 图引用该组件,应在组织/过程模型中明确它承担的是入口、编排、领域规则、适配器还是基础设施职责。"],"governanceNotes":["在修改该组件前,优先查找它被哪些 Use Case 下钻文档引用,避免只看局部代码而忽略业务语义。","该组件协作压力较高,应在对应 Sequence Diagram 或 Class / Structural Diagram 中解释具体协作边界。","如果该组件承载业务规则,应把规则写回组织/过程模型或对应领域文档,而不仅保留在仓库证据中。"],"coverage":["组件类型:function","所属模块:apps/esp32_lvgl","代码锚点:apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp#L33","被复用/被依赖迹象:存在局部复用或依赖线索","外部协作/编排迹象:协调多个外部对象或能力"],"evidencePaths":["apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp#L33"],"questions":["该组件协作压力较高;当前文档按候选编排中心或公共接口处理,并通过下钻图说明它的职责证据。"],"scope":{"packageId":"apps/esp32_lvgl","filePath":"apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp"},"drilldowns":[{"id":"engineering:diagram:sequence:tick-calls-log_loop_interval","kind":"sequence","title":"动态协作:tick 调用 log_loop_interval","summary":"apps/esp32_lvgl/src/esp32_lvgl_arduino_loop_runtime.cpp 中的 tick calls apps/esp32_lvgl/src/esp32_lvgl_arduino_loop_runtime.cpp 中的 log_loop_interval。","docPath":"docs/engineering/sequence-diagrams/tick-calls-log_loop_interval/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/tick-calls-log_loop_interval/sequence-diagram.html","anchor":"engineering:runtime-flow:tick:log_loop_interval:apps-esp32_lvgl-src-esp32_lvgl_arduino_loop_runtime.cpp:apps-esp32_lvgl-src-esp32_lvgl_arduino_loop_runtime.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了确认 函数节点:main 在 tick -\u003e log_loop_interval 中的角色:它是在发起协作、接收调用、做编排,还是只暴露被依赖能力。"},{"id":"engineering:diagram:sequence:add_status_line-calls-add_label","kind":"sequence","title":"动态协作:add_status_line 调用 add_label","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_status_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_label。","docPath":"docs/engineering/sequence-diagrams/add_status_line-calls-add_label/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/add_status_line-calls-add_label/sequence-diagram.html","anchor":"engineering:runtime-flow:add_status_line:add_label:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了确认 函数节点:main 在 add_status_line -\u003e add_label 中的角色:它是在发起协作、接收调用、做编排,还是只暴露被依赖能力。"},{"id":"engineering:diagram:sequence:add_u32_line-calls-add_label","kind":"sequence","title":"动态协作:add_u32_line 调用 add_label","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_u32_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_label。","docPath":"docs/engineering/sequence-diagrams/add_u32_line-calls-add_label/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/add_u32_line-calls-add_label/sequence-diagram.html","anchor":"engineering:runtime-flow:add_u32_line:add_label:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了确认 函数节点:main 在 add_u32_line -\u003e add_label 中的角色:它是在发起协作、接收调用、做编排,还是只暴露被依赖能力。"},{"id":"engineering:diagram:sequence:add_hex_line-calls-add_status_line","kind":"sequence","title":"动态协作:add_hex_line 调用 add_status_line","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_hex_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_status_line。","docPath":"docs/engineering/sequence-diagrams/add_hex_line-calls-add_status_line/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/add_hex_line-calls-add_status_line/sequence-diagram.html","anchor":"engineering:runtime-flow:add_hex_line:add_status_line:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了确认 函数节点:main 在 add_hex_line -\u003e add_status_line 中的角色:它是在发起协作、接收调用、做编排,还是只暴露被依赖能力。"},{"id":"engineering:diagram:sequence:companion_enter-calls-add_label","kind":"sequence","title":"动态协作:companion_enter 调用 add_label","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 companion_enter calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_label。","docPath":"docs/engineering/sequence-diagrams/companion_enter-calls-add_label/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/companion_enter-calls-add_label/sequence-diagram.html","anchor":"engineering:runtime-flow:companion_enter:add_label:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了确认 函数节点:main 在 companion_enter -\u003e add_label 中的角色:它是在发起协作、接收调用、做编排,还是只暴露被依赖能力。"}],"elements":[{"id":"engineering:diagram:component:apps-esp32_lvgl-main:element:apps-esp32_lvgl","mermaidId":"package_node","label":"apps/esp32_lvgl","kind":"package","anchor":"engineering:package:apps-esp32_lvgl","summary":"apps/esp32_lvgl 是 函数节点:main 所属的 package/module 边界,用来判断该组件是局部实现细节还是跨模块协作点。","role":"组件归属边界:它定义当前组件默认应该服务的工程上下文。","whyItExists":"组件不能脱离 package 解释;同一个符号如果位于不同 package,可能代表完全不同的职责、所有权和变更影响面。","relationshipMeaning":"apps/esp32_lvgl -\u003e 函数节点:main 表示该组件由这个技术边界承载;它的角色必须由入口、调用、导出、测试或配置证据来解释,而不是只由目录位置解释。","drilldownIntent":"下钻 package 可以查看 apps/esp32_lvgl 的跨模块依赖、结构协作和热点,从边界层解释该组件为何出现在这里。","businessRelevance":"如果 函数节点:main 被业务 Use Case 调用,那么 apps/esp32_lvgl 是该业务能力的候选技术落点。","changeImpact":"迁移或重命名该 package 可能改变组件导入路径、下钻索引和 Use Case 对技术承载边界的引用。","evidence":["component package: apps/esp32_lvgl","组件类型:function","所属模块:apps/esp32_lvgl","代码锚点:apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp#L33","被复用/被依赖迹象:存在局部复用或依赖线索","外部协作/编排迹象:协调多个外部对象或能力","apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp#L33"],"risks":["组件职责可能被路径误导;仍需结合调用、导入、导出、入口和测试等代码证据判断真实角色。"],"questions":["当前仓库证据尚未证明 函数节点:main 属于 apps/esp32_lvgl 的稳定职责,暂按候选归属处理。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:package:apps-esp32_lvgl","kind":"package","title":"模块边界:apps/esp32_lvgl","summary":"解释 apps/esp32_lvgl 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/apps-esp32_lvgl/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/apps-esp32_lvgl/package-diagram.html","anchor":"engineering:package:apps-esp32_lvgl","relation":"parent_boundary","reason":"回到 apps/esp32_lvgl 的包级边界,确认 函数节点:main 是否属于这个模块的稳定职责。"}]},{"id":"engineering:diagram:component:apps-esp32_lvgl-main:element:apps-esp32_lvgl-tests-esp32_lvgl_sd_coredump_contract_smoke.cpp","mermaidId":"file_node","label":"apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp","kind":"file","anchor":"engineering:component:function:main:apps-esp32_lvgl-tests-esp32_lvgl_sd_coredump_contract_smoke.cpp:33:file","summary":"apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp 是当前组件的证据文件,说明 函数节点:main 的技术职责可以追溯到具体代码位置。","role":"代码证据锚点:它让组件解释可以回到具体文件,而不是停留在抽象图形上。","whyItExists":"软件结构模型必须把每个组件图绑定到可验证文件,否则 UI 只是投影而不是可追溯解释。","relationshipMeaning":"文件节点连接组件节点,表示该组件的实现、入口或符号事实来自这个文件。","drilldownIntent":"下钻该文件相关的组件、sequence 或 hotspot,可以检查该文件是否只是实现细节,还是已经成为多个能力共用的技术枢纽。","businessRelevance":"从路径上无法直接判断业务角色,需要结合组织/过程模型的 Use Case 证据确认。","changeImpact":"修改 apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp 可能影响该组件图、相关 sequence、热点判断,以及引用该组件的业务下钻文档。","evidence":["apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp","apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp#L33"],"risks":["文件路径只能说明位置,不能单独证明业务职责。"],"questions":["当前文件锚点只能证明位置;如果同文件出现多个入口或职责,需在组件/sequence 文档中拆开解释。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:sequence:tick-calls-log_loop_interval","kind":"sequence","title":"动态协作:tick 调用 log_loop_interval","summary":"apps/esp32_lvgl/src/esp32_lvgl_arduino_loop_runtime.cpp 中的 tick calls apps/esp32_lvgl/src/esp32_lvgl_arduino_loop_runtime.cpp 中的 log_loop_interval。","docPath":"docs/engineering/sequence-diagrams/tick-calls-log_loop_interval/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/tick-calls-log_loop_interval/sequence-diagram.html","anchor":"engineering:runtime-flow:tick:log_loop_interval:apps-esp32_lvgl-src-esp32_lvgl_arduino_loop_runtime.cpp:apps-esp32_lvgl-src-esp32_lvgl_arduino_loop_runtime.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了确认 函数节点:main 在 tick -\u003e log_loop_interval 中的角色:它是在发起协作、接收调用、做编排,还是只暴露被依赖能力。"},{"id":"engineering:diagram:sequence:add_status_line-calls-add_label","kind":"sequence","title":"动态协作:add_status_line 调用 add_label","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_status_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_label。","docPath":"docs/engineering/sequence-diagrams/add_status_line-calls-add_label/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/add_status_line-calls-add_label/sequence-diagram.html","anchor":"engineering:runtime-flow:add_status_line:add_label:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了确认 函数节点:main 在 add_status_line -\u003e add_label 中的角色:它是在发起协作、接收调用、做编排,还是只暴露被依赖能力。"},{"id":"engineering:diagram:sequence:add_u32_line-calls-add_label","kind":"sequence","title":"动态协作:add_u32_line 调用 add_label","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_u32_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_label。","docPath":"docs/engineering/sequence-diagrams/add_u32_line-calls-add_label/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/add_u32_line-calls-add_label/sequence-diagram.html","anchor":"engineering:runtime-flow:add_u32_line:add_label:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了确认 函数节点:main 在 add_u32_line -\u003e add_label 中的角色:它是在发起协作、接收调用、做编排,还是只暴露被依赖能力。"},{"id":"engineering:diagram:sequence:add_hex_line-calls-add_status_line","kind":"sequence","title":"动态协作:add_hex_line 调用 add_status_line","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_hex_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_status_line。","docPath":"docs/engineering/sequence-diagrams/add_hex_line-calls-add_status_line/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/add_hex_line-calls-add_status_line/sequence-diagram.html","anchor":"engineering:runtime-flow:add_hex_line:add_status_line:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了确认 函数节点:main 在 add_hex_line -\u003e add_status_line 中的角色:它是在发起协作、接收调用、做编排,还是只暴露被依赖能力。"},{"id":"engineering:diagram:sequence:companion_enter-calls-add_label","kind":"sequence","title":"动态协作:companion_enter 调用 add_label","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 companion_enter calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_label。","docPath":"docs/engineering/sequence-diagrams/companion_enter-calls-add_label/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/companion_enter-calls-add_label/sequence-diagram.html","anchor":"engineering:runtime-flow:companion_enter:add_label:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了确认 函数节点:main 在 companion_enter -\u003e add_label 中的角色:它是在发起协作、接收调用、做编排,还是只暴露被依赖能力。"}]},{"id":"engineering:diagram:component:apps-esp32_lvgl-main:element:main","mermaidId":"component_node","label":"函数节点:main","kind":"component","anchor":"engineering:component:function:main:apps-esp32_lvgl-tests-esp32_lvgl_sd_coredump_contract_smoke.cpp:33","summary":"函数节点:main 是当前 Component Diagram 的中心技术对象;这张图用它来解释职责、协作压力和下钻路径。","role":"关键技术对象:它需要结合复用迹象、外部协作迹象、文件位置和下钻图判断具体职责。","whyItExists":"本地仓库证据将它识别为关键组件或符号,且它具有可定位文件 apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp、被引用/调用关系和对外依赖/调用关系。","relationshipMeaning":"package、file、被引用/调用关系和对外依赖/调用关系都围绕该组件组织,用来判断它是入口、编排者、共享能力还是风险集中点。","drilldownIntent":"下钻该组件可以进入它参与的 sequence、所属结构切片或附近热点,回答“它如何工作、谁调用它、它调用谁”。","businessRelevance":"函数节点:main 不是业务用例,但可能是业务能力落地时经过的技术节点。 从路径上无法直接判断业务角色,需要结合组织/过程模型的 Use Case 证据确认。 如果组织/过程模型的 Use Case 下钻图引用它,应在业务文档中说明它承担入口、编排、领域规则、适配器还是基础设施职责。","changeImpact":"修改 函数节点:main 可能影响 apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp 中的入口逻辑、调用关系和引用它的业务/工程文档。","evidence":["apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp","组件类型:function","所属模块:apps/esp32_lvgl","代码锚点:apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp#L33","被复用/被依赖迹象:存在局部复用或依赖线索","外部协作/编排迹象:协调多个外部对象或能力","apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp#L33"],"risks":["协作压力高不必然代表设计问题;必须结合业务入口、测试和变更频率判断。"],"questions":["该组件协作压力较高;当前文档按候选编排中心或公共接口处理,并通过下钻图说明它的职责证据。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:sequence:tick-calls-log_loop_interval","kind":"sequence","title":"动态协作:tick 调用 log_loop_interval","summary":"apps/esp32_lvgl/src/esp32_lvgl_arduino_loop_runtime.cpp 中的 tick calls apps/esp32_lvgl/src/esp32_lvgl_arduino_loop_runtime.cpp 中的 log_loop_interval。","docPath":"docs/engineering/sequence-diagrams/tick-calls-log_loop_interval/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/tick-calls-log_loop_interval/sequence-diagram.html","anchor":"engineering:runtime-flow:tick:log_loop_interval:apps-esp32_lvgl-src-esp32_lvgl_arduino_loop_runtime.cpp:apps-esp32_lvgl-src-esp32_lvgl_arduino_loop_runtime.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了确认 函数节点:main 在 tick -\u003e log_loop_interval 中的角色:它是在发起协作、接收调用、做编排,还是只暴露被依赖能力。"},{"id":"engineering:diagram:sequence:add_status_line-calls-add_label","kind":"sequence","title":"动态协作:add_status_line 调用 add_label","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_status_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_label。","docPath":"docs/engineering/sequence-diagrams/add_status_line-calls-add_label/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/add_status_line-calls-add_label/sequence-diagram.html","anchor":"engineering:runtime-flow:add_status_line:add_label:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了确认 函数节点:main 在 add_status_line -\u003e add_label 中的角色:它是在发起协作、接收调用、做编排,还是只暴露被依赖能力。"},{"id":"engineering:diagram:sequence:add_u32_line-calls-add_label","kind":"sequence","title":"动态协作:add_u32_line 调用 add_label","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_u32_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_label。","docPath":"docs/engineering/sequence-diagrams/add_u32_line-calls-add_label/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/add_u32_line-calls-add_label/sequence-diagram.html","anchor":"engineering:runtime-flow:add_u32_line:add_label:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了确认 函数节点:main 在 add_u32_line -\u003e add_label 中的角色:它是在发起协作、接收调用、做编排,还是只暴露被依赖能力。"},{"id":"engineering:diagram:sequence:add_hex_line-calls-add_status_line","kind":"sequence","title":"动态协作:add_hex_line 调用 add_status_line","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_hex_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_status_line。","docPath":"docs/engineering/sequence-diagrams/add_hex_line-calls-add_status_line/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/add_hex_line-calls-add_status_line/sequence-diagram.html","anchor":"engineering:runtime-flow:add_hex_line:add_status_line:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了确认 函数节点:main 在 add_hex_line -\u003e add_status_line 中的角色:它是在发起协作、接收调用、做编排,还是只暴露被依赖能力。"},{"id":"engineering:diagram:sequence:companion_enter-calls-add_label","kind":"sequence","title":"动态协作:companion_enter 调用 add_label","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 companion_enter calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_label。","docPath":"docs/engineering/sequence-diagrams/companion_enter-calls-add_label/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/companion_enter-calls-add_label/sequence-diagram.html","anchor":"engineering:runtime-flow:companion_enter:add_label:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了确认 函数节点:main 在 companion_enter -\u003e add_label 中的角色:它是在发起协作、接收调用、做编排,还是只暴露被依赖能力。"}]},{"id":"engineering:diagram:component:apps-esp32_lvgl-main:element:item","mermaidId":"incomingRelations","label":"被引用/调用关系","kind":"reuse_signal","anchor":"engineering:component:function:main:apps-esp32_lvgl-tests-esp32_lvgl_sd_coredump_contract_smoke.cpp:33:incoming-relations","summary":"被复用/被依赖迹象用于解释它在技术网络中的复用程度或编排程度;这里只展示含义,不把内部计数当作用户结论。","role":"复用压力线索:帮助识别共享核心、公共接口或高回归风险点。","whyItExists":"单看组件名称无法判断复杂度,被复用/被依赖迹象 把本地仓库关系证据转译为用户可理解的协作压力。","relationshipMeaning":"其它组件、文件或符号依赖当前组件;关系越多,修改它越可能影响更多调用方。","drilldownIntent":"下钻相关 sequence 或 hotspot,可以把抽象数字落到具体调用片段、文件和风险位置。","businessRelevance":"如果该组件支撑用户可见能力,这个关系指标会影响业务变更的验证成本和回归风险。","changeImpact":"重构被大量对象引用/调用的组件需要谨慎处理兼容性、调用方迁移和测试覆盖。","evidence":["组件类型:function","所属模块:apps/esp32_lvgl","代码锚点:apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp#L33","被复用/被依赖迹象:存在局部复用或依赖线索","外部协作/编排迹象:协调多个外部对象或能力","apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp#L33"],"risks":["关系指标来自本地仓库分析,可能受扫描粒度、生成文件或 import 噪声影响。"],"questions":["当前证据无法完全区分这些关系中的运行时调用、类型引用、导出聚合或生成物噪声,因此只作为候选协作压力。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:sequence:tick-calls-log_loop_interval","kind":"sequence","title":"动态协作:tick 调用 log_loop_interval","summary":"apps/esp32_lvgl/src/esp32_lvgl_arduino_loop_runtime.cpp 中的 tick calls apps/esp32_lvgl/src/esp32_lvgl_arduino_loop_runtime.cpp 中的 log_loop_interval。","docPath":"docs/engineering/sequence-diagrams/tick-calls-log_loop_interval/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/tick-calls-log_loop_interval/sequence-diagram.html","anchor":"engineering:runtime-flow:tick:log_loop_interval:apps-esp32_lvgl-src-esp32_lvgl_arduino_loop_runtime.cpp:apps-esp32_lvgl-src-esp32_lvgl_arduino_loop_runtime.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了确认 函数节点:main 在 tick -\u003e log_loop_interval 中的角色:它是在发起协作、接收调用、做编排,还是只暴露被依赖能力。"},{"id":"engineering:diagram:sequence:add_status_line-calls-add_label","kind":"sequence","title":"动态协作:add_status_line 调用 add_label","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_status_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_label。","docPath":"docs/engineering/sequence-diagrams/add_status_line-calls-add_label/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/add_status_line-calls-add_label/sequence-diagram.html","anchor":"engineering:runtime-flow:add_status_line:add_label:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了确认 函数节点:main 在 add_status_line -\u003e add_label 中的角色:它是在发起协作、接收调用、做编排,还是只暴露被依赖能力。"},{"id":"engineering:diagram:sequence:add_u32_line-calls-add_label","kind":"sequence","title":"动态协作:add_u32_line 调用 add_label","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_u32_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_label。","docPath":"docs/engineering/sequence-diagrams/add_u32_line-calls-add_label/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/add_u32_line-calls-add_label/sequence-diagram.html","anchor":"engineering:runtime-flow:add_u32_line:add_label:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了确认 函数节点:main 在 add_u32_line -\u003e add_label 中的角色:它是在发起协作、接收调用、做编排,还是只暴露被依赖能力。"},{"id":"engineering:diagram:sequence:add_hex_line-calls-add_status_line","kind":"sequence","title":"动态协作:add_hex_line 调用 add_status_line","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_hex_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_status_line。","docPath":"docs/engineering/sequence-diagrams/add_hex_line-calls-add_status_line/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/add_hex_line-calls-add_status_line/sequence-diagram.html","anchor":"engineering:runtime-flow:add_hex_line:add_status_line:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了确认 函数节点:main 在 add_hex_line -\u003e add_status_line 中的角色:它是在发起协作、接收调用、做编排,还是只暴露被依赖能力。"},{"id":"engineering:diagram:sequence:companion_enter-calls-add_label","kind":"sequence","title":"动态协作:companion_enter 调用 add_label","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 companion_enter calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_label。","docPath":"docs/engineering/sequence-diagrams/companion_enter-calls-add_label/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/companion_enter-calls-add_label/sequence-diagram.html","anchor":"engineering:runtime-flow:companion_enter:add_label:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了确认 函数节点:main 在 companion_enter -\u003e add_label 中的角色:它是在发起协作、接收调用、做编排,还是只暴露被依赖能力。"}]},{"id":"engineering:diagram:component:apps-esp32_lvgl-main:element:item","mermaidId":"outgoingRelations","label":"对外依赖/调用关系","kind":"collaboration_signal","anchor":"engineering:component:function:main:apps-esp32_lvgl-tests-esp32_lvgl_sd_coredump_contract_smoke.cpp:33:outgoing-relations","summary":"外部协作/编排迹象用于解释它在技术网络中的复用程度或编排程度;这里只展示含义,不把内部计数当作用户结论。","role":"编排压力线索:帮助识别编排中心、聚合入口或耦合扩散点。","whyItExists":"单看组件名称无法判断复杂度,外部协作/编排迹象 把本地仓库关系证据转译为用户可理解的协作压力。","relationshipMeaning":"当前组件依赖其它组件、文件或符号;关系越多,越可能承担较宽的协调职责。","drilldownIntent":"下钻相关 sequence 或 hotspot,可以把抽象数字落到具体调用片段、文件和风险位置。","businessRelevance":"如果该组件支撑用户可见能力,这个关系指标会影响业务变更的验证成本和回归风险。","changeImpact":"降低过多对外依赖通常意味着拆分编排职责、引入接口边界或把适配逻辑移到更合适的位置。","evidence":["组件类型:function","所属模块:apps/esp32_lvgl","代码锚点:apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp#L33","被复用/被依赖迹象:存在局部复用或依赖线索","外部协作/编排迹象:协调多个外部对象或能力","apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp#L33"],"risks":["关系指标来自本地仓库分析,可能受扫描粒度、生成文件或 import 噪声影响。"],"questions":["当前证据无法完全区分这些关系中的运行时调用、类型引用、导出聚合或生成物噪声,因此只作为候选协作压力。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:sequence:tick-calls-log_loop_interval","kind":"sequence","title":"动态协作:tick 调用 log_loop_interval","summary":"apps/esp32_lvgl/src/esp32_lvgl_arduino_loop_runtime.cpp 中的 tick calls apps/esp32_lvgl/src/esp32_lvgl_arduino_loop_runtime.cpp 中的 log_loop_interval。","docPath":"docs/engineering/sequence-diagrams/tick-calls-log_loop_interval/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/tick-calls-log_loop_interval/sequence-diagram.html","anchor":"engineering:runtime-flow:tick:log_loop_interval:apps-esp32_lvgl-src-esp32_lvgl_arduino_loop_runtime.cpp:apps-esp32_lvgl-src-esp32_lvgl_arduino_loop_runtime.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了确认 函数节点:main 在 tick -\u003e log_loop_interval 中的角色:它是在发起协作、接收调用、做编排,还是只暴露被依赖能力。"},{"id":"engineering:diagram:sequence:add_status_line-calls-add_label","kind":"sequence","title":"动态协作:add_status_line 调用 add_label","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_status_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_label。","docPath":"docs/engineering/sequence-diagrams/add_status_line-calls-add_label/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/add_status_line-calls-add_label/sequence-diagram.html","anchor":"engineering:runtime-flow:add_status_line:add_label:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了确认 函数节点:main 在 add_status_line -\u003e add_label 中的角色:它是在发起协作、接收调用、做编排,还是只暴露被依赖能力。"},{"id":"engineering:diagram:sequence:add_u32_line-calls-add_label","kind":"sequence","title":"动态协作:add_u32_line 调用 add_label","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_u32_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_label。","docPath":"docs/engineering/sequence-diagrams/add_u32_line-calls-add_label/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/add_u32_line-calls-add_label/sequence-diagram.html","anchor":"engineering:runtime-flow:add_u32_line:add_label:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了确认 函数节点:main 在 add_u32_line -\u003e add_label 中的角色:它是在发起协作、接收调用、做编排,还是只暴露被依赖能力。"},{"id":"engineering:diagram:sequence:add_hex_line-calls-add_status_line","kind":"sequence","title":"动态协作:add_hex_line 调用 add_status_line","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_hex_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_status_line。","docPath":"docs/engineering/sequence-diagrams/add_hex_line-calls-add_status_line/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/add_hex_line-calls-add_status_line/sequence-diagram.html","anchor":"engineering:runtime-flow:add_hex_line:add_status_line:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了确认 函数节点:main 在 add_hex_line -\u003e add_status_line 中的角色:它是在发起协作、接收调用、做编排,还是只暴露被依赖能力。"},{"id":"engineering:diagram:sequence:companion_enter-calls-add_label","kind":"sequence","title":"动态协作:companion_enter 调用 add_label","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 companion_enter calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_label。","docPath":"docs/engineering/sequence-diagrams/companion_enter-calls-add_label/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/companion_enter-calls-add_label/sequence-diagram.html","anchor":"engineering:runtime-flow:companion_enter:add_label:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了确认 函数节点:main 在 companion_enter -\u003e add_label 中的角色:它是在发起协作、接收调用、做编排,还是只暴露被依赖能力。"}]}]},{"id":"engineering:diagram:component:apps-linux_cardputer_zero-not_contains","kind":"component","title":"函数节点:not_contains","summary":"function 位于 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L24,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-not_contains/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-not_contains/component-diagram.html","anchor":"engineering:component:function:not_contains:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:24","status":"candidate","confidence":"high","mermaidKind":"flowchart","mermaid":"flowchart LR\n package_node[\"apps/linux_cardputer_zero\"]\n file_node[\"apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L24\"]\n component_node[\"function: not_contains\"]\n package_node --\u003e file_node\n file_node --\u003e component_node\n component_node --\u003e outgoingRelations[\"存在外部协作线索\"]\n incomingRelations[\"被多个对象复用\"] --\u003e component_node","readingGuide":["这张 Component Diagram 关注 not_contains 这个 function,展示它所在文件、所属模块以及复用迹象、外部协作迹象。","复用迹象用于判断它是否是共享核心或公共接口;外部协作迹象用于判断它是否承担编排、聚合或桥接职责。","代码锚点是 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L24。"],"technicalAnalysis":["not_contains 在当前仓库证据中呈现为:被复用/被依赖迹象:被多个对象复用或依赖,外部协作/编排迹象:存在局部外部协作线索,因此它在技术结构中更像共享接口、公共能力或被复用对象。","被大量对象引用或调用往往意味着该组件是共享核心,任何修改都需要谨慎评估兼容性。","所属模块 apps/linux_cardputer_zero 决定了它更适合作为局部实现细节还是跨模块协作点。"],"businessRelation":["not_contains 可能是某些业务故事执行过程中的技术节点,但它本身不是业务用例。","从路径上无法直接判断业务角色,需要结合组织/过程模型的 Use Case 证据确认。","如果某个 Use Case 的 Activity、Sequence 或 Class Collaboration 图引用该组件,应在组织/过程模型中明确它承担的是入口、编排、领域规则、适配器还是基础设施职责。"],"governanceNotes":["在修改该组件前,优先查找它被哪些 Use Case 下钻文档引用,避免只看局部代码而忽略业务语义。","该组件协作压力较高,应在对应 Sequence Diagram 或 Class / Structural Diagram 中解释具体协作边界。","如果该组件承载业务规则,应把规则写回组织/过程模型或对应领域文档,而不仅保留在仓库证据中。"],"coverage":["组件类型:function","所属模块:apps/linux_cardputer_zero","代码锚点:apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L24","被复用/被依赖迹象:被多个对象复用或依赖","外部协作/编排迹象:存在局部外部协作线索"],"evidencePaths":["apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L24"],"questions":["该组件协作压力较高;当前文档按候选编排中心或公共接口处理,并通过下钻图说明它的职责证据。"],"scope":{"packageId":"apps/linux_cardputer_zero","filePath":"apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp"},"drilldowns":[{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--main","kind":"technical_hotspot","title":"承担外部协作的候选对象:main 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--main/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--main/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:main:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:49","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:main 技术热点 是否说明 函数节点:not_contains 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--contains","kind":"technical_hotspot","title":"被广泛复用的候选对象:contains 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--contains/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--contains/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:contains:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:19","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:contains 技术热点 是否说明 函数节点:not_contains 附近存在变更影响面、文件规模或协作压力风险。"}],"elements":[{"id":"engineering:diagram:component:apps-linux_cardputer_zero-not_contains:element:apps-linux_cardputer_zero","mermaidId":"package_node","label":"apps/linux_cardputer_zero","kind":"package","anchor":"engineering:package:apps-linux_cardputer_zero","summary":"apps/linux_cardputer_zero 是 函数节点:not_contains 所属的 package/module 边界,用来判断该组件是局部实现细节还是跨模块协作点。","role":"组件归属边界:它定义当前组件默认应该服务的工程上下文。","whyItExists":"组件不能脱离 package 解释;同一个符号如果位于不同 package,可能代表完全不同的职责、所有权和变更影响面。","relationshipMeaning":"apps/linux_cardputer_zero -\u003e 函数节点:not_contains 表示该组件由这个技术边界承载;它的角色必须由入口、调用、导出、测试或配置证据来解释,而不是只由目录位置解释。","drilldownIntent":"下钻 package 可以查看 apps/linux_cardputer_zero 的跨模块依赖、结构协作和热点,从边界层解释该组件为何出现在这里。","businessRelevance":"如果 函数节点:not_contains 被业务 Use Case 调用,那么 apps/linux_cardputer_zero 是该业务能力的候选技术落点。","changeImpact":"迁移或重命名该 package 可能改变组件导入路径、下钻索引和 Use Case 对技术承载边界的引用。","evidence":["component package: apps/linux_cardputer_zero","组件类型:function","所属模块:apps/linux_cardputer_zero","代码锚点:apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L24","被复用/被依赖迹象:被多个对象复用或依赖","外部协作/编排迹象:存在局部外部协作线索","apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L24"],"risks":["组件职责可能被路径误导;仍需结合调用、导入、导出、入口和测试等代码证据判断真实角色。"],"questions":["当前仓库证据尚未证明 函数节点:not_contains 属于 apps/linux_cardputer_zero 的稳定职责,暂按候选归属处理。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:package:apps-linux_cardputer_zero","kind":"package","title":"模块边界:apps/linux_cardputer_zero","summary":"解释 apps/linux_cardputer_zero 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/apps-linux_cardputer_zero/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/apps-linux_cardputer_zero/package-diagram.html","anchor":"engineering:package:apps-linux_cardputer_zero","relation":"parent_boundary","reason":"回到 apps/linux_cardputer_zero 的包级边界,确认 函数节点:not_contains 是否属于这个模块的稳定职责。"}]},{"id":"engineering:diagram:component:apps-linux_cardputer_zero-not_contains:element:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp","mermaidId":"file_node","label":"apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp","kind":"file","anchor":"engineering:component:function:not_contains:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:24:file","summary":"apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp 是当前组件的证据文件,说明 函数节点:not_contains 的技术职责可以追溯到具体代码位置。","role":"代码证据锚点:它让组件解释可以回到具体文件,而不是停留在抽象图形上。","whyItExists":"软件结构模型必须把每个组件图绑定到可验证文件,否则 UI 只是投影而不是可追溯解释。","relationshipMeaning":"文件节点连接组件节点,表示该组件的实现、入口或符号事实来自这个文件。","drilldownIntent":"下钻该文件相关的组件、sequence 或 hotspot,可以检查该文件是否只是实现细节,还是已经成为多个能力共用的技术枢纽。","businessRelevance":"从路径上无法直接判断业务角色,需要结合组织/过程模型的 Use Case 证据确认。","changeImpact":"修改 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp 可能影响该组件图、相关 sequence、热点判断,以及引用该组件的业务下钻文档。","evidence":["apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp","apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L24"],"risks":["文件路径只能说明位置,不能单独证明业务职责。"],"questions":["当前文件锚点只能证明位置;如果同文件出现多个入口或职责,需在组件/sequence 文档中拆开解释。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--main","kind":"technical_hotspot","title":"承担外部协作的候选对象:main 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--main/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--main/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:main:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:49","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:main 技术热点 是否说明 函数节点:not_contains 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--contains","kind":"technical_hotspot","title":"被广泛复用的候选对象:contains 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--contains/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--contains/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:contains:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:19","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:contains 技术热点 是否说明 函数节点:not_contains 附近存在变更影响面、文件规模或协作压力风险。"}]},{"id":"engineering:diagram:component:apps-linux_cardputer_zero-not_contains:element:not_contains","mermaidId":"component_node","label":"函数节点:not_contains","kind":"component","anchor":"engineering:component:function:not_contains:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:24","summary":"函数节点:not_contains 是当前 Component Diagram 的中心技术对象;这张图用它来解释职责、协作压力和下钻路径。","role":"关键技术对象:它需要结合复用迹象、外部协作迹象、文件位置和下钻图判断具体职责。","whyItExists":"本地仓库证据将它识别为关键组件或符号,且它具有可定位文件 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp、被引用/调用关系和对外依赖/调用关系。","relationshipMeaning":"package、file、被引用/调用关系和对外依赖/调用关系都围绕该组件组织,用来判断它是入口、编排者、共享能力还是风险集中点。","drilldownIntent":"下钻该组件可以进入它参与的 sequence、所属结构切片或附近热点,回答“它如何工作、谁调用它、它调用谁”。","businessRelevance":"函数节点:not_contains 不是业务用例,但可能是业务能力落地时经过的技术节点。 从路径上无法直接判断业务角色,需要结合组织/过程模型的 Use Case 证据确认。 如果组织/过程模型的 Use Case 下钻图引用它,应在业务文档中说明它承担入口、编排、领域规则、适配器还是基础设施职责。","changeImpact":"修改 函数节点:not_contains 可能影响 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp 中的入口逻辑、调用关系和引用它的业务/工程文档。","evidence":["apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp","组件类型:function","所属模块:apps/linux_cardputer_zero","代码锚点:apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L24","被复用/被依赖迹象:被多个对象复用或依赖","外部协作/编排迹象:存在局部外部协作线索","apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L24"],"risks":["协作压力高不必然代表设计问题;必须结合业务入口、测试和变更频率判断。"],"questions":["该组件协作压力较高;当前文档按候选编排中心或公共接口处理,并通过下钻图说明它的职责证据。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--main","kind":"technical_hotspot","title":"承担外部协作的候选对象:main 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--main/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--main/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:main:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:49","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:main 技术热点 是否说明 函数节点:not_contains 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--contains","kind":"technical_hotspot","title":"被广泛复用的候选对象:contains 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--contains/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--contains/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:contains:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:19","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:contains 技术热点 是否说明 函数节点:not_contains 附近存在变更影响面、文件规模或协作压力风险。"}]},{"id":"engineering:diagram:component:apps-linux_cardputer_zero-not_contains:element:item","mermaidId":"incomingRelations","label":"被引用/调用关系","kind":"reuse_signal","anchor":"engineering:component:function:not_contains:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:24:incoming-relations","summary":"被复用/被依赖迹象用于解释它在技术网络中的复用程度或编排程度;这里只展示含义,不把内部计数当作用户结论。","role":"复用压力线索:帮助识别共享核心、公共接口或高回归风险点。","whyItExists":"单看组件名称无法判断复杂度,被复用/被依赖迹象 把本地仓库关系证据转译为用户可理解的协作压力。","relationshipMeaning":"其它组件、文件或符号依赖当前组件;关系越多,修改它越可能影响更多调用方。","drilldownIntent":"下钻相关 sequence 或 hotspot,可以把抽象数字落到具体调用片段、文件和风险位置。","businessRelevance":"如果该组件支撑用户可见能力,这个关系指标会影响业务变更的验证成本和回归风险。","changeImpact":"重构被大量对象引用/调用的组件需要谨慎处理兼容性、调用方迁移和测试覆盖。","evidence":["组件类型:function","所属模块:apps/linux_cardputer_zero","代码锚点:apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L24","被复用/被依赖迹象:被多个对象复用或依赖","外部协作/编排迹象:存在局部外部协作线索","apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L24"],"risks":["关系指标来自本地仓库分析,可能受扫描粒度、生成文件或 import 噪声影响。"],"questions":["当前证据无法完全区分这些关系中的运行时调用、类型引用、导出聚合或生成物噪声,因此只作为候选协作压力。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--main","kind":"technical_hotspot","title":"承担外部协作的候选对象:main 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--main/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--main/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:main:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:49","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:main 技术热点 是否说明 函数节点:not_contains 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--contains","kind":"technical_hotspot","title":"被广泛复用的候选对象:contains 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--contains/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--contains/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:contains:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:19","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:contains 技术热点 是否说明 函数节点:not_contains 附近存在变更影响面、文件规模或协作压力风险。"}]},{"id":"engineering:diagram:component:apps-linux_cardputer_zero-not_contains:element:item","mermaidId":"outgoingRelations","label":"对外依赖/调用关系","kind":"collaboration_signal","anchor":"engineering:component:function:not_contains:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:24:outgoing-relations","summary":"外部协作/编排迹象用于解释它在技术网络中的复用程度或编排程度;这里只展示含义,不把内部计数当作用户结论。","role":"编排压力线索:帮助识别编排中心、聚合入口或耦合扩散点。","whyItExists":"单看组件名称无法判断复杂度,外部协作/编排迹象 把本地仓库关系证据转译为用户可理解的协作压力。","relationshipMeaning":"当前组件依赖其它组件、文件或符号;关系越多,越可能承担较宽的协调职责。","drilldownIntent":"下钻相关 sequence 或 hotspot,可以把抽象数字落到具体调用片段、文件和风险位置。","businessRelevance":"如果该组件支撑用户可见能力,这个关系指标会影响业务变更的验证成本和回归风险。","changeImpact":"降低过多对外依赖通常意味着拆分编排职责、引入接口边界或把适配逻辑移到更合适的位置。","evidence":["组件类型:function","所属模块:apps/linux_cardputer_zero","代码锚点:apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L24","被复用/被依赖迹象:被多个对象复用或依赖","外部协作/编排迹象:存在局部外部协作线索","apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L24"],"risks":["关系指标来自本地仓库分析,可能受扫描粒度、生成文件或 import 噪声影响。"],"questions":["当前证据无法完全区分这些关系中的运行时调用、类型引用、导出聚合或生成物噪声,因此只作为候选协作压力。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--main","kind":"technical_hotspot","title":"承担外部协作的候选对象:main 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--main/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--main/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:main:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:49","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:main 技术热点 是否说明 函数节点:not_contains 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--contains","kind":"technical_hotspot","title":"被广泛复用的候选对象:contains 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--contains/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--contains/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:contains:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:19","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:contains 技术热点 是否说明 函数节点:not_contains 附近存在变更影响面、文件规模或协作压力风险。"}]}]},{"id":"engineering:diagram:component:firmware-main","kind":"component","title":"服务对象:main","summary":"function 位于 firmware/c6_companion/tests/test_tm_services_functional.cpp#L97,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/firmware-main/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/firmware-main/component-diagram.html","anchor":"engineering:component:function:main:firmware-c6_companion-tests-test_tm_services_functional.cpp:97","status":"candidate","confidence":"high","mermaidKind":"flowchart","mermaid":"flowchart LR\n package_node[\"firmware\"]\n file_node[\"firmware/c6_companion/tests/test_tm_services_functional.cpp#L97\"]\n component_node[\"function: main\"]\n package_node --\u003e file_node\n file_node --\u003e component_node\n component_node --\u003e outgoingRelations[\"协调多个外部对象\"]\n incomingRelations[\"存在复用线索\"] --\u003e component_node","readingGuide":["这张 Component Diagram 关注 main 这个 function,展示它所在文件、所属模块以及复用迹象、外部协作迹象。","复用迹象用于判断它是否是共享核心或公共接口;外部协作迹象用于判断它是否承担编排、聚合或桥接职责。","代码锚点是 firmware/c6_companion/tests/test_tm_services_functional.cpp#L97。"],"technicalAnalysis":["main 在当前仓库证据中呈现为:被复用/被依赖迹象:存在局部复用或依赖线索,外部协作/编排迹象:协调多个外部对象或能力,因此它在技术结构中更像编排者或聚合入口。","过多对外依赖往往意味着该组件连接过多职责,阅读、测试和变更影响面都会扩大。","所属模块 firmware 决定了它更适合作为局部实现细节还是跨模块协作点。"],"businessRelation":["main 可能是某些业务故事执行过程中的技术节点,但它本身不是业务用例。","从路径上无法直接判断业务角色,需要结合组织/过程模型的 Use Case 证据确认。","如果某个 Use Case 的 Activity、Sequence 或 Class Collaboration 图引用该组件,应在组织/过程模型中明确它承担的是入口、编排、领域规则、适配器还是基础设施职责。"],"governanceNotes":["在修改该组件前,优先查找它被哪些 Use Case 下钻文档引用,避免只看局部代码而忽略业务语义。","可以把该组件作为技术解释锚点,但不要把它直接等同于业务能力。","如果该组件承载业务规则,应把规则写回组织/过程模型或对应领域文档,而不仅保留在仓库证据中。"],"coverage":["组件类型:function","所属模块:firmware","代码锚点:firmware/c6_companion/tests/test_tm_services_functional.cpp#L97","被复用/被依赖迹象:存在局部复用或依赖线索","外部协作/编排迹象:协调多个外部对象或能力"],"evidencePaths":["firmware/c6_companion/tests/test_tm_services_functional.cpp#L97"],"questions":["该组件协作压力较高;当前文档按候选编排中心或公共接口处理,并通过下钻图说明它的职责证据。"],"scope":{"packageId":"firmware","filePath":"firmware/c6_companion/tests/test_tm_services_functional.cpp"},"drilldowns":[],"elements":[{"id":"engineering:diagram:component:firmware-main:element:firmware","mermaidId":"package_node","label":"firmware","kind":"package","anchor":"engineering:package:firmware","summary":"firmware 是 服务对象:main 所属的 package/module 边界,用来判断该组件是局部实现细节还是跨模块协作点。","role":"组件归属边界:它定义当前组件默认应该服务的工程上下文。","whyItExists":"组件不能脱离 package 解释;同一个符号如果位于不同 package,可能代表完全不同的职责、所有权和变更影响面。","relationshipMeaning":"firmware -\u003e 服务对象:main 表示该组件由这个技术边界承载;它的角色必须由入口、调用、导出、测试或配置证据来解释,而不是只由目录位置解释。","drilldownIntent":"下钻 package 可以查看 firmware 的跨模块依赖、结构协作和热点,从边界层解释该组件为何出现在这里。","businessRelevance":"如果 服务对象:main 被业务 Use Case 调用,那么 firmware 是该业务能力的候选技术落点。","changeImpact":"迁移或重命名该 package 可能改变组件导入路径、下钻索引和 Use Case 对技术承载边界的引用。","evidence":["component package: firmware","组件类型:function","所属模块:firmware","代码锚点:firmware/c6_companion/tests/test_tm_services_functional.cpp#L97","被复用/被依赖迹象:存在局部复用或依赖线索","外部协作/编排迹象:协调多个外部对象或能力","firmware/c6_companion/tests/test_tm_services_functional.cpp#L97"],"risks":["组件职责可能被路径误导;仍需结合调用、导入、导出、入口和测试等代码证据判断真实角色。"],"questions":["当前仓库证据尚未证明 服务对象:main 属于 firmware 的稳定职责,暂按候选归属处理。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:package:firmware","kind":"package","title":"模块边界:firmware","summary":"解释 firmware 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/firmware/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/firmware/package-diagram.html","anchor":"engineering:package:firmware","relation":"parent_boundary","reason":"回到 firmware 的包级边界,确认 服务对象:main 是否属于这个模块的稳定职责。"}]},{"id":"engineering:diagram:component:firmware-main:element:firmware-c6_companion-tests-test_tm_services_functional.cpp","mermaidId":"file_node","label":"firmware/c6_companion/tests/test_tm_services_functional.cpp","kind":"file","anchor":"engineering:component:function:main:firmware-c6_companion-tests-test_tm_services_functional.cpp:97:file","summary":"firmware/c6_companion/tests/test_tm_services_functional.cpp 是当前组件的证据文件,说明 服务对象:main 的技术职责可以追溯到具体代码位置。","role":"代码证据锚点:它让组件解释可以回到具体文件,而不是停留在抽象图形上。","whyItExists":"软件结构模型必须把每个组件图绑定到可验证文件,否则 UI 只是投影而不是可追溯解释。","relationshipMeaning":"文件节点连接组件节点,表示该组件的实现、入口或符号事实来自这个文件。","drilldownIntent":"下钻该文件相关的组件、sequence 或 hotspot,可以检查该文件是否只是实现细节,还是已经成为多个能力共用的技术枢纽。","businessRelevance":"从路径上无法直接判断业务角色,需要结合组织/过程模型的 Use Case 证据确认。","changeImpact":"修改 firmware/c6_companion/tests/test_tm_services_functional.cpp 可能影响该组件图、相关 sequence、热点判断,以及引用该组件的业务下钻文档。","evidence":["firmware/c6_companion/tests/test_tm_services_functional.cpp","firmware/c6_companion/tests/test_tm_services_functional.cpp#L97"],"risks":["文件路径只能说明位置,不能单独证明业务职责。"],"questions":["当前文件锚点只能证明位置;如果同文件出现多个入口或职责,需在组件/sequence 文档中拆开解释。"],"confidence":"high","drilldowns":[]},{"id":"engineering:diagram:component:firmware-main:element:main","mermaidId":"component_node","label":"服务对象:main","kind":"component","anchor":"engineering:component:function:main:firmware-c6_companion-tests-test_tm_services_functional.cpp:97","summary":"服务对象:main 是当前 Component Diagram 的中心技术对象;这张图用它来解释职责、协作压力和下钻路径。","role":"关键技术对象:它需要结合复用迹象、外部协作迹象、文件位置和下钻图判断具体职责。","whyItExists":"本地仓库证据将它识别为关键组件或符号,且它具有可定位文件 firmware/c6_companion/tests/test_tm_services_functional.cpp、被引用/调用关系和对外依赖/调用关系。","relationshipMeaning":"package、file、被引用/调用关系和对外依赖/调用关系都围绕该组件组织,用来判断它是入口、编排者、共享能力还是风险集中点。","drilldownIntent":"下钻该组件可以进入它参与的 sequence、所属结构切片或附近热点,回答“它如何工作、谁调用它、它调用谁”。","businessRelevance":"服务对象:main 不是业务用例,但可能是业务能力落地时经过的技术节点。 从路径上无法直接判断业务角色,需要结合组织/过程模型的 Use Case 证据确认。 如果组织/过程模型的 Use Case 下钻图引用它,应在业务文档中说明它承担入口、编排、领域规则、适配器还是基础设施职责。","changeImpact":"修改 服务对象:main 可能影响 firmware/c6_companion/tests/test_tm_services_functional.cpp 中的入口逻辑、调用关系和引用它的业务/工程文档。","evidence":["firmware/c6_companion/tests/test_tm_services_functional.cpp","组件类型:function","所属模块:firmware","代码锚点:firmware/c6_companion/tests/test_tm_services_functional.cpp#L97","被复用/被依赖迹象:存在局部复用或依赖线索","外部协作/编排迹象:协调多个外部对象或能力","firmware/c6_companion/tests/test_tm_services_functional.cpp#L97"],"risks":["协作压力高不必然代表设计问题;必须结合业务入口、测试和变更频率判断。"],"questions":["该组件协作压力较高;当前文档按候选编排中心或公共接口处理,并通过下钻图说明它的职责证据。"],"confidence":"high","drilldowns":[]},{"id":"engineering:diagram:component:firmware-main:element:item","mermaidId":"incomingRelations","label":"被引用/调用关系","kind":"reuse_signal","anchor":"engineering:component:function:main:firmware-c6_companion-tests-test_tm_services_functional.cpp:97:incoming-relations","summary":"被复用/被依赖迹象用于解释它在技术网络中的复用程度或编排程度;这里只展示含义,不把内部计数当作用户结论。","role":"复用压力线索:帮助识别共享核心、公共接口或高回归风险点。","whyItExists":"单看组件名称无法判断复杂度,被复用/被依赖迹象 把本地仓库关系证据转译为用户可理解的协作压力。","relationshipMeaning":"其它组件、文件或符号依赖当前组件;关系越多,修改它越可能影响更多调用方。","drilldownIntent":"下钻相关 sequence 或 hotspot,可以把抽象数字落到具体调用片段、文件和风险位置。","businessRelevance":"如果该组件支撑用户可见能力,这个关系指标会影响业务变更的验证成本和回归风险。","changeImpact":"重构被大量对象引用/调用的组件需要谨慎处理兼容性、调用方迁移和测试覆盖。","evidence":["组件类型:function","所属模块:firmware","代码锚点:firmware/c6_companion/tests/test_tm_services_functional.cpp#L97","被复用/被依赖迹象:存在局部复用或依赖线索","外部协作/编排迹象:协调多个外部对象或能力","firmware/c6_companion/tests/test_tm_services_functional.cpp#L97"],"risks":["关系指标来自本地仓库分析,可能受扫描粒度、生成文件或 import 噪声影响。"],"questions":["当前证据无法完全区分这些关系中的运行时调用、类型引用、导出聚合或生成物噪声,因此只作为候选协作压力。"],"confidence":"high","drilldowns":[]},{"id":"engineering:diagram:component:firmware-main:element:item","mermaidId":"outgoingRelations","label":"对外依赖/调用关系","kind":"collaboration_signal","anchor":"engineering:component:function:main:firmware-c6_companion-tests-test_tm_services_functional.cpp:97:outgoing-relations","summary":"外部协作/编排迹象用于解释它在技术网络中的复用程度或编排程度;这里只展示含义,不把内部计数当作用户结论。","role":"编排压力线索:帮助识别编排中心、聚合入口或耦合扩散点。","whyItExists":"单看组件名称无法判断复杂度,外部协作/编排迹象 把本地仓库关系证据转译为用户可理解的协作压力。","relationshipMeaning":"当前组件依赖其它组件、文件或符号;关系越多,越可能承担较宽的协调职责。","drilldownIntent":"下钻相关 sequence 或 hotspot,可以把抽象数字落到具体调用片段、文件和风险位置。","businessRelevance":"如果该组件支撑用户可见能力,这个关系指标会影响业务变更的验证成本和回归风险。","changeImpact":"降低过多对外依赖通常意味着拆分编排职责、引入接口边界或把适配逻辑移到更合适的位置。","evidence":["组件类型:function","所属模块:firmware","代码锚点:firmware/c6_companion/tests/test_tm_services_functional.cpp#L97","被复用/被依赖迹象:存在局部复用或依赖线索","外部协作/编排迹象:协调多个外部对象或能力","firmware/c6_companion/tests/test_tm_services_functional.cpp#L97"],"risks":["关系指标来自本地仓库分析,可能受扫描粒度、生成文件或 import 噪声影响。"],"questions":["当前证据无法完全区分这些关系中的运行时调用、类型引用、导出聚合或生成物噪声,因此只作为候选协作压力。"],"confidence":"high","drilldowns":[]}]},{"id":"engineering:diagram:component:apps-esp32_lvgl-contains","kind":"component","title":"函数节点:contains","summary":"function 位于 apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp#L19,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-contains/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-contains/component-diagram.html","anchor":"engineering:component:function:contains:apps-esp32_lvgl-tests-esp32_lvgl_sd_coredump_contract_smoke.cpp:19","status":"candidate","confidence":"high","mermaidKind":"flowchart","mermaid":"flowchart LR\n package_node[\"apps/esp32_lvgl\"]\n file_node[\"apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp#L19\"]\n component_node[\"function: contains\"]\n package_node --\u003e file_node\n file_node --\u003e component_node\n component_node --\u003e outgoingRelations[\"未观察到明显外部协作\"]\n incomingRelations[\"被多个对象复用\"] --\u003e component_node","readingGuide":["这张 Component Diagram 关注 contains 这个 function,展示它所在文件、所属模块以及复用迹象、外部协作迹象。","复用迹象用于判断它是否是共享核心或公共接口;外部协作迹象用于判断它是否承担编排、聚合或桥接职责。","代码锚点是 apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp#L19。"],"technicalAnalysis":["contains 在当前仓库证据中呈现为:被复用/被依赖迹象:被多个对象复用或依赖,外部协作/编排迹象:当前未观察到明显外部协作线索,因此它在技术结构中更像共享接口、公共能力或被复用对象。","被大量对象引用或调用往往意味着该组件是共享核心,任何修改都需要谨慎评估兼容性。","所属模块 apps/esp32_lvgl 决定了它更适合作为局部实现细节还是跨模块协作点。"],"businessRelation":["contains 可能是某些业务故事执行过程中的技术节点,但它本身不是业务用例。","从路径上无法直接判断业务角色,需要结合组织/过程模型的 Use Case 证据确认。","如果某个 Use Case 的 Activity、Sequence 或 Class Collaboration 图引用该组件,应在组织/过程模型中明确它承担的是入口、编排、领域规则、适配器还是基础设施职责。"],"governanceNotes":["在修改该组件前,优先查找它被哪些 Use Case 下钻文档引用,避免只看局部代码而忽略业务语义。","可以把该组件作为技术解释锚点,但不要把它直接等同于业务能力。","如果该组件承载业务规则,应把规则写回组织/过程模型或对应领域文档,而不仅保留在仓库证据中。"],"coverage":["组件类型:function","所属模块:apps/esp32_lvgl","代码锚点:apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp#L19","被复用/被依赖迹象:被多个对象复用或依赖","外部协作/编排迹象:当前未观察到明显外部协作线索"],"evidencePaths":["apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp#L19"],"questions":["该组件协作压力较高;当前文档按候选编排中心或公共接口处理,并通过下钻图说明它的职责证据。"],"scope":{"packageId":"apps/esp32_lvgl","filePath":"apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp"},"drilldowns":[{"id":"engineering:diagram:sequence:tick-calls-log_loop_interval","kind":"sequence","title":"动态协作:tick 调用 log_loop_interval","summary":"apps/esp32_lvgl/src/esp32_lvgl_arduino_loop_runtime.cpp 中的 tick calls apps/esp32_lvgl/src/esp32_lvgl_arduino_loop_runtime.cpp 中的 log_loop_interval。","docPath":"docs/engineering/sequence-diagrams/tick-calls-log_loop_interval/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/tick-calls-log_loop_interval/sequence-diagram.html","anchor":"engineering:runtime-flow:tick:log_loop_interval:apps-esp32_lvgl-src-esp32_lvgl_arduino_loop_runtime.cpp:apps-esp32_lvgl-src-esp32_lvgl_arduino_loop_runtime.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了确认 函数节点:contains 在 tick -\u003e log_loop_interval 中的角色:它是在发起协作、接收调用、做编排,还是只暴露被依赖能力。"},{"id":"engineering:diagram:sequence:add_status_line-calls-add_label","kind":"sequence","title":"动态协作:add_status_line 调用 add_label","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_status_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_label。","docPath":"docs/engineering/sequence-diagrams/add_status_line-calls-add_label/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/add_status_line-calls-add_label/sequence-diagram.html","anchor":"engineering:runtime-flow:add_status_line:add_label:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了确认 函数节点:contains 在 add_status_line -\u003e add_label 中的角色:它是在发起协作、接收调用、做编排,还是只暴露被依赖能力。"},{"id":"engineering:diagram:sequence:add_u32_line-calls-add_label","kind":"sequence","title":"动态协作:add_u32_line 调用 add_label","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_u32_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_label。","docPath":"docs/engineering/sequence-diagrams/add_u32_line-calls-add_label/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/add_u32_line-calls-add_label/sequence-diagram.html","anchor":"engineering:runtime-flow:add_u32_line:add_label:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了确认 函数节点:contains 在 add_u32_line -\u003e add_label 中的角色:它是在发起协作、接收调用、做编排,还是只暴露被依赖能力。"},{"id":"engineering:diagram:sequence:add_hex_line-calls-add_status_line","kind":"sequence","title":"动态协作:add_hex_line 调用 add_status_line","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_hex_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_status_line。","docPath":"docs/engineering/sequence-diagrams/add_hex_line-calls-add_status_line/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/add_hex_line-calls-add_status_line/sequence-diagram.html","anchor":"engineering:runtime-flow:add_hex_line:add_status_line:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了确认 函数节点:contains 在 add_hex_line -\u003e add_status_line 中的角色:它是在发起协作、接收调用、做编排,还是只暴露被依赖能力。"},{"id":"engineering:diagram:sequence:companion_enter-calls-add_label","kind":"sequence","title":"动态协作:companion_enter 调用 add_label","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 companion_enter calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_label。","docPath":"docs/engineering/sequence-diagrams/companion_enter-calls-add_label/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/companion_enter-calls-add_label/sequence-diagram.html","anchor":"engineering:runtime-flow:companion_enter:add_label:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了确认 函数节点:contains 在 companion_enter -\u003e add_label 中的角色:它是在发起协作、接收调用、做编排,还是只暴露被依赖能力。"}],"elements":[{"id":"engineering:diagram:component:apps-esp32_lvgl-contains:element:apps-esp32_lvgl","mermaidId":"package_node","label":"apps/esp32_lvgl","kind":"package","anchor":"engineering:package:apps-esp32_lvgl","summary":"apps/esp32_lvgl 是 函数节点:contains 所属的 package/module 边界,用来判断该组件是局部实现细节还是跨模块协作点。","role":"组件归属边界:它定义当前组件默认应该服务的工程上下文。","whyItExists":"组件不能脱离 package 解释;同一个符号如果位于不同 package,可能代表完全不同的职责、所有权和变更影响面。","relationshipMeaning":"apps/esp32_lvgl -\u003e 函数节点:contains 表示该组件由这个技术边界承载;它的角色必须由入口、调用、导出、测试或配置证据来解释,而不是只由目录位置解释。","drilldownIntent":"下钻 package 可以查看 apps/esp32_lvgl 的跨模块依赖、结构协作和热点,从边界层解释该组件为何出现在这里。","businessRelevance":"如果 函数节点:contains 被业务 Use Case 调用,那么 apps/esp32_lvgl 是该业务能力的候选技术落点。","changeImpact":"迁移或重命名该 package 可能改变组件导入路径、下钻索引和 Use Case 对技术承载边界的引用。","evidence":["component package: apps/esp32_lvgl","组件类型:function","所属模块:apps/esp32_lvgl","代码锚点:apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp#L19","被复用/被依赖迹象:被多个对象复用或依赖","外部协作/编排迹象:当前未观察到明显外部协作线索","apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp#L19"],"risks":["组件职责可能被路径误导;仍需结合调用、导入、导出、入口和测试等代码证据判断真实角色。"],"questions":["当前仓库证据尚未证明 函数节点:contains 属于 apps/esp32_lvgl 的稳定职责,暂按候选归属处理。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:package:apps-esp32_lvgl","kind":"package","title":"模块边界:apps/esp32_lvgl","summary":"解释 apps/esp32_lvgl 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/apps-esp32_lvgl/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/apps-esp32_lvgl/package-diagram.html","anchor":"engineering:package:apps-esp32_lvgl","relation":"parent_boundary","reason":"回到 apps/esp32_lvgl 的包级边界,确认 函数节点:contains 是否属于这个模块的稳定职责。"}]},{"id":"engineering:diagram:component:apps-esp32_lvgl-contains:element:apps-esp32_lvgl-tests-esp32_lvgl_sd_coredump_contract_smoke.cpp","mermaidId":"file_node","label":"apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp","kind":"file","anchor":"engineering:component:function:contains:apps-esp32_lvgl-tests-esp32_lvgl_sd_coredump_contract_smoke.cpp:19:file","summary":"apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp 是当前组件的证据文件,说明 函数节点:contains 的技术职责可以追溯到具体代码位置。","role":"代码证据锚点:它让组件解释可以回到具体文件,而不是停留在抽象图形上。","whyItExists":"软件结构模型必须把每个组件图绑定到可验证文件,否则 UI 只是投影而不是可追溯解释。","relationshipMeaning":"文件节点连接组件节点,表示该组件的实现、入口或符号事实来自这个文件。","drilldownIntent":"下钻该文件相关的组件、sequence 或 hotspot,可以检查该文件是否只是实现细节,还是已经成为多个能力共用的技术枢纽。","businessRelevance":"从路径上无法直接判断业务角色,需要结合组织/过程模型的 Use Case 证据确认。","changeImpact":"修改 apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp 可能影响该组件图、相关 sequence、热点判断,以及引用该组件的业务下钻文档。","evidence":["apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp","apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp#L19"],"risks":["文件路径只能说明位置,不能单独证明业务职责。"],"questions":["当前文件锚点只能证明位置;如果同文件出现多个入口或职责,需在组件/sequence 文档中拆开解释。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:sequence:tick-calls-log_loop_interval","kind":"sequence","title":"动态协作:tick 调用 log_loop_interval","summary":"apps/esp32_lvgl/src/esp32_lvgl_arduino_loop_runtime.cpp 中的 tick calls apps/esp32_lvgl/src/esp32_lvgl_arduino_loop_runtime.cpp 中的 log_loop_interval。","docPath":"docs/engineering/sequence-diagrams/tick-calls-log_loop_interval/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/tick-calls-log_loop_interval/sequence-diagram.html","anchor":"engineering:runtime-flow:tick:log_loop_interval:apps-esp32_lvgl-src-esp32_lvgl_arduino_loop_runtime.cpp:apps-esp32_lvgl-src-esp32_lvgl_arduino_loop_runtime.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了确认 函数节点:contains 在 tick -\u003e log_loop_interval 中的角色:它是在发起协作、接收调用、做编排,还是只暴露被依赖能力。"},{"id":"engineering:diagram:sequence:add_status_line-calls-add_label","kind":"sequence","title":"动态协作:add_status_line 调用 add_label","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_status_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_label。","docPath":"docs/engineering/sequence-diagrams/add_status_line-calls-add_label/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/add_status_line-calls-add_label/sequence-diagram.html","anchor":"engineering:runtime-flow:add_status_line:add_label:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了确认 函数节点:contains 在 add_status_line -\u003e add_label 中的角色:它是在发起协作、接收调用、做编排,还是只暴露被依赖能力。"},{"id":"engineering:diagram:sequence:add_u32_line-calls-add_label","kind":"sequence","title":"动态协作:add_u32_line 调用 add_label","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_u32_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_label。","docPath":"docs/engineering/sequence-diagrams/add_u32_line-calls-add_label/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/add_u32_line-calls-add_label/sequence-diagram.html","anchor":"engineering:runtime-flow:add_u32_line:add_label:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了确认 函数节点:contains 在 add_u32_line -\u003e add_label 中的角色:它是在发起协作、接收调用、做编排,还是只暴露被依赖能力。"},{"id":"engineering:diagram:sequence:add_hex_line-calls-add_status_line","kind":"sequence","title":"动态协作:add_hex_line 调用 add_status_line","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_hex_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_status_line。","docPath":"docs/engineering/sequence-diagrams/add_hex_line-calls-add_status_line/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/add_hex_line-calls-add_status_line/sequence-diagram.html","anchor":"engineering:runtime-flow:add_hex_line:add_status_line:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了确认 函数节点:contains 在 add_hex_line -\u003e add_status_line 中的角色:它是在发起协作、接收调用、做编排,还是只暴露被依赖能力。"},{"id":"engineering:diagram:sequence:companion_enter-calls-add_label","kind":"sequence","title":"动态协作:companion_enter 调用 add_label","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 companion_enter calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_label。","docPath":"docs/engineering/sequence-diagrams/companion_enter-calls-add_label/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/companion_enter-calls-add_label/sequence-diagram.html","anchor":"engineering:runtime-flow:companion_enter:add_label:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了确认 函数节点:contains 在 companion_enter -\u003e add_label 中的角色:它是在发起协作、接收调用、做编排,还是只暴露被依赖能力。"}]},{"id":"engineering:diagram:component:apps-esp32_lvgl-contains:element:contains","mermaidId":"component_node","label":"函数节点:contains","kind":"component","anchor":"engineering:component:function:contains:apps-esp32_lvgl-tests-esp32_lvgl_sd_coredump_contract_smoke.cpp:19","summary":"函数节点:contains 是当前 Component Diagram 的中心技术对象;这张图用它来解释职责、协作压力和下钻路径。","role":"关键技术对象:它需要结合复用迹象、外部协作迹象、文件位置和下钻图判断具体职责。","whyItExists":"本地仓库证据将它识别为关键组件或符号,且它具有可定位文件 apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp、被引用/调用关系和对外依赖/调用关系。","relationshipMeaning":"package、file、被引用/调用关系和对外依赖/调用关系都围绕该组件组织,用来判断它是入口、编排者、共享能力还是风险集中点。","drilldownIntent":"下钻该组件可以进入它参与的 sequence、所属结构切片或附近热点,回答“它如何工作、谁调用它、它调用谁”。","businessRelevance":"函数节点:contains 不是业务用例,但可能是业务能力落地时经过的技术节点。 从路径上无法直接判断业务角色,需要结合组织/过程模型的 Use Case 证据确认。 如果组织/过程模型的 Use Case 下钻图引用它,应在业务文档中说明它承担入口、编排、领域规则、适配器还是基础设施职责。","changeImpact":"修改 函数节点:contains 可能影响 apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp 中的入口逻辑、调用关系和引用它的业务/工程文档。","evidence":["apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp","组件类型:function","所属模块:apps/esp32_lvgl","代码锚点:apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp#L19","被复用/被依赖迹象:被多个对象复用或依赖","外部协作/编排迹象:当前未观察到明显外部协作线索","apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp#L19"],"risks":["协作压力高不必然代表设计问题;必须结合业务入口、测试和变更频率判断。"],"questions":["该组件协作压力较高;当前文档按候选编排中心或公共接口处理,并通过下钻图说明它的职责证据。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:sequence:tick-calls-log_loop_interval","kind":"sequence","title":"动态协作:tick 调用 log_loop_interval","summary":"apps/esp32_lvgl/src/esp32_lvgl_arduino_loop_runtime.cpp 中的 tick calls apps/esp32_lvgl/src/esp32_lvgl_arduino_loop_runtime.cpp 中的 log_loop_interval。","docPath":"docs/engineering/sequence-diagrams/tick-calls-log_loop_interval/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/tick-calls-log_loop_interval/sequence-diagram.html","anchor":"engineering:runtime-flow:tick:log_loop_interval:apps-esp32_lvgl-src-esp32_lvgl_arduino_loop_runtime.cpp:apps-esp32_lvgl-src-esp32_lvgl_arduino_loop_runtime.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了确认 函数节点:contains 在 tick -\u003e log_loop_interval 中的角色:它是在发起协作、接收调用、做编排,还是只暴露被依赖能力。"},{"id":"engineering:diagram:sequence:add_status_line-calls-add_label","kind":"sequence","title":"动态协作:add_status_line 调用 add_label","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_status_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_label。","docPath":"docs/engineering/sequence-diagrams/add_status_line-calls-add_label/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/add_status_line-calls-add_label/sequence-diagram.html","anchor":"engineering:runtime-flow:add_status_line:add_label:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了确认 函数节点:contains 在 add_status_line -\u003e add_label 中的角色:它是在发起协作、接收调用、做编排,还是只暴露被依赖能力。"},{"id":"engineering:diagram:sequence:add_u32_line-calls-add_label","kind":"sequence","title":"动态协作:add_u32_line 调用 add_label","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_u32_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_label。","docPath":"docs/engineering/sequence-diagrams/add_u32_line-calls-add_label/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/add_u32_line-calls-add_label/sequence-diagram.html","anchor":"engineering:runtime-flow:add_u32_line:add_label:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了确认 函数节点:contains 在 add_u32_line -\u003e add_label 中的角色:它是在发起协作、接收调用、做编排,还是只暴露被依赖能力。"},{"id":"engineering:diagram:sequence:add_hex_line-calls-add_status_line","kind":"sequence","title":"动态协作:add_hex_line 调用 add_status_line","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_hex_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_status_line。","docPath":"docs/engineering/sequence-diagrams/add_hex_line-calls-add_status_line/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/add_hex_line-calls-add_status_line/sequence-diagram.html","anchor":"engineering:runtime-flow:add_hex_line:add_status_line:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了确认 函数节点:contains 在 add_hex_line -\u003e add_status_line 中的角色:它是在发起协作、接收调用、做编排,还是只暴露被依赖能力。"},{"id":"engineering:diagram:sequence:companion_enter-calls-add_label","kind":"sequence","title":"动态协作:companion_enter 调用 add_label","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 companion_enter calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_label。","docPath":"docs/engineering/sequence-diagrams/companion_enter-calls-add_label/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/companion_enter-calls-add_label/sequence-diagram.html","anchor":"engineering:runtime-flow:companion_enter:add_label:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了确认 函数节点:contains 在 companion_enter -\u003e add_label 中的角色:它是在发起协作、接收调用、做编排,还是只暴露被依赖能力。"}]},{"id":"engineering:diagram:component:apps-esp32_lvgl-contains:element:item","mermaidId":"incomingRelations","label":"被引用/调用关系","kind":"reuse_signal","anchor":"engineering:component:function:contains:apps-esp32_lvgl-tests-esp32_lvgl_sd_coredump_contract_smoke.cpp:19:incoming-relations","summary":"被复用/被依赖迹象用于解释它在技术网络中的复用程度或编排程度;这里只展示含义,不把内部计数当作用户结论。","role":"复用压力线索:帮助识别共享核心、公共接口或高回归风险点。","whyItExists":"单看组件名称无法判断复杂度,被复用/被依赖迹象 把本地仓库关系证据转译为用户可理解的协作压力。","relationshipMeaning":"其它组件、文件或符号依赖当前组件;关系越多,修改它越可能影响更多调用方。","drilldownIntent":"下钻相关 sequence 或 hotspot,可以把抽象数字落到具体调用片段、文件和风险位置。","businessRelevance":"如果该组件支撑用户可见能力,这个关系指标会影响业务变更的验证成本和回归风险。","changeImpact":"重构被大量对象引用/调用的组件需要谨慎处理兼容性、调用方迁移和测试覆盖。","evidence":["组件类型:function","所属模块:apps/esp32_lvgl","代码锚点:apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp#L19","被复用/被依赖迹象:被多个对象复用或依赖","外部协作/编排迹象:当前未观察到明显外部协作线索","apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp#L19"],"risks":["关系指标来自本地仓库分析,可能受扫描粒度、生成文件或 import 噪声影响。"],"questions":["当前证据无法完全区分这些关系中的运行时调用、类型引用、导出聚合或生成物噪声,因此只作为候选协作压力。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:sequence:tick-calls-log_loop_interval","kind":"sequence","title":"动态协作:tick 调用 log_loop_interval","summary":"apps/esp32_lvgl/src/esp32_lvgl_arduino_loop_runtime.cpp 中的 tick calls apps/esp32_lvgl/src/esp32_lvgl_arduino_loop_runtime.cpp 中的 log_loop_interval。","docPath":"docs/engineering/sequence-diagrams/tick-calls-log_loop_interval/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/tick-calls-log_loop_interval/sequence-diagram.html","anchor":"engineering:runtime-flow:tick:log_loop_interval:apps-esp32_lvgl-src-esp32_lvgl_arduino_loop_runtime.cpp:apps-esp32_lvgl-src-esp32_lvgl_arduino_loop_runtime.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了确认 函数节点:contains 在 tick -\u003e log_loop_interval 中的角色:它是在发起协作、接收调用、做编排,还是只暴露被依赖能力。"},{"id":"engineering:diagram:sequence:add_status_line-calls-add_label","kind":"sequence","title":"动态协作:add_status_line 调用 add_label","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_status_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_label。","docPath":"docs/engineering/sequence-diagrams/add_status_line-calls-add_label/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/add_status_line-calls-add_label/sequence-diagram.html","anchor":"engineering:runtime-flow:add_status_line:add_label:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了确认 函数节点:contains 在 add_status_line -\u003e add_label 中的角色:它是在发起协作、接收调用、做编排,还是只暴露被依赖能力。"},{"id":"engineering:diagram:sequence:add_u32_line-calls-add_label","kind":"sequence","title":"动态协作:add_u32_line 调用 add_label","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_u32_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_label。","docPath":"docs/engineering/sequence-diagrams/add_u32_line-calls-add_label/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/add_u32_line-calls-add_label/sequence-diagram.html","anchor":"engineering:runtime-flow:add_u32_line:add_label:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了确认 函数节点:contains 在 add_u32_line -\u003e add_label 中的角色:它是在发起协作、接收调用、做编排,还是只暴露被依赖能力。"},{"id":"engineering:diagram:sequence:add_hex_line-calls-add_status_line","kind":"sequence","title":"动态协作:add_hex_line 调用 add_status_line","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_hex_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_status_line。","docPath":"docs/engineering/sequence-diagrams/add_hex_line-calls-add_status_line/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/add_hex_line-calls-add_status_line/sequence-diagram.html","anchor":"engineering:runtime-flow:add_hex_line:add_status_line:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了确认 函数节点:contains 在 add_hex_line -\u003e add_status_line 中的角色:它是在发起协作、接收调用、做编排,还是只暴露被依赖能力。"},{"id":"engineering:diagram:sequence:companion_enter-calls-add_label","kind":"sequence","title":"动态协作:companion_enter 调用 add_label","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 companion_enter calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_label。","docPath":"docs/engineering/sequence-diagrams/companion_enter-calls-add_label/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/companion_enter-calls-add_label/sequence-diagram.html","anchor":"engineering:runtime-flow:companion_enter:add_label:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了确认 函数节点:contains 在 companion_enter -\u003e add_label 中的角色:它是在发起协作、接收调用、做编排,还是只暴露被依赖能力。"}]},{"id":"engineering:diagram:component:apps-esp32_lvgl-contains:element:item","mermaidId":"outgoingRelations","label":"对外依赖/调用关系","kind":"collaboration_signal","anchor":"engineering:component:function:contains:apps-esp32_lvgl-tests-esp32_lvgl_sd_coredump_contract_smoke.cpp:19:outgoing-relations","summary":"外部协作/编排迹象用于解释它在技术网络中的复用程度或编排程度;这里只展示含义,不把内部计数当作用户结论。","role":"编排压力线索:帮助识别编排中心、聚合入口或耦合扩散点。","whyItExists":"单看组件名称无法判断复杂度,外部协作/编排迹象 把本地仓库关系证据转译为用户可理解的协作压力。","relationshipMeaning":"当前组件依赖其它组件、文件或符号;关系越多,越可能承担较宽的协调职责。","drilldownIntent":"下钻相关 sequence 或 hotspot,可以把抽象数字落到具体调用片段、文件和风险位置。","businessRelevance":"如果该组件支撑用户可见能力,这个关系指标会影响业务变更的验证成本和回归风险。","changeImpact":"降低过多对外依赖通常意味着拆分编排职责、引入接口边界或把适配逻辑移到更合适的位置。","evidence":["组件类型:function","所属模块:apps/esp32_lvgl","代码锚点:apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp#L19","被复用/被依赖迹象:被多个对象复用或依赖","外部协作/编排迹象:当前未观察到明显外部协作线索","apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp#L19"],"risks":["关系指标来自本地仓库分析,可能受扫描粒度、生成文件或 import 噪声影响。"],"questions":["当前证据无法完全区分这些关系中的运行时调用、类型引用、导出聚合或生成物噪声,因此只作为候选协作压力。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:sequence:tick-calls-log_loop_interval","kind":"sequence","title":"动态协作:tick 调用 log_loop_interval","summary":"apps/esp32_lvgl/src/esp32_lvgl_arduino_loop_runtime.cpp 中的 tick calls apps/esp32_lvgl/src/esp32_lvgl_arduino_loop_runtime.cpp 中的 log_loop_interval。","docPath":"docs/engineering/sequence-diagrams/tick-calls-log_loop_interval/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/tick-calls-log_loop_interval/sequence-diagram.html","anchor":"engineering:runtime-flow:tick:log_loop_interval:apps-esp32_lvgl-src-esp32_lvgl_arduino_loop_runtime.cpp:apps-esp32_lvgl-src-esp32_lvgl_arduino_loop_runtime.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了确认 函数节点:contains 在 tick -\u003e log_loop_interval 中的角色:它是在发起协作、接收调用、做编排,还是只暴露被依赖能力。"},{"id":"engineering:diagram:sequence:add_status_line-calls-add_label","kind":"sequence","title":"动态协作:add_status_line 调用 add_label","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_status_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_label。","docPath":"docs/engineering/sequence-diagrams/add_status_line-calls-add_label/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/add_status_line-calls-add_label/sequence-diagram.html","anchor":"engineering:runtime-flow:add_status_line:add_label:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了确认 函数节点:contains 在 add_status_line -\u003e add_label 中的角色:它是在发起协作、接收调用、做编排,还是只暴露被依赖能力。"},{"id":"engineering:diagram:sequence:add_u32_line-calls-add_label","kind":"sequence","title":"动态协作:add_u32_line 调用 add_label","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_u32_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_label。","docPath":"docs/engineering/sequence-diagrams/add_u32_line-calls-add_label/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/add_u32_line-calls-add_label/sequence-diagram.html","anchor":"engineering:runtime-flow:add_u32_line:add_label:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了确认 函数节点:contains 在 add_u32_line -\u003e add_label 中的角色:它是在发起协作、接收调用、做编排,还是只暴露被依赖能力。"},{"id":"engineering:diagram:sequence:add_hex_line-calls-add_status_line","kind":"sequence","title":"动态协作:add_hex_line 调用 add_status_line","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_hex_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_status_line。","docPath":"docs/engineering/sequence-diagrams/add_hex_line-calls-add_status_line/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/add_hex_line-calls-add_status_line/sequence-diagram.html","anchor":"engineering:runtime-flow:add_hex_line:add_status_line:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了确认 函数节点:contains 在 add_hex_line -\u003e add_status_line 中的角色:它是在发起协作、接收调用、做编排,还是只暴露被依赖能力。"},{"id":"engineering:diagram:sequence:companion_enter-calls-add_label","kind":"sequence","title":"动态协作:companion_enter 调用 add_label","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 companion_enter calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_label。","docPath":"docs/engineering/sequence-diagrams/companion_enter-calls-add_label/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/companion_enter-calls-add_label/sequence-diagram.html","anchor":"engineering:runtime-flow:companion_enter:add_label:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了确认 函数节点:contains 在 companion_enter -\u003e add_label 中的角色:它是在发起协作、接收调用、做编排,还是只暴露被依赖能力。"}]}]},{"id":"engineering:diagram:component:boards-makeboardprofile","kind":"component","title":"函数节点:makeBoardProfile","summary":"function 位于 boards/t_echo_lite/include/boards/t_echo_lite/board_profile.h#L188,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/boards-makeboardprofile/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/boards-makeboardprofile/component-diagram.html","anchor":"engineering:component:function:makeboardprofile:boards-t_echo_lite-include-boards-t_echo_lite-board_profile.h:188","status":"candidate","confidence":"high","mermaidKind":"flowchart","mermaid":"flowchart LR\n package_node[\"boards\"]\n file_node[\"boards/t_echo_lite/include/boards/t_echo_lite/board_profile.h#L188\"]\n component_node[\"function: makeBoardProfile\"]\n package_node --\u003e file_node\n file_node --\u003e component_node\n component_node --\u003e outgoingRelations[\"协调多个外部对象\"]\n incomingRelations[\"存在复用线索\"] --\u003e component_node","readingGuide":["这张 Component Diagram 关注 makeBoardProfile 这个 function,展示它所在文件、所属模块以及复用迹象、外部协作迹象。","复用迹象用于判断它是否是共享核心或公共接口;外部协作迹象用于判断它是否承担编排、聚合或桥接职责。","代码锚点是 boards/t_echo_lite/include/boards/t_echo_lite/board_profile.h#L188。"],"technicalAnalysis":["makeBoardProfile 在当前仓库证据中呈现为:被复用/被依赖迹象:存在局部复用或依赖线索,外部协作/编排迹象:协调多个外部对象或能力,因此它在技术结构中更像编排者或聚合入口。","当前协作压力需要结合具体业务入口判断,单独数字不足以确认设计问题。","所属模块 boards 决定了它更适合作为局部实现细节还是跨模块协作点。"],"businessRelation":["makeBoardProfile 可能是某些业务故事执行过程中的技术节点,但它本身不是业务用例。","从路径上无法直接判断业务角色,需要结合组织/过程模型的 Use Case 证据确认。","如果某个 Use Case 的 Activity、Sequence 或 Class Collaboration 图引用该组件,应在组织/过程模型中明确它承担的是入口、编排、领域规则、适配器还是基础设施职责。"],"governanceNotes":["在修改该组件前,优先查找它被哪些 Use Case 下钻文档引用,避免只看局部代码而忽略业务语义。","可以把该组件作为技术解释锚点,但不要把它直接等同于业务能力。","如果该组件承载业务规则,应把规则写回组织/过程模型或对应领域文档,而不仅保留在仓库证据中。"],"coverage":["组件类型:function","所属模块:boards","代码锚点:boards/t_echo_lite/include/boards/t_echo_lite/board_profile.h#L188","被复用/被依赖迹象:存在局部复用或依赖线索","外部协作/编排迹象:协调多个外部对象或能力"],"evidencePaths":["boards/t_echo_lite/include/boards/t_echo_lite/board_profile.h#L188"],"questions":["该组件协作压力较高;当前文档按候选编排中心或公共接口处理,并通过下钻图说明它的职责证据。"],"scope":{"packageId":"boards","filePath":"boards/t_echo_lite/include/boards/t_echo_lite/board_profile.h"},"drilldowns":[{"id":"engineering:diagram:class-structural:boards-gat562_mesh_evb_pro-include-boards","kind":"class_structural","title":"结构协作:结构切片 boards · gat562_mesh_evb_pro/include/boards","summary":"解释 boards/gat562_mesh_evb_pro/include/boards 这一结构切片中类、接口、组件或值对象如何共同承担结构切片 boards中的结构职责;候选对象包括 Gat562Board、SX1262、Sx1262RadioPacketIo、Gat562Board::I2cGuard、GpsRuntime。","docPath":"docs/engineering/class-structural-diagrams/boards-gat562_mesh_evb_pro-include-boards/class-structural-diagram.md","htmlPath":"docs/engineering/class-structural-diagrams/boards-gat562_mesh_evb_pro-include-boards/class-structural-diagram.html","anchor":"engineering:class-structural:boards-gat562_mesh_evb_pro-include-boards","relation":"structural_context","reason":"打开结构切片是为了把 函数节点:makeBoardProfile 放回所属模块,看它周围还有哪些对象共同承担入口、编排、适配或共享职责,避免把单个组件误读成完整设计。"},{"id":"engineering:diagram:class-structural:boards-t_echo_lite-include-boards","kind":"class_structural","title":"结构协作:结构切片 boards · t_echo_lite/include/boards","summary":"解释 boards/t_echo_lite/include/boards 这一结构切片中类、接口、组件或值对象如何共同承担结构切片 boards中的结构职责;候选对象包括 TEchoLiteBoard、Sx1262RadioPacketIo、TEchoLiteBoard::I2cGuard、GpsRuntime、Module。","docPath":"docs/engineering/class-structural-diagrams/boards-t_echo_lite-include-boards/class-structural-diagram.md","htmlPath":"docs/engineering/class-structural-diagrams/boards-t_echo_lite-include-boards/class-structural-diagram.html","anchor":"engineering:class-structural:boards-t_echo_lite-include-boards","relation":"structural_context","reason":"打开结构切片是为了把 函数节点:makeBoardProfile 放回所属模块,看它周围还有哪些对象共同承担入口、编排、适配或共享职责,避免把单个组件误读成完整设计。"},{"id":"engineering:diagram:technical-hotspot:dependency-cluster--boards","kind":"technical_hotspot","title":"依赖簇:boards 技术热点","summary":"该模块依赖多个外部边界,当前按候选技术耦合中心处理;图中只保留仓库证据已经观察到的依赖方向和边界。","docPath":"docs/engineering/technical-hotspots/dependency-cluster--boards/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/dependency-cluster--boards/technical-hotspot.html","anchor":"engineering:hotspot:dependency-cluster:boards","relation":"risk_detail","reason":"查看 依赖簇:boards 技术热点 是否说明 函数节点:makeBoardProfile 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--boards-tlora_pager-src-tlora_pager_board-cpp","kind":"technical_hotspot","title":"承担外部协作的候选对象:boards/tlora_pager/src/tlora_pager_board.cpp 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--boards-tlora_pager-src-tlora_pager_board-cpp/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--boards-tlora_pager-src-tlora_pager_board-cpp/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:boards-tlora_pager-src-tlora_pager_board.cpp:boards-tlora_pager-src-tlora_pager_board.cpp:1","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:boards/tlora_pager/src/tlora_pager_board.cpp 技术热点 是否说明 函数节点:makeBoardProfile 附近存在变更影响面、文件规模或协作压力风险。"}],"elements":[{"id":"engineering:diagram:component:boards-makeboardprofile:element:boards","mermaidId":"package_node","label":"boards","kind":"package","anchor":"engineering:package:boards","summary":"boards 是 函数节点:makeBoardProfile 所属的 package/module 边界,用来判断该组件是局部实现细节还是跨模块协作点。","role":"组件归属边界:它定义当前组件默认应该服务的工程上下文。","whyItExists":"组件不能脱离 package 解释;同一个符号如果位于不同 package,可能代表完全不同的职责、所有权和变更影响面。","relationshipMeaning":"boards -\u003e 函数节点:makeBoardProfile 表示该组件由这个技术边界承载;它的角色必须由入口、调用、导出、测试或配置证据来解释,而不是只由目录位置解释。","drilldownIntent":"下钻 package 可以查看 boards 的跨模块依赖、结构协作和热点,从边界层解释该组件为何出现在这里。","businessRelevance":"如果 函数节点:makeBoardProfile 被业务 Use Case 调用,那么 boards 是该业务能力的候选技术落点。","changeImpact":"迁移或重命名该 package 可能改变组件导入路径、下钻索引和 Use Case 对技术承载边界的引用。","evidence":["component package: boards","组件类型:function","所属模块:boards","代码锚点:boards/t_echo_lite/include/boards/t_echo_lite/board_profile.h#L188","被复用/被依赖迹象:存在局部复用或依赖线索","外部协作/编排迹象:协调多个外部对象或能力","boards/t_echo_lite/include/boards/t_echo_lite/board_profile.h#L188"],"risks":["组件职责可能被路径误导;仍需结合调用、导入、导出、入口和测试等代码证据判断真实角色。"],"questions":["当前仓库证据尚未证明 函数节点:makeBoardProfile 属于 boards 的稳定职责,暂按候选归属处理。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:package:boards","kind":"package","title":"模块边界:boards","summary":"解释 boards 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/boards/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/boards/package-diagram.html","anchor":"engineering:package:boards","relation":"parent_boundary","reason":"回到 boards 的包级边界,确认 函数节点:makeBoardProfile 是否属于这个模块的稳定职责。"},{"id":"engineering:diagram:class-structural:boards-gat562_mesh_evb_pro-include-boards","kind":"class_structural","title":"结构协作:结构切片 boards · gat562_mesh_evb_pro/include/boards","summary":"解释 boards/gat562_mesh_evb_pro/include/boards 这一结构切片中类、接口、组件或值对象如何共同承担结构切片 boards中的结构职责;候选对象包括 Gat562Board、SX1262、Sx1262RadioPacketIo、Gat562Board::I2cGuard、GpsRuntime。","docPath":"docs/engineering/class-structural-diagrams/boards-gat562_mesh_evb_pro-include-boards/class-structural-diagram.md","htmlPath":"docs/engineering/class-structural-diagrams/boards-gat562_mesh_evb_pro-include-boards/class-structural-diagram.html","anchor":"engineering:class-structural:boards-gat562_mesh_evb_pro-include-boards","relation":"structural_context","reason":"打开结构切片是为了把 函数节点:makeBoardProfile 放回所属模块,看它周围还有哪些对象共同承担入口、编排、适配或共享职责,避免把单个组件误读成完整设计。"}]},{"id":"engineering:diagram:component:boards-makeboardprofile:element:boards-t_echo_lite-include-boards-t_echo_lite-board_profile.h","mermaidId":"file_node","label":"boards/t_echo_lite/include/boards/t_echo_lite/board_profile.h","kind":"file","anchor":"engineering:component:function:makeboardprofile:boards-t_echo_lite-include-boards-t_echo_lite-board_profile.h:188:file","summary":"boards/t_echo_lite/include/boards/t_echo_lite/board_profile.h 是当前组件的证据文件,说明 函数节点:makeBoardProfile 的技术职责可以追溯到具体代码位置。","role":"代码证据锚点:它让组件解释可以回到具体文件,而不是停留在抽象图形上。","whyItExists":"软件结构模型必须把每个组件图绑定到可验证文件,否则 UI 只是投影而不是可追溯解释。","relationshipMeaning":"文件节点连接组件节点,表示该组件的实现、入口或符号事实来自这个文件。","drilldownIntent":"下钻该文件相关的组件、sequence 或 hotspot,可以检查该文件是否只是实现细节,还是已经成为多个能力共用的技术枢纽。","businessRelevance":"从路径上无法直接判断业务角色,需要结合组织/过程模型的 Use Case 证据确认。","changeImpact":"修改 boards/t_echo_lite/include/boards/t_echo_lite/board_profile.h 可能影响该组件图、相关 sequence、热点判断,以及引用该组件的业务下钻文档。","evidence":["boards/t_echo_lite/include/boards/t_echo_lite/board_profile.h","boards/t_echo_lite/include/boards/t_echo_lite/board_profile.h#L188"],"risks":["文件路径只能说明位置,不能单独证明业务职责。"],"questions":["当前文件锚点只能证明位置;如果同文件出现多个入口或职责,需在组件/sequence 文档中拆开解释。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:class-structural:boards-gat562_mesh_evb_pro-include-boards","kind":"class_structural","title":"结构协作:结构切片 boards · gat562_mesh_evb_pro/include/boards","summary":"解释 boards/gat562_mesh_evb_pro/include/boards 这一结构切片中类、接口、组件或值对象如何共同承担结构切片 boards中的结构职责;候选对象包括 Gat562Board、SX1262、Sx1262RadioPacketIo、Gat562Board::I2cGuard、GpsRuntime。","docPath":"docs/engineering/class-structural-diagrams/boards-gat562_mesh_evb_pro-include-boards/class-structural-diagram.md","htmlPath":"docs/engineering/class-structural-diagrams/boards-gat562_mesh_evb_pro-include-boards/class-structural-diagram.html","anchor":"engineering:class-structural:boards-gat562_mesh_evb_pro-include-boards","relation":"structural_context","reason":"打开结构切片是为了把 函数节点:makeBoardProfile 放回所属模块,看它周围还有哪些对象共同承担入口、编排、适配或共享职责,避免把单个组件误读成完整设计。"},{"id":"engineering:diagram:class-structural:boards-t_echo_lite-include-boards","kind":"class_structural","title":"结构协作:结构切片 boards · t_echo_lite/include/boards","summary":"解释 boards/t_echo_lite/include/boards 这一结构切片中类、接口、组件或值对象如何共同承担结构切片 boards中的结构职责;候选对象包括 TEchoLiteBoard、Sx1262RadioPacketIo、TEchoLiteBoard::I2cGuard、GpsRuntime、Module。","docPath":"docs/engineering/class-structural-diagrams/boards-t_echo_lite-include-boards/class-structural-diagram.md","htmlPath":"docs/engineering/class-structural-diagrams/boards-t_echo_lite-include-boards/class-structural-diagram.html","anchor":"engineering:class-structural:boards-t_echo_lite-include-boards","relation":"structural_context","reason":"打开结构切片是为了把 函数节点:makeBoardProfile 放回所属模块,看它周围还有哪些对象共同承担入口、编排、适配或共享职责,避免把单个组件误读成完整设计。"},{"id":"engineering:diagram:technical-hotspot:dependency-cluster--boards","kind":"technical_hotspot","title":"依赖簇:boards 技术热点","summary":"该模块依赖多个外部边界,当前按候选技术耦合中心处理;图中只保留仓库证据已经观察到的依赖方向和边界。","docPath":"docs/engineering/technical-hotspots/dependency-cluster--boards/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/dependency-cluster--boards/technical-hotspot.html","anchor":"engineering:hotspot:dependency-cluster:boards","relation":"risk_detail","reason":"查看 依赖簇:boards 技术热点 是否说明 函数节点:makeBoardProfile 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--boards-tlora_pager-src-tlora_pager_board-cpp","kind":"technical_hotspot","title":"承担外部协作的候选对象:boards/tlora_pager/src/tlora_pager_board.cpp 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--boards-tlora_pager-src-tlora_pager_board-cpp/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--boards-tlora_pager-src-tlora_pager_board-cpp/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:boards-tlora_pager-src-tlora_pager_board.cpp:boards-tlora_pager-src-tlora_pager_board.cpp:1","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:boards/tlora_pager/src/tlora_pager_board.cpp 技术热点 是否说明 函数节点:makeBoardProfile 附近存在变更影响面、文件规模或协作压力风险。"}]},{"id":"engineering:diagram:component:boards-makeboardprofile:element:makeboardprofile","mermaidId":"component_node","label":"函数节点:makeBoardProfile","kind":"component","anchor":"engineering:component:function:makeboardprofile:boards-t_echo_lite-include-boards-t_echo_lite-board_profile.h:188","summary":"函数节点:makeBoardProfile 是当前 Component Diagram 的中心技术对象;这张图用它来解释职责、协作压力和下钻路径。","role":"关键技术对象:它需要结合复用迹象、外部协作迹象、文件位置和下钻图判断具体职责。","whyItExists":"本地仓库证据将它识别为关键组件或符号,且它具有可定位文件 boards/t_echo_lite/include/boards/t_echo_lite/board_profile.h、被引用/调用关系和对外依赖/调用关系。","relationshipMeaning":"package、file、被引用/调用关系和对外依赖/调用关系都围绕该组件组织,用来判断它是入口、编排者、共享能力还是风险集中点。","drilldownIntent":"下钻该组件可以进入它参与的 sequence、所属结构切片或附近热点,回答“它如何工作、谁调用它、它调用谁”。","businessRelevance":"函数节点:makeBoardProfile 不是业务用例,但可能是业务能力落地时经过的技术节点。 从路径上无法直接判断业务角色,需要结合组织/过程模型的 Use Case 证据确认。 如果组织/过程模型的 Use Case 下钻图引用它,应在业务文档中说明它承担入口、编排、领域规则、适配器还是基础设施职责。","changeImpact":"修改 函数节点:makeBoardProfile 可能影响 boards/t_echo_lite/include/boards/t_echo_lite/board_profile.h 中的入口逻辑、调用关系和引用它的业务/工程文档。","evidence":["boards/t_echo_lite/include/boards/t_echo_lite/board_profile.h","组件类型:function","所属模块:boards","代码锚点:boards/t_echo_lite/include/boards/t_echo_lite/board_profile.h#L188","被复用/被依赖迹象:存在局部复用或依赖线索","外部协作/编排迹象:协调多个外部对象或能力","boards/t_echo_lite/include/boards/t_echo_lite/board_profile.h#L188"],"risks":["协作压力高不必然代表设计问题;必须结合业务入口、测试和变更频率判断。"],"questions":["该组件协作压力较高;当前文档按候选编排中心或公共接口处理,并通过下钻图说明它的职责证据。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:class-structural:boards-gat562_mesh_evb_pro-include-boards","kind":"class_structural","title":"结构协作:结构切片 boards · gat562_mesh_evb_pro/include/boards","summary":"解释 boards/gat562_mesh_evb_pro/include/boards 这一结构切片中类、接口、组件或值对象如何共同承担结构切片 boards中的结构职责;候选对象包括 Gat562Board、SX1262、Sx1262RadioPacketIo、Gat562Board::I2cGuard、GpsRuntime。","docPath":"docs/engineering/class-structural-diagrams/boards-gat562_mesh_evb_pro-include-boards/class-structural-diagram.md","htmlPath":"docs/engineering/class-structural-diagrams/boards-gat562_mesh_evb_pro-include-boards/class-structural-diagram.html","anchor":"engineering:class-structural:boards-gat562_mesh_evb_pro-include-boards","relation":"structural_context","reason":"打开结构切片是为了把 函数节点:makeBoardProfile 放回所属模块,看它周围还有哪些对象共同承担入口、编排、适配或共享职责,避免把单个组件误读成完整设计。"},{"id":"engineering:diagram:class-structural:boards-t_echo_lite-include-boards","kind":"class_structural","title":"结构协作:结构切片 boards · t_echo_lite/include/boards","summary":"解释 boards/t_echo_lite/include/boards 这一结构切片中类、接口、组件或值对象如何共同承担结构切片 boards中的结构职责;候选对象包括 TEchoLiteBoard、Sx1262RadioPacketIo、TEchoLiteBoard::I2cGuard、GpsRuntime、Module。","docPath":"docs/engineering/class-structural-diagrams/boards-t_echo_lite-include-boards/class-structural-diagram.md","htmlPath":"docs/engineering/class-structural-diagrams/boards-t_echo_lite-include-boards/class-structural-diagram.html","anchor":"engineering:class-structural:boards-t_echo_lite-include-boards","relation":"structural_context","reason":"打开结构切片是为了把 函数节点:makeBoardProfile 放回所属模块,看它周围还有哪些对象共同承担入口、编排、适配或共享职责,避免把单个组件误读成完整设计。"},{"id":"engineering:diagram:technical-hotspot:dependency-cluster--boards","kind":"technical_hotspot","title":"依赖簇:boards 技术热点","summary":"该模块依赖多个外部边界,当前按候选技术耦合中心处理;图中只保留仓库证据已经观察到的依赖方向和边界。","docPath":"docs/engineering/technical-hotspots/dependency-cluster--boards/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/dependency-cluster--boards/technical-hotspot.html","anchor":"engineering:hotspot:dependency-cluster:boards","relation":"risk_detail","reason":"查看 依赖簇:boards 技术热点 是否说明 函数节点:makeBoardProfile 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--boards-tlora_pager-src-tlora_pager_board-cpp","kind":"technical_hotspot","title":"承担外部协作的候选对象:boards/tlora_pager/src/tlora_pager_board.cpp 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--boards-tlora_pager-src-tlora_pager_board-cpp/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--boards-tlora_pager-src-tlora_pager_board-cpp/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:boards-tlora_pager-src-tlora_pager_board.cpp:boards-tlora_pager-src-tlora_pager_board.cpp:1","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:boards/tlora_pager/src/tlora_pager_board.cpp 技术热点 是否说明 函数节点:makeBoardProfile 附近存在变更影响面、文件规模或协作压力风险。"}]},{"id":"engineering:diagram:component:boards-makeboardprofile:element:item","mermaidId":"incomingRelations","label":"被引用/调用关系","kind":"reuse_signal","anchor":"engineering:component:function:makeboardprofile:boards-t_echo_lite-include-boards-t_echo_lite-board_profile.h:188:incoming-relations","summary":"被复用/被依赖迹象用于解释它在技术网络中的复用程度或编排程度;这里只展示含义,不把内部计数当作用户结论。","role":"复用压力线索:帮助识别共享核心、公共接口或高回归风险点。","whyItExists":"单看组件名称无法判断复杂度,被复用/被依赖迹象 把本地仓库关系证据转译为用户可理解的协作压力。","relationshipMeaning":"其它组件、文件或符号依赖当前组件;关系越多,修改它越可能影响更多调用方。","drilldownIntent":"下钻相关 sequence 或 hotspot,可以把抽象数字落到具体调用片段、文件和风险位置。","businessRelevance":"如果该组件支撑用户可见能力,这个关系指标会影响业务变更的验证成本和回归风险。","changeImpact":"重构被大量对象引用/调用的组件需要谨慎处理兼容性、调用方迁移和测试覆盖。","evidence":["组件类型:function","所属模块:boards","代码锚点:boards/t_echo_lite/include/boards/t_echo_lite/board_profile.h#L188","被复用/被依赖迹象:存在局部复用或依赖线索","外部协作/编排迹象:协调多个外部对象或能力","boards/t_echo_lite/include/boards/t_echo_lite/board_profile.h#L188"],"risks":["关系指标来自本地仓库分析,可能受扫描粒度、生成文件或 import 噪声影响。"],"questions":["当前证据无法完全区分这些关系中的运行时调用、类型引用、导出聚合或生成物噪声,因此只作为候选协作压力。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:technical-hotspot:dependency-cluster--boards","kind":"technical_hotspot","title":"依赖簇:boards 技术热点","summary":"该模块依赖多个外部边界,当前按候选技术耦合中心处理;图中只保留仓库证据已经观察到的依赖方向和边界。","docPath":"docs/engineering/technical-hotspots/dependency-cluster--boards/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/dependency-cluster--boards/technical-hotspot.html","anchor":"engineering:hotspot:dependency-cluster:boards","relation":"risk_detail","reason":"查看 依赖簇:boards 技术热点 是否说明 函数节点:makeBoardProfile 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--boards-tlora_pager-src-tlora_pager_board-cpp","kind":"technical_hotspot","title":"承担外部协作的候选对象:boards/tlora_pager/src/tlora_pager_board.cpp 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--boards-tlora_pager-src-tlora_pager_board-cpp/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--boards-tlora_pager-src-tlora_pager_board-cpp/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:boards-tlora_pager-src-tlora_pager_board.cpp:boards-tlora_pager-src-tlora_pager_board.cpp:1","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:boards/tlora_pager/src/tlora_pager_board.cpp 技术热点 是否说明 函数节点:makeBoardProfile 附近存在变更影响面、文件规模或协作压力风险。"}]},{"id":"engineering:diagram:component:boards-makeboardprofile:element:item","mermaidId":"outgoingRelations","label":"对外依赖/调用关系","kind":"collaboration_signal","anchor":"engineering:component:function:makeboardprofile:boards-t_echo_lite-include-boards-t_echo_lite-board_profile.h:188:outgoing-relations","summary":"外部协作/编排迹象用于解释它在技术网络中的复用程度或编排程度;这里只展示含义,不把内部计数当作用户结论。","role":"编排压力线索:帮助识别编排中心、聚合入口或耦合扩散点。","whyItExists":"单看组件名称无法判断复杂度,外部协作/编排迹象 把本地仓库关系证据转译为用户可理解的协作压力。","relationshipMeaning":"当前组件依赖其它组件、文件或符号;关系越多,越可能承担较宽的协调职责。","drilldownIntent":"下钻相关 sequence 或 hotspot,可以把抽象数字落到具体调用片段、文件和风险位置。","businessRelevance":"如果该组件支撑用户可见能力,这个关系指标会影响业务变更的验证成本和回归风险。","changeImpact":"降低过多对外依赖通常意味着拆分编排职责、引入接口边界或把适配逻辑移到更合适的位置。","evidence":["组件类型:function","所属模块:boards","代码锚点:boards/t_echo_lite/include/boards/t_echo_lite/board_profile.h#L188","被复用/被依赖迹象:存在局部复用或依赖线索","外部协作/编排迹象:协调多个外部对象或能力","boards/t_echo_lite/include/boards/t_echo_lite/board_profile.h#L188"],"risks":["关系指标来自本地仓库分析,可能受扫描粒度、生成文件或 import 噪声影响。"],"questions":["当前证据无法完全区分这些关系中的运行时调用、类型引用、导出聚合或生成物噪声,因此只作为候选协作压力。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:technical-hotspot:dependency-cluster--boards","kind":"technical_hotspot","title":"依赖簇:boards 技术热点","summary":"该模块依赖多个外部边界,当前按候选技术耦合中心处理;图中只保留仓库证据已经观察到的依赖方向和边界。","docPath":"docs/engineering/technical-hotspots/dependency-cluster--boards/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/dependency-cluster--boards/technical-hotspot.html","anchor":"engineering:hotspot:dependency-cluster:boards","relation":"risk_detail","reason":"查看 依赖簇:boards 技术热点 是否说明 函数节点:makeBoardProfile 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--boards-tlora_pager-src-tlora_pager_board-cpp","kind":"technical_hotspot","title":"承担外部协作的候选对象:boards/tlora_pager/src/tlora_pager_board.cpp 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--boards-tlora_pager-src-tlora_pager_board-cpp/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--boards-tlora_pager-src-tlora_pager_board-cpp/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:boards-tlora_pager-src-tlora_pager_board.cpp:boards-tlora_pager-src-tlora_pager_board.cpp:1","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:boards/tlora_pager/src/tlora_pager_board.cpp 技术热点 是否说明 函数节点:makeBoardProfile 附近存在变更影响面、文件规模或协作压力风险。"}]}]},{"id":"engineering:diagram:component:boards-pinnum","kind":"component","title":"函数节点:pinNum","summary":"function 位于 boards/t_echo_lite/include/boards/t_echo_lite/board_profile.h#L8,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/boards-pinnum/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/boards-pinnum/component-diagram.html","anchor":"engineering:component:function:pinnum:boards-t_echo_lite-include-boards-t_echo_lite-board_profile.h:8","status":"candidate","confidence":"high","mermaidKind":"flowchart","mermaid":"flowchart LR\n package_node[\"boards\"]\n file_node[\"boards/t_echo_lite/include/boards/t_echo_lite/board_profile.h#L8\"]\n component_node[\"function: pinNum\"]\n package_node --\u003e file_node\n file_node --\u003e component_node\n component_node --\u003e outgoingRelations[\"未观察到明显外部协作\"]\n incomingRelations[\"被多个对象复用\"] --\u003e component_node","readingGuide":["这张 Component Diagram 关注 pinNum 这个 function,展示它所在文件、所属模块以及复用迹象、外部协作迹象。","复用迹象用于判断它是否是共享核心或公共接口;外部协作迹象用于判断它是否承担编排、聚合或桥接职责。","代码锚点是 boards/t_echo_lite/include/boards/t_echo_lite/board_profile.h#L8。"],"technicalAnalysis":["pinNum 在当前仓库证据中呈现为:被复用/被依赖迹象:被多个对象复用或依赖,外部协作/编排迹象:当前未观察到明显外部协作线索,因此它在技术结构中更像共享接口、公共能力或被复用对象。","当前协作压力需要结合具体业务入口判断,单独数字不足以确认设计问题。","所属模块 boards 决定了它更适合作为局部实现细节还是跨模块协作点。"],"businessRelation":["pinNum 可能是某些业务故事执行过程中的技术节点,但它本身不是业务用例。","从路径上无法直接判断业务角色,需要结合组织/过程模型的 Use Case 证据确认。","如果某个 Use Case 的 Activity、Sequence 或 Class Collaboration 图引用该组件,应在组织/过程模型中明确它承担的是入口、编排、领域规则、适配器还是基础设施职责。"],"governanceNotes":["在修改该组件前,优先查找它被哪些 Use Case 下钻文档引用,避免只看局部代码而忽略业务语义。","可以把该组件作为技术解释锚点,但不要把它直接等同于业务能力。","如果该组件承载业务规则,应把规则写回组织/过程模型或对应领域文档,而不仅保留在仓库证据中。"],"coverage":["组件类型:function","所属模块:boards","代码锚点:boards/t_echo_lite/include/boards/t_echo_lite/board_profile.h#L8","被复用/被依赖迹象:被多个对象复用或依赖","外部协作/编排迹象:当前未观察到明显外部协作线索"],"evidencePaths":["boards/t_echo_lite/include/boards/t_echo_lite/board_profile.h#L8"],"questions":["该组件协作压力较高;当前文档按候选编排中心或公共接口处理,并通过下钻图说明它的职责证据。"],"scope":{"packageId":"boards","filePath":"boards/t_echo_lite/include/boards/t_echo_lite/board_profile.h"},"drilldowns":[{"id":"engineering:diagram:class-structural:boards-gat562_mesh_evb_pro-include-boards","kind":"class_structural","title":"结构协作:结构切片 boards · gat562_mesh_evb_pro/include/boards","summary":"解释 boards/gat562_mesh_evb_pro/include/boards 这一结构切片中类、接口、组件或值对象如何共同承担结构切片 boards中的结构职责;候选对象包括 Gat562Board、SX1262、Sx1262RadioPacketIo、Gat562Board::I2cGuard、GpsRuntime。","docPath":"docs/engineering/class-structural-diagrams/boards-gat562_mesh_evb_pro-include-boards/class-structural-diagram.md","htmlPath":"docs/engineering/class-structural-diagrams/boards-gat562_mesh_evb_pro-include-boards/class-structural-diagram.html","anchor":"engineering:class-structural:boards-gat562_mesh_evb_pro-include-boards","relation":"structural_context","reason":"打开结构切片是为了把 函数节点:pinNum 放回所属模块,看它周围还有哪些对象共同承担入口、编排、适配或共享职责,避免把单个组件误读成完整设计。"},{"id":"engineering:diagram:class-structural:boards-t_echo_lite-include-boards","kind":"class_structural","title":"结构协作:结构切片 boards · t_echo_lite/include/boards","summary":"解释 boards/t_echo_lite/include/boards 这一结构切片中类、接口、组件或值对象如何共同承担结构切片 boards中的结构职责;候选对象包括 TEchoLiteBoard、Sx1262RadioPacketIo、TEchoLiteBoard::I2cGuard、GpsRuntime、Module。","docPath":"docs/engineering/class-structural-diagrams/boards-t_echo_lite-include-boards/class-structural-diagram.md","htmlPath":"docs/engineering/class-structural-diagrams/boards-t_echo_lite-include-boards/class-structural-diagram.html","anchor":"engineering:class-structural:boards-t_echo_lite-include-boards","relation":"structural_context","reason":"打开结构切片是为了把 函数节点:pinNum 放回所属模块,看它周围还有哪些对象共同承担入口、编排、适配或共享职责,避免把单个组件误读成完整设计。"},{"id":"engineering:diagram:technical-hotspot:dependency-cluster--boards","kind":"technical_hotspot","title":"依赖簇:boards 技术热点","summary":"该模块依赖多个外部边界,当前按候选技术耦合中心处理;图中只保留仓库证据已经观察到的依赖方向和边界。","docPath":"docs/engineering/technical-hotspots/dependency-cluster--boards/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/dependency-cluster--boards/technical-hotspot.html","anchor":"engineering:hotspot:dependency-cluster:boards","relation":"risk_detail","reason":"查看 依赖簇:boards 技术热点 是否说明 函数节点:pinNum 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--boards-tlora_pager-src-tlora_pager_board-cpp","kind":"technical_hotspot","title":"承担外部协作的候选对象:boards/tlora_pager/src/tlora_pager_board.cpp 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--boards-tlora_pager-src-tlora_pager_board-cpp/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--boards-tlora_pager-src-tlora_pager_board-cpp/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:boards-tlora_pager-src-tlora_pager_board.cpp:boards-tlora_pager-src-tlora_pager_board.cpp:1","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:boards/tlora_pager/src/tlora_pager_board.cpp 技术热点 是否说明 函数节点:pinNum 附近存在变更影响面、文件规模或协作压力风险。"}],"elements":[{"id":"engineering:diagram:component:boards-pinnum:element:boards","mermaidId":"package_node","label":"boards","kind":"package","anchor":"engineering:package:boards","summary":"boards 是 函数节点:pinNum 所属的 package/module 边界,用来判断该组件是局部实现细节还是跨模块协作点。","role":"组件归属边界:它定义当前组件默认应该服务的工程上下文。","whyItExists":"组件不能脱离 package 解释;同一个符号如果位于不同 package,可能代表完全不同的职责、所有权和变更影响面。","relationshipMeaning":"boards -\u003e 函数节点:pinNum 表示该组件由这个技术边界承载;它的角色必须由入口、调用、导出、测试或配置证据来解释,而不是只由目录位置解释。","drilldownIntent":"下钻 package 可以查看 boards 的跨模块依赖、结构协作和热点,从边界层解释该组件为何出现在这里。","businessRelevance":"如果 函数节点:pinNum 被业务 Use Case 调用,那么 boards 是该业务能力的候选技术落点。","changeImpact":"迁移或重命名该 package 可能改变组件导入路径、下钻索引和 Use Case 对技术承载边界的引用。","evidence":["component package: boards","组件类型:function","所属模块:boards","代码锚点:boards/t_echo_lite/include/boards/t_echo_lite/board_profile.h#L8","被复用/被依赖迹象:被多个对象复用或依赖","外部协作/编排迹象:当前未观察到明显外部协作线索","boards/t_echo_lite/include/boards/t_echo_lite/board_profile.h#L8"],"risks":["组件职责可能被路径误导;仍需结合调用、导入、导出、入口和测试等代码证据判断真实角色。"],"questions":["当前仓库证据尚未证明 函数节点:pinNum 属于 boards 的稳定职责,暂按候选归属处理。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:package:boards","kind":"package","title":"模块边界:boards","summary":"解释 boards 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/boards/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/boards/package-diagram.html","anchor":"engineering:package:boards","relation":"parent_boundary","reason":"回到 boards 的包级边界,确认 函数节点:pinNum 是否属于这个模块的稳定职责。"},{"id":"engineering:diagram:class-structural:boards-gat562_mesh_evb_pro-include-boards","kind":"class_structural","title":"结构协作:结构切片 boards · gat562_mesh_evb_pro/include/boards","summary":"解释 boards/gat562_mesh_evb_pro/include/boards 这一结构切片中类、接口、组件或值对象如何共同承担结构切片 boards中的结构职责;候选对象包括 Gat562Board、SX1262、Sx1262RadioPacketIo、Gat562Board::I2cGuard、GpsRuntime。","docPath":"docs/engineering/class-structural-diagrams/boards-gat562_mesh_evb_pro-include-boards/class-structural-diagram.md","htmlPath":"docs/engineering/class-structural-diagrams/boards-gat562_mesh_evb_pro-include-boards/class-structural-diagram.html","anchor":"engineering:class-structural:boards-gat562_mesh_evb_pro-include-boards","relation":"structural_context","reason":"打开结构切片是为了把 函数节点:pinNum 放回所属模块,看它周围还有哪些对象共同承担入口、编排、适配或共享职责,避免把单个组件误读成完整设计。"}]},{"id":"engineering:diagram:component:boards-pinnum:element:boards-t_echo_lite-include-boards-t_echo_lite-board_profile.h","mermaidId":"file_node","label":"boards/t_echo_lite/include/boards/t_echo_lite/board_profile.h","kind":"file","anchor":"engineering:component:function:pinnum:boards-t_echo_lite-include-boards-t_echo_lite-board_profile.h:8:file","summary":"boards/t_echo_lite/include/boards/t_echo_lite/board_profile.h 是当前组件的证据文件,说明 函数节点:pinNum 的技术职责可以追溯到具体代码位置。","role":"代码证据锚点:它让组件解释可以回到具体文件,而不是停留在抽象图形上。","whyItExists":"软件结构模型必须把每个组件图绑定到可验证文件,否则 UI 只是投影而不是可追溯解释。","relationshipMeaning":"文件节点连接组件节点,表示该组件的实现、入口或符号事实来自这个文件。","drilldownIntent":"下钻该文件相关的组件、sequence 或 hotspot,可以检查该文件是否只是实现细节,还是已经成为多个能力共用的技术枢纽。","businessRelevance":"从路径上无法直接判断业务角色,需要结合组织/过程模型的 Use Case 证据确认。","changeImpact":"修改 boards/t_echo_lite/include/boards/t_echo_lite/board_profile.h 可能影响该组件图、相关 sequence、热点判断,以及引用该组件的业务下钻文档。","evidence":["boards/t_echo_lite/include/boards/t_echo_lite/board_profile.h","boards/t_echo_lite/include/boards/t_echo_lite/board_profile.h#L8"],"risks":["文件路径只能说明位置,不能单独证明业务职责。"],"questions":["当前文件锚点只能证明位置;如果同文件出现多个入口或职责,需在组件/sequence 文档中拆开解释。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:class-structural:boards-gat562_mesh_evb_pro-include-boards","kind":"class_structural","title":"结构协作:结构切片 boards · gat562_mesh_evb_pro/include/boards","summary":"解释 boards/gat562_mesh_evb_pro/include/boards 这一结构切片中类、接口、组件或值对象如何共同承担结构切片 boards中的结构职责;候选对象包括 Gat562Board、SX1262、Sx1262RadioPacketIo、Gat562Board::I2cGuard、GpsRuntime。","docPath":"docs/engineering/class-structural-diagrams/boards-gat562_mesh_evb_pro-include-boards/class-structural-diagram.md","htmlPath":"docs/engineering/class-structural-diagrams/boards-gat562_mesh_evb_pro-include-boards/class-structural-diagram.html","anchor":"engineering:class-structural:boards-gat562_mesh_evb_pro-include-boards","relation":"structural_context","reason":"打开结构切片是为了把 函数节点:pinNum 放回所属模块,看它周围还有哪些对象共同承担入口、编排、适配或共享职责,避免把单个组件误读成完整设计。"},{"id":"engineering:diagram:class-structural:boards-t_echo_lite-include-boards","kind":"class_structural","title":"结构协作:结构切片 boards · t_echo_lite/include/boards","summary":"解释 boards/t_echo_lite/include/boards 这一结构切片中类、接口、组件或值对象如何共同承担结构切片 boards中的结构职责;候选对象包括 TEchoLiteBoard、Sx1262RadioPacketIo、TEchoLiteBoard::I2cGuard、GpsRuntime、Module。","docPath":"docs/engineering/class-structural-diagrams/boards-t_echo_lite-include-boards/class-structural-diagram.md","htmlPath":"docs/engineering/class-structural-diagrams/boards-t_echo_lite-include-boards/class-structural-diagram.html","anchor":"engineering:class-structural:boards-t_echo_lite-include-boards","relation":"structural_context","reason":"打开结构切片是为了把 函数节点:pinNum 放回所属模块,看它周围还有哪些对象共同承担入口、编排、适配或共享职责,避免把单个组件误读成完整设计。"},{"id":"engineering:diagram:technical-hotspot:dependency-cluster--boards","kind":"technical_hotspot","title":"依赖簇:boards 技术热点","summary":"该模块依赖多个外部边界,当前按候选技术耦合中心处理;图中只保留仓库证据已经观察到的依赖方向和边界。","docPath":"docs/engineering/technical-hotspots/dependency-cluster--boards/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/dependency-cluster--boards/technical-hotspot.html","anchor":"engineering:hotspot:dependency-cluster:boards","relation":"risk_detail","reason":"查看 依赖簇:boards 技术热点 是否说明 函数节点:pinNum 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--boards-tlora_pager-src-tlora_pager_board-cpp","kind":"technical_hotspot","title":"承担外部协作的候选对象:boards/tlora_pager/src/tlora_pager_board.cpp 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--boards-tlora_pager-src-tlora_pager_board-cpp/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--boards-tlora_pager-src-tlora_pager_board-cpp/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:boards-tlora_pager-src-tlora_pager_board.cpp:boards-tlora_pager-src-tlora_pager_board.cpp:1","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:boards/tlora_pager/src/tlora_pager_board.cpp 技术热点 是否说明 函数节点:pinNum 附近存在变更影响面、文件规模或协作压力风险。"}]},{"id":"engineering:diagram:component:boards-pinnum:element:pinnum","mermaidId":"component_node","label":"函数节点:pinNum","kind":"component","anchor":"engineering:component:function:pinnum:boards-t_echo_lite-include-boards-t_echo_lite-board_profile.h:8","summary":"函数节点:pinNum 是当前 Component Diagram 的中心技术对象;这张图用它来解释职责、协作压力和下钻路径。","role":"关键技术对象:它需要结合复用迹象、外部协作迹象、文件位置和下钻图判断具体职责。","whyItExists":"本地仓库证据将它识别为关键组件或符号,且它具有可定位文件 boards/t_echo_lite/include/boards/t_echo_lite/board_profile.h、被引用/调用关系和对外依赖/调用关系。","relationshipMeaning":"package、file、被引用/调用关系和对外依赖/调用关系都围绕该组件组织,用来判断它是入口、编排者、共享能力还是风险集中点。","drilldownIntent":"下钻该组件可以进入它参与的 sequence、所属结构切片或附近热点,回答“它如何工作、谁调用它、它调用谁”。","businessRelevance":"函数节点:pinNum 不是业务用例,但可能是业务能力落地时经过的技术节点。 从路径上无法直接判断业务角色,需要结合组织/过程模型的 Use Case 证据确认。 如果组织/过程模型的 Use Case 下钻图引用它,应在业务文档中说明它承担入口、编排、领域规则、适配器还是基础设施职责。","changeImpact":"修改 函数节点:pinNum 可能影响 boards/t_echo_lite/include/boards/t_echo_lite/board_profile.h 中的入口逻辑、调用关系和引用它的业务/工程文档。","evidence":["boards/t_echo_lite/include/boards/t_echo_lite/board_profile.h","组件类型:function","所属模块:boards","代码锚点:boards/t_echo_lite/include/boards/t_echo_lite/board_profile.h#L8","被复用/被依赖迹象:被多个对象复用或依赖","外部协作/编排迹象:当前未观察到明显外部协作线索","boards/t_echo_lite/include/boards/t_echo_lite/board_profile.h#L8"],"risks":["协作压力高不必然代表设计问题;必须结合业务入口、测试和变更频率判断。"],"questions":["该组件协作压力较高;当前文档按候选编排中心或公共接口处理,并通过下钻图说明它的职责证据。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:class-structural:boards-gat562_mesh_evb_pro-include-boards","kind":"class_structural","title":"结构协作:结构切片 boards · gat562_mesh_evb_pro/include/boards","summary":"解释 boards/gat562_mesh_evb_pro/include/boards 这一结构切片中类、接口、组件或值对象如何共同承担结构切片 boards中的结构职责;候选对象包括 Gat562Board、SX1262、Sx1262RadioPacketIo、Gat562Board::I2cGuard、GpsRuntime。","docPath":"docs/engineering/class-structural-diagrams/boards-gat562_mesh_evb_pro-include-boards/class-structural-diagram.md","htmlPath":"docs/engineering/class-structural-diagrams/boards-gat562_mesh_evb_pro-include-boards/class-structural-diagram.html","anchor":"engineering:class-structural:boards-gat562_mesh_evb_pro-include-boards","relation":"structural_context","reason":"打开结构切片是为了把 函数节点:pinNum 放回所属模块,看它周围还有哪些对象共同承担入口、编排、适配或共享职责,避免把单个组件误读成完整设计。"},{"id":"engineering:diagram:class-structural:boards-t_echo_lite-include-boards","kind":"class_structural","title":"结构协作:结构切片 boards · t_echo_lite/include/boards","summary":"解释 boards/t_echo_lite/include/boards 这一结构切片中类、接口、组件或值对象如何共同承担结构切片 boards中的结构职责;候选对象包括 TEchoLiteBoard、Sx1262RadioPacketIo、TEchoLiteBoard::I2cGuard、GpsRuntime、Module。","docPath":"docs/engineering/class-structural-diagrams/boards-t_echo_lite-include-boards/class-structural-diagram.md","htmlPath":"docs/engineering/class-structural-diagrams/boards-t_echo_lite-include-boards/class-structural-diagram.html","anchor":"engineering:class-structural:boards-t_echo_lite-include-boards","relation":"structural_context","reason":"打开结构切片是为了把 函数节点:pinNum 放回所属模块,看它周围还有哪些对象共同承担入口、编排、适配或共享职责,避免把单个组件误读成完整设计。"},{"id":"engineering:diagram:technical-hotspot:dependency-cluster--boards","kind":"technical_hotspot","title":"依赖簇:boards 技术热点","summary":"该模块依赖多个外部边界,当前按候选技术耦合中心处理;图中只保留仓库证据已经观察到的依赖方向和边界。","docPath":"docs/engineering/technical-hotspots/dependency-cluster--boards/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/dependency-cluster--boards/technical-hotspot.html","anchor":"engineering:hotspot:dependency-cluster:boards","relation":"risk_detail","reason":"查看 依赖簇:boards 技术热点 是否说明 函数节点:pinNum 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--boards-tlora_pager-src-tlora_pager_board-cpp","kind":"technical_hotspot","title":"承担外部协作的候选对象:boards/tlora_pager/src/tlora_pager_board.cpp 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--boards-tlora_pager-src-tlora_pager_board-cpp/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--boards-tlora_pager-src-tlora_pager_board-cpp/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:boards-tlora_pager-src-tlora_pager_board.cpp:boards-tlora_pager-src-tlora_pager_board.cpp:1","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:boards/tlora_pager/src/tlora_pager_board.cpp 技术热点 是否说明 函数节点:pinNum 附近存在变更影响面、文件规模或协作压力风险。"}]},{"id":"engineering:diagram:component:boards-pinnum:element:item","mermaidId":"incomingRelations","label":"被引用/调用关系","kind":"reuse_signal","anchor":"engineering:component:function:pinnum:boards-t_echo_lite-include-boards-t_echo_lite-board_profile.h:8:incoming-relations","summary":"被复用/被依赖迹象用于解释它在技术网络中的复用程度或编排程度;这里只展示含义,不把内部计数当作用户结论。","role":"复用压力线索:帮助识别共享核心、公共接口或高回归风险点。","whyItExists":"单看组件名称无法判断复杂度,被复用/被依赖迹象 把本地仓库关系证据转译为用户可理解的协作压力。","relationshipMeaning":"其它组件、文件或符号依赖当前组件;关系越多,修改它越可能影响更多调用方。","drilldownIntent":"下钻相关 sequence 或 hotspot,可以把抽象数字落到具体调用片段、文件和风险位置。","businessRelevance":"如果该组件支撑用户可见能力,这个关系指标会影响业务变更的验证成本和回归风险。","changeImpact":"重构被大量对象引用/调用的组件需要谨慎处理兼容性、调用方迁移和测试覆盖。","evidence":["组件类型:function","所属模块:boards","代码锚点:boards/t_echo_lite/include/boards/t_echo_lite/board_profile.h#L8","被复用/被依赖迹象:被多个对象复用或依赖","外部协作/编排迹象:当前未观察到明显外部协作线索","boards/t_echo_lite/include/boards/t_echo_lite/board_profile.h#L8"],"risks":["关系指标来自本地仓库分析,可能受扫描粒度、生成文件或 import 噪声影响。"],"questions":["当前证据无法完全区分这些关系中的运行时调用、类型引用、导出聚合或生成物噪声,因此只作为候选协作压力。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:technical-hotspot:dependency-cluster--boards","kind":"technical_hotspot","title":"依赖簇:boards 技术热点","summary":"该模块依赖多个外部边界,当前按候选技术耦合中心处理;图中只保留仓库证据已经观察到的依赖方向和边界。","docPath":"docs/engineering/technical-hotspots/dependency-cluster--boards/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/dependency-cluster--boards/technical-hotspot.html","anchor":"engineering:hotspot:dependency-cluster:boards","relation":"risk_detail","reason":"查看 依赖簇:boards 技术热点 是否说明 函数节点:pinNum 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--boards-tlora_pager-src-tlora_pager_board-cpp","kind":"technical_hotspot","title":"承担外部协作的候选对象:boards/tlora_pager/src/tlora_pager_board.cpp 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--boards-tlora_pager-src-tlora_pager_board-cpp/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--boards-tlora_pager-src-tlora_pager_board-cpp/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:boards-tlora_pager-src-tlora_pager_board.cpp:boards-tlora_pager-src-tlora_pager_board.cpp:1","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:boards/tlora_pager/src/tlora_pager_board.cpp 技术热点 是否说明 函数节点:pinNum 附近存在变更影响面、文件规模或协作压力风险。"}]},{"id":"engineering:diagram:component:boards-pinnum:element:item","mermaidId":"outgoingRelations","label":"对外依赖/调用关系","kind":"collaboration_signal","anchor":"engineering:component:function:pinnum:boards-t_echo_lite-include-boards-t_echo_lite-board_profile.h:8:outgoing-relations","summary":"外部协作/编排迹象用于解释它在技术网络中的复用程度或编排程度;这里只展示含义,不把内部计数当作用户结论。","role":"编排压力线索:帮助识别编排中心、聚合入口或耦合扩散点。","whyItExists":"单看组件名称无法判断复杂度,外部协作/编排迹象 把本地仓库关系证据转译为用户可理解的协作压力。","relationshipMeaning":"当前组件依赖其它组件、文件或符号;关系越多,越可能承担较宽的协调职责。","drilldownIntent":"下钻相关 sequence 或 hotspot,可以把抽象数字落到具体调用片段、文件和风险位置。","businessRelevance":"如果该组件支撑用户可见能力,这个关系指标会影响业务变更的验证成本和回归风险。","changeImpact":"降低过多对外依赖通常意味着拆分编排职责、引入接口边界或把适配逻辑移到更合适的位置。","evidence":["组件类型:function","所属模块:boards","代码锚点:boards/t_echo_lite/include/boards/t_echo_lite/board_profile.h#L8","被复用/被依赖迹象:被多个对象复用或依赖","外部协作/编排迹象:当前未观察到明显外部协作线索","boards/t_echo_lite/include/boards/t_echo_lite/board_profile.h#L8"],"risks":["关系指标来自本地仓库分析,可能受扫描粒度、生成文件或 import 噪声影响。"],"questions":["当前证据无法完全区分这些关系中的运行时调用、类型引用、导出聚合或生成物噪声,因此只作为候选协作压力。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:technical-hotspot:dependency-cluster--boards","kind":"technical_hotspot","title":"依赖簇:boards 技术热点","summary":"该模块依赖多个外部边界,当前按候选技术耦合中心处理;图中只保留仓库证据已经观察到的依赖方向和边界。","docPath":"docs/engineering/technical-hotspots/dependency-cluster--boards/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/dependency-cluster--boards/technical-hotspot.html","anchor":"engineering:hotspot:dependency-cluster:boards","relation":"risk_detail","reason":"查看 依赖簇:boards 技术热点 是否说明 函数节点:pinNum 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--boards-tlora_pager-src-tlora_pager_board-cpp","kind":"technical_hotspot","title":"承担外部协作的候选对象:boards/tlora_pager/src/tlora_pager_board.cpp 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--boards-tlora_pager-src-tlora_pager_board-cpp/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--boards-tlora_pager-src-tlora_pager_board-cpp/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:boards-tlora_pager-src-tlora_pager_board.cpp:boards-tlora_pager-src-tlora_pager_board.cpp:1","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:boards/tlora_pager/src/tlora_pager_board.cpp 技术热点 是否说明 函数节点:pinNum 附近存在变更影响面、文件规模或协作压力风险。"}]}]},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-refreshui","kind":"component","title":"函数节点:refreshUi","summary":"function 位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_shell.cpp#L285,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-refreshui/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-refreshui/component-diagram.html","anchor":"engineering:component:function:refreshui:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_shell.cpp:285","status":"candidate","confidence":"high","mermaidKind":"flowchart","mermaid":"flowchart LR\n package_node[\"apps/linux_uconsole_gtk\"]\n file_node[\"apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_shell.cpp#L285\"]\n component_node[\"function: refreshUi\"]\n package_node --\u003e file_node\n file_node --\u003e component_node\n component_node --\u003e outgoingRelations[\"协调多个外部对象\"]\n incomingRelations[\"被多个对象复用\"] --\u003e component_node","readingGuide":["这张 Component Diagram 关注 refreshUi 这个 function,展示它所在文件、所属模块以及复用迹象、外部协作迹象。","复用迹象用于判断它是否是共享核心或公共接口;外部协作迹象用于判断它是否承担编排、聚合或桥接职责。","代码锚点是 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_shell.cpp#L285。"],"technicalAnalysis":["refreshUi 在当前仓库证据中呈现为:被复用/被依赖迹象:被多个对象复用或依赖,外部协作/编排迹象:协调多个外部对象或能力,因此它在技术结构中更像共享接口、公共能力或被复用对象。","当前协作压力需要结合具体业务入口判断,单独数字不足以确认设计问题。","所属模块 apps/linux_uconsole_gtk 决定了它更适合作为局部实现细节还是跨模块协作点。"],"businessRelation":["refreshUi 可能是某些业务故事执行过程中的技术节点,但它本身不是业务用例。","从路径上无法直接判断业务角色,需要结合组织/过程模型的 Use Case 证据确认。","如果某个 Use Case 的 Activity、Sequence 或 Class Collaboration 图引用该组件,应在组织/过程模型中明确它承担的是入口、编排、领域规则、适配器还是基础设施职责。"],"governanceNotes":["在修改该组件前,优先查找它被哪些 Use Case 下钻文档引用,避免只看局部代码而忽略业务语义。","可以把该组件作为技术解释锚点,但不要把它直接等同于业务能力。","如果该组件承载业务规则,应把规则写回组织/过程模型或对应领域文档,而不仅保留在仓库证据中。"],"coverage":["组件类型:function","所属模块:apps/linux_uconsole_gtk","代码锚点:apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_shell.cpp#L285","被复用/被依赖迹象:被多个对象复用或依赖","外部协作/编排迹象:协调多个外部对象或能力"],"evidencePaths":["apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_shell.cpp#L285"],"questions":["该组件协作压力较高;当前文档按候选编排中心或公共接口处理,并通过下钻图说明它的职责证据。"],"scope":{"packageId":"apps/linux_uconsole_gtk","filePath":"apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_shell.cpp"},"drilldowns":[{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--launchsettingslayout","kind":"technical_hotspot","title":"承担外部协作的候选对象:launchSettingsLayout 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:launchsettingslayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:110","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:launchSettingsLayout 技术热点 是否说明 函数节点:refreshUi 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makelabel","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeLabel 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makelabel:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp:9","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeLabel 技术热点 是否说明 函数节点:refreshUi 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makesettingsrow","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeSettingsRow 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makesettingsrow:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:22","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeSettingsRow 技术热点 是否说明 函数节点:refreshUi 附近存在变更影响面、文件规模或协作压力风险。"}],"elements":[{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-refreshui:element:apps-linux_uconsole_gtk","mermaidId":"package_node","label":"apps/linux_uconsole_gtk","kind":"package","anchor":"engineering:package:apps-linux_uconsole_gtk","summary":"apps/linux_uconsole_gtk 是 函数节点:refreshUi 所属的 package/module 边界,用来判断该组件是局部实现细节还是跨模块协作点。","role":"组件归属边界:它定义当前组件默认应该服务的工程上下文。","whyItExists":"组件不能脱离 package 解释;同一个符号如果位于不同 package,可能代表完全不同的职责、所有权和变更影响面。","relationshipMeaning":"apps/linux_uconsole_gtk -\u003e 函数节点:refreshUi 表示该组件由这个技术边界承载;它的角色必须由入口、调用、导出、测试或配置证据来解释,而不是只由目录位置解释。","drilldownIntent":"下钻 package 可以查看 apps/linux_uconsole_gtk 的跨模块依赖、结构协作和热点,从边界层解释该组件为何出现在这里。","businessRelevance":"如果 函数节点:refreshUi 被业务 Use Case 调用,那么 apps/linux_uconsole_gtk 是该业务能力的候选技术落点。","changeImpact":"迁移或重命名该 package 可能改变组件导入路径、下钻索引和 Use Case 对技术承载边界的引用。","evidence":["component package: apps/linux_uconsole_gtk","组件类型:function","所属模块:apps/linux_uconsole_gtk","代码锚点:apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_shell.cpp#L285","被复用/被依赖迹象:被多个对象复用或依赖","外部协作/编排迹象:协调多个外部对象或能力","apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_shell.cpp#L285"],"risks":["组件职责可能被路径误导;仍需结合调用、导入、导出、入口和测试等代码证据判断真实角色。"],"questions":["当前仓库证据尚未证明 函数节点:refreshUi 属于 apps/linux_uconsole_gtk 的稳定职责,暂按候选归属处理。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:package:apps-linux_uconsole_gtk","kind":"package","title":"模块边界:apps/linux_uconsole_gtk","summary":"解释 apps/linux_uconsole_gtk 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/apps-linux_uconsole_gtk/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/apps-linux_uconsole_gtk/package-diagram.html","anchor":"engineering:package:apps-linux_uconsole_gtk","relation":"parent_boundary","reason":"回到 apps/linux_uconsole_gtk 的包级边界,确认 函数节点:refreshUi 是否属于这个模块的稳定职责。"}]},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-refreshui:element:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_shell.cpp","mermaidId":"file_node","label":"apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_shell.cpp","kind":"file","anchor":"engineering:component:function:refreshui:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_shell.cpp:285:file","summary":"apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_shell.cpp 是当前组件的证据文件,说明 函数节点:refreshUi 的技术职责可以追溯到具体代码位置。","role":"代码证据锚点:它让组件解释可以回到具体文件,而不是停留在抽象图形上。","whyItExists":"软件结构模型必须把每个组件图绑定到可验证文件,否则 UI 只是投影而不是可追溯解释。","relationshipMeaning":"文件节点连接组件节点,表示该组件的实现、入口或符号事实来自这个文件。","drilldownIntent":"下钻该文件相关的组件、sequence 或 hotspot,可以检查该文件是否只是实现细节,还是已经成为多个能力共用的技术枢纽。","businessRelevance":"从路径上无法直接判断业务角色,需要结合组织/过程模型的 Use Case 证据确认。","changeImpact":"修改 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_shell.cpp 可能影响该组件图、相关 sequence、热点判断,以及引用该组件的业务下钻文档。","evidence":["apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_shell.cpp","apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_shell.cpp#L285"],"risks":["文件路径只能说明位置,不能单独证明业务职责。"],"questions":["当前文件锚点只能证明位置;如果同文件出现多个入口或职责,需在组件/sequence 文档中拆开解释。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--launchsettingslayout","kind":"technical_hotspot","title":"承担外部协作的候选对象:launchSettingsLayout 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:launchsettingslayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:110","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:launchSettingsLayout 技术热点 是否说明 函数节点:refreshUi 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makelabel","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeLabel 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makelabel:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp:9","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeLabel 技术热点 是否说明 函数节点:refreshUi 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makesettingsrow","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeSettingsRow 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makesettingsrow:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:22","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeSettingsRow 技术热点 是否说明 函数节点:refreshUi 附近存在变更影响面、文件规模或协作压力风险。"}]},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-refreshui:element:refreshui","mermaidId":"component_node","label":"函数节点:refreshUi","kind":"component","anchor":"engineering:component:function:refreshui:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_shell.cpp:285","summary":"函数节点:refreshUi 是当前 Component Diagram 的中心技术对象;这张图用它来解释职责、协作压力和下钻路径。","role":"关键技术对象:它需要结合复用迹象、外部协作迹象、文件位置和下钻图判断具体职责。","whyItExists":"本地仓库证据将它识别为关键组件或符号,且它具有可定位文件 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_shell.cpp、被引用/调用关系和对外依赖/调用关系。","relationshipMeaning":"package、file、被引用/调用关系和对外依赖/调用关系都围绕该组件组织,用来判断它是入口、编排者、共享能力还是风险集中点。","drilldownIntent":"下钻该组件可以进入它参与的 sequence、所属结构切片或附近热点,回答“它如何工作、谁调用它、它调用谁”。","businessRelevance":"函数节点:refreshUi 不是业务用例,但可能是业务能力落地时经过的技术节点。 从路径上无法直接判断业务角色,需要结合组织/过程模型的 Use Case 证据确认。 如果组织/过程模型的 Use Case 下钻图引用它,应在业务文档中说明它承担入口、编排、领域规则、适配器还是基础设施职责。","changeImpact":"修改 函数节点:refreshUi 可能影响 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_shell.cpp 中的入口逻辑、调用关系和引用它的业务/工程文档。","evidence":["apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_shell.cpp","组件类型:function","所属模块:apps/linux_uconsole_gtk","代码锚点:apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_shell.cpp#L285","被复用/被依赖迹象:被多个对象复用或依赖","外部协作/编排迹象:协调多个外部对象或能力","apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_shell.cpp#L285"],"risks":["协作压力高不必然代表设计问题;必须结合业务入口、测试和变更频率判断。"],"questions":["该组件协作压力较高;当前文档按候选编排中心或公共接口处理,并通过下钻图说明它的职责证据。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--launchsettingslayout","kind":"technical_hotspot","title":"承担外部协作的候选对象:launchSettingsLayout 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:launchsettingslayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:110","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:launchSettingsLayout 技术热点 是否说明 函数节点:refreshUi 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makelabel","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeLabel 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makelabel:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp:9","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeLabel 技术热点 是否说明 函数节点:refreshUi 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makesettingsrow","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeSettingsRow 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makesettingsrow:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:22","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeSettingsRow 技术热点 是否说明 函数节点:refreshUi 附近存在变更影响面、文件规模或协作压力风险。"}]},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-refreshui:element:item","mermaidId":"incomingRelations","label":"被引用/调用关系","kind":"reuse_signal","anchor":"engineering:component:function:refreshui:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_shell.cpp:285:incoming-relations","summary":"被复用/被依赖迹象用于解释它在技术网络中的复用程度或编排程度;这里只展示含义,不把内部计数当作用户结论。","role":"复用压力线索:帮助识别共享核心、公共接口或高回归风险点。","whyItExists":"单看组件名称无法判断复杂度,被复用/被依赖迹象 把本地仓库关系证据转译为用户可理解的协作压力。","relationshipMeaning":"其它组件、文件或符号依赖当前组件;关系越多,修改它越可能影响更多调用方。","drilldownIntent":"下钻相关 sequence 或 hotspot,可以把抽象数字落到具体调用片段、文件和风险位置。","businessRelevance":"如果该组件支撑用户可见能力,这个关系指标会影响业务变更的验证成本和回归风险。","changeImpact":"重构被大量对象引用/调用的组件需要谨慎处理兼容性、调用方迁移和测试覆盖。","evidence":["组件类型:function","所属模块:apps/linux_uconsole_gtk","代码锚点:apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_shell.cpp#L285","被复用/被依赖迹象:被多个对象复用或依赖","外部协作/编排迹象:协调多个外部对象或能力","apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_shell.cpp#L285"],"risks":["关系指标来自本地仓库分析,可能受扫描粒度、生成文件或 import 噪声影响。"],"questions":["当前证据无法完全区分这些关系中的运行时调用、类型引用、导出聚合或生成物噪声,因此只作为候选协作压力。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--launchsettingslayout","kind":"technical_hotspot","title":"承担外部协作的候选对象:launchSettingsLayout 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:launchsettingslayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:110","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:launchSettingsLayout 技术热点 是否说明 函数节点:refreshUi 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makelabel","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeLabel 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makelabel:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp:9","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeLabel 技术热点 是否说明 函数节点:refreshUi 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makesettingsrow","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeSettingsRow 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makesettingsrow:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:22","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeSettingsRow 技术热点 是否说明 函数节点:refreshUi 附近存在变更影响面、文件规模或协作压力风险。"}]},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-refreshui:element:item","mermaidId":"outgoingRelations","label":"对外依赖/调用关系","kind":"collaboration_signal","anchor":"engineering:component:function:refreshui:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_shell.cpp:285:outgoing-relations","summary":"外部协作/编排迹象用于解释它在技术网络中的复用程度或编排程度;这里只展示含义,不把内部计数当作用户结论。","role":"编排压力线索:帮助识别编排中心、聚合入口或耦合扩散点。","whyItExists":"单看组件名称无法判断复杂度,外部协作/编排迹象 把本地仓库关系证据转译为用户可理解的协作压力。","relationshipMeaning":"当前组件依赖其它组件、文件或符号;关系越多,越可能承担较宽的协调职责。","drilldownIntent":"下钻相关 sequence 或 hotspot,可以把抽象数字落到具体调用片段、文件和风险位置。","businessRelevance":"如果该组件支撑用户可见能力,这个关系指标会影响业务变更的验证成本和回归风险。","changeImpact":"降低过多对外依赖通常意味着拆分编排职责、引入接口边界或把适配逻辑移到更合适的位置。","evidence":["组件类型:function","所属模块:apps/linux_uconsole_gtk","代码锚点:apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_shell.cpp#L285","被复用/被依赖迹象:被多个对象复用或依赖","外部协作/编排迹象:协调多个外部对象或能力","apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_shell.cpp#L285"],"risks":["关系指标来自本地仓库分析,可能受扫描粒度、生成文件或 import 噪声影响。"],"questions":["当前证据无法完全区分这些关系中的运行时调用、类型引用、导出聚合或生成物噪声,因此只作为候选协作压力。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--launchsettingslayout","kind":"technical_hotspot","title":"承担外部协作的候选对象:launchSettingsLayout 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:launchsettingslayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:110","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:launchSettingsLayout 技术热点 是否说明 函数节点:refreshUi 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makelabel","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeLabel 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makelabel:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp:9","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeLabel 技术热点 是否说明 函数节点:refreshUi 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makesettingsrow","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeSettingsRow 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makesettingsrow:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:22","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeSettingsRow 技术热点 是否说明 函数节点:refreshUi 附近存在变更影响面、文件规模或协作压力风险。"}]}]},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-refreshmap","kind":"component","title":"函数节点:refreshMap","summary":"function 位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_map_logic.cpp#L1243,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-refreshmap/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-refreshmap/component-diagram.html","anchor":"engineering:component:function:refreshmap:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_map_logic.cpp:1243","status":"candidate","confidence":"high","mermaidKind":"flowchart","mermaid":"flowchart LR\n package_node[\"apps/linux_uconsole_gtk\"]\n file_node[\"apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_map_logic.cpp#L1243\"]\n component_node[\"function: refreshMap\"]\n package_node --\u003e file_node\n file_node --\u003e component_node\n component_node --\u003e outgoingRelations[\"协调多个外部对象\"]\n incomingRelations[\"被多个对象复用\"] --\u003e component_node","readingGuide":["这张 Component Diagram 关注 refreshMap 这个 function,展示它所在文件、所属模块以及复用迹象、外部协作迹象。","复用迹象用于判断它是否是共享核心或公共接口;外部协作迹象用于判断它是否承担编排、聚合或桥接职责。","代码锚点是 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_map_logic.cpp#L1243。"],"technicalAnalysis":["refreshMap 在当前仓库证据中呈现为:被复用/被依赖迹象:被多个对象复用或依赖,外部协作/编排迹象:协调多个外部对象或能力,因此它在技术结构中更像编排者或聚合入口。","当前协作压力需要结合具体业务入口判断,单独数字不足以确认设计问题。","所属模块 apps/linux_uconsole_gtk 决定了它更适合作为局部实现细节还是跨模块协作点。"],"businessRelation":["refreshMap 可能是某些业务故事执行过程中的技术节点,但它本身不是业务用例。","从路径上无法直接判断业务角色,需要结合组织/过程模型的 Use Case 证据确认。","如果某个 Use Case 的 Activity、Sequence 或 Class Collaboration 图引用该组件,应在组织/过程模型中明确它承担的是入口、编排、领域规则、适配器还是基础设施职责。"],"governanceNotes":["在修改该组件前,优先查找它被哪些 Use Case 下钻文档引用,避免只看局部代码而忽略业务语义。","可以把该组件作为技术解释锚点,但不要把它直接等同于业务能力。","如果该组件承载业务规则,应把规则写回组织/过程模型或对应领域文档,而不仅保留在仓库证据中。"],"coverage":["组件类型:function","所属模块:apps/linux_uconsole_gtk","代码锚点:apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_map_logic.cpp#L1243","被复用/被依赖迹象:被多个对象复用或依赖","外部协作/编排迹象:协调多个外部对象或能力"],"evidencePaths":["apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_map_logic.cpp#L1243"],"questions":["该组件协作压力较高;当前文档按候选编排中心或公共接口处理,并通过下钻图说明它的职责证据。"],"scope":{"packageId":"apps/linux_uconsole_gtk","filePath":"apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_map_logic.cpp"},"drilldowns":[{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--launchsettingslayout","kind":"technical_hotspot","title":"承担外部协作的候选对象:launchSettingsLayout 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:launchsettingslayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:110","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:launchSettingsLayout 技术热点 是否说明 函数节点:refreshMap 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makelabel","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeLabel 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makelabel:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp:9","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeLabel 技术热点 是否说明 函数节点:refreshMap 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makesettingsrow","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeSettingsRow 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makesettingsrow:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:22","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeSettingsRow 技术热点 是否说明 函数节点:refreshMap 附近存在变更影响面、文件规模或协作压力风险。"}],"elements":[{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-refreshmap:element:apps-linux_uconsole_gtk","mermaidId":"package_node","label":"apps/linux_uconsole_gtk","kind":"package","anchor":"engineering:package:apps-linux_uconsole_gtk","summary":"apps/linux_uconsole_gtk 是 函数节点:refreshMap 所属的 package/module 边界,用来判断该组件是局部实现细节还是跨模块协作点。","role":"组件归属边界:它定义当前组件默认应该服务的工程上下文。","whyItExists":"组件不能脱离 package 解释;同一个符号如果位于不同 package,可能代表完全不同的职责、所有权和变更影响面。","relationshipMeaning":"apps/linux_uconsole_gtk -\u003e 函数节点:refreshMap 表示该组件由这个技术边界承载;它的角色必须由入口、调用、导出、测试或配置证据来解释,而不是只由目录位置解释。","drilldownIntent":"下钻 package 可以查看 apps/linux_uconsole_gtk 的跨模块依赖、结构协作和热点,从边界层解释该组件为何出现在这里。","businessRelevance":"如果 函数节点:refreshMap 被业务 Use Case 调用,那么 apps/linux_uconsole_gtk 是该业务能力的候选技术落点。","changeImpact":"迁移或重命名该 package 可能改变组件导入路径、下钻索引和 Use Case 对技术承载边界的引用。","evidence":["component package: apps/linux_uconsole_gtk","组件类型:function","所属模块:apps/linux_uconsole_gtk","代码锚点:apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_map_logic.cpp#L1243","被复用/被依赖迹象:被多个对象复用或依赖","外部协作/编排迹象:协调多个外部对象或能力","apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_map_logic.cpp#L1243"],"risks":["组件职责可能被路径误导;仍需结合调用、导入、导出、入口和测试等代码证据判断真实角色。"],"questions":["当前仓库证据尚未证明 函数节点:refreshMap 属于 apps/linux_uconsole_gtk 的稳定职责,暂按候选归属处理。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:package:apps-linux_uconsole_gtk","kind":"package","title":"模块边界:apps/linux_uconsole_gtk","summary":"解释 apps/linux_uconsole_gtk 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/apps-linux_uconsole_gtk/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/apps-linux_uconsole_gtk/package-diagram.html","anchor":"engineering:package:apps-linux_uconsole_gtk","relation":"parent_boundary","reason":"回到 apps/linux_uconsole_gtk 的包级边界,确认 函数节点:refreshMap 是否属于这个模块的稳定职责。"}]},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-refreshmap:element:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_map_logic.cpp","mermaidId":"file_node","label":"apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_map_logic.cpp","kind":"file","anchor":"engineering:component:function:refreshmap:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_map_logic.cpp:1243:file","summary":"apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_map_logic.cpp 是当前组件的证据文件,说明 函数节点:refreshMap 的技术职责可以追溯到具体代码位置。","role":"代码证据锚点:它让组件解释可以回到具体文件,而不是停留在抽象图形上。","whyItExists":"软件结构模型必须把每个组件图绑定到可验证文件,否则 UI 只是投影而不是可追溯解释。","relationshipMeaning":"文件节点连接组件节点,表示该组件的实现、入口或符号事实来自这个文件。","drilldownIntent":"下钻该文件相关的组件、sequence 或 hotspot,可以检查该文件是否只是实现细节,还是已经成为多个能力共用的技术枢纽。","businessRelevance":"从路径上无法直接判断业务角色,需要结合组织/过程模型的 Use Case 证据确认。","changeImpact":"修改 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_map_logic.cpp 可能影响该组件图、相关 sequence、热点判断,以及引用该组件的业务下钻文档。","evidence":["apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_map_logic.cpp","apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_map_logic.cpp#L1243"],"risks":["文件路径只能说明位置,不能单独证明业务职责。"],"questions":["当前文件锚点只能证明位置;如果同文件出现多个入口或职责,需在组件/sequence 文档中拆开解释。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--launchsettingslayout","kind":"technical_hotspot","title":"承担外部协作的候选对象:launchSettingsLayout 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:launchsettingslayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:110","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:launchSettingsLayout 技术热点 是否说明 函数节点:refreshMap 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makelabel","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeLabel 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makelabel:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp:9","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeLabel 技术热点 是否说明 函数节点:refreshMap 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makesettingsrow","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeSettingsRow 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makesettingsrow:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:22","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeSettingsRow 技术热点 是否说明 函数节点:refreshMap 附近存在变更影响面、文件规模或协作压力风险。"}]},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-refreshmap:element:refreshmap","mermaidId":"component_node","label":"函数节点:refreshMap","kind":"component","anchor":"engineering:component:function:refreshmap:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_map_logic.cpp:1243","summary":"函数节点:refreshMap 是当前 Component Diagram 的中心技术对象;这张图用它来解释职责、协作压力和下钻路径。","role":"关键技术对象:它需要结合复用迹象、外部协作迹象、文件位置和下钻图判断具体职责。","whyItExists":"本地仓库证据将它识别为关键组件或符号,且它具有可定位文件 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_map_logic.cpp、被引用/调用关系和对外依赖/调用关系。","relationshipMeaning":"package、file、被引用/调用关系和对外依赖/调用关系都围绕该组件组织,用来判断它是入口、编排者、共享能力还是风险集中点。","drilldownIntent":"下钻该组件可以进入它参与的 sequence、所属结构切片或附近热点,回答“它如何工作、谁调用它、它调用谁”。","businessRelevance":"函数节点:refreshMap 不是业务用例,但可能是业务能力落地时经过的技术节点。 从路径上无法直接判断业务角色,需要结合组织/过程模型的 Use Case 证据确认。 如果组织/过程模型的 Use Case 下钻图引用它,应在业务文档中说明它承担入口、编排、领域规则、适配器还是基础设施职责。","changeImpact":"修改 函数节点:refreshMap 可能影响 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_map_logic.cpp 中的入口逻辑、调用关系和引用它的业务/工程文档。","evidence":["apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_map_logic.cpp","组件类型:function","所属模块:apps/linux_uconsole_gtk","代码锚点:apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_map_logic.cpp#L1243","被复用/被依赖迹象:被多个对象复用或依赖","外部协作/编排迹象:协调多个外部对象或能力","apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_map_logic.cpp#L1243"],"risks":["协作压力高不必然代表设计问题;必须结合业务入口、测试和变更频率判断。"],"questions":["该组件协作压力较高;当前文档按候选编排中心或公共接口处理,并通过下钻图说明它的职责证据。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--launchsettingslayout","kind":"technical_hotspot","title":"承担外部协作的候选对象:launchSettingsLayout 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:launchsettingslayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:110","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:launchSettingsLayout 技术热点 是否说明 函数节点:refreshMap 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makelabel","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeLabel 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makelabel:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp:9","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeLabel 技术热点 是否说明 函数节点:refreshMap 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makesettingsrow","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeSettingsRow 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makesettingsrow:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:22","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeSettingsRow 技术热点 是否说明 函数节点:refreshMap 附近存在变更影响面、文件规模或协作压力风险。"}]},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-refreshmap:element:item","mermaidId":"incomingRelations","label":"被引用/调用关系","kind":"reuse_signal","anchor":"engineering:component:function:refreshmap:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_map_logic.cpp:1243:incoming-relations","summary":"被复用/被依赖迹象用于解释它在技术网络中的复用程度或编排程度;这里只展示含义,不把内部计数当作用户结论。","role":"复用压力线索:帮助识别共享核心、公共接口或高回归风险点。","whyItExists":"单看组件名称无法判断复杂度,被复用/被依赖迹象 把本地仓库关系证据转译为用户可理解的协作压力。","relationshipMeaning":"其它组件、文件或符号依赖当前组件;关系越多,修改它越可能影响更多调用方。","drilldownIntent":"下钻相关 sequence 或 hotspot,可以把抽象数字落到具体调用片段、文件和风险位置。","businessRelevance":"如果该组件支撑用户可见能力,这个关系指标会影响业务变更的验证成本和回归风险。","changeImpact":"重构被大量对象引用/调用的组件需要谨慎处理兼容性、调用方迁移和测试覆盖。","evidence":["组件类型:function","所属模块:apps/linux_uconsole_gtk","代码锚点:apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_map_logic.cpp#L1243","被复用/被依赖迹象:被多个对象复用或依赖","外部协作/编排迹象:协调多个外部对象或能力","apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_map_logic.cpp#L1243"],"risks":["关系指标来自本地仓库分析,可能受扫描粒度、生成文件或 import 噪声影响。"],"questions":["当前证据无法完全区分这些关系中的运行时调用、类型引用、导出聚合或生成物噪声,因此只作为候选协作压力。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--launchsettingslayout","kind":"technical_hotspot","title":"承担外部协作的候选对象:launchSettingsLayout 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:launchsettingslayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:110","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:launchSettingsLayout 技术热点 是否说明 函数节点:refreshMap 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makelabel","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeLabel 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makelabel:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp:9","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeLabel 技术热点 是否说明 函数节点:refreshMap 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makesettingsrow","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeSettingsRow 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makesettingsrow:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:22","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeSettingsRow 技术热点 是否说明 函数节点:refreshMap 附近存在变更影响面、文件规模或协作压力风险。"}]},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-refreshmap:element:item","mermaidId":"outgoingRelations","label":"对外依赖/调用关系","kind":"collaboration_signal","anchor":"engineering:component:function:refreshmap:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_map_logic.cpp:1243:outgoing-relations","summary":"外部协作/编排迹象用于解释它在技术网络中的复用程度或编排程度;这里只展示含义,不把内部计数当作用户结论。","role":"编排压力线索:帮助识别编排中心、聚合入口或耦合扩散点。","whyItExists":"单看组件名称无法判断复杂度,外部协作/编排迹象 把本地仓库关系证据转译为用户可理解的协作压力。","relationshipMeaning":"当前组件依赖其它组件、文件或符号;关系越多,越可能承担较宽的协调职责。","drilldownIntent":"下钻相关 sequence 或 hotspot,可以把抽象数字落到具体调用片段、文件和风险位置。","businessRelevance":"如果该组件支撑用户可见能力,这个关系指标会影响业务变更的验证成本和回归风险。","changeImpact":"降低过多对外依赖通常意味着拆分编排职责、引入接口边界或把适配逻辑移到更合适的位置。","evidence":["组件类型:function","所属模块:apps/linux_uconsole_gtk","代码锚点:apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_map_logic.cpp#L1243","被复用/被依赖迹象:被多个对象复用或依赖","外部协作/编排迹象:协调多个外部对象或能力","apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_map_logic.cpp#L1243"],"risks":["关系指标来自本地仓库分析,可能受扫描粒度、生成文件或 import 噪声影响。"],"questions":["当前证据无法完全区分这些关系中的运行时调用、类型引用、导出聚合或生成物噪声,因此只作为候选协作压力。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--launchsettingslayout","kind":"technical_hotspot","title":"承担外部协作的候选对象:launchSettingsLayout 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:launchsettingslayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:110","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:launchSettingsLayout 技术热点 是否说明 函数节点:refreshMap 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makelabel","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeLabel 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makelabel:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp:9","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeLabel 技术热点 是否说明 函数节点:refreshMap 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makesettingsrow","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeSettingsRow 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makesettingsrow:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:22","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeSettingsRow 技术热点 是否说明 函数节点:refreshMap 附近存在变更影响面、文件规模或协作压力风险。"}]}]},{"id":"engineering:diagram:component:apps-linux_cardputer_zero-read_file","kind":"component","title":"函数节点:read_file","summary":"function 位于 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L10,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-read_file/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-read_file/component-diagram.html","anchor":"engineering:component:function:read_file:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:10","status":"candidate","confidence":"high","mermaidKind":"flowchart","mermaid":"flowchart LR\n package_node[\"apps/linux_cardputer_zero\"]\n file_node[\"apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L10\"]\n component_node[\"function: read_file\"]\n package_node --\u003e file_node\n file_node --\u003e component_node\n component_node --\u003e outgoingRelations[\"未观察到明显外部协作\"]\n incomingRelations[\"被多个对象复用\"] --\u003e component_node","readingGuide":["这张 Component Diagram 关注 read_file 这个 function,展示它所在文件、所属模块以及复用迹象、外部协作迹象。","复用迹象用于判断它是否是共享核心或公共接口;外部协作迹象用于判断它是否承担编排、聚合或桥接职责。","代码锚点是 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L10。"],"technicalAnalysis":["read_file 在当前仓库证据中呈现为:被复用/被依赖迹象:被多个对象复用或依赖,外部协作/编排迹象:当前未观察到明显外部协作线索,因此它在技术结构中更像共享接口、公共能力或被复用对象。","当前协作压力需要结合具体业务入口判断,单独数字不足以确认设计问题。","所属模块 apps/linux_cardputer_zero 决定了它更适合作为局部实现细节还是跨模块协作点。"],"businessRelation":["read_file 可能是某些业务故事执行过程中的技术节点,但它本身不是业务用例。","从路径上无法直接判断业务角色,需要结合组织/过程模型的 Use Case 证据确认。","如果某个 Use Case 的 Activity、Sequence 或 Class Collaboration 图引用该组件,应在组织/过程模型中明确它承担的是入口、编排、领域规则、适配器还是基础设施职责。"],"governanceNotes":["在修改该组件前,优先查找它被哪些 Use Case 下钻文档引用,避免只看局部代码而忽略业务语义。","可以把该组件作为技术解释锚点,但不要把它直接等同于业务能力。","如果该组件承载业务规则,应把规则写回组织/过程模型或对应领域文档,而不仅保留在仓库证据中。"],"coverage":["组件类型:function","所属模块:apps/linux_cardputer_zero","代码锚点:apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L10","被复用/被依赖迹象:被多个对象复用或依赖","外部协作/编排迹象:当前未观察到明显外部协作线索"],"evidencePaths":["apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L10"],"questions":["该组件协作压力较高;当前文档按候选编排中心或公共接口处理,并通过下钻图说明它的职责证据。"],"scope":{"packageId":"apps/linux_cardputer_zero","filePath":"apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp"},"drilldowns":[{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--main","kind":"technical_hotspot","title":"承担外部协作的候选对象:main 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--main/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--main/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:main:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:49","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:main 技术热点 是否说明 函数节点:read_file 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--contains","kind":"technical_hotspot","title":"被广泛复用的候选对象:contains 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--contains/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--contains/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:contains:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:19","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:contains 技术热点 是否说明 函数节点:read_file 附近存在变更影响面、文件规模或协作压力风险。"}],"elements":[{"id":"engineering:diagram:component:apps-linux_cardputer_zero-read_file:element:apps-linux_cardputer_zero","mermaidId":"package_node","label":"apps/linux_cardputer_zero","kind":"package","anchor":"engineering:package:apps-linux_cardputer_zero","summary":"apps/linux_cardputer_zero 是 函数节点:read_file 所属的 package/module 边界,用来判断该组件是局部实现细节还是跨模块协作点。","role":"组件归属边界:它定义当前组件默认应该服务的工程上下文。","whyItExists":"组件不能脱离 package 解释;同一个符号如果位于不同 package,可能代表完全不同的职责、所有权和变更影响面。","relationshipMeaning":"apps/linux_cardputer_zero -\u003e 函数节点:read_file 表示该组件由这个技术边界承载;它的角色必须由入口、调用、导出、测试或配置证据来解释,而不是只由目录位置解释。","drilldownIntent":"下钻 package 可以查看 apps/linux_cardputer_zero 的跨模块依赖、结构协作和热点,从边界层解释该组件为何出现在这里。","businessRelevance":"如果 函数节点:read_file 被业务 Use Case 调用,那么 apps/linux_cardputer_zero 是该业务能力的候选技术落点。","changeImpact":"迁移或重命名该 package 可能改变组件导入路径、下钻索引和 Use Case 对技术承载边界的引用。","evidence":["component package: apps/linux_cardputer_zero","组件类型:function","所属模块:apps/linux_cardputer_zero","代码锚点:apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L10","被复用/被依赖迹象:被多个对象复用或依赖","外部协作/编排迹象:当前未观察到明显外部协作线索","apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L10"],"risks":["组件职责可能被路径误导;仍需结合调用、导入、导出、入口和测试等代码证据判断真实角色。"],"questions":["当前仓库证据尚未证明 函数节点:read_file 属于 apps/linux_cardputer_zero 的稳定职责,暂按候选归属处理。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:package:apps-linux_cardputer_zero","kind":"package","title":"模块边界:apps/linux_cardputer_zero","summary":"解释 apps/linux_cardputer_zero 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/apps-linux_cardputer_zero/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/apps-linux_cardputer_zero/package-diagram.html","anchor":"engineering:package:apps-linux_cardputer_zero","relation":"parent_boundary","reason":"回到 apps/linux_cardputer_zero 的包级边界,确认 函数节点:read_file 是否属于这个模块的稳定职责。"}]},{"id":"engineering:diagram:component:apps-linux_cardputer_zero-read_file:element:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp","mermaidId":"file_node","label":"apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp","kind":"file","anchor":"engineering:component:function:read_file:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:10:file","summary":"apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp 是当前组件的证据文件,说明 函数节点:read_file 的技术职责可以追溯到具体代码位置。","role":"代码证据锚点:它让组件解释可以回到具体文件,而不是停留在抽象图形上。","whyItExists":"软件结构模型必须把每个组件图绑定到可验证文件,否则 UI 只是投影而不是可追溯解释。","relationshipMeaning":"文件节点连接组件节点,表示该组件的实现、入口或符号事实来自这个文件。","drilldownIntent":"下钻该文件相关的组件、sequence 或 hotspot,可以检查该文件是否只是实现细节,还是已经成为多个能力共用的技术枢纽。","businessRelevance":"从路径上无法直接判断业务角色,需要结合组织/过程模型的 Use Case 证据确认。","changeImpact":"修改 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp 可能影响该组件图、相关 sequence、热点判断,以及引用该组件的业务下钻文档。","evidence":["apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp","apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L10"],"risks":["文件路径只能说明位置,不能单独证明业务职责。"],"questions":["当前文件锚点只能证明位置;如果同文件出现多个入口或职责,需在组件/sequence 文档中拆开解释。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--main","kind":"technical_hotspot","title":"承担外部协作的候选对象:main 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--main/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--main/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:main:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:49","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:main 技术热点 是否说明 函数节点:read_file 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--contains","kind":"technical_hotspot","title":"被广泛复用的候选对象:contains 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--contains/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--contains/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:contains:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:19","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:contains 技术热点 是否说明 函数节点:read_file 附近存在变更影响面、文件规模或协作压力风险。"}]},{"id":"engineering:diagram:component:apps-linux_cardputer_zero-read_file:element:read_file","mermaidId":"component_node","label":"函数节点:read_file","kind":"component","anchor":"engineering:component:function:read_file:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:10","summary":"函数节点:read_file 是当前 Component Diagram 的中心技术对象;这张图用它来解释职责、协作压力和下钻路径。","role":"关键技术对象:它需要结合复用迹象、外部协作迹象、文件位置和下钻图判断具体职责。","whyItExists":"本地仓库证据将它识别为关键组件或符号,且它具有可定位文件 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp、被引用/调用关系和对外依赖/调用关系。","relationshipMeaning":"package、file、被引用/调用关系和对外依赖/调用关系都围绕该组件组织,用来判断它是入口、编排者、共享能力还是风险集中点。","drilldownIntent":"下钻该组件可以进入它参与的 sequence、所属结构切片或附近热点,回答“它如何工作、谁调用它、它调用谁”。","businessRelevance":"函数节点:read_file 不是业务用例,但可能是业务能力落地时经过的技术节点。 从路径上无法直接判断业务角色,需要结合组织/过程模型的 Use Case 证据确认。 如果组织/过程模型的 Use Case 下钻图引用它,应在业务文档中说明它承担入口、编排、领域规则、适配器还是基础设施职责。","changeImpact":"修改 函数节点:read_file 可能影响 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp 中的入口逻辑、调用关系和引用它的业务/工程文档。","evidence":["apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp","组件类型:function","所属模块:apps/linux_cardputer_zero","代码锚点:apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L10","被复用/被依赖迹象:被多个对象复用或依赖","外部协作/编排迹象:当前未观察到明显外部协作线索","apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L10"],"risks":["协作压力高不必然代表设计问题;必须结合业务入口、测试和变更频率判断。"],"questions":["该组件协作压力较高;当前文档按候选编排中心或公共接口处理,并通过下钻图说明它的职责证据。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--main","kind":"technical_hotspot","title":"承担外部协作的候选对象:main 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--main/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--main/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:main:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:49","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:main 技术热点 是否说明 函数节点:read_file 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--contains","kind":"technical_hotspot","title":"被广泛复用的候选对象:contains 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--contains/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--contains/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:contains:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:19","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:contains 技术热点 是否说明 函数节点:read_file 附近存在变更影响面、文件规模或协作压力风险。"}]},{"id":"engineering:diagram:component:apps-linux_cardputer_zero-read_file:element:item","mermaidId":"incomingRelations","label":"被引用/调用关系","kind":"reuse_signal","anchor":"engineering:component:function:read_file:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:10:incoming-relations","summary":"被复用/被依赖迹象用于解释它在技术网络中的复用程度或编排程度;这里只展示含义,不把内部计数当作用户结论。","role":"复用压力线索:帮助识别共享核心、公共接口或高回归风险点。","whyItExists":"单看组件名称无法判断复杂度,被复用/被依赖迹象 把本地仓库关系证据转译为用户可理解的协作压力。","relationshipMeaning":"其它组件、文件或符号依赖当前组件;关系越多,修改它越可能影响更多调用方。","drilldownIntent":"下钻相关 sequence 或 hotspot,可以把抽象数字落到具体调用片段、文件和风险位置。","businessRelevance":"如果该组件支撑用户可见能力,这个关系指标会影响业务变更的验证成本和回归风险。","changeImpact":"重构被大量对象引用/调用的组件需要谨慎处理兼容性、调用方迁移和测试覆盖。","evidence":["组件类型:function","所属模块:apps/linux_cardputer_zero","代码锚点:apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L10","被复用/被依赖迹象:被多个对象复用或依赖","外部协作/编排迹象:当前未观察到明显外部协作线索","apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L10"],"risks":["关系指标来自本地仓库分析,可能受扫描粒度、生成文件或 import 噪声影响。"],"questions":["当前证据无法完全区分这些关系中的运行时调用、类型引用、导出聚合或生成物噪声,因此只作为候选协作压力。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--main","kind":"technical_hotspot","title":"承担外部协作的候选对象:main 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--main/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--main/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:main:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:49","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:main 技术热点 是否说明 函数节点:read_file 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--contains","kind":"technical_hotspot","title":"被广泛复用的候选对象:contains 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--contains/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--contains/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:contains:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:19","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:contains 技术热点 是否说明 函数节点:read_file 附近存在变更影响面、文件规模或协作压力风险。"}]},{"id":"engineering:diagram:component:apps-linux_cardputer_zero-read_file:element:item","mermaidId":"outgoingRelations","label":"对外依赖/调用关系","kind":"collaboration_signal","anchor":"engineering:component:function:read_file:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:10:outgoing-relations","summary":"外部协作/编排迹象用于解释它在技术网络中的复用程度或编排程度;这里只展示含义,不把内部计数当作用户结论。","role":"编排压力线索:帮助识别编排中心、聚合入口或耦合扩散点。","whyItExists":"单看组件名称无法判断复杂度,外部协作/编排迹象 把本地仓库关系证据转译为用户可理解的协作压力。","relationshipMeaning":"当前组件依赖其它组件、文件或符号;关系越多,越可能承担较宽的协调职责。","drilldownIntent":"下钻相关 sequence 或 hotspot,可以把抽象数字落到具体调用片段、文件和风险位置。","businessRelevance":"如果该组件支撑用户可见能力,这个关系指标会影响业务变更的验证成本和回归风险。","changeImpact":"降低过多对外依赖通常意味着拆分编排职责、引入接口边界或把适配逻辑移到更合适的位置。","evidence":["组件类型:function","所属模块:apps/linux_cardputer_zero","代码锚点:apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L10","被复用/被依赖迹象:被多个对象复用或依赖","外部协作/编排迹象:当前未观察到明显外部协作线索","apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L10"],"risks":["关系指标来自本地仓库分析,可能受扫描粒度、生成文件或 import 噪声影响。"],"questions":["当前证据无法完全区分这些关系中的运行时调用、类型引用、导出聚合或生成物噪声,因此只作为候选协作压力。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--main","kind":"technical_hotspot","title":"承担外部协作的候选对象:main 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--main/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--main/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:main:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:49","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:main 技术热点 是否说明 函数节点:read_file 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--contains","kind":"technical_hotspot","title":"被广泛复用的候选对象:contains 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--contains/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--contains/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:contains:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:19","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:contains 技术热点 是否说明 函数节点:read_file 附近存在变更影响面、文件规模或协作压力风险。"}]}]},{"id":"engineering:diagram:component:firmware-tm_services_record_error","kind":"component","title":"界面组件:tm_services_record_error","summary":"function 位于 firmware/c6_companion/components/tm_services/tm_services.c#L471,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/firmware-tm_services_record_error/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/firmware-tm_services_record_error/component-diagram.html","anchor":"engineering:component:function:tm_services_record_error:firmware-c6_companion-components-tm_services-tm_services.c:471","status":"candidate","confidence":"high","mermaidKind":"flowchart","mermaid":"flowchart LR\n package_node[\"firmware\"]\n file_node[\"firmware/c6_companion/components/tm_services/tm_services.c#L471\"]\n component_node[\"function: tm_services_record_error\"]\n package_node --\u003e file_node\n file_node --\u003e component_node\n component_node --\u003e outgoingRelations[\"存在外部协作线索\"]\n incomingRelations[\"被多个对象复用\"] --\u003e component_node","readingGuide":["这张 Component Diagram 关注 tm_services_record_error 这个 function,展示它所在文件、所属模块以及复用迹象、外部协作迹象。","复用迹象用于判断它是否是共享核心或公共接口;外部协作迹象用于判断它是否承担编排、聚合或桥接职责。","代码锚点是 firmware/c6_companion/components/tm_services/tm_services.c#L471。"],"technicalAnalysis":["tm_services_record_error 在当前仓库证据中呈现为:被复用/被依赖迹象:被多个对象复用或依赖,外部协作/编排迹象:存在局部外部协作线索,因此它在技术结构中更像共享接口、公共能力或被复用对象。","当前协作压力需要结合具体业务入口判断,单独数字不足以确认设计问题。","所属模块 firmware 决定了它更适合作为局部实现细节还是跨模块协作点。"],"businessRelation":["tm_services_record_error 可能是某些业务故事执行过程中的技术节点,但它本身不是业务用例。","从路径上无法直接判断业务角色,需要结合组织/过程模型的 Use Case 证据确认。","如果某个 Use Case 的 Activity、Sequence 或 Class Collaboration 图引用该组件,应在组织/过程模型中明确它承担的是入口、编排、领域规则、适配器还是基础设施职责。"],"governanceNotes":["在修改该组件前,优先查找它被哪些 Use Case 下钻文档引用,避免只看局部代码而忽略业务语义。","可以把该组件作为技术解释锚点,但不要把它直接等同于业务能力。","如果该组件承载业务规则,应把规则写回组织/过程模型或对应领域文档,而不仅保留在仓库证据中。"],"coverage":["组件类型:function","所属模块:firmware","代码锚点:firmware/c6_companion/components/tm_services/tm_services.c#L471","被复用/被依赖迹象:被多个对象复用或依赖","外部协作/编排迹象:存在局部外部协作线索"],"evidencePaths":["firmware/c6_companion/components/tm_services/tm_services.c#L471"],"questions":["该组件协作压力较高;当前文档按候选编排中心或公共接口处理,并通过下钻图说明它的职责证据。"],"scope":{"packageId":"firmware","filePath":"firmware/c6_companion/components/tm_services/tm_services.c"},"drilldowns":[],"elements":[{"id":"engineering:diagram:component:firmware-tm_services_record_error:element:firmware","mermaidId":"package_node","label":"firmware","kind":"package","anchor":"engineering:package:firmware","summary":"firmware 是 界面组件:tm_services_record_error 所属的 package/module 边界,用来判断该组件是局部实现细节还是跨模块协作点。","role":"组件归属边界:它定义当前组件默认应该服务的工程上下文。","whyItExists":"组件不能脱离 package 解释;同一个符号如果位于不同 package,可能代表完全不同的职责、所有权和变更影响面。","relationshipMeaning":"firmware -\u003e 界面组件:tm_services_record_error 表示该组件由这个技术边界承载;它的角色必须由入口、调用、导出、测试或配置证据来解释,而不是只由目录位置解释。","drilldownIntent":"下钻 package 可以查看 firmware 的跨模块依赖、结构协作和热点,从边界层解释该组件为何出现在这里。","businessRelevance":"如果 界面组件:tm_services_record_error 被业务 Use Case 调用,那么 firmware 是该业务能力的候选技术落点。","changeImpact":"迁移或重命名该 package 可能改变组件导入路径、下钻索引和 Use Case 对技术承载边界的引用。","evidence":["component package: firmware","组件类型:function","所属模块:firmware","代码锚点:firmware/c6_companion/components/tm_services/tm_services.c#L471","被复用/被依赖迹象:被多个对象复用或依赖","外部协作/编排迹象:存在局部外部协作线索","firmware/c6_companion/components/tm_services/tm_services.c#L471"],"risks":["组件职责可能被路径误导;仍需结合调用、导入、导出、入口和测试等代码证据判断真实角色。"],"questions":["当前仓库证据尚未证明 界面组件:tm_services_record_error 属于 firmware 的稳定职责,暂按候选归属处理。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:package:firmware","kind":"package","title":"模块边界:firmware","summary":"解释 firmware 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/firmware/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/firmware/package-diagram.html","anchor":"engineering:package:firmware","relation":"parent_boundary","reason":"回到 firmware 的包级边界,确认 界面组件:tm_services_record_error 是否属于这个模块的稳定职责。"}]},{"id":"engineering:diagram:component:firmware-tm_services_record_error:element:firmware-c6_companion-components-tm_services-tm_services.c","mermaidId":"file_node","label":"firmware/c6_companion/components/tm_services/tm_services.c","kind":"file","anchor":"engineering:component:function:tm_services_record_error:firmware-c6_companion-components-tm_services-tm_services.c:471:file","summary":"firmware/c6_companion/components/tm_services/tm_services.c 是当前组件的证据文件,说明 界面组件:tm_services_record_error 的技术职责可以追溯到具体代码位置。","role":"代码证据锚点:它让组件解释可以回到具体文件,而不是停留在抽象图形上。","whyItExists":"软件结构模型必须把每个组件图绑定到可验证文件,否则 UI 只是投影而不是可追溯解释。","relationshipMeaning":"文件节点连接组件节点,表示该组件的实现、入口或符号事实来自这个文件。","drilldownIntent":"下钻该文件相关的组件、sequence 或 hotspot,可以检查该文件是否只是实现细节,还是已经成为多个能力共用的技术枢纽。","businessRelevance":"从路径上无法直接判断业务角色,需要结合组织/过程模型的 Use Case 证据确认。","changeImpact":"修改 firmware/c6_companion/components/tm_services/tm_services.c 可能影响该组件图、相关 sequence、热点判断,以及引用该组件的业务下钻文档。","evidence":["firmware/c6_companion/components/tm_services/tm_services.c","firmware/c6_companion/components/tm_services/tm_services.c#L471"],"risks":["文件路径只能说明位置,不能单独证明业务职责。"],"questions":["当前文件锚点只能证明位置;如果同文件出现多个入口或职责,需在组件/sequence 文档中拆开解释。"],"confidence":"high","drilldowns":[]},{"id":"engineering:diagram:component:firmware-tm_services_record_error:element:tm_services_record_error","mermaidId":"component_node","label":"界面组件:tm_services_record_error","kind":"component","anchor":"engineering:component:function:tm_services_record_error:firmware-c6_companion-components-tm_services-tm_services.c:471","summary":"界面组件:tm_services_record_error 是当前 Component Diagram 的中心技术对象;这张图用它来解释职责、协作压力和下钻路径。","role":"关键技术对象:它需要结合复用迹象、外部协作迹象、文件位置和下钻图判断具体职责。","whyItExists":"本地仓库证据将它识别为关键组件或符号,且它具有可定位文件 firmware/c6_companion/components/tm_services/tm_services.c、被引用/调用关系和对外依赖/调用关系。","relationshipMeaning":"package、file、被引用/调用关系和对外依赖/调用关系都围绕该组件组织,用来判断它是入口、编排者、共享能力还是风险集中点。","drilldownIntent":"下钻该组件可以进入它参与的 sequence、所属结构切片或附近热点,回答“它如何工作、谁调用它、它调用谁”。","businessRelevance":"界面组件:tm_services_record_error 不是业务用例,但可能是业务能力落地时经过的技术节点。 从路径上无法直接判断业务角色,需要结合组织/过程模型的 Use Case 证据确认。 如果组织/过程模型的 Use Case 下钻图引用它,应在业务文档中说明它承担入口、编排、领域规则、适配器还是基础设施职责。","changeImpact":"修改 界面组件:tm_services_record_error 可能影响 firmware/c6_companion/components/tm_services/tm_services.c 中的入口逻辑、调用关系和引用它的业务/工程文档。","evidence":["firmware/c6_companion/components/tm_services/tm_services.c","组件类型:function","所属模块:firmware","代码锚点:firmware/c6_companion/components/tm_services/tm_services.c#L471","被复用/被依赖迹象:被多个对象复用或依赖","外部协作/编排迹象:存在局部外部协作线索","firmware/c6_companion/components/tm_services/tm_services.c#L471"],"risks":["协作压力高不必然代表设计问题;必须结合业务入口、测试和变更频率判断。"],"questions":["该组件协作压力较高;当前文档按候选编排中心或公共接口处理,并通过下钻图说明它的职责证据。"],"confidence":"high","drilldowns":[]},{"id":"engineering:diagram:component:firmware-tm_services_record_error:element:item","mermaidId":"incomingRelations","label":"被引用/调用关系","kind":"reuse_signal","anchor":"engineering:component:function:tm_services_record_error:firmware-c6_companion-components-tm_services-tm_services.c:471:incoming-relations","summary":"被复用/被依赖迹象用于解释它在技术网络中的复用程度或编排程度;这里只展示含义,不把内部计数当作用户结论。","role":"复用压力线索:帮助识别共享核心、公共接口或高回归风险点。","whyItExists":"单看组件名称无法判断复杂度,被复用/被依赖迹象 把本地仓库关系证据转译为用户可理解的协作压力。","relationshipMeaning":"其它组件、文件或符号依赖当前组件;关系越多,修改它越可能影响更多调用方。","drilldownIntent":"下钻相关 sequence 或 hotspot,可以把抽象数字落到具体调用片段、文件和风险位置。","businessRelevance":"如果该组件支撑用户可见能力,这个关系指标会影响业务变更的验证成本和回归风险。","changeImpact":"重构被大量对象引用/调用的组件需要谨慎处理兼容性、调用方迁移和测试覆盖。","evidence":["组件类型:function","所属模块:firmware","代码锚点:firmware/c6_companion/components/tm_services/tm_services.c#L471","被复用/被依赖迹象:被多个对象复用或依赖","外部协作/编排迹象:存在局部外部协作线索","firmware/c6_companion/components/tm_services/tm_services.c#L471"],"risks":["关系指标来自本地仓库分析,可能受扫描粒度、生成文件或 import 噪声影响。"],"questions":["当前证据无法完全区分这些关系中的运行时调用、类型引用、导出聚合或生成物噪声,因此只作为候选协作压力。"],"confidence":"high","drilldowns":[]},{"id":"engineering:diagram:component:firmware-tm_services_record_error:element:item","mermaidId":"outgoingRelations","label":"对外依赖/调用关系","kind":"collaboration_signal","anchor":"engineering:component:function:tm_services_record_error:firmware-c6_companion-components-tm_services-tm_services.c:471:outgoing-relations","summary":"外部协作/编排迹象用于解释它在技术网络中的复用程度或编排程度;这里只展示含义,不把内部计数当作用户结论。","role":"编排压力线索:帮助识别编排中心、聚合入口或耦合扩散点。","whyItExists":"单看组件名称无法判断复杂度,外部协作/编排迹象 把本地仓库关系证据转译为用户可理解的协作压力。","relationshipMeaning":"当前组件依赖其它组件、文件或符号;关系越多,越可能承担较宽的协调职责。","drilldownIntent":"下钻相关 sequence 或 hotspot,可以把抽象数字落到具体调用片段、文件和风险位置。","businessRelevance":"如果该组件支撑用户可见能力,这个关系指标会影响业务变更的验证成本和回归风险。","changeImpact":"降低过多对外依赖通常意味着拆分编排职责、引入接口边界或把适配逻辑移到更合适的位置。","evidence":["组件类型:function","所属模块:firmware","代码锚点:firmware/c6_companion/components/tm_services/tm_services.c#L471","被复用/被依赖迹象:被多个对象复用或依赖","外部协作/编排迹象:存在局部外部协作线索","firmware/c6_companion/components/tm_services/tm_services.c#L471"],"risks":["关系指标来自本地仓库分析,可能受扫描粒度、生成文件或 import 噪声影响。"],"questions":["当前证据无法完全区分这些关系中的运行时调用、类型引用、导出聚合或生成物噪声,因此只作为候选协作压力。"],"confidence":"high","drilldowns":[]}]},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-main","kind":"component","title":"函数节点:main","summary":"function 位于 apps/linux_uconsole_gtk/tests/uconsole_meshtastic_node_payload_smoke.cpp#L89,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-main/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-main/component-diagram.html","anchor":"engineering:component:function:main:apps-linux_uconsole_gtk-tests-uconsole_meshtastic_node_payload_smoke.cpp:89","status":"candidate","confidence":"high","mermaidKind":"flowchart","mermaid":"flowchart LR\n package_node[\"apps/linux_uconsole_gtk\"]\n file_node[\"apps/linux_uconsole_gtk/tests/uconsole_meshtastic_node_payload_smoke.cpp#L89\"]\n component_node[\"function: main\"]\n package_node --\u003e file_node\n file_node --\u003e component_node\n component_node --\u003e outgoingRelations[\"协调多个外部对象\"]\n incomingRelations[\"存在复用线索\"] --\u003e component_node","readingGuide":["这张 Component Diagram 关注 main 这个 function,展示它所在文件、所属模块以及复用迹象、外部协作迹象。","复用迹象用于判断它是否是共享核心或公共接口;外部协作迹象用于判断它是否承担编排、聚合或桥接职责。","代码锚点是 apps/linux_uconsole_gtk/tests/uconsole_meshtastic_node_payload_smoke.cpp#L89。"],"technicalAnalysis":["main 在当前仓库证据中呈现为:被复用/被依赖迹象:存在局部复用或依赖线索,外部协作/编排迹象:协调多个外部对象或能力,因此它在技术结构中更像编排者或聚合入口。","当前协作压力需要结合具体业务入口判断,单独数字不足以确认设计问题。","所属模块 apps/linux_uconsole_gtk 决定了它更适合作为局部实现细节还是跨模块协作点。"],"businessRelation":["main 可能是某些业务故事执行过程中的技术节点,但它本身不是业务用例。","从路径上无法直接判断业务角色,需要结合组织/过程模型的 Use Case 证据确认。","如果某个 Use Case 的 Activity、Sequence 或 Class Collaboration 图引用该组件,应在组织/过程模型中明确它承担的是入口、编排、领域规则、适配器还是基础设施职责。"],"governanceNotes":["在修改该组件前,优先查找它被哪些 Use Case 下钻文档引用,避免只看局部代码而忽略业务语义。","可以把该组件作为技术解释锚点,但不要把它直接等同于业务能力。","如果该组件承载业务规则,应把规则写回组织/过程模型或对应领域文档,而不仅保留在仓库证据中。"],"coverage":["组件类型:function","所属模块:apps/linux_uconsole_gtk","代码锚点:apps/linux_uconsole_gtk/tests/uconsole_meshtastic_node_payload_smoke.cpp#L89","被复用/被依赖迹象:存在局部复用或依赖线索","外部协作/编排迹象:协调多个外部对象或能力"],"evidencePaths":["apps/linux_uconsole_gtk/tests/uconsole_meshtastic_node_payload_smoke.cpp#L89"],"questions":["该组件协作压力较高;当前文档按候选编排中心或公共接口处理,并通过下钻图说明它的职责证据。"],"scope":{"packageId":"apps/linux_uconsole_gtk","filePath":"apps/linux_uconsole_gtk/tests/uconsole_meshtastic_node_payload_smoke.cpp"},"drilldowns":[{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--launchsettingslayout","kind":"technical_hotspot","title":"承担外部协作的候选对象:launchSettingsLayout 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:launchsettingslayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:110","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:launchSettingsLayout 技术热点 是否说明 函数节点:main 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makelabel","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeLabel 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makelabel:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp:9","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeLabel 技术热点 是否说明 函数节点:main 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makesettingsrow","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeSettingsRow 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makesettingsrow:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:22","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeSettingsRow 技术热点 是否说明 函数节点:main 附近存在变更影响面、文件规模或协作压力风险。"}],"elements":[{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-main:element:apps-linux_uconsole_gtk","mermaidId":"package_node","label":"apps/linux_uconsole_gtk","kind":"package","anchor":"engineering:package:apps-linux_uconsole_gtk","summary":"apps/linux_uconsole_gtk 是 函数节点:main 所属的 package/module 边界,用来判断该组件是局部实现细节还是跨模块协作点。","role":"组件归属边界:它定义当前组件默认应该服务的工程上下文。","whyItExists":"组件不能脱离 package 解释;同一个符号如果位于不同 package,可能代表完全不同的职责、所有权和变更影响面。","relationshipMeaning":"apps/linux_uconsole_gtk -\u003e 函数节点:main 表示该组件由这个技术边界承载;它的角色必须由入口、调用、导出、测试或配置证据来解释,而不是只由目录位置解释。","drilldownIntent":"下钻 package 可以查看 apps/linux_uconsole_gtk 的跨模块依赖、结构协作和热点,从边界层解释该组件为何出现在这里。","businessRelevance":"如果 函数节点:main 被业务 Use Case 调用,那么 apps/linux_uconsole_gtk 是该业务能力的候选技术落点。","changeImpact":"迁移或重命名该 package 可能改变组件导入路径、下钻索引和 Use Case 对技术承载边界的引用。","evidence":["component package: apps/linux_uconsole_gtk","组件类型:function","所属模块:apps/linux_uconsole_gtk","代码锚点:apps/linux_uconsole_gtk/tests/uconsole_meshtastic_node_payload_smoke.cpp#L89","被复用/被依赖迹象:存在局部复用或依赖线索","外部协作/编排迹象:协调多个外部对象或能力","apps/linux_uconsole_gtk/tests/uconsole_meshtastic_node_payload_smoke.cpp#L89"],"risks":["组件职责可能被路径误导;仍需结合调用、导入、导出、入口和测试等代码证据判断真实角色。"],"questions":["当前仓库证据尚未证明 函数节点:main 属于 apps/linux_uconsole_gtk 的稳定职责,暂按候选归属处理。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:package:apps-linux_uconsole_gtk","kind":"package","title":"模块边界:apps/linux_uconsole_gtk","summary":"解释 apps/linux_uconsole_gtk 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/apps-linux_uconsole_gtk/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/apps-linux_uconsole_gtk/package-diagram.html","anchor":"engineering:package:apps-linux_uconsole_gtk","relation":"parent_boundary","reason":"回到 apps/linux_uconsole_gtk 的包级边界,确认 函数节点:main 是否属于这个模块的稳定职责。"}]},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-main:element:apps-linux_uconsole_gtk-tests-uconsole_meshtastic_node_payload_smoke.cpp","mermaidId":"file_node","label":"apps/linux_uconsole_gtk/tests/uconsole_meshtastic_node_payload_smoke.cpp","kind":"file","anchor":"engineering:component:function:main:apps-linux_uconsole_gtk-tests-uconsole_meshtastic_node_payload_smoke.cpp:89:file","summary":"apps/linux_uconsole_gtk/tests/uconsole_meshtastic_node_payload_smoke.cpp 是当前组件的证据文件,说明 函数节点:main 的技术职责可以追溯到具体代码位置。","role":"代码证据锚点:它让组件解释可以回到具体文件,而不是停留在抽象图形上。","whyItExists":"软件结构模型必须把每个组件图绑定到可验证文件,否则 UI 只是投影而不是可追溯解释。","relationshipMeaning":"文件节点连接组件节点,表示该组件的实现、入口或符号事实来自这个文件。","drilldownIntent":"下钻该文件相关的组件、sequence 或 hotspot,可以检查该文件是否只是实现细节,还是已经成为多个能力共用的技术枢纽。","businessRelevance":"从路径上无法直接判断业务角色,需要结合组织/过程模型的 Use Case 证据确认。","changeImpact":"修改 apps/linux_uconsole_gtk/tests/uconsole_meshtastic_node_payload_smoke.cpp 可能影响该组件图、相关 sequence、热点判断,以及引用该组件的业务下钻文档。","evidence":["apps/linux_uconsole_gtk/tests/uconsole_meshtastic_node_payload_smoke.cpp","apps/linux_uconsole_gtk/tests/uconsole_meshtastic_node_payload_smoke.cpp#L89"],"risks":["文件路径只能说明位置,不能单独证明业务职责。"],"questions":["当前文件锚点只能证明位置;如果同文件出现多个入口或职责,需在组件/sequence 文档中拆开解释。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--launchsettingslayout","kind":"technical_hotspot","title":"承担外部协作的候选对象:launchSettingsLayout 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:launchsettingslayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:110","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:launchSettingsLayout 技术热点 是否说明 函数节点:main 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makelabel","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeLabel 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makelabel:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp:9","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeLabel 技术热点 是否说明 函数节点:main 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makesettingsrow","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeSettingsRow 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makesettingsrow:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:22","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeSettingsRow 技术热点 是否说明 函数节点:main 附近存在变更影响面、文件规模或协作压力风险。"}]},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-main:element:main","mermaidId":"component_node","label":"函数节点:main","kind":"component","anchor":"engineering:component:function:main:apps-linux_uconsole_gtk-tests-uconsole_meshtastic_node_payload_smoke.cpp:89","summary":"函数节点:main 是当前 Component Diagram 的中心技术对象;这张图用它来解释职责、协作压力和下钻路径。","role":"关键技术对象:它需要结合复用迹象、外部协作迹象、文件位置和下钻图判断具体职责。","whyItExists":"本地仓库证据将它识别为关键组件或符号,且它具有可定位文件 apps/linux_uconsole_gtk/tests/uconsole_meshtastic_node_payload_smoke.cpp、被引用/调用关系和对外依赖/调用关系。","relationshipMeaning":"package、file、被引用/调用关系和对外依赖/调用关系都围绕该组件组织,用来判断它是入口、编排者、共享能力还是风险集中点。","drilldownIntent":"下钻该组件可以进入它参与的 sequence、所属结构切片或附近热点,回答“它如何工作、谁调用它、它调用谁”。","businessRelevance":"函数节点:main 不是业务用例,但可能是业务能力落地时经过的技术节点。 从路径上无法直接判断业务角色,需要结合组织/过程模型的 Use Case 证据确认。 如果组织/过程模型的 Use Case 下钻图引用它,应在业务文档中说明它承担入口、编排、领域规则、适配器还是基础设施职责。","changeImpact":"修改 函数节点:main 可能影响 apps/linux_uconsole_gtk/tests/uconsole_meshtastic_node_payload_smoke.cpp 中的入口逻辑、调用关系和引用它的业务/工程文档。","evidence":["apps/linux_uconsole_gtk/tests/uconsole_meshtastic_node_payload_smoke.cpp","组件类型:function","所属模块:apps/linux_uconsole_gtk","代码锚点:apps/linux_uconsole_gtk/tests/uconsole_meshtastic_node_payload_smoke.cpp#L89","被复用/被依赖迹象:存在局部复用或依赖线索","外部协作/编排迹象:协调多个外部对象或能力","apps/linux_uconsole_gtk/tests/uconsole_meshtastic_node_payload_smoke.cpp#L89"],"risks":["协作压力高不必然代表设计问题;必须结合业务入口、测试和变更频率判断。"],"questions":["该组件协作压力较高;当前文档按候选编排中心或公共接口处理,并通过下钻图说明它的职责证据。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--launchsettingslayout","kind":"technical_hotspot","title":"承担外部协作的候选对象:launchSettingsLayout 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:launchsettingslayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:110","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:launchSettingsLayout 技术热点 是否说明 函数节点:main 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makelabel","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeLabel 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makelabel:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp:9","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeLabel 技术热点 是否说明 函数节点:main 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makesettingsrow","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeSettingsRow 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makesettingsrow:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:22","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeSettingsRow 技术热点 是否说明 函数节点:main 附近存在变更影响面、文件规模或协作压力风险。"}]},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-main:element:item","mermaidId":"incomingRelations","label":"被引用/调用关系","kind":"reuse_signal","anchor":"engineering:component:function:main:apps-linux_uconsole_gtk-tests-uconsole_meshtastic_node_payload_smoke.cpp:89:incoming-relations","summary":"被复用/被依赖迹象用于解释它在技术网络中的复用程度或编排程度;这里只展示含义,不把内部计数当作用户结论。","role":"复用压力线索:帮助识别共享核心、公共接口或高回归风险点。","whyItExists":"单看组件名称无法判断复杂度,被复用/被依赖迹象 把本地仓库关系证据转译为用户可理解的协作压力。","relationshipMeaning":"其它组件、文件或符号依赖当前组件;关系越多,修改它越可能影响更多调用方。","drilldownIntent":"下钻相关 sequence 或 hotspot,可以把抽象数字落到具体调用片段、文件和风险位置。","businessRelevance":"如果该组件支撑用户可见能力,这个关系指标会影响业务变更的验证成本和回归风险。","changeImpact":"重构被大量对象引用/调用的组件需要谨慎处理兼容性、调用方迁移和测试覆盖。","evidence":["组件类型:function","所属模块:apps/linux_uconsole_gtk","代码锚点:apps/linux_uconsole_gtk/tests/uconsole_meshtastic_node_payload_smoke.cpp#L89","被复用/被依赖迹象:存在局部复用或依赖线索","外部协作/编排迹象:协调多个外部对象或能力","apps/linux_uconsole_gtk/tests/uconsole_meshtastic_node_payload_smoke.cpp#L89"],"risks":["关系指标来自本地仓库分析,可能受扫描粒度、生成文件或 import 噪声影响。"],"questions":["当前证据无法完全区分这些关系中的运行时调用、类型引用、导出聚合或生成物噪声,因此只作为候选协作压力。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--launchsettingslayout","kind":"technical_hotspot","title":"承担外部协作的候选对象:launchSettingsLayout 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:launchsettingslayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:110","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:launchSettingsLayout 技术热点 是否说明 函数节点:main 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makelabel","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeLabel 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makelabel:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp:9","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeLabel 技术热点 是否说明 函数节点:main 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makesettingsrow","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeSettingsRow 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makesettingsrow:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:22","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeSettingsRow 技术热点 是否说明 函数节点:main 附近存在变更影响面、文件规模或协作压力风险。"}]},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-main:element:item","mermaidId":"outgoingRelations","label":"对外依赖/调用关系","kind":"collaboration_signal","anchor":"engineering:component:function:main:apps-linux_uconsole_gtk-tests-uconsole_meshtastic_node_payload_smoke.cpp:89:outgoing-relations","summary":"外部协作/编排迹象用于解释它在技术网络中的复用程度或编排程度;这里只展示含义,不把内部计数当作用户结论。","role":"编排压力线索:帮助识别编排中心、聚合入口或耦合扩散点。","whyItExists":"单看组件名称无法判断复杂度,外部协作/编排迹象 把本地仓库关系证据转译为用户可理解的协作压力。","relationshipMeaning":"当前组件依赖其它组件、文件或符号;关系越多,越可能承担较宽的协调职责。","drilldownIntent":"下钻相关 sequence 或 hotspot,可以把抽象数字落到具体调用片段、文件和风险位置。","businessRelevance":"如果该组件支撑用户可见能力,这个关系指标会影响业务变更的验证成本和回归风险。","changeImpact":"降低过多对外依赖通常意味着拆分编排职责、引入接口边界或把适配逻辑移到更合适的位置。","evidence":["组件类型:function","所属模块:apps/linux_uconsole_gtk","代码锚点:apps/linux_uconsole_gtk/tests/uconsole_meshtastic_node_payload_smoke.cpp#L89","被复用/被依赖迹象:存在局部复用或依赖线索","外部协作/编排迹象:协调多个外部对象或能力","apps/linux_uconsole_gtk/tests/uconsole_meshtastic_node_payload_smoke.cpp#L89"],"risks":["关系指标来自本地仓库分析,可能受扫描粒度、生成文件或 import 噪声影响。"],"questions":["当前证据无法完全区分这些关系中的运行时调用、类型引用、导出聚合或生成物噪声,因此只作为候选协作压力。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--launchsettingslayout","kind":"technical_hotspot","title":"承担外部协作的候选对象:launchSettingsLayout 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:launchsettingslayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:110","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:launchSettingsLayout 技术热点 是否说明 函数节点:main 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makelabel","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeLabel 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makelabel:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp:9","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeLabel 技术热点 是否说明 函数节点:main 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makesettingsrow","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeSettingsRow 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makesettingsrow:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:22","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeSettingsRow 技术热点 是否说明 函数节点:main 附近存在变更影响面、文件规模或协作压力风险。"}]}]},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-launchmaplayout","kind":"component","title":"函数节点:launchMapLayout","summary":"function 位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_map_layout.cpp#L105,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-launchmaplayout/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-launchmaplayout/component-diagram.html","anchor":"engineering:component:function:launchmaplayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_map_layout.cpp:105","status":"candidate","confidence":"high","mermaidKind":"flowchart","mermaid":"flowchart LR\n package_node[\"apps/linux_uconsole_gtk\"]\n file_node[\"apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_map_layout.cpp#L105\"]\n component_node[\"function: launchMapLayout\"]\n package_node --\u003e file_node\n file_node --\u003e component_node\n component_node --\u003e outgoingRelations[\"协调多个外部对象\"]\n incomingRelations[\"存在复用线索\"] --\u003e component_node","readingGuide":["这张 Component Diagram 关注 launchMapLayout 这个 function,展示它所在文件、所属模块以及复用迹象、外部协作迹象。","复用迹象用于判断它是否是共享核心或公共接口;外部协作迹象用于判断它是否承担编排、聚合或桥接职责。","代码锚点是 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_map_layout.cpp#L105。"],"technicalAnalysis":["launchMapLayout 在当前仓库证据中呈现为:被复用/被依赖迹象:存在局部复用或依赖线索,外部协作/编排迹象:协调多个外部对象或能力,因此它在技术结构中更像编排者或聚合入口。","当前协作压力需要结合具体业务入口判断,单独数字不足以确认设计问题。","所属模块 apps/linux_uconsole_gtk 决定了它更适合作为局部实现细节还是跨模块协作点。"],"businessRelation":["launchMapLayout 可能是某些业务故事执行过程中的技术节点,但它本身不是业务用例。","从路径上无法直接判断业务角色,需要结合组织/过程模型的 Use Case 证据确认。","如果某个 Use Case 的 Activity、Sequence 或 Class Collaboration 图引用该组件,应在组织/过程模型中明确它承担的是入口、编排、领域规则、适配器还是基础设施职责。"],"governanceNotes":["在修改该组件前,优先查找它被哪些 Use Case 下钻文档引用,避免只看局部代码而忽略业务语义。","可以把该组件作为技术解释锚点,但不要把它直接等同于业务能力。","如果该组件承载业务规则,应把规则写回组织/过程模型或对应领域文档,而不仅保留在仓库证据中。"],"coverage":["组件类型:function","所属模块:apps/linux_uconsole_gtk","代码锚点:apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_map_layout.cpp#L105","被复用/被依赖迹象:存在局部复用或依赖线索","外部协作/编排迹象:协调多个外部对象或能力"],"evidencePaths":["apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_map_layout.cpp#L105"],"questions":["该组件协作压力较高;当前文档按候选编排中心或公共接口处理,并通过下钻图说明它的职责证据。"],"scope":{"packageId":"apps/linux_uconsole_gtk","filePath":"apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_map_layout.cpp"},"drilldowns":[{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--launchsettingslayout","kind":"technical_hotspot","title":"承担外部协作的候选对象:launchSettingsLayout 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:launchsettingslayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:110","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:launchSettingsLayout 技术热点 是否说明 函数节点:launchMapLayout 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makelabel","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeLabel 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makelabel:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp:9","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeLabel 技术热点 是否说明 函数节点:launchMapLayout 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makesettingsrow","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeSettingsRow 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makesettingsrow:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:22","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeSettingsRow 技术热点 是否说明 函数节点:launchMapLayout 附近存在变更影响面、文件规模或协作压力风险。"}],"elements":[{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-launchmaplayout:element:apps-linux_uconsole_gtk","mermaidId":"package_node","label":"apps/linux_uconsole_gtk","kind":"package","anchor":"engineering:package:apps-linux_uconsole_gtk","summary":"apps/linux_uconsole_gtk 是 函数节点:launchMapLayout 所属的 package/module 边界,用来判断该组件是局部实现细节还是跨模块协作点。","role":"组件归属边界:它定义当前组件默认应该服务的工程上下文。","whyItExists":"组件不能脱离 package 解释;同一个符号如果位于不同 package,可能代表完全不同的职责、所有权和变更影响面。","relationshipMeaning":"apps/linux_uconsole_gtk -\u003e 函数节点:launchMapLayout 表示该组件由这个技术边界承载;它的角色必须由入口、调用、导出、测试或配置证据来解释,而不是只由目录位置解释。","drilldownIntent":"下钻 package 可以查看 apps/linux_uconsole_gtk 的跨模块依赖、结构协作和热点,从边界层解释该组件为何出现在这里。","businessRelevance":"如果 函数节点:launchMapLayout 被业务 Use Case 调用,那么 apps/linux_uconsole_gtk 是该业务能力的候选技术落点。","changeImpact":"迁移或重命名该 package 可能改变组件导入路径、下钻索引和 Use Case 对技术承载边界的引用。","evidence":["component package: apps/linux_uconsole_gtk","组件类型:function","所属模块:apps/linux_uconsole_gtk","代码锚点:apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_map_layout.cpp#L105","被复用/被依赖迹象:存在局部复用或依赖线索","外部协作/编排迹象:协调多个外部对象或能力","apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_map_layout.cpp#L105"],"risks":["组件职责可能被路径误导;仍需结合调用、导入、导出、入口和测试等代码证据判断真实角色。"],"questions":["当前仓库证据尚未证明 函数节点:launchMapLayout 属于 apps/linux_uconsole_gtk 的稳定职责,暂按候选归属处理。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:package:apps-linux_uconsole_gtk","kind":"package","title":"模块边界:apps/linux_uconsole_gtk","summary":"解释 apps/linux_uconsole_gtk 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/apps-linux_uconsole_gtk/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/apps-linux_uconsole_gtk/package-diagram.html","anchor":"engineering:package:apps-linux_uconsole_gtk","relation":"parent_boundary","reason":"回到 apps/linux_uconsole_gtk 的包级边界,确认 函数节点:launchMapLayout 是否属于这个模块的稳定职责。"}]},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-launchmaplayout:element:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_map_layout.cpp","mermaidId":"file_node","label":"apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_map_layout.cpp","kind":"file","anchor":"engineering:component:function:launchmaplayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_map_layout.cpp:105:file","summary":"apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_map_layout.cpp 是当前组件的证据文件,说明 函数节点:launchMapLayout 的技术职责可以追溯到具体代码位置。","role":"代码证据锚点:它让组件解释可以回到具体文件,而不是停留在抽象图形上。","whyItExists":"软件结构模型必须把每个组件图绑定到可验证文件,否则 UI 只是投影而不是可追溯解释。","relationshipMeaning":"文件节点连接组件节点,表示该组件的实现、入口或符号事实来自这个文件。","drilldownIntent":"下钻该文件相关的组件、sequence 或 hotspot,可以检查该文件是否只是实现细节,还是已经成为多个能力共用的技术枢纽。","businessRelevance":"从路径上无法直接判断业务角色,需要结合组织/过程模型的 Use Case 证据确认。","changeImpact":"修改 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_map_layout.cpp 可能影响该组件图、相关 sequence、热点判断,以及引用该组件的业务下钻文档。","evidence":["apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_map_layout.cpp","apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_map_layout.cpp#L105"],"risks":["文件路径只能说明位置,不能单独证明业务职责。"],"questions":["当前文件锚点只能证明位置;如果同文件出现多个入口或职责,需在组件/sequence 文档中拆开解释。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--launchsettingslayout","kind":"technical_hotspot","title":"承担外部协作的候选对象:launchSettingsLayout 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:launchsettingslayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:110","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:launchSettingsLayout 技术热点 是否说明 函数节点:launchMapLayout 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makelabel","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeLabel 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makelabel:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp:9","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeLabel 技术热点 是否说明 函数节点:launchMapLayout 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makesettingsrow","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeSettingsRow 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makesettingsrow:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:22","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeSettingsRow 技术热点 是否说明 函数节点:launchMapLayout 附近存在变更影响面、文件规模或协作压力风险。"}]},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-launchmaplayout:element:launchmaplayout","mermaidId":"component_node","label":"函数节点:launchMapLayout","kind":"component","anchor":"engineering:component:function:launchmaplayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_map_layout.cpp:105","summary":"函数节点:launchMapLayout 是当前 Component Diagram 的中心技术对象;这张图用它来解释职责、协作压力和下钻路径。","role":"关键技术对象:它需要结合复用迹象、外部协作迹象、文件位置和下钻图判断具体职责。","whyItExists":"本地仓库证据将它识别为关键组件或符号,且它具有可定位文件 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_map_layout.cpp、被引用/调用关系和对外依赖/调用关系。","relationshipMeaning":"package、file、被引用/调用关系和对外依赖/调用关系都围绕该组件组织,用来判断它是入口、编排者、共享能力还是风险集中点。","drilldownIntent":"下钻该组件可以进入它参与的 sequence、所属结构切片或附近热点,回答“它如何工作、谁调用它、它调用谁”。","businessRelevance":"函数节点:launchMapLayout 不是业务用例,但可能是业务能力落地时经过的技术节点。 从路径上无法直接判断业务角色,需要结合组织/过程模型的 Use Case 证据确认。 如果组织/过程模型的 Use Case 下钻图引用它,应在业务文档中说明它承担入口、编排、领域规则、适配器还是基础设施职责。","changeImpact":"修改 函数节点:launchMapLayout 可能影响 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_map_layout.cpp 中的入口逻辑、调用关系和引用它的业务/工程文档。","evidence":["apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_map_layout.cpp","组件类型:function","所属模块:apps/linux_uconsole_gtk","代码锚点:apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_map_layout.cpp#L105","被复用/被依赖迹象:存在局部复用或依赖线索","外部协作/编排迹象:协调多个外部对象或能力","apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_map_layout.cpp#L105"],"risks":["协作压力高不必然代表设计问题;必须结合业务入口、测试和变更频率判断。"],"questions":["该组件协作压力较高;当前文档按候选编排中心或公共接口处理,并通过下钻图说明它的职责证据。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--launchsettingslayout","kind":"technical_hotspot","title":"承担外部协作的候选对象:launchSettingsLayout 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:launchsettingslayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:110","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:launchSettingsLayout 技术热点 是否说明 函数节点:launchMapLayout 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makelabel","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeLabel 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makelabel:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp:9","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeLabel 技术热点 是否说明 函数节点:launchMapLayout 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makesettingsrow","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeSettingsRow 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makesettingsrow:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:22","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeSettingsRow 技术热点 是否说明 函数节点:launchMapLayout 附近存在变更影响面、文件规模或协作压力风险。"}]},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-launchmaplayout:element:item","mermaidId":"incomingRelations","label":"被引用/调用关系","kind":"reuse_signal","anchor":"engineering:component:function:launchmaplayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_map_layout.cpp:105:incoming-relations","summary":"被复用/被依赖迹象用于解释它在技术网络中的复用程度或编排程度;这里只展示含义,不把内部计数当作用户结论。","role":"复用压力线索:帮助识别共享核心、公共接口或高回归风险点。","whyItExists":"单看组件名称无法判断复杂度,被复用/被依赖迹象 把本地仓库关系证据转译为用户可理解的协作压力。","relationshipMeaning":"其它组件、文件或符号依赖当前组件;关系越多,修改它越可能影响更多调用方。","drilldownIntent":"下钻相关 sequence 或 hotspot,可以把抽象数字落到具体调用片段、文件和风险位置。","businessRelevance":"如果该组件支撑用户可见能力,这个关系指标会影响业务变更的验证成本和回归风险。","changeImpact":"重构被大量对象引用/调用的组件需要谨慎处理兼容性、调用方迁移和测试覆盖。","evidence":["组件类型:function","所属模块:apps/linux_uconsole_gtk","代码锚点:apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_map_layout.cpp#L105","被复用/被依赖迹象:存在局部复用或依赖线索","外部协作/编排迹象:协调多个外部对象或能力","apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_map_layout.cpp#L105"],"risks":["关系指标来自本地仓库分析,可能受扫描粒度、生成文件或 import 噪声影响。"],"questions":["当前证据无法完全区分这些关系中的运行时调用、类型引用、导出聚合或生成物噪声,因此只作为候选协作压力。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--launchsettingslayout","kind":"technical_hotspot","title":"承担外部协作的候选对象:launchSettingsLayout 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:launchsettingslayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:110","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:launchSettingsLayout 技术热点 是否说明 函数节点:launchMapLayout 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makelabel","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeLabel 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makelabel:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp:9","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeLabel 技术热点 是否说明 函数节点:launchMapLayout 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makesettingsrow","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeSettingsRow 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makesettingsrow:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:22","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeSettingsRow 技术热点 是否说明 函数节点:launchMapLayout 附近存在变更影响面、文件规模或协作压力风险。"}]},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-launchmaplayout:element:item","mermaidId":"outgoingRelations","label":"对外依赖/调用关系","kind":"collaboration_signal","anchor":"engineering:component:function:launchmaplayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_map_layout.cpp:105:outgoing-relations","summary":"外部协作/编排迹象用于解释它在技术网络中的复用程度或编排程度;这里只展示含义,不把内部计数当作用户结论。","role":"编排压力线索:帮助识别编排中心、聚合入口或耦合扩散点。","whyItExists":"单看组件名称无法判断复杂度,外部协作/编排迹象 把本地仓库关系证据转译为用户可理解的协作压力。","relationshipMeaning":"当前组件依赖其它组件、文件或符号;关系越多,越可能承担较宽的协调职责。","drilldownIntent":"下钻相关 sequence 或 hotspot,可以把抽象数字落到具体调用片段、文件和风险位置。","businessRelevance":"如果该组件支撑用户可见能力,这个关系指标会影响业务变更的验证成本和回归风险。","changeImpact":"降低过多对外依赖通常意味着拆分编排职责、引入接口边界或把适配逻辑移到更合适的位置。","evidence":["组件类型:function","所属模块:apps/linux_uconsole_gtk","代码锚点:apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_map_layout.cpp#L105","被复用/被依赖迹象:存在局部复用或依赖线索","外部协作/编排迹象:协调多个外部对象或能力","apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_map_layout.cpp#L105"],"risks":["关系指标来自本地仓库分析,可能受扫描粒度、生成文件或 import 噪声影响。"],"questions":["当前证据无法完全区分这些关系中的运行时调用、类型引用、导出聚合或生成物噪声,因此只作为候选协作压力。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--launchsettingslayout","kind":"technical_hotspot","title":"承担外部协作的候选对象:launchSettingsLayout 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:launchsettingslayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:110","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:launchSettingsLayout 技术热点 是否说明 函数节点:launchMapLayout 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makelabel","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeLabel 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makelabel:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp:9","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeLabel 技术热点 是否说明 函数节点:launchMapLayout 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makesettingsrow","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeSettingsRow 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makesettingsrow:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:22","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeSettingsRow 技术热点 是否说明 函数节点:launchMapLayout 附近存在变更影响面、文件规模或协作压力风险。"}]}]},{"id":"engineering:diagram:component:apps-esp32_lvgl-companion_enter","kind":"component","title":"函数节点:companion_enter","summary":"function 位于 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp#L72,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-companion_enter/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-companion_enter/component-diagram.html","anchor":"engineering:component:function:companion_enter:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:72","status":"candidate","confidence":"high","mermaidKind":"flowchart","mermaid":"flowchart LR\n package_node[\"apps/esp32_lvgl\"]\n file_node[\"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp#L72\"]\n component_node[\"function: companion_enter\"]\n package_node --\u003e file_node\n file_node --\u003e component_node\n component_node --\u003e outgoingRelations[\"协调多个外部对象\"]\n incomingRelations[\"存在复用线索\"] --\u003e component_node","readingGuide":["这张 Component Diagram 关注 companion_enter 这个 function,展示它所在文件、所属模块以及复用迹象、外部协作迹象。","复用迹象用于判断它是否是共享核心或公共接口;外部协作迹象用于判断它是否承担编排、聚合或桥接职责。","代码锚点是 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp#L72。"],"technicalAnalysis":["companion_enter 在当前仓库证据中呈现为:被复用/被依赖迹象:存在局部复用或依赖线索,外部协作/编排迹象:协调多个外部对象或能力,因此它在技术结构中更像编排者或聚合入口。","当前协作压力需要结合具体业务入口判断,单独数字不足以确认设计问题。","所属模块 apps/esp32_lvgl 决定了它更适合作为局部实现细节还是跨模块协作点。"],"businessRelation":["companion_enter 可能是某些业务故事执行过程中的技术节点,但它本身不是业务用例。","从路径上无法直接判断业务角色,需要结合组织/过程模型的 Use Case 证据确认。","如果某个 Use Case 的 Activity、Sequence 或 Class Collaboration 图引用该组件,应在组织/过程模型中明确它承担的是入口、编排、领域规则、适配器还是基础设施职责。"],"governanceNotes":["在修改该组件前,优先查找它被哪些 Use Case 下钻文档引用,避免只看局部代码而忽略业务语义。","可以把该组件作为技术解释锚点,但不要把它直接等同于业务能力。","如果该组件承载业务规则,应把规则写回组织/过程模型或对应领域文档,而不仅保留在仓库证据中。"],"coverage":["组件类型:function","所属模块:apps/esp32_lvgl","代码锚点:apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp#L72","被复用/被依赖迹象:存在局部复用或依赖线索","外部协作/编排迹象:协调多个外部对象或能力"],"evidencePaths":["apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp#L72"],"questions":["该组件协作压力较高;当前文档按候选编排中心或公共接口处理,并通过下钻图说明它的职责证据。"],"scope":{"packageId":"apps/esp32_lvgl","filePath":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp"},"drilldowns":[{"id":"engineering:diagram:sequence:tick-calls-log_loop_interval","kind":"sequence","title":"动态协作:tick 调用 log_loop_interval","summary":"apps/esp32_lvgl/src/esp32_lvgl_arduino_loop_runtime.cpp 中的 tick calls apps/esp32_lvgl/src/esp32_lvgl_arduino_loop_runtime.cpp 中的 log_loop_interval。","docPath":"docs/engineering/sequence-diagrams/tick-calls-log_loop_interval/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/tick-calls-log_loop_interval/sequence-diagram.html","anchor":"engineering:runtime-flow:tick:log_loop_interval:apps-esp32_lvgl-src-esp32_lvgl_arduino_loop_runtime.cpp:apps-esp32_lvgl-src-esp32_lvgl_arduino_loop_runtime.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了确认 函数节点:companion_enter 在 tick -\u003e log_loop_interval 中的角色:它是在发起协作、接收调用、做编排,还是只暴露被依赖能力。"},{"id":"engineering:diagram:sequence:add_status_line-calls-add_label","kind":"sequence","title":"动态协作:add_status_line 调用 add_label","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_status_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_label。","docPath":"docs/engineering/sequence-diagrams/add_status_line-calls-add_label/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/add_status_line-calls-add_label/sequence-diagram.html","anchor":"engineering:runtime-flow:add_status_line:add_label:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了确认 函数节点:companion_enter 在 add_status_line -\u003e add_label 中的角色:它是在发起协作、接收调用、做编排,还是只暴露被依赖能力。"},{"id":"engineering:diagram:sequence:add_u32_line-calls-add_label","kind":"sequence","title":"动态协作:add_u32_line 调用 add_label","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_u32_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_label。","docPath":"docs/engineering/sequence-diagrams/add_u32_line-calls-add_label/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/add_u32_line-calls-add_label/sequence-diagram.html","anchor":"engineering:runtime-flow:add_u32_line:add_label:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了确认 函数节点:companion_enter 在 add_u32_line -\u003e add_label 中的角色:它是在发起协作、接收调用、做编排,还是只暴露被依赖能力。"},{"id":"engineering:diagram:sequence:add_hex_line-calls-add_status_line","kind":"sequence","title":"动态协作:add_hex_line 调用 add_status_line","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_hex_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_status_line。","docPath":"docs/engineering/sequence-diagrams/add_hex_line-calls-add_status_line/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/add_hex_line-calls-add_status_line/sequence-diagram.html","anchor":"engineering:runtime-flow:add_hex_line:add_status_line:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了确认 函数节点:companion_enter 在 add_hex_line -\u003e add_status_line 中的角色:它是在发起协作、接收调用、做编排,还是只暴露被依赖能力。"},{"id":"engineering:diagram:sequence:companion_enter-calls-add_label","kind":"sequence","title":"动态协作:companion_enter 调用 add_label","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 companion_enter calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_label。","docPath":"docs/engineering/sequence-diagrams/companion_enter-calls-add_label/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/companion_enter-calls-add_label/sequence-diagram.html","anchor":"engineering:runtime-flow:companion_enter:add_label:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了确认 函数节点:companion_enter 在 companion_enter -\u003e add_label 中的角色:它是在发起协作、接收调用、做编排,还是只暴露被依赖能力。"}],"elements":[{"id":"engineering:diagram:component:apps-esp32_lvgl-companion_enter:element:apps-esp32_lvgl","mermaidId":"package_node","label":"apps/esp32_lvgl","kind":"package","anchor":"engineering:package:apps-esp32_lvgl","summary":"apps/esp32_lvgl 是 函数节点:companion_enter 所属的 package/module 边界,用来判断该组件是局部实现细节还是跨模块协作点。","role":"组件归属边界:它定义当前组件默认应该服务的工程上下文。","whyItExists":"组件不能脱离 package 解释;同一个符号如果位于不同 package,可能代表完全不同的职责、所有权和变更影响面。","relationshipMeaning":"apps/esp32_lvgl -\u003e 函数节点:companion_enter 表示该组件由这个技术边界承载;它的角色必须由入口、调用、导出、测试或配置证据来解释,而不是只由目录位置解释。","drilldownIntent":"下钻 package 可以查看 apps/esp32_lvgl 的跨模块依赖、结构协作和热点,从边界层解释该组件为何出现在这里。","businessRelevance":"如果 函数节点:companion_enter 被业务 Use Case 调用,那么 apps/esp32_lvgl 是该业务能力的候选技术落点。","changeImpact":"迁移或重命名该 package 可能改变组件导入路径、下钻索引和 Use Case 对技术承载边界的引用。","evidence":["component package: apps/esp32_lvgl","组件类型:function","所属模块:apps/esp32_lvgl","代码锚点:apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp#L72","被复用/被依赖迹象:存在局部复用或依赖线索","外部协作/编排迹象:协调多个外部对象或能力","apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp#L72"],"risks":["组件职责可能被路径误导;仍需结合调用、导入、导出、入口和测试等代码证据判断真实角色。"],"questions":["当前仓库证据尚未证明 函数节点:companion_enter 属于 apps/esp32_lvgl 的稳定职责,暂按候选归属处理。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:package:apps-esp32_lvgl","kind":"package","title":"模块边界:apps/esp32_lvgl","summary":"解释 apps/esp32_lvgl 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/apps-esp32_lvgl/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/apps-esp32_lvgl/package-diagram.html","anchor":"engineering:package:apps-esp32_lvgl","relation":"parent_boundary","reason":"回到 apps/esp32_lvgl 的包级边界,确认 函数节点:companion_enter 是否属于这个模块的稳定职责。"}]},{"id":"engineering:diagram:component:apps-esp32_lvgl-companion_enter:element:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","mermaidId":"file_node","label":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","kind":"file","anchor":"engineering:component:function:companion_enter:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:72:file","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 是当前组件的证据文件,说明 函数节点:companion_enter 的技术职责可以追溯到具体代码位置。","role":"代码证据锚点:它让组件解释可以回到具体文件,而不是停留在抽象图形上。","whyItExists":"软件结构模型必须把每个组件图绑定到可验证文件,否则 UI 只是投影而不是可追溯解释。","relationshipMeaning":"文件节点连接组件节点,表示该组件的实现、入口或符号事实来自这个文件。","drilldownIntent":"下钻该文件相关的组件、sequence 或 hotspot,可以检查该文件是否只是实现细节,还是已经成为多个能力共用的技术枢纽。","businessRelevance":"从路径上无法直接判断业务角色,需要结合组织/过程模型的 Use Case 证据确认。","changeImpact":"修改 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 可能影响该组件图、相关 sequence、热点判断,以及引用该组件的业务下钻文档。","evidence":["apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp#L72"],"risks":["文件路径只能说明位置,不能单独证明业务职责。"],"questions":["当前文件锚点只能证明位置;如果同文件出现多个入口或职责,需在组件/sequence 文档中拆开解释。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:sequence:tick-calls-log_loop_interval","kind":"sequence","title":"动态协作:tick 调用 log_loop_interval","summary":"apps/esp32_lvgl/src/esp32_lvgl_arduino_loop_runtime.cpp 中的 tick calls apps/esp32_lvgl/src/esp32_lvgl_arduino_loop_runtime.cpp 中的 log_loop_interval。","docPath":"docs/engineering/sequence-diagrams/tick-calls-log_loop_interval/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/tick-calls-log_loop_interval/sequence-diagram.html","anchor":"engineering:runtime-flow:tick:log_loop_interval:apps-esp32_lvgl-src-esp32_lvgl_arduino_loop_runtime.cpp:apps-esp32_lvgl-src-esp32_lvgl_arduino_loop_runtime.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了确认 函数节点:companion_enter 在 tick -\u003e log_loop_interval 中的角色:它是在发起协作、接收调用、做编排,还是只暴露被依赖能力。"},{"id":"engineering:diagram:sequence:add_status_line-calls-add_label","kind":"sequence","title":"动态协作:add_status_line 调用 add_label","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_status_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_label。","docPath":"docs/engineering/sequence-diagrams/add_status_line-calls-add_label/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/add_status_line-calls-add_label/sequence-diagram.html","anchor":"engineering:runtime-flow:add_status_line:add_label:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了确认 函数节点:companion_enter 在 add_status_line -\u003e add_label 中的角色:它是在发起协作、接收调用、做编排,还是只暴露被依赖能力。"},{"id":"engineering:diagram:sequence:add_u32_line-calls-add_label","kind":"sequence","title":"动态协作:add_u32_line 调用 add_label","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_u32_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_label。","docPath":"docs/engineering/sequence-diagrams/add_u32_line-calls-add_label/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/add_u32_line-calls-add_label/sequence-diagram.html","anchor":"engineering:runtime-flow:add_u32_line:add_label:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了确认 函数节点:companion_enter 在 add_u32_line -\u003e add_label 中的角色:它是在发起协作、接收调用、做编排,还是只暴露被依赖能力。"},{"id":"engineering:diagram:sequence:add_hex_line-calls-add_status_line","kind":"sequence","title":"动态协作:add_hex_line 调用 add_status_line","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_hex_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_status_line。","docPath":"docs/engineering/sequence-diagrams/add_hex_line-calls-add_status_line/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/add_hex_line-calls-add_status_line/sequence-diagram.html","anchor":"engineering:runtime-flow:add_hex_line:add_status_line:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了确认 函数节点:companion_enter 在 add_hex_line -\u003e add_status_line 中的角色:它是在发起协作、接收调用、做编排,还是只暴露被依赖能力。"},{"id":"engineering:diagram:sequence:companion_enter-calls-add_label","kind":"sequence","title":"动态协作:companion_enter 调用 add_label","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 companion_enter calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_label。","docPath":"docs/engineering/sequence-diagrams/companion_enter-calls-add_label/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/companion_enter-calls-add_label/sequence-diagram.html","anchor":"engineering:runtime-flow:companion_enter:add_label:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了确认 函数节点:companion_enter 在 companion_enter -\u003e add_label 中的角色:它是在发起协作、接收调用、做编排,还是只暴露被依赖能力。"}]},{"id":"engineering:diagram:component:apps-esp32_lvgl-companion_enter:element:companion_enter","mermaidId":"component_node","label":"函数节点:companion_enter","kind":"component","anchor":"engineering:component:function:companion_enter:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:72","summary":"函数节点:companion_enter 是当前 Component Diagram 的中心技术对象;这张图用它来解释职责、协作压力和下钻路径。","role":"注册表/治理边界:它集中维护可用能力、路由或受控操作。","whyItExists":"本地仓库证据将它识别为关键组件或符号,且它具有可定位文件 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp、被引用/调用关系和对外依赖/调用关系。","relationshipMeaning":"package、file、被引用/调用关系和对外依赖/调用关系都围绕该组件组织,用来判断它是入口、编排者、共享能力还是风险集中点。","drilldownIntent":"下钻该组件可以进入它参与的 sequence、所属结构切片或附近热点,回答“它如何工作、谁调用它、它调用谁”。","businessRelevance":"函数节点:companion_enter 不是业务用例,但可能是业务能力落地时经过的技术节点。 从路径上无法直接判断业务角色,需要结合组织/过程模型的 Use Case 证据确认。 如果组织/过程模型的 Use Case 下钻图引用它,应在业务文档中说明它承担入口、编排、领域规则、适配器还是基础设施职责。","changeImpact":"修改 函数节点:companion_enter 可能影响 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的入口逻辑、调用关系和引用它的业务/工程文档。","evidence":["apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","组件类型:function","所属模块:apps/esp32_lvgl","代码锚点:apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp#L72","被复用/被依赖迹象:存在局部复用或依赖线索","外部协作/编排迹象:协调多个外部对象或能力","apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp#L72"],"risks":["协作压力高不必然代表设计问题;必须结合业务入口、测试和变更频率判断。"],"questions":["该组件协作压力较高;当前文档按候选编排中心或公共接口处理,并通过下钻图说明它的职责证据。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:sequence:tick-calls-log_loop_interval","kind":"sequence","title":"动态协作:tick 调用 log_loop_interval","summary":"apps/esp32_lvgl/src/esp32_lvgl_arduino_loop_runtime.cpp 中的 tick calls apps/esp32_lvgl/src/esp32_lvgl_arduino_loop_runtime.cpp 中的 log_loop_interval。","docPath":"docs/engineering/sequence-diagrams/tick-calls-log_loop_interval/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/tick-calls-log_loop_interval/sequence-diagram.html","anchor":"engineering:runtime-flow:tick:log_loop_interval:apps-esp32_lvgl-src-esp32_lvgl_arduino_loop_runtime.cpp:apps-esp32_lvgl-src-esp32_lvgl_arduino_loop_runtime.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了确认 函数节点:companion_enter 在 tick -\u003e log_loop_interval 中的角色:它是在发起协作、接收调用、做编排,还是只暴露被依赖能力。"},{"id":"engineering:diagram:sequence:add_status_line-calls-add_label","kind":"sequence","title":"动态协作:add_status_line 调用 add_label","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_status_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_label。","docPath":"docs/engineering/sequence-diagrams/add_status_line-calls-add_label/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/add_status_line-calls-add_label/sequence-diagram.html","anchor":"engineering:runtime-flow:add_status_line:add_label:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了确认 函数节点:companion_enter 在 add_status_line -\u003e add_label 中的角色:它是在发起协作、接收调用、做编排,还是只暴露被依赖能力。"},{"id":"engineering:diagram:sequence:add_u32_line-calls-add_label","kind":"sequence","title":"动态协作:add_u32_line 调用 add_label","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_u32_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_label。","docPath":"docs/engineering/sequence-diagrams/add_u32_line-calls-add_label/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/add_u32_line-calls-add_label/sequence-diagram.html","anchor":"engineering:runtime-flow:add_u32_line:add_label:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了确认 函数节点:companion_enter 在 add_u32_line -\u003e add_label 中的角色:它是在发起协作、接收调用、做编排,还是只暴露被依赖能力。"},{"id":"engineering:diagram:sequence:add_hex_line-calls-add_status_line","kind":"sequence","title":"动态协作:add_hex_line 调用 add_status_line","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_hex_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_status_line。","docPath":"docs/engineering/sequence-diagrams/add_hex_line-calls-add_status_line/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/add_hex_line-calls-add_status_line/sequence-diagram.html","anchor":"engineering:runtime-flow:add_hex_line:add_status_line:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了确认 函数节点:companion_enter 在 add_hex_line -\u003e add_status_line 中的角色:它是在发起协作、接收调用、做编排,还是只暴露被依赖能力。"},{"id":"engineering:diagram:sequence:companion_enter-calls-add_label","kind":"sequence","title":"动态协作:companion_enter 调用 add_label","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 companion_enter calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_label。","docPath":"docs/engineering/sequence-diagrams/companion_enter-calls-add_label/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/companion_enter-calls-add_label/sequence-diagram.html","anchor":"engineering:runtime-flow:companion_enter:add_label:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了确认 函数节点:companion_enter 在 companion_enter -\u003e add_label 中的角色:它是在发起协作、接收调用、做编排,还是只暴露被依赖能力。"}]},{"id":"engineering:diagram:component:apps-esp32_lvgl-companion_enter:element:item","mermaidId":"incomingRelations","label":"被引用/调用关系","kind":"reuse_signal","anchor":"engineering:component:function:companion_enter:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:72:incoming-relations","summary":"被复用/被依赖迹象用于解释它在技术网络中的复用程度或编排程度;这里只展示含义,不把内部计数当作用户结论。","role":"复用压力线索:帮助识别共享核心、公共接口或高回归风险点。","whyItExists":"单看组件名称无法判断复杂度,被复用/被依赖迹象 把本地仓库关系证据转译为用户可理解的协作压力。","relationshipMeaning":"其它组件、文件或符号依赖当前组件;关系越多,修改它越可能影响更多调用方。","drilldownIntent":"下钻相关 sequence 或 hotspot,可以把抽象数字落到具体调用片段、文件和风险位置。","businessRelevance":"如果该组件支撑用户可见能力,这个关系指标会影响业务变更的验证成本和回归风险。","changeImpact":"重构被大量对象引用/调用的组件需要谨慎处理兼容性、调用方迁移和测试覆盖。","evidence":["组件类型:function","所属模块:apps/esp32_lvgl","代码锚点:apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp#L72","被复用/被依赖迹象:存在局部复用或依赖线索","外部协作/编排迹象:协调多个外部对象或能力","apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp#L72"],"risks":["关系指标来自本地仓库分析,可能受扫描粒度、生成文件或 import 噪声影响。"],"questions":["当前证据无法完全区分这些关系中的运行时调用、类型引用、导出聚合或生成物噪声,因此只作为候选协作压力。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:sequence:tick-calls-log_loop_interval","kind":"sequence","title":"动态协作:tick 调用 log_loop_interval","summary":"apps/esp32_lvgl/src/esp32_lvgl_arduino_loop_runtime.cpp 中的 tick calls apps/esp32_lvgl/src/esp32_lvgl_arduino_loop_runtime.cpp 中的 log_loop_interval。","docPath":"docs/engineering/sequence-diagrams/tick-calls-log_loop_interval/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/tick-calls-log_loop_interval/sequence-diagram.html","anchor":"engineering:runtime-flow:tick:log_loop_interval:apps-esp32_lvgl-src-esp32_lvgl_arduino_loop_runtime.cpp:apps-esp32_lvgl-src-esp32_lvgl_arduino_loop_runtime.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了确认 函数节点:companion_enter 在 tick -\u003e log_loop_interval 中的角色:它是在发起协作、接收调用、做编排,还是只暴露被依赖能力。"},{"id":"engineering:diagram:sequence:add_status_line-calls-add_label","kind":"sequence","title":"动态协作:add_status_line 调用 add_label","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_status_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_label。","docPath":"docs/engineering/sequence-diagrams/add_status_line-calls-add_label/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/add_status_line-calls-add_label/sequence-diagram.html","anchor":"engineering:runtime-flow:add_status_line:add_label:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了确认 函数节点:companion_enter 在 add_status_line -\u003e add_label 中的角色:它是在发起协作、接收调用、做编排,还是只暴露被依赖能力。"},{"id":"engineering:diagram:sequence:add_u32_line-calls-add_label","kind":"sequence","title":"动态协作:add_u32_line 调用 add_label","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_u32_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_label。","docPath":"docs/engineering/sequence-diagrams/add_u32_line-calls-add_label/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/add_u32_line-calls-add_label/sequence-diagram.html","anchor":"engineering:runtime-flow:add_u32_line:add_label:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了确认 函数节点:companion_enter 在 add_u32_line -\u003e add_label 中的角色:它是在发起协作、接收调用、做编排,还是只暴露被依赖能力。"},{"id":"engineering:diagram:sequence:add_hex_line-calls-add_status_line","kind":"sequence","title":"动态协作:add_hex_line 调用 add_status_line","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_hex_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_status_line。","docPath":"docs/engineering/sequence-diagrams/add_hex_line-calls-add_status_line/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/add_hex_line-calls-add_status_line/sequence-diagram.html","anchor":"engineering:runtime-flow:add_hex_line:add_status_line:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了确认 函数节点:companion_enter 在 add_hex_line -\u003e add_status_line 中的角色:它是在发起协作、接收调用、做编排,还是只暴露被依赖能力。"},{"id":"engineering:diagram:sequence:companion_enter-calls-add_label","kind":"sequence","title":"动态协作:companion_enter 调用 add_label","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 companion_enter calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_label。","docPath":"docs/engineering/sequence-diagrams/companion_enter-calls-add_label/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/companion_enter-calls-add_label/sequence-diagram.html","anchor":"engineering:runtime-flow:companion_enter:add_label:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了确认 函数节点:companion_enter 在 companion_enter -\u003e add_label 中的角色:它是在发起协作、接收调用、做编排,还是只暴露被依赖能力。"}]},{"id":"engineering:diagram:component:apps-esp32_lvgl-companion_enter:element:item","mermaidId":"outgoingRelations","label":"对外依赖/调用关系","kind":"collaboration_signal","anchor":"engineering:component:function:companion_enter:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:72:outgoing-relations","summary":"外部协作/编排迹象用于解释它在技术网络中的复用程度或编排程度;这里只展示含义,不把内部计数当作用户结论。","role":"编排压力线索:帮助识别编排中心、聚合入口或耦合扩散点。","whyItExists":"单看组件名称无法判断复杂度,外部协作/编排迹象 把本地仓库关系证据转译为用户可理解的协作压力。","relationshipMeaning":"当前组件依赖其它组件、文件或符号;关系越多,越可能承担较宽的协调职责。","drilldownIntent":"下钻相关 sequence 或 hotspot,可以把抽象数字落到具体调用片段、文件和风险位置。","businessRelevance":"如果该组件支撑用户可见能力,这个关系指标会影响业务变更的验证成本和回归风险。","changeImpact":"降低过多对外依赖通常意味着拆分编排职责、引入接口边界或把适配逻辑移到更合适的位置。","evidence":["组件类型:function","所属模块:apps/esp32_lvgl","代码锚点:apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp#L72","被复用/被依赖迹象:存在局部复用或依赖线索","外部协作/编排迹象:协调多个外部对象或能力","apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp#L72"],"risks":["关系指标来自本地仓库分析,可能受扫描粒度、生成文件或 import 噪声影响。"],"questions":["当前证据无法完全区分这些关系中的运行时调用、类型引用、导出聚合或生成物噪声,因此只作为候选协作压力。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:sequence:tick-calls-log_loop_interval","kind":"sequence","title":"动态协作:tick 调用 log_loop_interval","summary":"apps/esp32_lvgl/src/esp32_lvgl_arduino_loop_runtime.cpp 中的 tick calls apps/esp32_lvgl/src/esp32_lvgl_arduino_loop_runtime.cpp 中的 log_loop_interval。","docPath":"docs/engineering/sequence-diagrams/tick-calls-log_loop_interval/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/tick-calls-log_loop_interval/sequence-diagram.html","anchor":"engineering:runtime-flow:tick:log_loop_interval:apps-esp32_lvgl-src-esp32_lvgl_arduino_loop_runtime.cpp:apps-esp32_lvgl-src-esp32_lvgl_arduino_loop_runtime.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了确认 函数节点:companion_enter 在 tick -\u003e log_loop_interval 中的角色:它是在发起协作、接收调用、做编排,还是只暴露被依赖能力。"},{"id":"engineering:diagram:sequence:add_status_line-calls-add_label","kind":"sequence","title":"动态协作:add_status_line 调用 add_label","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_status_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_label。","docPath":"docs/engineering/sequence-diagrams/add_status_line-calls-add_label/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/add_status_line-calls-add_label/sequence-diagram.html","anchor":"engineering:runtime-flow:add_status_line:add_label:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了确认 函数节点:companion_enter 在 add_status_line -\u003e add_label 中的角色:它是在发起协作、接收调用、做编排,还是只暴露被依赖能力。"},{"id":"engineering:diagram:sequence:add_u32_line-calls-add_label","kind":"sequence","title":"动态协作:add_u32_line 调用 add_label","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_u32_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_label。","docPath":"docs/engineering/sequence-diagrams/add_u32_line-calls-add_label/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/add_u32_line-calls-add_label/sequence-diagram.html","anchor":"engineering:runtime-flow:add_u32_line:add_label:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了确认 函数节点:companion_enter 在 add_u32_line -\u003e add_label 中的角色:它是在发起协作、接收调用、做编排,还是只暴露被依赖能力。"},{"id":"engineering:diagram:sequence:add_hex_line-calls-add_status_line","kind":"sequence","title":"动态协作:add_hex_line 调用 add_status_line","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_hex_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_status_line。","docPath":"docs/engineering/sequence-diagrams/add_hex_line-calls-add_status_line/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/add_hex_line-calls-add_status_line/sequence-diagram.html","anchor":"engineering:runtime-flow:add_hex_line:add_status_line:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了确认 函数节点:companion_enter 在 add_hex_line -\u003e add_status_line 中的角色:它是在发起协作、接收调用、做编排,还是只暴露被依赖能力。"},{"id":"engineering:diagram:sequence:companion_enter-calls-add_label","kind":"sequence","title":"动态协作:companion_enter 调用 add_label","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 companion_enter calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_label。","docPath":"docs/engineering/sequence-diagrams/companion_enter-calls-add_label/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/companion_enter-calls-add_label/sequence-diagram.html","anchor":"engineering:runtime-flow:companion_enter:add_label:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","relation":"dynamic_flow","reason":"打开这条 sequence 是为了确认 函数节点:companion_enter 在 companion_enter -\u003e add_label 中的角色:它是在发起协作、接收调用、做编排,还是只暴露被依赖能力。"}]}]},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-expect","kind":"component","title":"函数节点:expect","summary":"function 位于 apps/linux_uconsole_gtk/tests/uconsole_meshtastic_node_payload_smoke.cpp#L15,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-expect/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-expect/component-diagram.html","anchor":"engineering:component:function:expect:apps-linux_uconsole_gtk-tests-uconsole_meshtastic_node_payload_smoke.cpp:15","status":"candidate","confidence":"high","mermaidKind":"flowchart","mermaid":"flowchart LR\n package_node[\"apps/linux_uconsole_gtk\"]\n file_node[\"apps/linux_uconsole_gtk/tests/uconsole_meshtastic_node_payload_smoke.cpp#L15\"]\n component_node[\"function: expect\"]\n package_node --\u003e file_node\n file_node --\u003e component_node\n component_node --\u003e outgoingRelations[\"未观察到明显外部协作\"]\n incomingRelations[\"被多个对象复用\"] --\u003e component_node","readingGuide":["这张 Component Diagram 关注 expect 这个 function,展示它所在文件、所属模块以及复用迹象、外部协作迹象。","复用迹象用于判断它是否是共享核心或公共接口;外部协作迹象用于判断它是否承担编排、聚合或桥接职责。","代码锚点是 apps/linux_uconsole_gtk/tests/uconsole_meshtastic_node_payload_smoke.cpp#L15。"],"technicalAnalysis":["expect 在当前仓库证据中呈现为:被复用/被依赖迹象:被多个对象复用或依赖,外部协作/编排迹象:当前未观察到明显外部协作线索,因此它在技术结构中更像共享接口、公共能力或被复用对象。","当前协作压力需要结合具体业务入口判断,单独数字不足以确认设计问题。","所属模块 apps/linux_uconsole_gtk 决定了它更适合作为局部实现细节还是跨模块协作点。"],"businessRelation":["expect 可能是某些业务故事执行过程中的技术节点,但它本身不是业务用例。","从路径上无法直接判断业务角色,需要结合组织/过程模型的 Use Case 证据确认。","如果某个 Use Case 的 Activity、Sequence 或 Class Collaboration 图引用该组件,应在组织/过程模型中明确它承担的是入口、编排、领域规则、适配器还是基础设施职责。"],"governanceNotes":["在修改该组件前,优先查找它被哪些 Use Case 下钻文档引用,避免只看局部代码而忽略业务语义。","可以把该组件作为技术解释锚点,但不要把它直接等同于业务能力。","如果该组件承载业务规则,应把规则写回组织/过程模型或对应领域文档,而不仅保留在仓库证据中。"],"coverage":["组件类型:function","所属模块:apps/linux_uconsole_gtk","代码锚点:apps/linux_uconsole_gtk/tests/uconsole_meshtastic_node_payload_smoke.cpp#L15","被复用/被依赖迹象:被多个对象复用或依赖","外部协作/编排迹象:当前未观察到明显外部协作线索"],"evidencePaths":["apps/linux_uconsole_gtk/tests/uconsole_meshtastic_node_payload_smoke.cpp#L15"],"questions":["该组件协作压力较高;当前文档按候选编排中心或公共接口处理,并通过下钻图说明它的职责证据。"],"scope":{"packageId":"apps/linux_uconsole_gtk","filePath":"apps/linux_uconsole_gtk/tests/uconsole_meshtastic_node_payload_smoke.cpp"},"drilldowns":[{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--launchsettingslayout","kind":"technical_hotspot","title":"承担外部协作的候选对象:launchSettingsLayout 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:launchsettingslayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:110","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:launchSettingsLayout 技术热点 是否说明 函数节点:expect 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makelabel","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeLabel 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makelabel:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp:9","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeLabel 技术热点 是否说明 函数节点:expect 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makesettingsrow","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeSettingsRow 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makesettingsrow:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:22","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeSettingsRow 技术热点 是否说明 函数节点:expect 附近存在变更影响面、文件规模或协作压力风险。"}],"elements":[{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-expect:element:apps-linux_uconsole_gtk","mermaidId":"package_node","label":"apps/linux_uconsole_gtk","kind":"package","anchor":"engineering:package:apps-linux_uconsole_gtk","summary":"apps/linux_uconsole_gtk 是 函数节点:expect 所属的 package/module 边界,用来判断该组件是局部实现细节还是跨模块协作点。","role":"组件归属边界:它定义当前组件默认应该服务的工程上下文。","whyItExists":"组件不能脱离 package 解释;同一个符号如果位于不同 package,可能代表完全不同的职责、所有权和变更影响面。","relationshipMeaning":"apps/linux_uconsole_gtk -\u003e 函数节点:expect 表示该组件由这个技术边界承载;它的角色必须由入口、调用、导出、测试或配置证据来解释,而不是只由目录位置解释。","drilldownIntent":"下钻 package 可以查看 apps/linux_uconsole_gtk 的跨模块依赖、结构协作和热点,从边界层解释该组件为何出现在这里。","businessRelevance":"如果 函数节点:expect 被业务 Use Case 调用,那么 apps/linux_uconsole_gtk 是该业务能力的候选技术落点。","changeImpact":"迁移或重命名该 package 可能改变组件导入路径、下钻索引和 Use Case 对技术承载边界的引用。","evidence":["component package: apps/linux_uconsole_gtk","组件类型:function","所属模块:apps/linux_uconsole_gtk","代码锚点:apps/linux_uconsole_gtk/tests/uconsole_meshtastic_node_payload_smoke.cpp#L15","被复用/被依赖迹象:被多个对象复用或依赖","外部协作/编排迹象:当前未观察到明显外部协作线索","apps/linux_uconsole_gtk/tests/uconsole_meshtastic_node_payload_smoke.cpp#L15"],"risks":["组件职责可能被路径误导;仍需结合调用、导入、导出、入口和测试等代码证据判断真实角色。"],"questions":["当前仓库证据尚未证明 函数节点:expect 属于 apps/linux_uconsole_gtk 的稳定职责,暂按候选归属处理。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:package:apps-linux_uconsole_gtk","kind":"package","title":"模块边界:apps/linux_uconsole_gtk","summary":"解释 apps/linux_uconsole_gtk 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/apps-linux_uconsole_gtk/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/apps-linux_uconsole_gtk/package-diagram.html","anchor":"engineering:package:apps-linux_uconsole_gtk","relation":"parent_boundary","reason":"回到 apps/linux_uconsole_gtk 的包级边界,确认 函数节点:expect 是否属于这个模块的稳定职责。"}]},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-expect:element:apps-linux_uconsole_gtk-tests-uconsole_meshtastic_node_payload_smoke.cpp","mermaidId":"file_node","label":"apps/linux_uconsole_gtk/tests/uconsole_meshtastic_node_payload_smoke.cpp","kind":"file","anchor":"engineering:component:function:expect:apps-linux_uconsole_gtk-tests-uconsole_meshtastic_node_payload_smoke.cpp:15:file","summary":"apps/linux_uconsole_gtk/tests/uconsole_meshtastic_node_payload_smoke.cpp 是当前组件的证据文件,说明 函数节点:expect 的技术职责可以追溯到具体代码位置。","role":"代码证据锚点:它让组件解释可以回到具体文件,而不是停留在抽象图形上。","whyItExists":"软件结构模型必须把每个组件图绑定到可验证文件,否则 UI 只是投影而不是可追溯解释。","relationshipMeaning":"文件节点连接组件节点,表示该组件的实现、入口或符号事实来自这个文件。","drilldownIntent":"下钻该文件相关的组件、sequence 或 hotspot,可以检查该文件是否只是实现细节,还是已经成为多个能力共用的技术枢纽。","businessRelevance":"从路径上无法直接判断业务角色,需要结合组织/过程模型的 Use Case 证据确认。","changeImpact":"修改 apps/linux_uconsole_gtk/tests/uconsole_meshtastic_node_payload_smoke.cpp 可能影响该组件图、相关 sequence、热点判断,以及引用该组件的业务下钻文档。","evidence":["apps/linux_uconsole_gtk/tests/uconsole_meshtastic_node_payload_smoke.cpp","apps/linux_uconsole_gtk/tests/uconsole_meshtastic_node_payload_smoke.cpp#L15"],"risks":["文件路径只能说明位置,不能单独证明业务职责。"],"questions":["当前文件锚点只能证明位置;如果同文件出现多个入口或职责,需在组件/sequence 文档中拆开解释。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--launchsettingslayout","kind":"technical_hotspot","title":"承担外部协作的候选对象:launchSettingsLayout 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:launchsettingslayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:110","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:launchSettingsLayout 技术热点 是否说明 函数节点:expect 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makelabel","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeLabel 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makelabel:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp:9","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeLabel 技术热点 是否说明 函数节点:expect 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makesettingsrow","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeSettingsRow 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makesettingsrow:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:22","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeSettingsRow 技术热点 是否说明 函数节点:expect 附近存在变更影响面、文件规模或协作压力风险。"}]},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-expect:element:expect","mermaidId":"component_node","label":"函数节点:expect","kind":"component","anchor":"engineering:component:function:expect:apps-linux_uconsole_gtk-tests-uconsole_meshtastic_node_payload_smoke.cpp:15","summary":"函数节点:expect 是当前 Component Diagram 的中心技术对象;这张图用它来解释职责、协作压力和下钻路径。","role":"关键技术对象:它需要结合复用迹象、外部协作迹象、文件位置和下钻图判断具体职责。","whyItExists":"本地仓库证据将它识别为关键组件或符号,且它具有可定位文件 apps/linux_uconsole_gtk/tests/uconsole_meshtastic_node_payload_smoke.cpp、被引用/调用关系和对外依赖/调用关系。","relationshipMeaning":"package、file、被引用/调用关系和对外依赖/调用关系都围绕该组件组织,用来判断它是入口、编排者、共享能力还是风险集中点。","drilldownIntent":"下钻该组件可以进入它参与的 sequence、所属结构切片或附近热点,回答“它如何工作、谁调用它、它调用谁”。","businessRelevance":"函数节点:expect 不是业务用例,但可能是业务能力落地时经过的技术节点。 从路径上无法直接判断业务角色,需要结合组织/过程模型的 Use Case 证据确认。 如果组织/过程模型的 Use Case 下钻图引用它,应在业务文档中说明它承担入口、编排、领域规则、适配器还是基础设施职责。","changeImpact":"修改 函数节点:expect 可能影响 apps/linux_uconsole_gtk/tests/uconsole_meshtastic_node_payload_smoke.cpp 中的入口逻辑、调用关系和引用它的业务/工程文档。","evidence":["apps/linux_uconsole_gtk/tests/uconsole_meshtastic_node_payload_smoke.cpp","组件类型:function","所属模块:apps/linux_uconsole_gtk","代码锚点:apps/linux_uconsole_gtk/tests/uconsole_meshtastic_node_payload_smoke.cpp#L15","被复用/被依赖迹象:被多个对象复用或依赖","外部协作/编排迹象:当前未观察到明显外部协作线索","apps/linux_uconsole_gtk/tests/uconsole_meshtastic_node_payload_smoke.cpp#L15"],"risks":["协作压力高不必然代表设计问题;必须结合业务入口、测试和变更频率判断。"],"questions":["该组件协作压力较高;当前文档按候选编排中心或公共接口处理,并通过下钻图说明它的职责证据。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--launchsettingslayout","kind":"technical_hotspot","title":"承担外部协作的候选对象:launchSettingsLayout 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:launchsettingslayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:110","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:launchSettingsLayout 技术热点 是否说明 函数节点:expect 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makelabel","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeLabel 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makelabel:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp:9","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeLabel 技术热点 是否说明 函数节点:expect 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makesettingsrow","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeSettingsRow 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makesettingsrow:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:22","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeSettingsRow 技术热点 是否说明 函数节点:expect 附近存在变更影响面、文件规模或协作压力风险。"}]},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-expect:element:item","mermaidId":"incomingRelations","label":"被引用/调用关系","kind":"reuse_signal","anchor":"engineering:component:function:expect:apps-linux_uconsole_gtk-tests-uconsole_meshtastic_node_payload_smoke.cpp:15:incoming-relations","summary":"被复用/被依赖迹象用于解释它在技术网络中的复用程度或编排程度;这里只展示含义,不把内部计数当作用户结论。","role":"复用压力线索:帮助识别共享核心、公共接口或高回归风险点。","whyItExists":"单看组件名称无法判断复杂度,被复用/被依赖迹象 把本地仓库关系证据转译为用户可理解的协作压力。","relationshipMeaning":"其它组件、文件或符号依赖当前组件;关系越多,修改它越可能影响更多调用方。","drilldownIntent":"下钻相关 sequence 或 hotspot,可以把抽象数字落到具体调用片段、文件和风险位置。","businessRelevance":"如果该组件支撑用户可见能力,这个关系指标会影响业务变更的验证成本和回归风险。","changeImpact":"重构被大量对象引用/调用的组件需要谨慎处理兼容性、调用方迁移和测试覆盖。","evidence":["组件类型:function","所属模块:apps/linux_uconsole_gtk","代码锚点:apps/linux_uconsole_gtk/tests/uconsole_meshtastic_node_payload_smoke.cpp#L15","被复用/被依赖迹象:被多个对象复用或依赖","外部协作/编排迹象:当前未观察到明显外部协作线索","apps/linux_uconsole_gtk/tests/uconsole_meshtastic_node_payload_smoke.cpp#L15"],"risks":["关系指标来自本地仓库分析,可能受扫描粒度、生成文件或 import 噪声影响。"],"questions":["当前证据无法完全区分这些关系中的运行时调用、类型引用、导出聚合或生成物噪声,因此只作为候选协作压力。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--launchsettingslayout","kind":"technical_hotspot","title":"承担外部协作的候选对象:launchSettingsLayout 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:launchsettingslayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:110","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:launchSettingsLayout 技术热点 是否说明 函数节点:expect 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makelabel","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeLabel 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makelabel:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp:9","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeLabel 技术热点 是否说明 函数节点:expect 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makesettingsrow","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeSettingsRow 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makesettingsrow:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:22","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeSettingsRow 技术热点 是否说明 函数节点:expect 附近存在变更影响面、文件规模或协作压力风险。"}]},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-expect:element:item","mermaidId":"outgoingRelations","label":"对外依赖/调用关系","kind":"collaboration_signal","anchor":"engineering:component:function:expect:apps-linux_uconsole_gtk-tests-uconsole_meshtastic_node_payload_smoke.cpp:15:outgoing-relations","summary":"外部协作/编排迹象用于解释它在技术网络中的复用程度或编排程度;这里只展示含义,不把内部计数当作用户结论。","role":"编排压力线索:帮助识别编排中心、聚合入口或耦合扩散点。","whyItExists":"单看组件名称无法判断复杂度,外部协作/编排迹象 把本地仓库关系证据转译为用户可理解的协作压力。","relationshipMeaning":"当前组件依赖其它组件、文件或符号;关系越多,越可能承担较宽的协调职责。","drilldownIntent":"下钻相关 sequence 或 hotspot,可以把抽象数字落到具体调用片段、文件和风险位置。","businessRelevance":"如果该组件支撑用户可见能力,这个关系指标会影响业务变更的验证成本和回归风险。","changeImpact":"降低过多对外依赖通常意味着拆分编排职责、引入接口边界或把适配逻辑移到更合适的位置。","evidence":["组件类型:function","所属模块:apps/linux_uconsole_gtk","代码锚点:apps/linux_uconsole_gtk/tests/uconsole_meshtastic_node_payload_smoke.cpp#L15","被复用/被依赖迹象:被多个对象复用或依赖","外部协作/编排迹象:当前未观察到明显外部协作线索","apps/linux_uconsole_gtk/tests/uconsole_meshtastic_node_payload_smoke.cpp#L15"],"risks":["关系指标来自本地仓库分析,可能受扫描粒度、生成文件或 import 噪声影响。"],"questions":["当前证据无法完全区分这些关系中的运行时调用、类型引用、导出聚合或生成物噪声,因此只作为候选协作压力。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--launchsettingslayout","kind":"technical_hotspot","title":"承担外部协作的候选对象:launchSettingsLayout 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:launchsettingslayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:110","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:launchSettingsLayout 技术热点 是否说明 函数节点:expect 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makelabel","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeLabel 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makelabel:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp:9","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeLabel 技术热点 是否说明 函数节点:expect 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makesettingsrow","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeSettingsRow 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makesettingsrow:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:22","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeSettingsRow 技术热点 是否说明 函数节点:expect 附近存在变更影响面、文件规模或协作压力风险。"}]}]},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-makeswitch","kind":"component","title":"函数节点:makeSwitch","summary":"function 位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L75,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-makeswitch/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-makeswitch/component-diagram.html","anchor":"engineering:component:function:makeswitch:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:75","status":"candidate","confidence":"high","mermaidKind":"flowchart","mermaid":"flowchart LR\n package_node[\"apps/linux_uconsole_gtk\"]\n file_node[\"apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L75\"]\n component_node[\"function: makeSwitch\"]\n package_node --\u003e file_node\n file_node --\u003e component_node\n component_node --\u003e outgoingRelations[\"未观察到明显外部协作\"]\n incomingRelations[\"被多个对象复用\"] --\u003e component_node","readingGuide":["这张 Component Diagram 关注 makeSwitch 这个 function,展示它所在文件、所属模块以及复用迹象、外部协作迹象。","复用迹象用于判断它是否是共享核心或公共接口;外部协作迹象用于判断它是否承担编排、聚合或桥接职责。","代码锚点是 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L75。"],"technicalAnalysis":["makeSwitch 在当前仓库证据中呈现为:被复用/被依赖迹象:被多个对象复用或依赖,外部协作/编排迹象:当前未观察到明显外部协作线索,因此它在技术结构中更像共享接口、公共能力或被复用对象。","当前协作压力需要结合具体业务入口判断,单独数字不足以确认设计问题。","所属模块 apps/linux_uconsole_gtk 决定了它更适合作为局部实现细节还是跨模块协作点。"],"businessRelation":["makeSwitch 可能是某些业务故事执行过程中的技术节点,但它本身不是业务用例。","从路径上无法直接判断业务角色,需要结合组织/过程模型的 Use Case 证据确认。","如果某个 Use Case 的 Activity、Sequence 或 Class Collaboration 图引用该组件,应在组织/过程模型中明确它承担的是入口、编排、领域规则、适配器还是基础设施职责。"],"governanceNotes":["在修改该组件前,优先查找它被哪些 Use Case 下钻文档引用,避免只看局部代码而忽略业务语义。","可以把该组件作为技术解释锚点,但不要把它直接等同于业务能力。","如果该组件承载业务规则,应把规则写回组织/过程模型或对应领域文档,而不仅保留在仓库证据中。"],"coverage":["组件类型:function","所属模块:apps/linux_uconsole_gtk","代码锚点:apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L75","被复用/被依赖迹象:被多个对象复用或依赖","外部协作/编排迹象:当前未观察到明显外部协作线索"],"evidencePaths":["apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L75"],"questions":["该组件协作压力较高;当前文档按候选编排中心或公共接口处理,并通过下钻图说明它的职责证据。"],"scope":{"packageId":"apps/linux_uconsole_gtk","filePath":"apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp"},"drilldowns":[{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--launchsettingslayout","kind":"technical_hotspot","title":"承担外部协作的候选对象:launchSettingsLayout 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:launchsettingslayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:110","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:launchSettingsLayout 技术热点 是否说明 函数节点:makeSwitch 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makelabel","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeLabel 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makelabel:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp:9","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeLabel 技术热点 是否说明 函数节点:makeSwitch 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makesettingsrow","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeSettingsRow 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makesettingsrow:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:22","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeSettingsRow 技术热点 是否说明 函数节点:makeSwitch 附近存在变更影响面、文件规模或协作压力风险。"}],"elements":[{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-makeswitch:element:apps-linux_uconsole_gtk","mermaidId":"package_node","label":"apps/linux_uconsole_gtk","kind":"package","anchor":"engineering:package:apps-linux_uconsole_gtk","summary":"apps/linux_uconsole_gtk 是 函数节点:makeSwitch 所属的 package/module 边界,用来判断该组件是局部实现细节还是跨模块协作点。","role":"组件归属边界:它定义当前组件默认应该服务的工程上下文。","whyItExists":"组件不能脱离 package 解释;同一个符号如果位于不同 package,可能代表完全不同的职责、所有权和变更影响面。","relationshipMeaning":"apps/linux_uconsole_gtk -\u003e 函数节点:makeSwitch 表示该组件由这个技术边界承载;它的角色必须由入口、调用、导出、测试或配置证据来解释,而不是只由目录位置解释。","drilldownIntent":"下钻 package 可以查看 apps/linux_uconsole_gtk 的跨模块依赖、结构协作和热点,从边界层解释该组件为何出现在这里。","businessRelevance":"如果 函数节点:makeSwitch 被业务 Use Case 调用,那么 apps/linux_uconsole_gtk 是该业务能力的候选技术落点。","changeImpact":"迁移或重命名该 package 可能改变组件导入路径、下钻索引和 Use Case 对技术承载边界的引用。","evidence":["component package: apps/linux_uconsole_gtk","组件类型:function","所属模块:apps/linux_uconsole_gtk","代码锚点:apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L75","被复用/被依赖迹象:被多个对象复用或依赖","外部协作/编排迹象:当前未观察到明显外部协作线索","apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L75"],"risks":["组件职责可能被路径误导;仍需结合调用、导入、导出、入口和测试等代码证据判断真实角色。"],"questions":["当前仓库证据尚未证明 函数节点:makeSwitch 属于 apps/linux_uconsole_gtk 的稳定职责,暂按候选归属处理。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:package:apps-linux_uconsole_gtk","kind":"package","title":"模块边界:apps/linux_uconsole_gtk","summary":"解释 apps/linux_uconsole_gtk 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/apps-linux_uconsole_gtk/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/apps-linux_uconsole_gtk/package-diagram.html","anchor":"engineering:package:apps-linux_uconsole_gtk","relation":"parent_boundary","reason":"回到 apps/linux_uconsole_gtk 的包级边界,确认 函数节点:makeSwitch 是否属于这个模块的稳定职责。"}]},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-makeswitch:element:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp","mermaidId":"file_node","label":"apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp","kind":"file","anchor":"engineering:component:function:makeswitch:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:75:file","summary":"apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp 是当前组件的证据文件,说明 函数节点:makeSwitch 的技术职责可以追溯到具体代码位置。","role":"代码证据锚点:它让组件解释可以回到具体文件,而不是停留在抽象图形上。","whyItExists":"软件结构模型必须把每个组件图绑定到可验证文件,否则 UI 只是投影而不是可追溯解释。","relationshipMeaning":"文件节点连接组件节点,表示该组件的实现、入口或符号事实来自这个文件。","drilldownIntent":"下钻该文件相关的组件、sequence 或 hotspot,可以检查该文件是否只是实现细节,还是已经成为多个能力共用的技术枢纽。","businessRelevance":"从路径上无法直接判断业务角色,需要结合组织/过程模型的 Use Case 证据确认。","changeImpact":"修改 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp 可能影响该组件图、相关 sequence、热点判断,以及引用该组件的业务下钻文档。","evidence":["apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp","apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L75"],"risks":["文件路径只能说明位置,不能单独证明业务职责。"],"questions":["当前文件锚点只能证明位置;如果同文件出现多个入口或职责,需在组件/sequence 文档中拆开解释。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--launchsettingslayout","kind":"technical_hotspot","title":"承担外部协作的候选对象:launchSettingsLayout 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:launchsettingslayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:110","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:launchSettingsLayout 技术热点 是否说明 函数节点:makeSwitch 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makelabel","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeLabel 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makelabel:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp:9","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeLabel 技术热点 是否说明 函数节点:makeSwitch 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makesettingsrow","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeSettingsRow 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makesettingsrow:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:22","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeSettingsRow 技术热点 是否说明 函数节点:makeSwitch 附近存在变更影响面、文件规模或协作压力风险。"}]},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-makeswitch:element:makeswitch","mermaidId":"component_node","label":"函数节点:makeSwitch","kind":"component","anchor":"engineering:component:function:makeswitch:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:75","summary":"函数节点:makeSwitch 是当前 Component Diagram 的中心技术对象;这张图用它来解释职责、协作压力和下钻路径。","role":"关键技术对象:它需要结合复用迹象、外部协作迹象、文件位置和下钻图判断具体职责。","whyItExists":"本地仓库证据将它识别为关键组件或符号,且它具有可定位文件 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp、被引用/调用关系和对外依赖/调用关系。","relationshipMeaning":"package、file、被引用/调用关系和对外依赖/调用关系都围绕该组件组织,用来判断它是入口、编排者、共享能力还是风险集中点。","drilldownIntent":"下钻该组件可以进入它参与的 sequence、所属结构切片或附近热点,回答“它如何工作、谁调用它、它调用谁”。","businessRelevance":"函数节点:makeSwitch 不是业务用例,但可能是业务能力落地时经过的技术节点。 从路径上无法直接判断业务角色,需要结合组织/过程模型的 Use Case 证据确认。 如果组织/过程模型的 Use Case 下钻图引用它,应在业务文档中说明它承担入口、编排、领域规则、适配器还是基础设施职责。","changeImpact":"修改 函数节点:makeSwitch 可能影响 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp 中的入口逻辑、调用关系和引用它的业务/工程文档。","evidence":["apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp","组件类型:function","所属模块:apps/linux_uconsole_gtk","代码锚点:apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L75","被复用/被依赖迹象:被多个对象复用或依赖","外部协作/编排迹象:当前未观察到明显外部协作线索","apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L75"],"risks":["协作压力高不必然代表设计问题;必须结合业务入口、测试和变更频率判断。"],"questions":["该组件协作压力较高;当前文档按候选编排中心或公共接口处理,并通过下钻图说明它的职责证据。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--launchsettingslayout","kind":"technical_hotspot","title":"承担外部协作的候选对象:launchSettingsLayout 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:launchsettingslayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:110","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:launchSettingsLayout 技术热点 是否说明 函数节点:makeSwitch 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makelabel","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeLabel 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makelabel:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp:9","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeLabel 技术热点 是否说明 函数节点:makeSwitch 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makesettingsrow","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeSettingsRow 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makesettingsrow:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:22","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeSettingsRow 技术热点 是否说明 函数节点:makeSwitch 附近存在变更影响面、文件规模或协作压力风险。"}]},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-makeswitch:element:item","mermaidId":"incomingRelations","label":"被引用/调用关系","kind":"reuse_signal","anchor":"engineering:component:function:makeswitch:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:75:incoming-relations","summary":"被复用/被依赖迹象用于解释它在技术网络中的复用程度或编排程度;这里只展示含义,不把内部计数当作用户结论。","role":"复用压力线索:帮助识别共享核心、公共接口或高回归风险点。","whyItExists":"单看组件名称无法判断复杂度,被复用/被依赖迹象 把本地仓库关系证据转译为用户可理解的协作压力。","relationshipMeaning":"其它组件、文件或符号依赖当前组件;关系越多,修改它越可能影响更多调用方。","drilldownIntent":"下钻相关 sequence 或 hotspot,可以把抽象数字落到具体调用片段、文件和风险位置。","businessRelevance":"如果该组件支撑用户可见能力,这个关系指标会影响业务变更的验证成本和回归风险。","changeImpact":"重构被大量对象引用/调用的组件需要谨慎处理兼容性、调用方迁移和测试覆盖。","evidence":["组件类型:function","所属模块:apps/linux_uconsole_gtk","代码锚点:apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L75","被复用/被依赖迹象:被多个对象复用或依赖","外部协作/编排迹象:当前未观察到明显外部协作线索","apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L75"],"risks":["关系指标来自本地仓库分析,可能受扫描粒度、生成文件或 import 噪声影响。"],"questions":["当前证据无法完全区分这些关系中的运行时调用、类型引用、导出聚合或生成物噪声,因此只作为候选协作压力。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--launchsettingslayout","kind":"technical_hotspot","title":"承担外部协作的候选对象:launchSettingsLayout 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:launchsettingslayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:110","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:launchSettingsLayout 技术热点 是否说明 函数节点:makeSwitch 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makelabel","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeLabel 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makelabel:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp:9","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeLabel 技术热点 是否说明 函数节点:makeSwitch 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makesettingsrow","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeSettingsRow 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makesettingsrow:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:22","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeSettingsRow 技术热点 是否说明 函数节点:makeSwitch 附近存在变更影响面、文件规模或协作压力风险。"}]},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-makeswitch:element:item","mermaidId":"outgoingRelations","label":"对外依赖/调用关系","kind":"collaboration_signal","anchor":"engineering:component:function:makeswitch:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:75:outgoing-relations","summary":"外部协作/编排迹象用于解释它在技术网络中的复用程度或编排程度;这里只展示含义,不把内部计数当作用户结论。","role":"编排压力线索:帮助识别编排中心、聚合入口或耦合扩散点。","whyItExists":"单看组件名称无法判断复杂度,外部协作/编排迹象 把本地仓库关系证据转译为用户可理解的协作压力。","relationshipMeaning":"当前组件依赖其它组件、文件或符号;关系越多,越可能承担较宽的协调职责。","drilldownIntent":"下钻相关 sequence 或 hotspot,可以把抽象数字落到具体调用片段、文件和风险位置。","businessRelevance":"如果该组件支撑用户可见能力,这个关系指标会影响业务变更的验证成本和回归风险。","changeImpact":"降低过多对外依赖通常意味着拆分编排职责、引入接口边界或把适配逻辑移到更合适的位置。","evidence":["组件类型:function","所属模块:apps/linux_uconsole_gtk","代码锚点:apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L75","被复用/被依赖迹象:被多个对象复用或依赖","外部协作/编排迹象:当前未观察到明显外部协作线索","apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L75"],"risks":["关系指标来自本地仓库分析,可能受扫描粒度、生成文件或 import 噪声影响。"],"questions":["当前证据无法完全区分这些关系中的运行时调用、类型引用、导出聚合或生成物噪声,因此只作为候选协作压力。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--launchsettingslayout","kind":"technical_hotspot","title":"承担外部协作的候选对象:launchSettingsLayout 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:launchsettingslayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:110","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:launchSettingsLayout 技术热点 是否说明 函数节点:makeSwitch 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makelabel","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeLabel 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makelabel:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp:9","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeLabel 技术热点 是否说明 函数节点:makeSwitch 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makesettingsrow","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeSettingsRow 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makesettingsrow:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:22","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeSettingsRow 技术热点 是否说明 函数节点:makeSwitch 附近存在变更影响面、文件规模或协作压力风险。"}]}]},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-setlabel","kind":"component","title":"函数节点:setLabel","summary":"function 位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp#L44,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-setlabel/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-setlabel/component-diagram.html","anchor":"engineering:component:function:setlabel:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp:44","status":"candidate","confidence":"high","mermaidKind":"flowchart","mermaid":"flowchart LR\n package_node[\"apps/linux_uconsole_gtk\"]\n file_node[\"apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp#L44\"]\n component_node[\"function: setLabel\"]\n package_node --\u003e file_node\n file_node --\u003e component_node\n component_node --\u003e outgoingRelations[\"未观察到明显外部协作\"]\n incomingRelations[\"被多个对象复用\"] --\u003e component_node","readingGuide":["这张 Component Diagram 关注 setLabel 这个 function,展示它所在文件、所属模块以及复用迹象、外部协作迹象。","复用迹象用于判断它是否是共享核心或公共接口;外部协作迹象用于判断它是否承担编排、聚合或桥接职责。","代码锚点是 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp#L44。"],"technicalAnalysis":["setLabel 在当前仓库证据中呈现为:被复用/被依赖迹象:被多个对象复用或依赖,外部协作/编排迹象:当前未观察到明显外部协作线索,因此它在技术结构中更像共享接口、公共能力或被复用对象。","当前协作压力需要结合具体业务入口判断,单独数字不足以确认设计问题。","所属模块 apps/linux_uconsole_gtk 决定了它更适合作为局部实现细节还是跨模块协作点。"],"businessRelation":["setLabel 可能是某些业务故事执行过程中的技术节点,但它本身不是业务用例。","从路径上无法直接判断业务角色,需要结合组织/过程模型的 Use Case 证据确认。","如果某个 Use Case 的 Activity、Sequence 或 Class Collaboration 图引用该组件,应在组织/过程模型中明确它承担的是入口、编排、领域规则、适配器还是基础设施职责。"],"governanceNotes":["在修改该组件前,优先查找它被哪些 Use Case 下钻文档引用,避免只看局部代码而忽略业务语义。","可以把该组件作为技术解释锚点,但不要把它直接等同于业务能力。","如果该组件承载业务规则,应把规则写回组织/过程模型或对应领域文档,而不仅保留在仓库证据中。"],"coverage":["组件类型:function","所属模块:apps/linux_uconsole_gtk","代码锚点:apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp#L44","被复用/被依赖迹象:被多个对象复用或依赖","外部协作/编排迹象:当前未观察到明显外部协作线索"],"evidencePaths":["apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp#L44"],"questions":["该组件协作压力较高;当前文档按候选编排中心或公共接口处理,并通过下钻图说明它的职责证据。"],"scope":{"packageId":"apps/linux_uconsole_gtk","filePath":"apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp"},"drilldowns":[{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--launchsettingslayout","kind":"technical_hotspot","title":"承担外部协作的候选对象:launchSettingsLayout 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:launchsettingslayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:110","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:launchSettingsLayout 技术热点 是否说明 函数节点:setLabel 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makelabel","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeLabel 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makelabel:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp:9","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeLabel 技术热点 是否说明 函数节点:setLabel 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makesettingsrow","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeSettingsRow 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makesettingsrow:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:22","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeSettingsRow 技术热点 是否说明 函数节点:setLabel 附近存在变更影响面、文件规模或协作压力风险。"}],"elements":[{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-setlabel:element:apps-linux_uconsole_gtk","mermaidId":"package_node","label":"apps/linux_uconsole_gtk","kind":"package","anchor":"engineering:package:apps-linux_uconsole_gtk","summary":"apps/linux_uconsole_gtk 是 函数节点:setLabel 所属的 package/module 边界,用来判断该组件是局部实现细节还是跨模块协作点。","role":"组件归属边界:它定义当前组件默认应该服务的工程上下文。","whyItExists":"组件不能脱离 package 解释;同一个符号如果位于不同 package,可能代表完全不同的职责、所有权和变更影响面。","relationshipMeaning":"apps/linux_uconsole_gtk -\u003e 函数节点:setLabel 表示该组件由这个技术边界承载;它的角色必须由入口、调用、导出、测试或配置证据来解释,而不是只由目录位置解释。","drilldownIntent":"下钻 package 可以查看 apps/linux_uconsole_gtk 的跨模块依赖、结构协作和热点,从边界层解释该组件为何出现在这里。","businessRelevance":"如果 函数节点:setLabel 被业务 Use Case 调用,那么 apps/linux_uconsole_gtk 是该业务能力的候选技术落点。","changeImpact":"迁移或重命名该 package 可能改变组件导入路径、下钻索引和 Use Case 对技术承载边界的引用。","evidence":["component package: apps/linux_uconsole_gtk","组件类型:function","所属模块:apps/linux_uconsole_gtk","代码锚点:apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp#L44","被复用/被依赖迹象:被多个对象复用或依赖","外部协作/编排迹象:当前未观察到明显外部协作线索","apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp#L44"],"risks":["组件职责可能被路径误导;仍需结合调用、导入、导出、入口和测试等代码证据判断真实角色。"],"questions":["当前仓库证据尚未证明 函数节点:setLabel 属于 apps/linux_uconsole_gtk 的稳定职责,暂按候选归属处理。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:package:apps-linux_uconsole_gtk","kind":"package","title":"模块边界:apps/linux_uconsole_gtk","summary":"解释 apps/linux_uconsole_gtk 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/apps-linux_uconsole_gtk/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/apps-linux_uconsole_gtk/package-diagram.html","anchor":"engineering:package:apps-linux_uconsole_gtk","relation":"parent_boundary","reason":"回到 apps/linux_uconsole_gtk 的包级边界,确认 函数节点:setLabel 是否属于这个模块的稳定职责。"}]},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-setlabel:element:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp","mermaidId":"file_node","label":"apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp","kind":"file","anchor":"engineering:component:function:setlabel:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp:44:file","summary":"apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp 是当前组件的证据文件,说明 函数节点:setLabel 的技术职责可以追溯到具体代码位置。","role":"代码证据锚点:它让组件解释可以回到具体文件,而不是停留在抽象图形上。","whyItExists":"软件结构模型必须把每个组件图绑定到可验证文件,否则 UI 只是投影而不是可追溯解释。","relationshipMeaning":"文件节点连接组件节点,表示该组件的实现、入口或符号事实来自这个文件。","drilldownIntent":"下钻该文件相关的组件、sequence 或 hotspot,可以检查该文件是否只是实现细节,还是已经成为多个能力共用的技术枢纽。","businessRelevance":"从路径上无法直接判断业务角色,需要结合组织/过程模型的 Use Case 证据确认。","changeImpact":"修改 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp 可能影响该组件图、相关 sequence、热点判断,以及引用该组件的业务下钻文档。","evidence":["apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp","apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp#L44"],"risks":["文件路径只能说明位置,不能单独证明业务职责。"],"questions":["当前文件锚点只能证明位置;如果同文件出现多个入口或职责,需在组件/sequence 文档中拆开解释。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--launchsettingslayout","kind":"technical_hotspot","title":"承担外部协作的候选对象:launchSettingsLayout 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:launchsettingslayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:110","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:launchSettingsLayout 技术热点 是否说明 函数节点:setLabel 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makelabel","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeLabel 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makelabel:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp:9","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeLabel 技术热点 是否说明 函数节点:setLabel 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makesettingsrow","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeSettingsRow 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makesettingsrow:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:22","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeSettingsRow 技术热点 是否说明 函数节点:setLabel 附近存在变更影响面、文件规模或协作压力风险。"}]},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-setlabel:element:setlabel","mermaidId":"component_node","label":"函数节点:setLabel","kind":"component","anchor":"engineering:component:function:setlabel:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp:44","summary":"函数节点:setLabel 是当前 Component Diagram 的中心技术对象;这张图用它来解释职责、协作压力和下钻路径。","role":"关键技术对象:它需要结合复用迹象、外部协作迹象、文件位置和下钻图判断具体职责。","whyItExists":"本地仓库证据将它识别为关键组件或符号,且它具有可定位文件 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp、被引用/调用关系和对外依赖/调用关系。","relationshipMeaning":"package、file、被引用/调用关系和对外依赖/调用关系都围绕该组件组织,用来判断它是入口、编排者、共享能力还是风险集中点。","drilldownIntent":"下钻该组件可以进入它参与的 sequence、所属结构切片或附近热点,回答“它如何工作、谁调用它、它调用谁”。","businessRelevance":"函数节点:setLabel 不是业务用例,但可能是业务能力落地时经过的技术节点。 从路径上无法直接判断业务角色,需要结合组织/过程模型的 Use Case 证据确认。 如果组织/过程模型的 Use Case 下钻图引用它,应在业务文档中说明它承担入口、编排、领域规则、适配器还是基础设施职责。","changeImpact":"修改 函数节点:setLabel 可能影响 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp 中的入口逻辑、调用关系和引用它的业务/工程文档。","evidence":["apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp","组件类型:function","所属模块:apps/linux_uconsole_gtk","代码锚点:apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp#L44","被复用/被依赖迹象:被多个对象复用或依赖","外部协作/编排迹象:当前未观察到明显外部协作线索","apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp#L44"],"risks":["协作压力高不必然代表设计问题;必须结合业务入口、测试和变更频率判断。"],"questions":["该组件协作压力较高;当前文档按候选编排中心或公共接口处理,并通过下钻图说明它的职责证据。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--launchsettingslayout","kind":"technical_hotspot","title":"承担外部协作的候选对象:launchSettingsLayout 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:launchsettingslayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:110","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:launchSettingsLayout 技术热点 是否说明 函数节点:setLabel 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makelabel","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeLabel 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makelabel:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp:9","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeLabel 技术热点 是否说明 函数节点:setLabel 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makesettingsrow","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeSettingsRow 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makesettingsrow:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:22","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeSettingsRow 技术热点 是否说明 函数节点:setLabel 附近存在变更影响面、文件规模或协作压力风险。"}]},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-setlabel:element:item","mermaidId":"incomingRelations","label":"被引用/调用关系","kind":"reuse_signal","anchor":"engineering:component:function:setlabel:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp:44:incoming-relations","summary":"被复用/被依赖迹象用于解释它在技术网络中的复用程度或编排程度;这里只展示含义,不把内部计数当作用户结论。","role":"复用压力线索:帮助识别共享核心、公共接口或高回归风险点。","whyItExists":"单看组件名称无法判断复杂度,被复用/被依赖迹象 把本地仓库关系证据转译为用户可理解的协作压力。","relationshipMeaning":"其它组件、文件或符号依赖当前组件;关系越多,修改它越可能影响更多调用方。","drilldownIntent":"下钻相关 sequence 或 hotspot,可以把抽象数字落到具体调用片段、文件和风险位置。","businessRelevance":"如果该组件支撑用户可见能力,这个关系指标会影响业务变更的验证成本和回归风险。","changeImpact":"重构被大量对象引用/调用的组件需要谨慎处理兼容性、调用方迁移和测试覆盖。","evidence":["组件类型:function","所属模块:apps/linux_uconsole_gtk","代码锚点:apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp#L44","被复用/被依赖迹象:被多个对象复用或依赖","外部协作/编排迹象:当前未观察到明显外部协作线索","apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp#L44"],"risks":["关系指标来自本地仓库分析,可能受扫描粒度、生成文件或 import 噪声影响。"],"questions":["当前证据无法完全区分这些关系中的运行时调用、类型引用、导出聚合或生成物噪声,因此只作为候选协作压力。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--launchsettingslayout","kind":"technical_hotspot","title":"承担外部协作的候选对象:launchSettingsLayout 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:launchsettingslayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:110","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:launchSettingsLayout 技术热点 是否说明 函数节点:setLabel 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makelabel","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeLabel 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makelabel:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp:9","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeLabel 技术热点 是否说明 函数节点:setLabel 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makesettingsrow","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeSettingsRow 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makesettingsrow:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:22","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeSettingsRow 技术热点 是否说明 函数节点:setLabel 附近存在变更影响面、文件规模或协作压力风险。"}]},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-setlabel:element:item","mermaidId":"outgoingRelations","label":"对外依赖/调用关系","kind":"collaboration_signal","anchor":"engineering:component:function:setlabel:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp:44:outgoing-relations","summary":"外部协作/编排迹象用于解释它在技术网络中的复用程度或编排程度;这里只展示含义,不把内部计数当作用户结论。","role":"编排压力线索:帮助识别编排中心、聚合入口或耦合扩散点。","whyItExists":"单看组件名称无法判断复杂度,外部协作/编排迹象 把本地仓库关系证据转译为用户可理解的协作压力。","relationshipMeaning":"当前组件依赖其它组件、文件或符号;关系越多,越可能承担较宽的协调职责。","drilldownIntent":"下钻相关 sequence 或 hotspot,可以把抽象数字落到具体调用片段、文件和风险位置。","businessRelevance":"如果该组件支撑用户可见能力,这个关系指标会影响业务变更的验证成本和回归风险。","changeImpact":"降低过多对外依赖通常意味着拆分编排职责、引入接口边界或把适配逻辑移到更合适的位置。","evidence":["组件类型:function","所属模块:apps/linux_uconsole_gtk","代码锚点:apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp#L44","被复用/被依赖迹象:被多个对象复用或依赖","外部协作/编排迹象:当前未观察到明显外部协作线索","apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp#L44"],"risks":["关系指标来自本地仓库分析,可能受扫描粒度、生成文件或 import 噪声影响。"],"questions":["当前证据无法完全区分这些关系中的运行时调用、类型引用、导出聚合或生成物噪声,因此只作为候选协作压力。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--launchsettingslayout","kind":"technical_hotspot","title":"承担外部协作的候选对象:launchSettingsLayout 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:launchsettingslayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:110","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:launchSettingsLayout 技术热点 是否说明 函数节点:setLabel 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makelabel","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeLabel 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makelabel:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp:9","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeLabel 技术热点 是否说明 函数节点:setLabel 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makesettingsrow","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeSettingsRow 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makesettingsrow:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:22","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeSettingsRow 技术热点 是否说明 函数节点:setLabel 附近存在变更影响面、文件规模或协作压力风险。"}]}]},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-makespin","kind":"component","title":"函数节点:makeSpin","summary":"function 位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L68,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-makespin/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-makespin/component-diagram.html","anchor":"engineering:component:function:makespin:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:68","status":"candidate","confidence":"high","mermaidKind":"flowchart","mermaid":"flowchart LR\n package_node[\"apps/linux_uconsole_gtk\"]\n file_node[\"apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L68\"]\n component_node[\"function: makeSpin\"]\n package_node --\u003e file_node\n file_node --\u003e component_node\n component_node --\u003e outgoingRelations[\"未观察到明显外部协作\"]\n incomingRelations[\"被多个对象复用\"] --\u003e component_node","readingGuide":["这张 Component Diagram 关注 makeSpin 这个 function,展示它所在文件、所属模块以及复用迹象、外部协作迹象。","复用迹象用于判断它是否是共享核心或公共接口;外部协作迹象用于判断它是否承担编排、聚合或桥接职责。","代码锚点是 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L68。"],"technicalAnalysis":["makeSpin 在当前仓库证据中呈现为:被复用/被依赖迹象:被多个对象复用或依赖,外部协作/编排迹象:当前未观察到明显外部协作线索,因此它在技术结构中更像共享接口、公共能力或被复用对象。","当前协作压力需要结合具体业务入口判断,单独数字不足以确认设计问题。","所属模块 apps/linux_uconsole_gtk 决定了它更适合作为局部实现细节还是跨模块协作点。"],"businessRelation":["makeSpin 可能是某些业务故事执行过程中的技术节点,但它本身不是业务用例。","从路径上无法直接判断业务角色,需要结合组织/过程模型的 Use Case 证据确认。","如果某个 Use Case 的 Activity、Sequence 或 Class Collaboration 图引用该组件,应在组织/过程模型中明确它承担的是入口、编排、领域规则、适配器还是基础设施职责。"],"governanceNotes":["在修改该组件前,优先查找它被哪些 Use Case 下钻文档引用,避免只看局部代码而忽略业务语义。","可以把该组件作为技术解释锚点,但不要把它直接等同于业务能力。","如果该组件承载业务规则,应把规则写回组织/过程模型或对应领域文档,而不仅保留在仓库证据中。"],"coverage":["组件类型:function","所属模块:apps/linux_uconsole_gtk","代码锚点:apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L68","被复用/被依赖迹象:被多个对象复用或依赖","外部协作/编排迹象:当前未观察到明显外部协作线索"],"evidencePaths":["apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L68"],"questions":["该组件协作压力较高;当前文档按候选编排中心或公共接口处理,并通过下钻图说明它的职责证据。"],"scope":{"packageId":"apps/linux_uconsole_gtk","filePath":"apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp"},"drilldowns":[{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--launchsettingslayout","kind":"technical_hotspot","title":"承担外部协作的候选对象:launchSettingsLayout 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:launchsettingslayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:110","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:launchSettingsLayout 技术热点 是否说明 函数节点:makeSpin 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makelabel","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeLabel 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makelabel:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp:9","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeLabel 技术热点 是否说明 函数节点:makeSpin 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makesettingsrow","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeSettingsRow 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makesettingsrow:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:22","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeSettingsRow 技术热点 是否说明 函数节点:makeSpin 附近存在变更影响面、文件规模或协作压力风险。"}],"elements":[{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-makespin:element:apps-linux_uconsole_gtk","mermaidId":"package_node","label":"apps/linux_uconsole_gtk","kind":"package","anchor":"engineering:package:apps-linux_uconsole_gtk","summary":"apps/linux_uconsole_gtk 是 函数节点:makeSpin 所属的 package/module 边界,用来判断该组件是局部实现细节还是跨模块协作点。","role":"组件归属边界:它定义当前组件默认应该服务的工程上下文。","whyItExists":"组件不能脱离 package 解释;同一个符号如果位于不同 package,可能代表完全不同的职责、所有权和变更影响面。","relationshipMeaning":"apps/linux_uconsole_gtk -\u003e 函数节点:makeSpin 表示该组件由这个技术边界承载;它的角色必须由入口、调用、导出、测试或配置证据来解释,而不是只由目录位置解释。","drilldownIntent":"下钻 package 可以查看 apps/linux_uconsole_gtk 的跨模块依赖、结构协作和热点,从边界层解释该组件为何出现在这里。","businessRelevance":"如果 函数节点:makeSpin 被业务 Use Case 调用,那么 apps/linux_uconsole_gtk 是该业务能力的候选技术落点。","changeImpact":"迁移或重命名该 package 可能改变组件导入路径、下钻索引和 Use Case 对技术承载边界的引用。","evidence":["component package: apps/linux_uconsole_gtk","组件类型:function","所属模块:apps/linux_uconsole_gtk","代码锚点:apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L68","被复用/被依赖迹象:被多个对象复用或依赖","外部协作/编排迹象:当前未观察到明显外部协作线索","apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L68"],"risks":["组件职责可能被路径误导;仍需结合调用、导入、导出、入口和测试等代码证据判断真实角色。"],"questions":["当前仓库证据尚未证明 函数节点:makeSpin 属于 apps/linux_uconsole_gtk 的稳定职责,暂按候选归属处理。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:package:apps-linux_uconsole_gtk","kind":"package","title":"模块边界:apps/linux_uconsole_gtk","summary":"解释 apps/linux_uconsole_gtk 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/apps-linux_uconsole_gtk/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/apps-linux_uconsole_gtk/package-diagram.html","anchor":"engineering:package:apps-linux_uconsole_gtk","relation":"parent_boundary","reason":"回到 apps/linux_uconsole_gtk 的包级边界,确认 函数节点:makeSpin 是否属于这个模块的稳定职责。"}]},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-makespin:element:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp","mermaidId":"file_node","label":"apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp","kind":"file","anchor":"engineering:component:function:makespin:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:68:file","summary":"apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp 是当前组件的证据文件,说明 函数节点:makeSpin 的技术职责可以追溯到具体代码位置。","role":"代码证据锚点:它让组件解释可以回到具体文件,而不是停留在抽象图形上。","whyItExists":"软件结构模型必须把每个组件图绑定到可验证文件,否则 UI 只是投影而不是可追溯解释。","relationshipMeaning":"文件节点连接组件节点,表示该组件的实现、入口或符号事实来自这个文件。","drilldownIntent":"下钻该文件相关的组件、sequence 或 hotspot,可以检查该文件是否只是实现细节,还是已经成为多个能力共用的技术枢纽。","businessRelevance":"从路径上无法直接判断业务角色,需要结合组织/过程模型的 Use Case 证据确认。","changeImpact":"修改 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp 可能影响该组件图、相关 sequence、热点判断,以及引用该组件的业务下钻文档。","evidence":["apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp","apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L68"],"risks":["文件路径只能说明位置,不能单独证明业务职责。"],"questions":["当前文件锚点只能证明位置;如果同文件出现多个入口或职责,需在组件/sequence 文档中拆开解释。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--launchsettingslayout","kind":"technical_hotspot","title":"承担外部协作的候选对象:launchSettingsLayout 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:launchsettingslayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:110","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:launchSettingsLayout 技术热点 是否说明 函数节点:makeSpin 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makelabel","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeLabel 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makelabel:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp:9","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeLabel 技术热点 是否说明 函数节点:makeSpin 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makesettingsrow","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeSettingsRow 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makesettingsrow:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:22","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeSettingsRow 技术热点 是否说明 函数节点:makeSpin 附近存在变更影响面、文件规模或协作压力风险。"}]},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-makespin:element:makespin","mermaidId":"component_node","label":"函数节点:makeSpin","kind":"component","anchor":"engineering:component:function:makespin:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:68","summary":"函数节点:makeSpin 是当前 Component Diagram 的中心技术对象;这张图用它来解释职责、协作压力和下钻路径。","role":"关键技术对象:它需要结合复用迹象、外部协作迹象、文件位置和下钻图判断具体职责。","whyItExists":"本地仓库证据将它识别为关键组件或符号,且它具有可定位文件 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp、被引用/调用关系和对外依赖/调用关系。","relationshipMeaning":"package、file、被引用/调用关系和对外依赖/调用关系都围绕该组件组织,用来判断它是入口、编排者、共享能力还是风险集中点。","drilldownIntent":"下钻该组件可以进入它参与的 sequence、所属结构切片或附近热点,回答“它如何工作、谁调用它、它调用谁”。","businessRelevance":"函数节点:makeSpin 不是业务用例,但可能是业务能力落地时经过的技术节点。 从路径上无法直接判断业务角色,需要结合组织/过程模型的 Use Case 证据确认。 如果组织/过程模型的 Use Case 下钻图引用它,应在业务文档中说明它承担入口、编排、领域规则、适配器还是基础设施职责。","changeImpact":"修改 函数节点:makeSpin 可能影响 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp 中的入口逻辑、调用关系和引用它的业务/工程文档。","evidence":["apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp","组件类型:function","所属模块:apps/linux_uconsole_gtk","代码锚点:apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L68","被复用/被依赖迹象:被多个对象复用或依赖","外部协作/编排迹象:当前未观察到明显外部协作线索","apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L68"],"risks":["协作压力高不必然代表设计问题;必须结合业务入口、测试和变更频率判断。"],"questions":["该组件协作压力较高;当前文档按候选编排中心或公共接口处理,并通过下钻图说明它的职责证据。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--launchsettingslayout","kind":"technical_hotspot","title":"承担外部协作的候选对象:launchSettingsLayout 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:launchsettingslayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:110","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:launchSettingsLayout 技术热点 是否说明 函数节点:makeSpin 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makelabel","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeLabel 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makelabel:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp:9","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeLabel 技术热点 是否说明 函数节点:makeSpin 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makesettingsrow","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeSettingsRow 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makesettingsrow:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:22","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeSettingsRow 技术热点 是否说明 函数节点:makeSpin 附近存在变更影响面、文件规模或协作压力风险。"}]},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-makespin:element:item","mermaidId":"incomingRelations","label":"被引用/调用关系","kind":"reuse_signal","anchor":"engineering:component:function:makespin:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:68:incoming-relations","summary":"被复用/被依赖迹象用于解释它在技术网络中的复用程度或编排程度;这里只展示含义,不把内部计数当作用户结论。","role":"复用压力线索:帮助识别共享核心、公共接口或高回归风险点。","whyItExists":"单看组件名称无法判断复杂度,被复用/被依赖迹象 把本地仓库关系证据转译为用户可理解的协作压力。","relationshipMeaning":"其它组件、文件或符号依赖当前组件;关系越多,修改它越可能影响更多调用方。","drilldownIntent":"下钻相关 sequence 或 hotspot,可以把抽象数字落到具体调用片段、文件和风险位置。","businessRelevance":"如果该组件支撑用户可见能力,这个关系指标会影响业务变更的验证成本和回归风险。","changeImpact":"重构被大量对象引用/调用的组件需要谨慎处理兼容性、调用方迁移和测试覆盖。","evidence":["组件类型:function","所属模块:apps/linux_uconsole_gtk","代码锚点:apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L68","被复用/被依赖迹象:被多个对象复用或依赖","外部协作/编排迹象:当前未观察到明显外部协作线索","apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L68"],"risks":["关系指标来自本地仓库分析,可能受扫描粒度、生成文件或 import 噪声影响。"],"questions":["当前证据无法完全区分这些关系中的运行时调用、类型引用、导出聚合或生成物噪声,因此只作为候选协作压力。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--launchsettingslayout","kind":"technical_hotspot","title":"承担外部协作的候选对象:launchSettingsLayout 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:launchsettingslayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:110","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:launchSettingsLayout 技术热点 是否说明 函数节点:makeSpin 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makelabel","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeLabel 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makelabel:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp:9","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeLabel 技术热点 是否说明 函数节点:makeSpin 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makesettingsrow","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeSettingsRow 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makesettingsrow:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:22","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeSettingsRow 技术热点 是否说明 函数节点:makeSpin 附近存在变更影响面、文件规模或协作压力风险。"}]},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-makespin:element:item","mermaidId":"outgoingRelations","label":"对外依赖/调用关系","kind":"collaboration_signal","anchor":"engineering:component:function:makespin:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:68:outgoing-relations","summary":"外部协作/编排迹象用于解释它在技术网络中的复用程度或编排程度;这里只展示含义,不把内部计数当作用户结论。","role":"编排压力线索:帮助识别编排中心、聚合入口或耦合扩散点。","whyItExists":"单看组件名称无法判断复杂度,外部协作/编排迹象 把本地仓库关系证据转译为用户可理解的协作压力。","relationshipMeaning":"当前组件依赖其它组件、文件或符号;关系越多,越可能承担较宽的协调职责。","drilldownIntent":"下钻相关 sequence 或 hotspot,可以把抽象数字落到具体调用片段、文件和风险位置。","businessRelevance":"如果该组件支撑用户可见能力,这个关系指标会影响业务变更的验证成本和回归风险。","changeImpact":"降低过多对外依赖通常意味着拆分编排职责、引入接口边界或把适配逻辑移到更合适的位置。","evidence":["组件类型:function","所属模块:apps/linux_uconsole_gtk","代码锚点:apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L68","被复用/被依赖迹象:被多个对象复用或依赖","外部协作/编排迹象:当前未观察到明显外部协作线索","apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L68"],"risks":["关系指标来自本地仓库分析,可能受扫描粒度、生成文件或 import 噪声影响。"],"questions":["当前证据无法完全区分这些关系中的运行时调用、类型引用、导出聚合或生成物噪声,因此只作为候选协作压力。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--launchsettingslayout","kind":"technical_hotspot","title":"承担外部协作的候选对象:launchSettingsLayout 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:launchsettingslayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:110","relation":"risk_detail","reason":"查看 承担外部协作的候选对象:launchSettingsLayout 技术热点 是否说明 函数节点:makeSpin 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makelabel","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeLabel 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makelabel:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp:9","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeLabel 技术热点 是否说明 函数节点:makeSpin 附近存在变更影响面、文件规模或协作压力风险。"},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makesettingsrow","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeSettingsRow 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makesettingsrow:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:22","relation":"risk_detail","reason":"查看 被广泛复用的候选对象:makeSettingsRow 技术热点 是否说明 函数节点:makeSpin 附近存在变更影响面、文件规模或协作压力风险。"}]}]}]},{"id":"engineering:category:deployment","kind":"deployment","title":"Deployment Diagrams","directory":"docs/engineering/deployment-diagrams","mapDocPath":"docs/engineering/deployment-diagrams/deployment-diagrams-maps.md","mapHtmlPath":"docs/engineering/deployment-diagrams/deployment-diagrams-maps.html","summary":"运行、构建、桌面壳、CI 和部署节点。","count":0,"items":[]},{"id":"engineering:category:class_structural","kind":"class_structural","title":"Class / Structural Diagrams","directory":"docs/engineering/class-structural-diagrams","mapDocPath":"docs/engineering/class-structural-diagrams/class-structural-diagrams-maps.md","mapHtmlPath":"docs/engineering/class-structural-diagrams/class-structural-diagrams-maps.html","summary":"按业务/技术语境恢复的结构协作切片,不按顶层 layer 或关系数量凑图。","count":10,"items":[{"id":"engineering:diagram:class-structural:boards-gat562_mesh_evb_pro-include-boards","kind":"class_structural","title":"结构协作:结构切片 boards · gat562_mesh_evb_pro/include/boards","summary":"解释 boards/gat562_mesh_evb_pro/include/boards 这一结构切片中类、接口、组件或值对象如何共同承担结构切片 boards中的结构职责;候选对象包括 Gat562Board、SX1262、Sx1262RadioPacketIo、Gat562Board::I2cGuard、GpsRuntime。","docPath":"docs/engineering/class-structural-diagrams/boards-gat562_mesh_evb_pro-include-boards/class-structural-diagram.md","htmlPath":"docs/engineering/class-structural-diagrams/boards-gat562_mesh_evb_pro-include-boards/class-structural-diagram.html","anchor":"engineering:class-structural:boards-gat562_mesh_evb_pro-include-boards","status":"candidate","confidence":"high","mermaidKind":"classDiagram","mermaid":"classDiagram\n class Gat562Board[\"Gat562Board\"] {\n \u003c\u003cclass\u003e\u003e\n }\n class SX1262[\"SX1262\"] {\n \u003c\u003cclass\u003e\u003e\n }\n class Sx1262RadioPacketIo[\"Sx1262RadioPacketIo\"] {\n \u003c\u003cclass\u003e\u003e\n }\n class Gat562Board_I2cGuard[\"Gat562Board I2cGuard\"] {\n \u003c\u003cclass\u003e\u003e\n }\n class GpsRuntime[\"GpsRuntime\"] {\n \u003c\u003cclass\u003e\u003e\n }\n class InputRuntime[\"InputRuntime\"] {\n \u003c\u003cclass\u003e\u003e\n }\n class Module[\"Module\"] {\n \u003c\u003cclass\u003e\u003e\n }\n class TwoWire[\"TwoWire\"] {\n \u003c\u003cclass\u003e\u003e\n }\n class GpsRuntime_2[\"GpsRuntime\"] {\n \u003c\u003cclass\u003e\u003e\n }\n class InputRuntime_2[\"InputRuntime\"] {\n \u003c\u003cclass\u003e\u003e\n }\n class IRadioPacketIo[\"IRadioPacketIo\"] {\n \u003c\u003cclass\u003e\u003e\n }\n class MonoDisplay[\"MonoDisplay\"] {\n \u003c\u003cclass\u003e\u003e\n }\n Gat562Board --|\u003e TwoWire : 继承\n Gat562Board_I2cGuard --|\u003e Gat562Board : 继承","readingGuide":["这张 Class / Structural Diagram 聚焦 boards/gat562_mesh_evb_pro/include/boards 这一结构切片,而不是整个 boards 顶层目录。","它只放入类、接口、枚举或结构类型;方法级高引用对象会进入 Component/Hotspot,不再混入结构协作图。","候选语境是「结构切片 boards」。读图时先确认这些对象是否共同承载同一个业务能力、共享支撑机制或适配边界。","图中已绘制 2 条类级关系,主要来自继承、接口实现、创建或引用证据。"],"technicalAnalysis":["boards/gat562_mesh_evb_pro/include/boards 当前包含 12 个类/结构和 0 个接口/trait 候选对象。","当前观察到 2 条类级结构关系。","这张图的解释目标是结构职责和边界:哪些对象像领域模型、哪些对象像接口契约、哪些对象像策略/适配器或共享支撑。","如果图中对象只是同目录但没有共同业务语境或结构关系,生成流程必须拆分或降级为 Component/Hotspot,而不是继续保留为 Class / Structural Diagram。"],"businessRelation":["该图候选关联「结构切片 boards」,应该回连到组织/过程模型中对应 Use Case 的 Class Collaboration、Activity 或 Sequence 下钻图。","软件结构模型不能只说“这里有很多类”,而要说明这些类如何让业务变化更容易或更困难。","候选对象包括:Gat562Board、SX1262、Sx1262RadioPacketIo、Gat562Board::I2cGuard、GpsRuntime、InputRuntime。"],"governanceNotes":["不要把顶层 layer、目录名或关系数量当作结构图的解释对象;结构图必须围绕可命名的业务/技术语境。","当某个对象脱离当前语境、没有关系说明或只是高引用工具类时,应从该图移除,转入 Component/Hotspot 或共享支撑切片。","变更 boards/gat562_mesh_evb_pro/include/boards 时,同步维护它和相关 Use Case、Component、Sequence 的引用关系。"],"coverage":["结构切片:boards/gat562_mesh_evb_pro/include/boards","候选业务/技术语境:结构切片 boards","所属工程边界:boards","候选结构对象数:12","候选结构关系数:2","对象:Gat562Board (class)","对象:SX1262 (class)","对象:Sx1262RadioPacketIo (class)","对象:Gat562Board::I2cGuard (class)","对象:GpsRuntime (class)","对象:InputRuntime (class)","对象:Module (class)","对象:TwoWire (class)"],"evidencePaths":["boards/gat562_mesh_evb_pro/include/boards/gat562_mesh_evb_pro/gat562_board.h#L62","boards/gat562_mesh_evb_pro/include/boards/gat562_mesh_evb_pro/sx1262_radio_packet_io.h#L8","boards/gat562_mesh_evb_pro/include/boards/gat562_mesh_evb_pro/sx1262_radio_packet_io.h#L13","boards/gat562_mesh_evb_pro/include/boards/gat562_mesh_evb_pro/gat562_board.h#L65","boards/gat562_mesh_evb_pro/include/boards/gat562_mesh_evb_pro/gps_runtime.h#L13","boards/gat562_mesh_evb_pro/include/boards/gat562_mesh_evb_pro/input_runtime.h#L8","boards/gat562_mesh_evb_pro/include/boards/gat562_mesh_evb_pro/sx1262_radio_packet_io.h#L7","boards/gat562_mesh_evb_pro/include/boards/gat562_mesh_evb_pro/gat562_board.h#L13","boards/gat562_mesh_evb_pro/include/boards/gat562_mesh_evb_pro/gat562_board.h#L28","boards/gat562_mesh_evb_pro/include/boards/gat562_mesh_evb_pro/gat562_board.h#L29"],"questions":["该结构切片来自本地仓库证据;当前未发现足够 Trace 证据把它绑定到唯一业务故事,因此只作为软件结构模型候选视角。"],"scope":{"packageId":"boards","filePath":"boards/gat562_mesh_evb_pro/include/boards"},"drilldowns":[{"id":"engineering:diagram:technical-hotspot:dependency-cluster--boards","kind":"technical_hotspot","title":"依赖簇:boards 技术热点","summary":"该模块依赖多个外部边界,当前按候选技术耦合中心处理;图中只保留仓库证据已经观察到的依赖方向和边界。","docPath":"docs/engineering/technical-hotspots/dependency-cluster--boards/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/dependency-cluster--boards/technical-hotspot.html","anchor":"engineering:hotspot:dependency-cluster:boards","relation":"risk_detail","reason":"查看该结构边界中的热点,确认复杂度集中在哪个对象、文件或关系簇上。"}],"elements":[{"id":"engineering:diagram:class-structural:boards-gat562_mesh_evb_pro-include-boards:element:gat562board","mermaidId":"Gat562Board","label":"Gat562Board","kind":"component","anchor":"engineering:class-structural:boards-gat562_mesh_evb_pro-include-boards","summary":"Gat562Board 属于 boards/gat562_mesh_evb_pro/include/boards 结构切片,用来解释「结构切片 boards」中的一个结构职责,而不是因为它在 boards 中关系数量高才被放入图。","role":"结构对象:它的职责必须结合 Use Case、Sequence 或 Component 下钻证据解释,不能只靠名称或目录判断。","whyItExists":"它位于 boards/gat562_mesh_evb_pro/include/boards/gat562_mesh_evb_pro/gat562_board.h,并且和同切片其它类/接口处在同一源码语境;该语境比顶层目录 boards 更接近真实业务或架构边界。","relationshipMeaning":"图中的同切片关系表示候选结构协作边界;只有存在接口实现、继承、组合、策略或端口证据时,才应进一步标注为明确设计关系。","drilldownIntent":"下钻 Gat562Board 应验证它在 Component、Sequence、Use Case Class Collaboration 中承担的具体角色,避免孤立类名被误读成业务解释。","businessRelevance":"Gat562Board 是「结构切片 boards」候选技术承载对象;当前文档通过 Trace/Refine 链接说明它服务的触发条件、流程或规则,证据不足时会降低置信度或缩小覆盖范围。","changeImpact":"修改 Gat562Board 可能影响 boards/gat562_mesh_evb_pro/include/boards 内的结构说明,并应同步检查相关 Design/Engineering/Architecture 文档是否仍一致。","evidence":["boards/gat562_mesh_evb_pro/include/boards/gat562_mesh_evb_pro/gat562_board.h#L62","结构切片:boards/gat562_mesh_evb_pro/include/boards","对象类型:class","候选语境:结构切片 boards"],"risks":["当前切片来自本地仓库证据和路径语境推断;图中对象必须能解释同一个结构语境,否则生成流程会拆分或降级。"],"questions":[],"confidence":"high","drilldowns":[]},{"id":"engineering:diagram:class-structural:boards-gat562_mesh_evb_pro-include-boards:element:sx1262","mermaidId":"SX1262","label":"SX1262","kind":"component","anchor":"engineering:class-structural:boards-gat562_mesh_evb_pro-include-boards","summary":"SX1262 属于 boards/gat562_mesh_evb_pro/include/boards 结构切片,用来解释「结构切片 boards」中的一个结构职责,而不是因为它在 boards 中关系数量高才被放入图。","role":"结构对象:它的职责必须结合 Use Case、Sequence 或 Component 下钻证据解释,不能只靠名称或目录判断。","whyItExists":"它位于 boards/gat562_mesh_evb_pro/include/boards/gat562_mesh_evb_pro/sx1262_radio_packet_io.h,并且和同切片其它类/接口处在同一源码语境;该语境比顶层目录 boards 更接近真实业务或架构边界。","relationshipMeaning":"图中的同切片关系表示候选结构协作边界;只有存在接口实现、继承、组合、策略或端口证据时,才应进一步标注为明确设计关系。","drilldownIntent":"下钻 SX1262 应验证它在 Component、Sequence、Use Case Class Collaboration 中承担的具体角色,避免孤立类名被误读成业务解释。","businessRelevance":"SX1262 是「结构切片 boards」候选技术承载对象;当前文档通过 Trace/Refine 链接说明它服务的触发条件、流程或规则,证据不足时会降低置信度或缩小覆盖范围。","changeImpact":"修改 SX1262 可能影响 boards/gat562_mesh_evb_pro/include/boards 内的结构说明,并应同步检查相关 Design/Engineering/Architecture 文档是否仍一致。","evidence":["boards/gat562_mesh_evb_pro/include/boards/gat562_mesh_evb_pro/sx1262_radio_packet_io.h#L8","结构切片:boards/gat562_mesh_evb_pro/include/boards","对象类型:class","候选语境:结构切片 boards"],"risks":["当前切片来自本地仓库证据和路径语境推断;图中对象必须能解释同一个结构语境,否则生成流程会拆分或降级。"],"questions":[],"confidence":"high","drilldowns":[]},{"id":"engineering:diagram:class-structural:boards-gat562_mesh_evb_pro-include-boards:element:sx1262radiopacketio","mermaidId":"Sx1262RadioPacketIo","label":"Sx1262RadioPacketIo","kind":"component","anchor":"engineering:class-structural:boards-gat562_mesh_evb_pro-include-boards","summary":"Sx1262RadioPacketIo 属于 boards/gat562_mesh_evb_pro/include/boards 结构切片,用来解释「结构切片 boards」中的一个结构职责,而不是因为它在 boards 中关系数量高才被放入图。","role":"结构对象:它的职责必须结合 Use Case、Sequence 或 Component 下钻证据解释,不能只靠名称或目录判断。","whyItExists":"它位于 boards/gat562_mesh_evb_pro/include/boards/gat562_mesh_evb_pro/sx1262_radio_packet_io.h,并且和同切片其它类/接口处在同一源码语境;该语境比顶层目录 boards 更接近真实业务或架构边界。","relationshipMeaning":"图中的同切片关系表示候选结构协作边界;只有存在接口实现、继承、组合、策略或端口证据时,才应进一步标注为明确设计关系。","drilldownIntent":"下钻 Sx1262RadioPacketIo 应验证它在 Component、Sequence、Use Case Class Collaboration 中承担的具体角色,避免孤立类名被误读成业务解释。","businessRelevance":"Sx1262RadioPacketIo 是「结构切片 boards」候选技术承载对象;当前文档通过 Trace/Refine 链接说明它服务的触发条件、流程或规则,证据不足时会降低置信度或缩小覆盖范围。","changeImpact":"修改 Sx1262RadioPacketIo 可能影响 boards/gat562_mesh_evb_pro/include/boards 内的结构说明,并应同步检查相关 Design/Engineering/Architecture 文档是否仍一致。","evidence":["boards/gat562_mesh_evb_pro/include/boards/gat562_mesh_evb_pro/sx1262_radio_packet_io.h#L13","结构切片:boards/gat562_mesh_evb_pro/include/boards","对象类型:class","候选语境:结构切片 boards"],"risks":["当前切片来自本地仓库证据和路径语境推断;图中对象必须能解释同一个结构语境,否则生成流程会拆分或降级。"],"questions":[],"confidence":"high","drilldowns":[]},{"id":"engineering:diagram:class-structural:boards-gat562_mesh_evb_pro-include-boards:element:gat562board::i2cguard","mermaidId":"Gat562Board_I2cGuard","label":"Gat562Board::I2cGuard","kind":"component","anchor":"engineering:class-structural:boards-gat562_mesh_evb_pro-include-boards","summary":"Gat562Board::I2cGuard 属于 boards/gat562_mesh_evb_pro/include/boards 结构切片,用来解释「结构切片 boards」中的一个结构职责,而不是因为它在 boards 中关系数量高才被放入图。","role":"结构对象:它的职责必须结合 Use Case、Sequence 或 Component 下钻证据解释,不能只靠名称或目录判断。","whyItExists":"它位于 boards/gat562_mesh_evb_pro/include/boards/gat562_mesh_evb_pro/gat562_board.h,并且和同切片其它类/接口处在同一源码语境;该语境比顶层目录 boards 更接近真实业务或架构边界。","relationshipMeaning":"图中的同切片关系表示候选结构协作边界;只有存在接口实现、继承、组合、策略或端口证据时,才应进一步标注为明确设计关系。","drilldownIntent":"下钻 Gat562Board::I2cGuard 应验证它在 Component、Sequence、Use Case Class Collaboration 中承担的具体角色,避免孤立类名被误读成业务解释。","businessRelevance":"Gat562Board::I2cGuard 是「结构切片 boards」候选技术承载对象;当前文档通过 Trace/Refine 链接说明它服务的触发条件、流程或规则,证据不足时会降低置信度或缩小覆盖范围。","changeImpact":"修改 Gat562Board::I2cGuard 可能影响 boards/gat562_mesh_evb_pro/include/boards 内的结构说明,并应同步检查相关 Design/Engineering/Architecture 文档是否仍一致。","evidence":["boards/gat562_mesh_evb_pro/include/boards/gat562_mesh_evb_pro/gat562_board.h#L65","结构切片:boards/gat562_mesh_evb_pro/include/boards","对象类型:class","候选语境:结构切片 boards"],"risks":["当前切片来自本地仓库证据和路径语境推断;图中对象必须能解释同一个结构语境,否则生成流程会拆分或降级。"],"questions":[],"confidence":"high","drilldowns":[]},{"id":"engineering:diagram:class-structural:boards-gat562_mesh_evb_pro-include-boards:element:gpsruntime","mermaidId":"GpsRuntime","label":"GpsRuntime","kind":"component","anchor":"engineering:class-structural:boards-gat562_mesh_evb_pro-include-boards","summary":"GpsRuntime 属于 boards/gat562_mesh_evb_pro/include/boards 结构切片,用来解释「结构切片 boards」中的一个结构职责,而不是因为它在 boards 中关系数量高才被放入图。","role":"结构对象:它的职责必须结合 Use Case、Sequence 或 Component 下钻证据解释,不能只靠名称或目录判断。","whyItExists":"它位于 boards/gat562_mesh_evb_pro/include/boards/gat562_mesh_evb_pro/gps_runtime.h,并且和同切片其它类/接口处在同一源码语境;该语境比顶层目录 boards 更接近真实业务或架构边界。","relationshipMeaning":"图中的同切片关系表示候选结构协作边界;只有存在接口实现、继承、组合、策略或端口证据时,才应进一步标注为明确设计关系。","drilldownIntent":"下钻 GpsRuntime 应验证它在 Component、Sequence、Use Case Class Collaboration 中承担的具体角色,避免孤立类名被误读成业务解释。","businessRelevance":"GpsRuntime 是「结构切片 boards」候选技术承载对象;当前文档通过 Trace/Refine 链接说明它服务的触发条件、流程或规则,证据不足时会降低置信度或缩小覆盖范围。","changeImpact":"修改 GpsRuntime 可能影响 boards/gat562_mesh_evb_pro/include/boards 内的结构说明,并应同步检查相关 Design/Engineering/Architecture 文档是否仍一致。","evidence":["boards/gat562_mesh_evb_pro/include/boards/gat562_mesh_evb_pro/gps_runtime.h#L13","结构切片:boards/gat562_mesh_evb_pro/include/boards","对象类型:class","候选语境:结构切片 boards"],"risks":["当前切片来自本地仓库证据和路径语境推断;图中对象必须能解释同一个结构语境,否则生成流程会拆分或降级。"],"questions":[],"confidence":"high","drilldowns":[]},{"id":"engineering:diagram:class-structural:boards-gat562_mesh_evb_pro-include-boards:element:inputruntime","mermaidId":"InputRuntime","label":"InputRuntime","kind":"component","anchor":"engineering:class-structural:boards-gat562_mesh_evb_pro-include-boards","summary":"InputRuntime 属于 boards/gat562_mesh_evb_pro/include/boards 结构切片,用来解释「结构切片 boards」中的一个结构职责,而不是因为它在 boards 中关系数量高才被放入图。","role":"结构对象:它的职责必须结合 Use Case、Sequence 或 Component 下钻证据解释,不能只靠名称或目录判断。","whyItExists":"它位于 boards/gat562_mesh_evb_pro/include/boards/gat562_mesh_evb_pro/input_runtime.h,并且和同切片其它类/接口处在同一源码语境;该语境比顶层目录 boards 更接近真实业务或架构边界。","relationshipMeaning":"图中的同切片关系表示候选结构协作边界;只有存在接口实现、继承、组合、策略或端口证据时,才应进一步标注为明确设计关系。","drilldownIntent":"下钻 InputRuntime 应验证它在 Component、Sequence、Use Case Class Collaboration 中承担的具体角色,避免孤立类名被误读成业务解释。","businessRelevance":"InputRuntime 是「结构切片 boards」候选技术承载对象;当前文档通过 Trace/Refine 链接说明它服务的触发条件、流程或规则,证据不足时会降低置信度或缩小覆盖范围。","changeImpact":"修改 InputRuntime 可能影响 boards/gat562_mesh_evb_pro/include/boards 内的结构说明,并应同步检查相关 Design/Engineering/Architecture 文档是否仍一致。","evidence":["boards/gat562_mesh_evb_pro/include/boards/gat562_mesh_evb_pro/input_runtime.h#L8","结构切片:boards/gat562_mesh_evb_pro/include/boards","对象类型:class","候选语境:结构切片 boards"],"risks":["当前切片来自本地仓库证据和路径语境推断;图中对象必须能解释同一个结构语境,否则生成流程会拆分或降级。"],"questions":[],"confidence":"high","drilldowns":[]},{"id":"engineering:diagram:class-structural:boards-gat562_mesh_evb_pro-include-boards:element:module","mermaidId":"Module","label":"Module","kind":"component","anchor":"engineering:class-structural:boards-gat562_mesh_evb_pro-include-boards","summary":"Module 属于 boards/gat562_mesh_evb_pro/include/boards 结构切片,用来解释「结构切片 boards」中的一个结构职责,而不是因为它在 boards 中关系数量高才被放入图。","role":"结构对象:它的职责必须结合 Use Case、Sequence 或 Component 下钻证据解释,不能只靠名称或目录判断。","whyItExists":"它位于 boards/gat562_mesh_evb_pro/include/boards/gat562_mesh_evb_pro/sx1262_radio_packet_io.h,并且和同切片其它类/接口处在同一源码语境;该语境比顶层目录 boards 更接近真实业务或架构边界。","relationshipMeaning":"图中的同切片关系表示候选结构协作边界;只有存在接口实现、继承、组合、策略或端口证据时,才应进一步标注为明确设计关系。","drilldownIntent":"下钻 Module 应验证它在 Component、Sequence、Use Case Class Collaboration 中承担的具体角色,避免孤立类名被误读成业务解释。","businessRelevance":"Module 是「结构切片 boards」候选技术承载对象;当前文档通过 Trace/Refine 链接说明它服务的触发条件、流程或规则,证据不足时会降低置信度或缩小覆盖范围。","changeImpact":"修改 Module 可能影响 boards/gat562_mesh_evb_pro/include/boards 内的结构说明,并应同步检查相关 Design/Engineering/Architecture 文档是否仍一致。","evidence":["boards/gat562_mesh_evb_pro/include/boards/gat562_mesh_evb_pro/sx1262_radio_packet_io.h#L7","结构切片:boards/gat562_mesh_evb_pro/include/boards","对象类型:class","候选语境:结构切片 boards"],"risks":["当前切片来自本地仓库证据和路径语境推断;图中对象必须能解释同一个结构语境,否则生成流程会拆分或降级。"],"questions":[],"confidence":"high","drilldowns":[]},{"id":"engineering:diagram:class-structural:boards-gat562_mesh_evb_pro-include-boards:element:twowire","mermaidId":"TwoWire","label":"TwoWire","kind":"component","anchor":"engineering:class-structural:boards-gat562_mesh_evb_pro-include-boards","summary":"TwoWire 属于 boards/gat562_mesh_evb_pro/include/boards 结构切片,用来解释「结构切片 boards」中的一个结构职责,而不是因为它在 boards 中关系数量高才被放入图。","role":"结构对象:它的职责必须结合 Use Case、Sequence 或 Component 下钻证据解释,不能只靠名称或目录判断。","whyItExists":"它位于 boards/gat562_mesh_evb_pro/include/boards/gat562_mesh_evb_pro/gat562_board.h,并且和同切片其它类/接口处在同一源码语境;该语境比顶层目录 boards 更接近真实业务或架构边界。","relationshipMeaning":"图中的同切片关系表示候选结构协作边界;只有存在接口实现、继承、组合、策略或端口证据时,才应进一步标注为明确设计关系。","drilldownIntent":"下钻 TwoWire 应验证它在 Component、Sequence、Use Case Class Collaboration 中承担的具体角色,避免孤立类名被误读成业务解释。","businessRelevance":"TwoWire 是「结构切片 boards」候选技术承载对象;当前文档通过 Trace/Refine 链接说明它服务的触发条件、流程或规则,证据不足时会降低置信度或缩小覆盖范围。","changeImpact":"修改 TwoWire 可能影响 boards/gat562_mesh_evb_pro/include/boards 内的结构说明,并应同步检查相关 Design/Engineering/Architecture 文档是否仍一致。","evidence":["boards/gat562_mesh_evb_pro/include/boards/gat562_mesh_evb_pro/gat562_board.h#L13","结构切片:boards/gat562_mesh_evb_pro/include/boards","对象类型:class","候选语境:结构切片 boards"],"risks":["当前切片来自本地仓库证据和路径语境推断;图中对象必须能解释同一个结构语境,否则生成流程会拆分或降级。"],"questions":[],"confidence":"high","drilldowns":[]},{"id":"engineering:diagram:class-structural:boards-gat562_mesh_evb_pro-include-boards:element:gpsruntime","mermaidId":"GpsRuntime","label":"GpsRuntime","kind":"component","anchor":"engineering:class-structural:boards-gat562_mesh_evb_pro-include-boards","summary":"GpsRuntime 属于 boards/gat562_mesh_evb_pro/include/boards 结构切片,用来解释「结构切片 boards」中的一个结构职责,而不是因为它在 boards 中关系数量高才被放入图。","role":"结构对象:它的职责必须结合 Use Case、Sequence 或 Component 下钻证据解释,不能只靠名称或目录判断。","whyItExists":"它位于 boards/gat562_mesh_evb_pro/include/boards/gat562_mesh_evb_pro/gat562_board.h,并且和同切片其它类/接口处在同一源码语境;该语境比顶层目录 boards 更接近真实业务或架构边界。","relationshipMeaning":"图中的同切片关系表示候选结构协作边界;只有存在接口实现、继承、组合、策略或端口证据时,才应进一步标注为明确设计关系。","drilldownIntent":"下钻 GpsRuntime 应验证它在 Component、Sequence、Use Case Class Collaboration 中承担的具体角色,避免孤立类名被误读成业务解释。","businessRelevance":"GpsRuntime 是「结构切片 boards」候选技术承载对象;当前文档通过 Trace/Refine 链接说明它服务的触发条件、流程或规则,证据不足时会降低置信度或缩小覆盖范围。","changeImpact":"修改 GpsRuntime 可能影响 boards/gat562_mesh_evb_pro/include/boards 内的结构说明,并应同步检查相关 Design/Engineering/Architecture 文档是否仍一致。","evidence":["boards/gat562_mesh_evb_pro/include/boards/gat562_mesh_evb_pro/gat562_board.h#L28","结构切片:boards/gat562_mesh_evb_pro/include/boards","对象类型:class","候选语境:结构切片 boards"],"risks":["当前切片来自本地仓库证据和路径语境推断;图中对象必须能解释同一个结构语境,否则生成流程会拆分或降级。"],"questions":[],"confidence":"high","drilldowns":[]},{"id":"engineering:diagram:class-structural:boards-gat562_mesh_evb_pro-include-boards:element:inputruntime","mermaidId":"InputRuntime","label":"InputRuntime","kind":"component","anchor":"engineering:class-structural:boards-gat562_mesh_evb_pro-include-boards","summary":"InputRuntime 属于 boards/gat562_mesh_evb_pro/include/boards 结构切片,用来解释「结构切片 boards」中的一个结构职责,而不是因为它在 boards 中关系数量高才被放入图。","role":"结构对象:它的职责必须结合 Use Case、Sequence 或 Component 下钻证据解释,不能只靠名称或目录判断。","whyItExists":"它位于 boards/gat562_mesh_evb_pro/include/boards/gat562_mesh_evb_pro/gat562_board.h,并且和同切片其它类/接口处在同一源码语境;该语境比顶层目录 boards 更接近真实业务或架构边界。","relationshipMeaning":"图中的同切片关系表示候选结构协作边界;只有存在接口实现、继承、组合、策略或端口证据时,才应进一步标注为明确设计关系。","drilldownIntent":"下钻 InputRuntime 应验证它在 Component、Sequence、Use Case Class Collaboration 中承担的具体角色,避免孤立类名被误读成业务解释。","businessRelevance":"InputRuntime 是「结构切片 boards」候选技术承载对象;当前文档通过 Trace/Refine 链接说明它服务的触发条件、流程或规则,证据不足时会降低置信度或缩小覆盖范围。","changeImpact":"修改 InputRuntime 可能影响 boards/gat562_mesh_evb_pro/include/boards 内的结构说明,并应同步检查相关 Design/Engineering/Architecture 文档是否仍一致。","evidence":["boards/gat562_mesh_evb_pro/include/boards/gat562_mesh_evb_pro/gat562_board.h#L29","结构切片:boards/gat562_mesh_evb_pro/include/boards","对象类型:class","候选语境:结构切片 boards"],"risks":["当前切片来自本地仓库证据和路径语境推断;图中对象必须能解释同一个结构语境,否则生成流程会拆分或降级。"],"questions":[],"confidence":"high","drilldowns":[]},{"id":"engineering:diagram:class-structural:boards-gat562_mesh_evb_pro-include-boards:element:iradiopacketio","mermaidId":"IRadioPacketIo","label":"IRadioPacketIo","kind":"component","anchor":"engineering:class-structural:boards-gat562_mesh_evb_pro-include-boards","summary":"IRadioPacketIo 属于 boards/gat562_mesh_evb_pro/include/boards 结构切片,用来解释「结构切片 boards」中的一个结构职责,而不是因为它在 boards 中关系数量高才被放入图。","role":"结构对象:它的职责必须结合 Use Case、Sequence 或 Component 下钻证据解释,不能只靠名称或目录判断。","whyItExists":"它位于 boards/gat562_mesh_evb_pro/include/boards/gat562_mesh_evb_pro/gat562_board.h,并且和同切片其它类/接口处在同一源码语境;该语境比顶层目录 boards 更接近真实业务或架构边界。","relationshipMeaning":"图中的同切片关系表示候选结构协作边界;只有存在接口实现、继承、组合、策略或端口证据时,才应进一步标注为明确设计关系。","drilldownIntent":"下钻 IRadioPacketIo 应验证它在 Component、Sequence、Use Case Class Collaboration 中承担的具体角色,避免孤立类名被误读成业务解释。","businessRelevance":"IRadioPacketIo 是「结构切片 boards」候选技术承载对象;当前文档通过 Trace/Refine 链接说明它服务的触发条件、流程或规则,证据不足时会降低置信度或缩小覆盖范围。","changeImpact":"修改 IRadioPacketIo 可能影响 boards/gat562_mesh_evb_pro/include/boards 内的结构说明,并应同步检查相关 Design/Engineering/Architecture 文档是否仍一致。","evidence":["boards/gat562_mesh_evb_pro/include/boards/gat562_mesh_evb_pro/gat562_board.h#L22","结构切片:boards/gat562_mesh_evb_pro/include/boards","对象类型:class","候选语境:结构切片 boards"],"risks":["当前切片来自本地仓库证据和路径语境推断;图中对象必须能解释同一个结构语境,否则生成流程会拆分或降级。"],"questions":[],"confidence":"high","drilldowns":[]},{"id":"engineering:diagram:class-structural:boards-gat562_mesh_evb_pro-include-boards:element:monodisplay","mermaidId":"MonoDisplay","label":"MonoDisplay","kind":"component","anchor":"engineering:class-structural:boards-gat562_mesh_evb_pro-include-boards","summary":"MonoDisplay 属于 boards/gat562_mesh_evb_pro/include/boards 结构切片,用来解释「结构切片 boards」中的一个结构职责,而不是因为它在 boards 中关系数量高才被放入图。","role":"结构对象:它的职责必须结合 Use Case、Sequence 或 Component 下钻证据解释,不能只靠名称或目录判断。","whyItExists":"它位于 boards/gat562_mesh_evb_pro/include/boards/gat562_mesh_evb_pro/gat562_board.h,并且和同切片其它类/接口处在同一源码语境;该语境比顶层目录 boards 更接近真实业务或架构边界。","relationshipMeaning":"图中的同切片关系表示候选结构协作边界;只有存在接口实现、继承、组合、策略或端口证据时,才应进一步标注为明确设计关系。","drilldownIntent":"下钻 MonoDisplay 应验证它在 Component、Sequence、Use Case Class Collaboration 中承担的具体角色,避免孤立类名被误读成业务解释。","businessRelevance":"MonoDisplay 是「结构切片 boards」候选技术承载对象;当前文档通过 Trace/Refine 链接说明它服务的触发条件、流程或规则,证据不足时会降低置信度或缩小覆盖范围。","changeImpact":"修改 MonoDisplay 可能影响 boards/gat562_mesh_evb_pro/include/boards 内的结构说明,并应同步检查相关 Design/Engineering/Architecture 文档是否仍一致。","evidence":["boards/gat562_mesh_evb_pro/include/boards/gat562_mesh_evb_pro/gat562_board.h#L17","结构切片:boards/gat562_mesh_evb_pro/include/boards","对象类型:class","候选语境:结构切片 boards"],"risks":["当前切片来自本地仓库证据和路径语境推断;图中对象必须能解释同一个结构语境,否则生成流程会拆分或降级。"],"questions":[],"confidence":"high","drilldowns":[]}]},{"id":"engineering:diagram:class-structural:boards-t_echo_lite-include-boards","kind":"class_structural","title":"结构协作:结构切片 boards · t_echo_lite/include/boards","summary":"解释 boards/t_echo_lite/include/boards 这一结构切片中类、接口、组件或值对象如何共同承担结构切片 boards中的结构职责;候选对象包括 TEchoLiteBoard、Sx1262RadioPacketIo、TEchoLiteBoard::I2cGuard、GpsRuntime、Module。","docPath":"docs/engineering/class-structural-diagrams/boards-t_echo_lite-include-boards/class-structural-diagram.md","htmlPath":"docs/engineering/class-structural-diagrams/boards-t_echo_lite-include-boards/class-structural-diagram.html","anchor":"engineering:class-structural:boards-t_echo_lite-include-boards","status":"candidate","confidence":"high","mermaidKind":"classDiagram","mermaid":"classDiagram\n class TEchoLiteBoard[\"TEchoLiteBoard\"] {\n \u003c\u003cclass\u003e\u003e\n }\n class Sx1262RadioPacketIo[\"Sx1262RadioPacketIo\"] {\n \u003c\u003cclass\u003e\u003e\n }\n class TEchoLiteBoard_I2cGuard[\"TEchoLiteBoard I2cGuard\"] {\n \u003c\u003cclass\u003e\u003e\n }\n class GpsRuntime[\"GpsRuntime\"] {\n \u003c\u003cclass\u003e\u003e\n }\n class Module[\"Module\"] {\n \u003c\u003cclass\u003e\u003e\n }\n class SX1262[\"SX1262\"] {\n \u003c\u003cclass\u003e\u003e\n }\n class TwoWire[\"TwoWire\"] {\n \u003c\u003cclass\u003e\u003e\n }\n class GpsRuntime_2[\"GpsRuntime\"] {\n \u003c\u003cclass\u003e\u003e\n }\n class InputRuntime[\"InputRuntime\"] {\n \u003c\u003cclass\u003e\u003e\n }\n class InputRuntime_2[\"InputRuntime\"] {\n \u003c\u003cclass\u003e\u003e\n }\n class IRadioPacketIo[\"IRadioPacketIo\"] {\n \u003c\u003cclass\u003e\u003e\n }\n class MonoDisplay[\"MonoDisplay\"] {\n \u003c\u003cclass\u003e\u003e\n }\n TEchoLiteBoard --|\u003e TwoWire : 继承\n TEchoLiteBoard_I2cGuard --|\u003e TEchoLiteBoard : 继承","readingGuide":["这张 Class / Structural Diagram 聚焦 boards/t_echo_lite/include/boards 这一结构切片,而不是整个 boards 顶层目录。","它只放入类、接口、枚举或结构类型;方法级高引用对象会进入 Component/Hotspot,不再混入结构协作图。","候选语境是「结构切片 boards」。读图时先确认这些对象是否共同承载同一个业务能力、共享支撑机制或适配边界。","图中已绘制 2 条类级关系,主要来自继承、接口实现、创建或引用证据。"],"technicalAnalysis":["boards/t_echo_lite/include/boards 当前包含 12 个类/结构和 0 个接口/trait 候选对象。","当前观察到 2 条类级结构关系。","这张图的解释目标是结构职责和边界:哪些对象像领域模型、哪些对象像接口契约、哪些对象像策略/适配器或共享支撑。","如果图中对象只是同目录但没有共同业务语境或结构关系,生成流程必须拆分或降级为 Component/Hotspot,而不是继续保留为 Class / Structural Diagram。"],"businessRelation":["该图候选关联「结构切片 boards」,应该回连到组织/过程模型中对应 Use Case 的 Class Collaboration、Activity 或 Sequence 下钻图。","软件结构模型不能只说“这里有很多类”,而要说明这些类如何让业务变化更容易或更困难。","候选对象包括:TEchoLiteBoard、Sx1262RadioPacketIo、TEchoLiteBoard::I2cGuard、GpsRuntime、Module、SX1262。"],"governanceNotes":["不要把顶层 layer、目录名或关系数量当作结构图的解释对象;结构图必须围绕可命名的业务/技术语境。","当某个对象脱离当前语境、没有关系说明或只是高引用工具类时,应从该图移除,转入 Component/Hotspot 或共享支撑切片。","变更 boards/t_echo_lite/include/boards 时,同步维护它和相关 Use Case、Component、Sequence 的引用关系。"],"coverage":["结构切片:boards/t_echo_lite/include/boards","候选业务/技术语境:结构切片 boards","所属工程边界:boards","候选结构对象数:12","候选结构关系数:2","对象:TEchoLiteBoard (class)","对象:Sx1262RadioPacketIo (class)","对象:TEchoLiteBoard::I2cGuard (class)","对象:GpsRuntime (class)","对象:Module (class)","对象:SX1262 (class)","对象:TwoWire (class)","对象:GpsRuntime (class)"],"evidencePaths":["boards/t_echo_lite/include/boards/t_echo_lite/t_echo_lite_board.h#L83","boards/t_echo_lite/include/boards/t_echo_lite/sx1262_radio_packet_io.h#L13","boards/t_echo_lite/include/boards/t_echo_lite/t_echo_lite_board.h#L86","boards/t_echo_lite/include/boards/t_echo_lite/gps_runtime.h#L13","boards/t_echo_lite/include/boards/t_echo_lite/sx1262_radio_packet_io.h#L7","boards/t_echo_lite/include/boards/t_echo_lite/sx1262_radio_packet_io.h#L8","boards/t_echo_lite/include/boards/t_echo_lite/t_echo_lite_board.h#L13","boards/t_echo_lite/include/boards/t_echo_lite/t_echo_lite_board.h#L28","boards/t_echo_lite/include/boards/t_echo_lite/input_runtime.h#L10","boards/t_echo_lite/include/boards/t_echo_lite/t_echo_lite_board.h#L29"],"questions":["该结构切片来自本地仓库证据;当前未发现足够 Trace 证据把它绑定到唯一业务故事,因此只作为软件结构模型候选视角。"],"scope":{"packageId":"boards","filePath":"boards/t_echo_lite/include/boards"},"drilldowns":[{"id":"engineering:diagram:component:boards-makeboardprofile","kind":"component","title":"函数节点:makeBoardProfile","summary":"function 位于 boards/t_echo_lite/include/boards/t_echo_lite/board_profile.h#L188,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/boards-makeboardprofile/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/boards-makeboardprofile/component-diagram.html","anchor":"engineering:component:function:makeboardprofile:boards-t_echo_lite-include-boards-t_echo_lite-board_profile.h:188","relation":"realized_by","reason":"打开 函数节点:makeBoardProfile 的组件视角,是为了验证结构图里的对象角色是否有文件锚点 boards/t_echo_lite/include/boards/t_echo_lite/board_profile.h、被引用/调用关系和下游关系证据支撑。"},{"id":"engineering:diagram:component:boards-pinnum","kind":"component","title":"函数节点:pinNum","summary":"function 位于 boards/t_echo_lite/include/boards/t_echo_lite/board_profile.h#L8,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/boards-pinnum/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/boards-pinnum/component-diagram.html","anchor":"engineering:component:function:pinnum:boards-t_echo_lite-include-boards-t_echo_lite-board_profile.h:8","relation":"realized_by","reason":"打开 函数节点:pinNum 的组件视角,是为了验证结构图里的对象角色是否有文件锚点 boards/t_echo_lite/include/boards/t_echo_lite/board_profile.h、被引用/调用关系和下游关系证据支撑。"},{"id":"engineering:diagram:technical-hotspot:dependency-cluster--boards","kind":"technical_hotspot","title":"依赖簇:boards 技术热点","summary":"该模块依赖多个外部边界,当前按候选技术耦合中心处理;图中只保留仓库证据已经观察到的依赖方向和边界。","docPath":"docs/engineering/technical-hotspots/dependency-cluster--boards/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/dependency-cluster--boards/technical-hotspot.html","anchor":"engineering:hotspot:dependency-cluster:boards","relation":"risk_detail","reason":"查看该结构边界中的热点,确认复杂度集中在哪个对象、文件或关系簇上。"}],"elements":[{"id":"engineering:diagram:class-structural:boards-t_echo_lite-include-boards:element:techoliteboard","mermaidId":"TEchoLiteBoard","label":"TEchoLiteBoard","kind":"component","anchor":"engineering:class-structural:boards-t_echo_lite-include-boards","summary":"TEchoLiteBoard 属于 boards/t_echo_lite/include/boards 结构切片,用来解释「结构切片 boards」中的一个结构职责,而不是因为它在 boards 中关系数量高才被放入图。","role":"结构对象:它的职责必须结合 Use Case、Sequence 或 Component 下钻证据解释,不能只靠名称或目录判断。","whyItExists":"它位于 boards/t_echo_lite/include/boards/t_echo_lite/t_echo_lite_board.h,并且和同切片其它类/接口处在同一源码语境;该语境比顶层目录 boards 更接近真实业务或架构边界。","relationshipMeaning":"图中的同切片关系表示候选结构协作边界;只有存在接口实现、继承、组合、策略或端口证据时,才应进一步标注为明确设计关系。","drilldownIntent":"下钻 TEchoLiteBoard 应验证它在 Component、Sequence、Use Case Class Collaboration 中承担的具体角色,避免孤立类名被误读成业务解释。","businessRelevance":"TEchoLiteBoard 是「结构切片 boards」候选技术承载对象;当前文档通过 Trace/Refine 链接说明它服务的触发条件、流程或规则,证据不足时会降低置信度或缩小覆盖范围。","changeImpact":"修改 TEchoLiteBoard 可能影响 boards/t_echo_lite/include/boards 内的结构说明,并应同步检查相关 Design/Engineering/Architecture 文档是否仍一致。","evidence":["boards/t_echo_lite/include/boards/t_echo_lite/t_echo_lite_board.h#L83","结构切片:boards/t_echo_lite/include/boards","对象类型:class","候选语境:结构切片 boards"],"risks":["当前切片来自本地仓库证据和路径语境推断;图中对象必须能解释同一个结构语境,否则生成流程会拆分或降级。"],"questions":[],"confidence":"high","drilldowns":[]},{"id":"engineering:diagram:class-structural:boards-t_echo_lite-include-boards:element:sx1262radiopacketio","mermaidId":"Sx1262RadioPacketIo","label":"Sx1262RadioPacketIo","kind":"component","anchor":"engineering:class-structural:boards-t_echo_lite-include-boards","summary":"Sx1262RadioPacketIo 属于 boards/t_echo_lite/include/boards 结构切片,用来解释「结构切片 boards」中的一个结构职责,而不是因为它在 boards 中关系数量高才被放入图。","role":"结构对象:它的职责必须结合 Use Case、Sequence 或 Component 下钻证据解释,不能只靠名称或目录判断。","whyItExists":"它位于 boards/t_echo_lite/include/boards/t_echo_lite/sx1262_radio_packet_io.h,并且和同切片其它类/接口处在同一源码语境;该语境比顶层目录 boards 更接近真实业务或架构边界。","relationshipMeaning":"图中的同切片关系表示候选结构协作边界;只有存在接口实现、继承、组合、策略或端口证据时,才应进一步标注为明确设计关系。","drilldownIntent":"下钻 Sx1262RadioPacketIo 应验证它在 Component、Sequence、Use Case Class Collaboration 中承担的具体角色,避免孤立类名被误读成业务解释。","businessRelevance":"Sx1262RadioPacketIo 是「结构切片 boards」候选技术承载对象;当前文档通过 Trace/Refine 链接说明它服务的触发条件、流程或规则,证据不足时会降低置信度或缩小覆盖范围。","changeImpact":"修改 Sx1262RadioPacketIo 可能影响 boards/t_echo_lite/include/boards 内的结构说明,并应同步检查相关 Design/Engineering/Architecture 文档是否仍一致。","evidence":["boards/t_echo_lite/include/boards/t_echo_lite/sx1262_radio_packet_io.h#L13","结构切片:boards/t_echo_lite/include/boards","对象类型:class","候选语境:结构切片 boards"],"risks":["当前切片来自本地仓库证据和路径语境推断;图中对象必须能解释同一个结构语境,否则生成流程会拆分或降级。"],"questions":[],"confidence":"high","drilldowns":[]},{"id":"engineering:diagram:class-structural:boards-t_echo_lite-include-boards:element:techoliteboard::i2cguard","mermaidId":"TEchoLiteBoard_I2cGuard","label":"TEchoLiteBoard::I2cGuard","kind":"component","anchor":"engineering:class-structural:boards-t_echo_lite-include-boards","summary":"TEchoLiteBoard::I2cGuard 属于 boards/t_echo_lite/include/boards 结构切片,用来解释「结构切片 boards」中的一个结构职责,而不是因为它在 boards 中关系数量高才被放入图。","role":"结构对象:它的职责必须结合 Use Case、Sequence 或 Component 下钻证据解释,不能只靠名称或目录判断。","whyItExists":"它位于 boards/t_echo_lite/include/boards/t_echo_lite/t_echo_lite_board.h,并且和同切片其它类/接口处在同一源码语境;该语境比顶层目录 boards 更接近真实业务或架构边界。","relationshipMeaning":"图中的同切片关系表示候选结构协作边界;只有存在接口实现、继承、组合、策略或端口证据时,才应进一步标注为明确设计关系。","drilldownIntent":"下钻 TEchoLiteBoard::I2cGuard 应验证它在 Component、Sequence、Use Case Class Collaboration 中承担的具体角色,避免孤立类名被误读成业务解释。","businessRelevance":"TEchoLiteBoard::I2cGuard 是「结构切片 boards」候选技术承载对象;当前文档通过 Trace/Refine 链接说明它服务的触发条件、流程或规则,证据不足时会降低置信度或缩小覆盖范围。","changeImpact":"修改 TEchoLiteBoard::I2cGuard 可能影响 boards/t_echo_lite/include/boards 内的结构说明,并应同步检查相关 Design/Engineering/Architecture 文档是否仍一致。","evidence":["boards/t_echo_lite/include/boards/t_echo_lite/t_echo_lite_board.h#L86","结构切片:boards/t_echo_lite/include/boards","对象类型:class","候选语境:结构切片 boards"],"risks":["当前切片来自本地仓库证据和路径语境推断;图中对象必须能解释同一个结构语境,否则生成流程会拆分或降级。"],"questions":[],"confidence":"high","drilldowns":[]},{"id":"engineering:diagram:class-structural:boards-t_echo_lite-include-boards:element:gpsruntime","mermaidId":"GpsRuntime","label":"GpsRuntime","kind":"component","anchor":"engineering:class-structural:boards-t_echo_lite-include-boards","summary":"GpsRuntime 属于 boards/t_echo_lite/include/boards 结构切片,用来解释「结构切片 boards」中的一个结构职责,而不是因为它在 boards 中关系数量高才被放入图。","role":"结构对象:它的职责必须结合 Use Case、Sequence 或 Component 下钻证据解释,不能只靠名称或目录判断。","whyItExists":"它位于 boards/t_echo_lite/include/boards/t_echo_lite/gps_runtime.h,并且和同切片其它类/接口处在同一源码语境;该语境比顶层目录 boards 更接近真实业务或架构边界。","relationshipMeaning":"图中的同切片关系表示候选结构协作边界;只有存在接口实现、继承、组合、策略或端口证据时,才应进一步标注为明确设计关系。","drilldownIntent":"下钻 GpsRuntime 应验证它在 Component、Sequence、Use Case Class Collaboration 中承担的具体角色,避免孤立类名被误读成业务解释。","businessRelevance":"GpsRuntime 是「结构切片 boards」候选技术承载对象;当前文档通过 Trace/Refine 链接说明它服务的触发条件、流程或规则,证据不足时会降低置信度或缩小覆盖范围。","changeImpact":"修改 GpsRuntime 可能影响 boards/t_echo_lite/include/boards 内的结构说明,并应同步检查相关 Design/Engineering/Architecture 文档是否仍一致。","evidence":["boards/t_echo_lite/include/boards/t_echo_lite/gps_runtime.h#L13","结构切片:boards/t_echo_lite/include/boards","对象类型:class","候选语境:结构切片 boards"],"risks":["当前切片来自本地仓库证据和路径语境推断;图中对象必须能解释同一个结构语境,否则生成流程会拆分或降级。"],"questions":[],"confidence":"high","drilldowns":[]},{"id":"engineering:diagram:class-structural:boards-t_echo_lite-include-boards:element:module","mermaidId":"Module","label":"Module","kind":"component","anchor":"engineering:class-structural:boards-t_echo_lite-include-boards","summary":"Module 属于 boards/t_echo_lite/include/boards 结构切片,用来解释「结构切片 boards」中的一个结构职责,而不是因为它在 boards 中关系数量高才被放入图。","role":"结构对象:它的职责必须结合 Use Case、Sequence 或 Component 下钻证据解释,不能只靠名称或目录判断。","whyItExists":"它位于 boards/t_echo_lite/include/boards/t_echo_lite/sx1262_radio_packet_io.h,并且和同切片其它类/接口处在同一源码语境;该语境比顶层目录 boards 更接近真实业务或架构边界。","relationshipMeaning":"图中的同切片关系表示候选结构协作边界;只有存在接口实现、继承、组合、策略或端口证据时,才应进一步标注为明确设计关系。","drilldownIntent":"下钻 Module 应验证它在 Component、Sequence、Use Case Class Collaboration 中承担的具体角色,避免孤立类名被误读成业务解释。","businessRelevance":"Module 是「结构切片 boards」候选技术承载对象;当前文档通过 Trace/Refine 链接说明它服务的触发条件、流程或规则,证据不足时会降低置信度或缩小覆盖范围。","changeImpact":"修改 Module 可能影响 boards/t_echo_lite/include/boards 内的结构说明,并应同步检查相关 Design/Engineering/Architecture 文档是否仍一致。","evidence":["boards/t_echo_lite/include/boards/t_echo_lite/sx1262_radio_packet_io.h#L7","结构切片:boards/t_echo_lite/include/boards","对象类型:class","候选语境:结构切片 boards"],"risks":["当前切片来自本地仓库证据和路径语境推断;图中对象必须能解释同一个结构语境,否则生成流程会拆分或降级。"],"questions":[],"confidence":"high","drilldowns":[]},{"id":"engineering:diagram:class-structural:boards-t_echo_lite-include-boards:element:sx1262","mermaidId":"SX1262","label":"SX1262","kind":"component","anchor":"engineering:class-structural:boards-t_echo_lite-include-boards","summary":"SX1262 属于 boards/t_echo_lite/include/boards 结构切片,用来解释「结构切片 boards」中的一个结构职责,而不是因为它在 boards 中关系数量高才被放入图。","role":"结构对象:它的职责必须结合 Use Case、Sequence 或 Component 下钻证据解释,不能只靠名称或目录判断。","whyItExists":"它位于 boards/t_echo_lite/include/boards/t_echo_lite/sx1262_radio_packet_io.h,并且和同切片其它类/接口处在同一源码语境;该语境比顶层目录 boards 更接近真实业务或架构边界。","relationshipMeaning":"图中的同切片关系表示候选结构协作边界;只有存在接口实现、继承、组合、策略或端口证据时,才应进一步标注为明确设计关系。","drilldownIntent":"下钻 SX1262 应验证它在 Component、Sequence、Use Case Class Collaboration 中承担的具体角色,避免孤立类名被误读成业务解释。","businessRelevance":"SX1262 是「结构切片 boards」候选技术承载对象;当前文档通过 Trace/Refine 链接说明它服务的触发条件、流程或规则,证据不足时会降低置信度或缩小覆盖范围。","changeImpact":"修改 SX1262 可能影响 boards/t_echo_lite/include/boards 内的结构说明,并应同步检查相关 Design/Engineering/Architecture 文档是否仍一致。","evidence":["boards/t_echo_lite/include/boards/t_echo_lite/sx1262_radio_packet_io.h#L8","结构切片:boards/t_echo_lite/include/boards","对象类型:class","候选语境:结构切片 boards"],"risks":["当前切片来自本地仓库证据和路径语境推断;图中对象必须能解释同一个结构语境,否则生成流程会拆分或降级。"],"questions":[],"confidence":"high","drilldowns":[]},{"id":"engineering:diagram:class-structural:boards-t_echo_lite-include-boards:element:twowire","mermaidId":"TwoWire","label":"TwoWire","kind":"component","anchor":"engineering:class-structural:boards-t_echo_lite-include-boards","summary":"TwoWire 属于 boards/t_echo_lite/include/boards 结构切片,用来解释「结构切片 boards」中的一个结构职责,而不是因为它在 boards 中关系数量高才被放入图。","role":"结构对象:它的职责必须结合 Use Case、Sequence 或 Component 下钻证据解释,不能只靠名称或目录判断。","whyItExists":"它位于 boards/t_echo_lite/include/boards/t_echo_lite/t_echo_lite_board.h,并且和同切片其它类/接口处在同一源码语境;该语境比顶层目录 boards 更接近真实业务或架构边界。","relationshipMeaning":"图中的同切片关系表示候选结构协作边界;只有存在接口实现、继承、组合、策略或端口证据时,才应进一步标注为明确设计关系。","drilldownIntent":"下钻 TwoWire 应验证它在 Component、Sequence、Use Case Class Collaboration 中承担的具体角色,避免孤立类名被误读成业务解释。","businessRelevance":"TwoWire 是「结构切片 boards」候选技术承载对象;当前文档通过 Trace/Refine 链接说明它服务的触发条件、流程或规则,证据不足时会降低置信度或缩小覆盖范围。","changeImpact":"修改 TwoWire 可能影响 boards/t_echo_lite/include/boards 内的结构说明,并应同步检查相关 Design/Engineering/Architecture 文档是否仍一致。","evidence":["boards/t_echo_lite/include/boards/t_echo_lite/t_echo_lite_board.h#L13","结构切片:boards/t_echo_lite/include/boards","对象类型:class","候选语境:结构切片 boards"],"risks":["当前切片来自本地仓库证据和路径语境推断;图中对象必须能解释同一个结构语境,否则生成流程会拆分或降级。"],"questions":[],"confidence":"high","drilldowns":[]},{"id":"engineering:diagram:class-structural:boards-t_echo_lite-include-boards:element:gpsruntime","mermaidId":"GpsRuntime","label":"GpsRuntime","kind":"component","anchor":"engineering:class-structural:boards-t_echo_lite-include-boards","summary":"GpsRuntime 属于 boards/t_echo_lite/include/boards 结构切片,用来解释「结构切片 boards」中的一个结构职责,而不是因为它在 boards 中关系数量高才被放入图。","role":"结构对象:它的职责必须结合 Use Case、Sequence 或 Component 下钻证据解释,不能只靠名称或目录判断。","whyItExists":"它位于 boards/t_echo_lite/include/boards/t_echo_lite/t_echo_lite_board.h,并且和同切片其它类/接口处在同一源码语境;该语境比顶层目录 boards 更接近真实业务或架构边界。","relationshipMeaning":"图中的同切片关系表示候选结构协作边界;只有存在接口实现、继承、组合、策略或端口证据时,才应进一步标注为明确设计关系。","drilldownIntent":"下钻 GpsRuntime 应验证它在 Component、Sequence、Use Case Class Collaboration 中承担的具体角色,避免孤立类名被误读成业务解释。","businessRelevance":"GpsRuntime 是「结构切片 boards」候选技术承载对象;当前文档通过 Trace/Refine 链接说明它服务的触发条件、流程或规则,证据不足时会降低置信度或缩小覆盖范围。","changeImpact":"修改 GpsRuntime 可能影响 boards/t_echo_lite/include/boards 内的结构说明,并应同步检查相关 Design/Engineering/Architecture 文档是否仍一致。","evidence":["boards/t_echo_lite/include/boards/t_echo_lite/t_echo_lite_board.h#L28","结构切片:boards/t_echo_lite/include/boards","对象类型:class","候选语境:结构切片 boards"],"risks":["当前切片来自本地仓库证据和路径语境推断;图中对象必须能解释同一个结构语境,否则生成流程会拆分或降级。"],"questions":[],"confidence":"high","drilldowns":[]},{"id":"engineering:diagram:class-structural:boards-t_echo_lite-include-boards:element:inputruntime","mermaidId":"InputRuntime","label":"InputRuntime","kind":"component","anchor":"engineering:class-structural:boards-t_echo_lite-include-boards","summary":"InputRuntime 属于 boards/t_echo_lite/include/boards 结构切片,用来解释「结构切片 boards」中的一个结构职责,而不是因为它在 boards 中关系数量高才被放入图。","role":"结构对象:它的职责必须结合 Use Case、Sequence 或 Component 下钻证据解释,不能只靠名称或目录判断。","whyItExists":"它位于 boards/t_echo_lite/include/boards/t_echo_lite/input_runtime.h,并且和同切片其它类/接口处在同一源码语境;该语境比顶层目录 boards 更接近真实业务或架构边界。","relationshipMeaning":"图中的同切片关系表示候选结构协作边界;只有存在接口实现、继承、组合、策略或端口证据时,才应进一步标注为明确设计关系。","drilldownIntent":"下钻 InputRuntime 应验证它在 Component、Sequence、Use Case Class Collaboration 中承担的具体角色,避免孤立类名被误读成业务解释。","businessRelevance":"InputRuntime 是「结构切片 boards」候选技术承载对象;当前文档通过 Trace/Refine 链接说明它服务的触发条件、流程或规则,证据不足时会降低置信度或缩小覆盖范围。","changeImpact":"修改 InputRuntime 可能影响 boards/t_echo_lite/include/boards 内的结构说明,并应同步检查相关 Design/Engineering/Architecture 文档是否仍一致。","evidence":["boards/t_echo_lite/include/boards/t_echo_lite/input_runtime.h#L10","结构切片:boards/t_echo_lite/include/boards","对象类型:class","候选语境:结构切片 boards"],"risks":["当前切片来自本地仓库证据和路径语境推断;图中对象必须能解释同一个结构语境,否则生成流程会拆分或降级。"],"questions":[],"confidence":"high","drilldowns":[]},{"id":"engineering:diagram:class-structural:boards-t_echo_lite-include-boards:element:inputruntime","mermaidId":"InputRuntime","label":"InputRuntime","kind":"component","anchor":"engineering:class-structural:boards-t_echo_lite-include-boards","summary":"InputRuntime 属于 boards/t_echo_lite/include/boards 结构切片,用来解释「结构切片 boards」中的一个结构职责,而不是因为它在 boards 中关系数量高才被放入图。","role":"结构对象:它的职责必须结合 Use Case、Sequence 或 Component 下钻证据解释,不能只靠名称或目录判断。","whyItExists":"它位于 boards/t_echo_lite/include/boards/t_echo_lite/t_echo_lite_board.h,并且和同切片其它类/接口处在同一源码语境;该语境比顶层目录 boards 更接近真实业务或架构边界。","relationshipMeaning":"图中的同切片关系表示候选结构协作边界;只有存在接口实现、继承、组合、策略或端口证据时,才应进一步标注为明确设计关系。","drilldownIntent":"下钻 InputRuntime 应验证它在 Component、Sequence、Use Case Class Collaboration 中承担的具体角色,避免孤立类名被误读成业务解释。","businessRelevance":"InputRuntime 是「结构切片 boards」候选技术承载对象;当前文档通过 Trace/Refine 链接说明它服务的触发条件、流程或规则,证据不足时会降低置信度或缩小覆盖范围。","changeImpact":"修改 InputRuntime 可能影响 boards/t_echo_lite/include/boards 内的结构说明,并应同步检查相关 Design/Engineering/Architecture 文档是否仍一致。","evidence":["boards/t_echo_lite/include/boards/t_echo_lite/t_echo_lite_board.h#L29","结构切片:boards/t_echo_lite/include/boards","对象类型:class","候选语境:结构切片 boards"],"risks":["当前切片来自本地仓库证据和路径语境推断;图中对象必须能解释同一个结构语境,否则生成流程会拆分或降级。"],"questions":[],"confidence":"high","drilldowns":[]},{"id":"engineering:diagram:class-structural:boards-t_echo_lite-include-boards:element:iradiopacketio","mermaidId":"IRadioPacketIo","label":"IRadioPacketIo","kind":"component","anchor":"engineering:class-structural:boards-t_echo_lite-include-boards","summary":"IRadioPacketIo 属于 boards/t_echo_lite/include/boards 结构切片,用来解释「结构切片 boards」中的一个结构职责,而不是因为它在 boards 中关系数量高才被放入图。","role":"结构对象:它的职责必须结合 Use Case、Sequence 或 Component 下钻证据解释,不能只靠名称或目录判断。","whyItExists":"它位于 boards/t_echo_lite/include/boards/t_echo_lite/t_echo_lite_board.h,并且和同切片其它类/接口处在同一源码语境;该语境比顶层目录 boards 更接近真实业务或架构边界。","relationshipMeaning":"图中的同切片关系表示候选结构协作边界;只有存在接口实现、继承、组合、策略或端口证据时,才应进一步标注为明确设计关系。","drilldownIntent":"下钻 IRadioPacketIo 应验证它在 Component、Sequence、Use Case Class Collaboration 中承担的具体角色,避免孤立类名被误读成业务解释。","businessRelevance":"IRadioPacketIo 是「结构切片 boards」候选技术承载对象;当前文档通过 Trace/Refine 链接说明它服务的触发条件、流程或规则,证据不足时会降低置信度或缩小覆盖范围。","changeImpact":"修改 IRadioPacketIo 可能影响 boards/t_echo_lite/include/boards 内的结构说明,并应同步检查相关 Design/Engineering/Architecture 文档是否仍一致。","evidence":["boards/t_echo_lite/include/boards/t_echo_lite/t_echo_lite_board.h#L22","结构切片:boards/t_echo_lite/include/boards","对象类型:class","候选语境:结构切片 boards"],"risks":["当前切片来自本地仓库证据和路径语境推断;图中对象必须能解释同一个结构语境,否则生成流程会拆分或降级。"],"questions":[],"confidence":"high","drilldowns":[]},{"id":"engineering:diagram:class-structural:boards-t_echo_lite-include-boards:element:monodisplay","mermaidId":"MonoDisplay","label":"MonoDisplay","kind":"component","anchor":"engineering:class-structural:boards-t_echo_lite-include-boards","summary":"MonoDisplay 属于 boards/t_echo_lite/include/boards 结构切片,用来解释「结构切片 boards」中的一个结构职责,而不是因为它在 boards 中关系数量高才被放入图。","role":"结构对象:它的职责必须结合 Use Case、Sequence 或 Component 下钻证据解释,不能只靠名称或目录判断。","whyItExists":"它位于 boards/t_echo_lite/include/boards/t_echo_lite/t_echo_lite_board.h,并且和同切片其它类/接口处在同一源码语境;该语境比顶层目录 boards 更接近真实业务或架构边界。","relationshipMeaning":"图中的同切片关系表示候选结构协作边界;只有存在接口实现、继承、组合、策略或端口证据时,才应进一步标注为明确设计关系。","drilldownIntent":"下钻 MonoDisplay 应验证它在 Component、Sequence、Use Case Class Collaboration 中承担的具体角色,避免孤立类名被误读成业务解释。","businessRelevance":"MonoDisplay 是「结构切片 boards」候选技术承载对象;当前文档通过 Trace/Refine 链接说明它服务的触发条件、流程或规则,证据不足时会降低置信度或缩小覆盖范围。","changeImpact":"修改 MonoDisplay 可能影响 boards/t_echo_lite/include/boards 内的结构说明,并应同步检查相关 Design/Engineering/Architecture 文档是否仍一致。","evidence":["boards/t_echo_lite/include/boards/t_echo_lite/t_echo_lite_board.h#L17","结构切片:boards/t_echo_lite/include/boards","对象类型:class","候选语境:结构切片 boards"],"risks":["当前切片来自本地仓库证据和路径语境推断;图中对象必须能解释同一个结构语境,否则生成流程会拆分或降级。"],"questions":[],"confidence":"high","drilldowns":[]}]},{"id":"engineering:diagram:class-structural:boards-tab5-include-boards","kind":"class_structural","title":"结构协作:结构切片 boards · tab5/include/boards","summary":"解释 boards/tab5/include/boards 这一结构切片中类、接口、组件或值对象如何共同承担结构切片 boards中的结构职责;候选对象包括 Tab5Board、Tab5Board::ManagedSystemI2cGuard、Tab5Board::SysI2cGuard、CodecCompat。","docPath":"docs/engineering/class-structural-diagrams/boards-tab5-include-boards/class-structural-diagram.md","htmlPath":"docs/engineering/class-structural-diagrams/boards-tab5-include-boards/class-structural-diagram.html","anchor":"engineering:class-structural:boards-tab5-include-boards","status":"candidate","confidence":"high","mermaidKind":"classDiagram","mermaid":"classDiagram\n class Tab5Board[\"Tab5Board\"] {\n \u003c\u003cclass\u003e\u003e\n }\n class Tab5Board_ManagedSystemI2cGuard[\"Tab5Board ManagedSystemI2cGuard\"] {\n \u003c\u003cclass\u003e\u003e\n }\n class Tab5Board_SysI2cGuard[\"Tab5Board SysI2cGuard\"] {\n \u003c\u003cclass\u003e\u003e\n }\n class CodecCompat[\"CodecCompat\"] {\n \u003c\u003cclass\u003e\u003e\n }\n Tab5Board_SysI2cGuard --|\u003e Tab5Board : 继承\n Tab5Board_ManagedSystemI2cGuard --|\u003e Tab5Board : 继承","readingGuide":["这张 Class / Structural Diagram 聚焦 boards/tab5/include/boards 这一结构切片,而不是整个 boards 顶层目录。","它只放入类、接口、枚举或结构类型;方法级高引用对象会进入 Component/Hotspot,不再混入结构协作图。","候选语境是「结构切片 boards」。读图时先确认这些对象是否共同承载同一个业务能力、共享支撑机制或适配边界。","图中已绘制 2 条类级关系,主要来自继承、接口实现、创建或引用证据。"],"technicalAnalysis":["boards/tab5/include/boards 当前包含 4 个类/结构和 0 个接口/trait 候选对象。","当前观察到 2 条类级结构关系。","这张图的解释目标是结构职责和边界:哪些对象像领域模型、哪些对象像接口契约、哪些对象像策略/适配器或共享支撑。","如果图中对象只是同目录但没有共同业务语境或结构关系,生成流程必须拆分或降级为 Component/Hotspot,而不是继续保留为 Class / Structural Diagram。"],"businessRelation":["该图候选关联「结构切片 boards」,应该回连到组织/过程模型中对应 Use Case 的 Class Collaboration、Activity 或 Sequence 下钻图。","软件结构模型不能只说“这里有很多类”,而要说明这些类如何让业务变化更容易或更困难。","候选对象包括:Tab5Board、Tab5Board::ManagedSystemI2cGuard、Tab5Board::SysI2cGuard、CodecCompat。"],"governanceNotes":["不要把顶层 layer、目录名或关系数量当作结构图的解释对象;结构图必须围绕可命名的业务/技术语境。","当某个对象脱离当前语境、没有关系说明或只是高引用工具类时,应从该图移除,转入 Component/Hotspot 或共享支撑切片。","变更 boards/tab5/include/boards 时,同步维护它和相关 Use Case、Component、Sequence 的引用关系。"],"coverage":["结构切片:boards/tab5/include/boards","候选业务/技术语境:结构切片 boards","所属工程边界:boards","候选结构对象数:4","候选结构关系数:2","对象:Tab5Board (class)","对象:Tab5Board::ManagedSystemI2cGuard (class)","对象:Tab5Board::SysI2cGuard (class)","对象:CodecCompat (class)"],"evidencePaths":["boards/tab5/include/boards/tab5/tab5_board.h#L17","boards/tab5/include/boards/tab5/tab5_board.h#L44","boards/tab5/include/boards/tab5/tab5_board.h#L27","boards/tab5/include/boards/tab5/codec_compat.h#L9"],"questions":["该结构切片来自本地仓库证据;当前未发现足够 Trace 证据把它绑定到唯一业务故事,因此只作为软件结构模型候选视角。"],"scope":{"packageId":"boards","filePath":"boards/tab5/include/boards"},"drilldowns":[{"id":"engineering:diagram:technical-hotspot:dependency-cluster--boards","kind":"technical_hotspot","title":"依赖簇:boards 技术热点","summary":"该模块依赖多个外部边界,当前按候选技术耦合中心处理;图中只保留仓库证据已经观察到的依赖方向和边界。","docPath":"docs/engineering/technical-hotspots/dependency-cluster--boards/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/dependency-cluster--boards/technical-hotspot.html","anchor":"engineering:hotspot:dependency-cluster:boards","relation":"risk_detail","reason":"查看该结构边界中的热点,确认复杂度集中在哪个对象、文件或关系簇上。"}],"elements":[{"id":"engineering:diagram:class-structural:boards-tab5-include-boards:element:tab5board","mermaidId":"Tab5Board","label":"Tab5Board","kind":"component","anchor":"engineering:class-structural:boards-tab5-include-boards","summary":"Tab5Board 属于 boards/tab5/include/boards 结构切片,用来解释「结构切片 boards」中的一个结构职责,而不是因为它在 boards 中关系数量高才被放入图。","role":"结构对象:它的职责必须结合 Use Case、Sequence 或 Component 下钻证据解释,不能只靠名称或目录判断。","whyItExists":"它位于 boards/tab5/include/boards/tab5/tab5_board.h,并且和同切片其它类/接口处在同一源码语境;该语境比顶层目录 boards 更接近真实业务或架构边界。","relationshipMeaning":"图中的同切片关系表示候选结构协作边界;只有存在接口实现、继承、组合、策略或端口证据时,才应进一步标注为明确设计关系。","drilldownIntent":"下钻 Tab5Board 应验证它在 Component、Sequence、Use Case Class Collaboration 中承担的具体角色,避免孤立类名被误读成业务解释。","businessRelevance":"Tab5Board 是「结构切片 boards」候选技术承载对象;当前文档通过 Trace/Refine 链接说明它服务的触发条件、流程或规则,证据不足时会降低置信度或缩小覆盖范围。","changeImpact":"修改 Tab5Board 可能影响 boards/tab5/include/boards 内的结构说明,并应同步检查相关 Design/Engineering/Architecture 文档是否仍一致。","evidence":["boards/tab5/include/boards/tab5/tab5_board.h#L17","结构切片:boards/tab5/include/boards","对象类型:class","候选语境:结构切片 boards"],"risks":["当前切片来自本地仓库证据和路径语境推断;图中对象必须能解释同一个结构语境,否则生成流程会拆分或降级。"],"questions":[],"confidence":"high","drilldowns":[]},{"id":"engineering:diagram:class-structural:boards-tab5-include-boards:element:tab5board::managedsystemi2cguard","mermaidId":"Tab5Board_ManagedSystemI2cGuard","label":"Tab5Board::ManagedSystemI2cGuard","kind":"component","anchor":"engineering:class-structural:boards-tab5-include-boards","summary":"Tab5Board::ManagedSystemI2cGuard 属于 boards/tab5/include/boards 结构切片,用来解释「结构切片 boards」中的一个结构职责,而不是因为它在 boards 中关系数量高才被放入图。","role":"结构对象:它的职责必须结合 Use Case、Sequence 或 Component 下钻证据解释,不能只靠名称或目录判断。","whyItExists":"它位于 boards/tab5/include/boards/tab5/tab5_board.h,并且和同切片其它类/接口处在同一源码语境;该语境比顶层目录 boards 更接近真实业务或架构边界。","relationshipMeaning":"图中的同切片关系表示候选结构协作边界;只有存在接口实现、继承、组合、策略或端口证据时,才应进一步标注为明确设计关系。","drilldownIntent":"下钻 Tab5Board::ManagedSystemI2cGuard 应验证它在 Component、Sequence、Use Case Class Collaboration 中承担的具体角色,避免孤立类名被误读成业务解释。","businessRelevance":"Tab5Board::ManagedSystemI2cGuard 是「结构切片 boards」候选技术承载对象;当前文档通过 Trace/Refine 链接说明它服务的触发条件、流程或规则,证据不足时会降低置信度或缩小覆盖范围。","changeImpact":"修改 Tab5Board::ManagedSystemI2cGuard 可能影响 boards/tab5/include/boards 内的结构说明,并应同步检查相关 Design/Engineering/Architecture 文档是否仍一致。","evidence":["boards/tab5/include/boards/tab5/tab5_board.h#L44","结构切片:boards/tab5/include/boards","对象类型:class","候选语境:结构切片 boards"],"risks":["当前切片来自本地仓库证据和路径语境推断;图中对象必须能解释同一个结构语境,否则生成流程会拆分或降级。"],"questions":[],"confidence":"high","drilldowns":[]},{"id":"engineering:diagram:class-structural:boards-tab5-include-boards:element:tab5board::sysi2cguard","mermaidId":"Tab5Board_SysI2cGuard","label":"Tab5Board::SysI2cGuard","kind":"component","anchor":"engineering:class-structural:boards-tab5-include-boards","summary":"Tab5Board::SysI2cGuard 属于 boards/tab5/include/boards 结构切片,用来解释「结构切片 boards」中的一个结构职责,而不是因为它在 boards 中关系数量高才被放入图。","role":"结构对象:它的职责必须结合 Use Case、Sequence 或 Component 下钻证据解释,不能只靠名称或目录判断。","whyItExists":"它位于 boards/tab5/include/boards/tab5/tab5_board.h,并且和同切片其它类/接口处在同一源码语境;该语境比顶层目录 boards 更接近真实业务或架构边界。","relationshipMeaning":"图中的同切片关系表示候选结构协作边界;只有存在接口实现、继承、组合、策略或端口证据时,才应进一步标注为明确设计关系。","drilldownIntent":"下钻 Tab5Board::SysI2cGuard 应验证它在 Component、Sequence、Use Case Class Collaboration 中承担的具体角色,避免孤立类名被误读成业务解释。","businessRelevance":"Tab5Board::SysI2cGuard 是「结构切片 boards」候选技术承载对象;当前文档通过 Trace/Refine 链接说明它服务的触发条件、流程或规则,证据不足时会降低置信度或缩小覆盖范围。","changeImpact":"修改 Tab5Board::SysI2cGuard 可能影响 boards/tab5/include/boards 内的结构说明,并应同步检查相关 Design/Engineering/Architecture 文档是否仍一致。","evidence":["boards/tab5/include/boards/tab5/tab5_board.h#L27","结构切片:boards/tab5/include/boards","对象类型:class","候选语境:结构切片 boards"],"risks":["当前切片来自本地仓库证据和路径语境推断;图中对象必须能解释同一个结构语境,否则生成流程会拆分或降级。"],"questions":[],"confidence":"high","drilldowns":[]},{"id":"engineering:diagram:class-structural:boards-tab5-include-boards:element:codeccompat","mermaidId":"CodecCompat","label":"CodecCompat","kind":"component","anchor":"engineering:class-structural:boards-tab5-include-boards","summary":"CodecCompat 属于 boards/tab5/include/boards 结构切片,用来解释「结构切片 boards」中的一个结构职责,而不是因为它在 boards 中关系数量高才被放入图。","role":"结构对象:它的职责必须结合 Use Case、Sequence 或 Component 下钻证据解释,不能只靠名称或目录判断。","whyItExists":"它位于 boards/tab5/include/boards/tab5/codec_compat.h,并且和同切片其它类/接口处在同一源码语境;该语境比顶层目录 boards 更接近真实业务或架构边界。","relationshipMeaning":"图中的同切片关系表示候选结构协作边界;只有存在接口实现、继承、组合、策略或端口证据时,才应进一步标注为明确设计关系。","drilldownIntent":"下钻 CodecCompat 应验证它在 Component、Sequence、Use Case Class Collaboration 中承担的具体角色,避免孤立类名被误读成业务解释。","businessRelevance":"CodecCompat 是「结构切片 boards」候选技术承载对象;当前文档通过 Trace/Refine 链接说明它服务的触发条件、流程或规则,证据不足时会降低置信度或缩小覆盖范围。","changeImpact":"修改 CodecCompat 可能影响 boards/tab5/include/boards 内的结构说明,并应同步检查相关 Design/Engineering/Architecture 文档是否仍一致。","evidence":["boards/tab5/include/boards/tab5/codec_compat.h#L9","结构切片:boards/tab5/include/boards","对象类型:class","候选语境:结构切片 boards"],"risks":["当前切片来自本地仓库证据和路径语境推断;图中对象必须能解释同一个结构语境,否则生成流程会拆分或降级。"],"questions":[],"confidence":"high","drilldowns":[]}]},{"id":"engineering:diagram:class-structural:boards-t_display_p4-include-boards","kind":"class_structural","title":"结构协作:结构切片 boards · t_display_p4/include/boards","summary":"解释 boards/t_display_p4/include/boards 这一结构切片中类、接口、组件或值对象如何共同承担结构切片 boards中的结构职责;候选对象包括 TDisplayP4Board、TDisplayP4Board::ManagedSystemI2cGuard。","docPath":"docs/engineering/class-structural-diagrams/boards-t_display_p4-include-boards/class-structural-diagram.md","htmlPath":"docs/engineering/class-structural-diagrams/boards-t_display_p4-include-boards/class-structural-diagram.html","anchor":"engineering:class-structural:boards-t_display_p4-include-boards","status":"candidate","confidence":"high","mermaidKind":"classDiagram","mermaid":"classDiagram\n class TDisplayP4Board[\"TDisplayP4Board\"] {\n \u003c\u003cclass\u003e\u003e\n }\n class TDisplayP4Board_ManagedSystemI2cGuard[\"TDisplayP4Board ManagedSystemI2cGuard\"] {\n \u003c\u003cclass\u003e\u003e\n }\n TDisplayP4Board_ManagedSystemI2cGuard --|\u003e TDisplayP4Board : 继承","readingGuide":["这张 Class / Structural Diagram 聚焦 boards/t_display_p4/include/boards 这一结构切片,而不是整个 boards 顶层目录。","它只放入类、接口、枚举或结构类型;方法级高引用对象会进入 Component/Hotspot,不再混入结构协作图。","候选语境是「结构切片 boards」。读图时先确认这些对象是否共同承载同一个业务能力、共享支撑机制或适配边界。","图中已绘制 1 条类级关系,主要来自继承、接口实现、创建或引用证据。"],"technicalAnalysis":["boards/t_display_p4/include/boards 当前包含 2 个类/结构和 0 个接口/trait 候选对象。","当前观察到 1 条类级结构关系。","这张图的解释目标是结构职责和边界:哪些对象像领域模型、哪些对象像接口契约、哪些对象像策略/适配器或共享支撑。","如果图中对象只是同目录但没有共同业务语境或结构关系,生成流程必须拆分或降级为 Component/Hotspot,而不是继续保留为 Class / Structural Diagram。"],"businessRelation":["该图候选关联「结构切片 boards」,应该回连到组织/过程模型中对应 Use Case 的 Class Collaboration、Activity 或 Sequence 下钻图。","软件结构模型不能只说“这里有很多类”,而要说明这些类如何让业务变化更容易或更困难。","候选对象包括:TDisplayP4Board、TDisplayP4Board::ManagedSystemI2cGuard。"],"governanceNotes":["不要把顶层 layer、目录名或关系数量当作结构图的解释对象;结构图必须围绕可命名的业务/技术语境。","当某个对象脱离当前语境、没有关系说明或只是高引用工具类时,应从该图移除,转入 Component/Hotspot 或共享支撑切片。","变更 boards/t_display_p4/include/boards 时,同步维护它和相关 Use Case、Component、Sequence 的引用关系。"],"coverage":["结构切片:boards/t_display_p4/include/boards","候选业务/技术语境:结构切片 boards","所属工程边界:boards","候选结构对象数:2","候选结构关系数:1","对象:TDisplayP4Board (class)","对象:TDisplayP4Board::ManagedSystemI2cGuard (class)"],"evidencePaths":["boards/t_display_p4/include/boards/t_display_p4/t_display_p4_board.h#L43","boards/t_display_p4/include/boards/t_display_p4/t_display_p4_board.h#L53"],"questions":["该结构切片来自本地仓库证据;当前未发现足够 Trace 证据把它绑定到唯一业务故事,因此只作为软件结构模型候选视角。"],"scope":{"packageId":"boards","filePath":"boards/t_display_p4/include/boards"},"drilldowns":[{"id":"engineering:diagram:technical-hotspot:dependency-cluster--boards","kind":"technical_hotspot","title":"依赖簇:boards 技术热点","summary":"该模块依赖多个外部边界,当前按候选技术耦合中心处理;图中只保留仓库证据已经观察到的依赖方向和边界。","docPath":"docs/engineering/technical-hotspots/dependency-cluster--boards/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/dependency-cluster--boards/technical-hotspot.html","anchor":"engineering:hotspot:dependency-cluster:boards","relation":"risk_detail","reason":"查看该结构边界中的热点,确认复杂度集中在哪个对象、文件或关系簇上。"}],"elements":[{"id":"engineering:diagram:class-structural:boards-t_display_p4-include-boards:element:tdisplayp4board","mermaidId":"TDisplayP4Board","label":"TDisplayP4Board","kind":"component","anchor":"engineering:class-structural:boards-t_display_p4-include-boards","summary":"TDisplayP4Board 属于 boards/t_display_p4/include/boards 结构切片,用来解释「结构切片 boards」中的一个结构职责,而不是因为它在 boards 中关系数量高才被放入图。","role":"结构对象:它的职责必须结合 Use Case、Sequence 或 Component 下钻证据解释,不能只靠名称或目录判断。","whyItExists":"它位于 boards/t_display_p4/include/boards/t_display_p4/t_display_p4_board.h,并且和同切片其它类/接口处在同一源码语境;该语境比顶层目录 boards 更接近真实业务或架构边界。","relationshipMeaning":"图中的同切片关系表示候选结构协作边界;只有存在接口实现、继承、组合、策略或端口证据时,才应进一步标注为明确设计关系。","drilldownIntent":"下钻 TDisplayP4Board 应验证它在 Component、Sequence、Use Case Class Collaboration 中承担的具体角色,避免孤立类名被误读成业务解释。","businessRelevance":"TDisplayP4Board 是「结构切片 boards」候选技术承载对象;当前文档通过 Trace/Refine 链接说明它服务的触发条件、流程或规则,证据不足时会降低置信度或缩小覆盖范围。","changeImpact":"修改 TDisplayP4Board 可能影响 boards/t_display_p4/include/boards 内的结构说明,并应同步检查相关 Design/Engineering/Architecture 文档是否仍一致。","evidence":["boards/t_display_p4/include/boards/t_display_p4/t_display_p4_board.h#L43","结构切片:boards/t_display_p4/include/boards","对象类型:class","候选语境:结构切片 boards"],"risks":["当前切片来自本地仓库证据和路径语境推断;图中对象必须能解释同一个结构语境,否则生成流程会拆分或降级。"],"questions":[],"confidence":"high","drilldowns":[]},{"id":"engineering:diagram:class-structural:boards-t_display_p4-include-boards:element:tdisplayp4board::managedsystemi2cguard","mermaidId":"TDisplayP4Board_ManagedSystemI2cGuard","label":"TDisplayP4Board::ManagedSystemI2cGuard","kind":"component","anchor":"engineering:class-structural:boards-t_display_p4-include-boards","summary":"TDisplayP4Board::ManagedSystemI2cGuard 属于 boards/t_display_p4/include/boards 结构切片,用来解释「结构切片 boards」中的一个结构职责,而不是因为它在 boards 中关系数量高才被放入图。","role":"结构对象:它的职责必须结合 Use Case、Sequence 或 Component 下钻证据解释,不能只靠名称或目录判断。","whyItExists":"它位于 boards/t_display_p4/include/boards/t_display_p4/t_display_p4_board.h,并且和同切片其它类/接口处在同一源码语境;该语境比顶层目录 boards 更接近真实业务或架构边界。","relationshipMeaning":"图中的同切片关系表示候选结构协作边界;只有存在接口实现、继承、组合、策略或端口证据时,才应进一步标注为明确设计关系。","drilldownIntent":"下钻 TDisplayP4Board::ManagedSystemI2cGuard 应验证它在 Component、Sequence、Use Case Class Collaboration 中承担的具体角色,避免孤立类名被误读成业务解释。","businessRelevance":"TDisplayP4Board::ManagedSystemI2cGuard 是「结构切片 boards」候选技术承载对象;当前文档通过 Trace/Refine 链接说明它服务的触发条件、流程或规则,证据不足时会降低置信度或缩小覆盖范围。","changeImpact":"修改 TDisplayP4Board::ManagedSystemI2cGuard 可能影响 boards/t_display_p4/include/boards 内的结构说明,并应同步检查相关 Design/Engineering/Architecture 文档是否仍一致。","evidence":["boards/t_display_p4/include/boards/t_display_p4/t_display_p4_board.h#L53","结构切片:boards/t_display_p4/include/boards","对象类型:class","候选语境:结构切片 boards"],"risks":["当前切片来自本地仓库证据和路径语境推断;图中对象必须能解释同一个结构语境,否则生成流程会拆分或降级。"],"questions":[],"confidence":"high","drilldowns":[]}]},{"id":"engineering:diagram:class-structural:boards-tlora_pager-include-boards","kind":"class_structural","title":"结构协作:结构切片 boards · tlora_pager/include/boards","summary":"解释 boards/tlora_pager/include/boards 这一结构切片中类、接口、组件或值对象如何共同承担结构切片 boards中的结构职责;候选对象包括 TLoRaPagerBoard、SX1262Access、AppContext。","docPath":"docs/engineering/class-structural-diagrams/boards-tlora_pager-include-boards/class-structural-diagram.md","htmlPath":"docs/engineering/class-structural-diagrams/boards-tlora_pager-include-boards/class-structural-diagram.html","anchor":"engineering:class-structural:boards-tlora_pager-include-boards","status":"candidate","confidence":"high","mermaidKind":"classDiagram","mermaid":"classDiagram\n class TLoRaPagerBoard[\"TLoRaPagerBoard\"] {\n \u003c\u003cclass\u003e\u003e\n }\n class SX1262Access[\"SX1262Access\"] {\n \u003c\u003cclass\u003e\u003e\n }\n class AppContext[\"AppContext\"] {\n \u003c\u003cclass\u003e\u003e\n }\n note for TLoRaPagerBoard \"结构切片 boards,关系需由下钻证据确认\"","readingGuide":["这张 Class / Structural Diagram 聚焦 boards/tlora_pager/include/boards 这一结构切片,而不是整个 boards 顶层目录。","它只放入类、接口、枚举或结构类型;方法级高引用对象会进入 Component/Hotspot,不再混入结构协作图。","候选语境是「结构切片 boards」。读图时先确认这些对象是否共同承载同一个业务能力、共享支撑机制或适配边界。","当前没有足够类级关系证据,因此图只保留候选切片对象,并降低为结构候选视角。"],"technicalAnalysis":["boards/tlora_pager/include/boards 当前包含 3 个类/结构和 0 个接口/trait 候选对象。","当前缺少类级关系证据,不能把同目录对象直接解释成稳定协作。","这张图的解释目标是结构职责和边界:哪些对象像领域模型、哪些对象像接口契约、哪些对象像策略/适配器或共享支撑。","如果图中对象只是同目录但没有共同业务语境或结构关系,生成流程必须拆分或降级为 Component/Hotspot,而不是继续保留为 Class / Structural Diagram。"],"businessRelation":["该图候选关联「结构切片 boards」,应该回连到组织/过程模型中对应 Use Case 的 Class Collaboration、Activity 或 Sequence 下钻图。","软件结构模型不能只说“这里有很多类”,而要说明这些类如何让业务变化更容易或更困难。","候选对象包括:TLoRaPagerBoard、SX1262Access、AppContext。"],"governanceNotes":["不要把顶层 layer、目录名或关系数量当作结构图的解释对象;结构图必须围绕可命名的业务/技术语境。","当某个对象脱离当前语境、没有关系说明或只是高引用工具类时,应从该图移除,转入 Component/Hotspot 或共享支撑切片。","变更 boards/tlora_pager/include/boards 时,同步维护它和相关 Use Case、Component、Sequence 的引用关系。"],"coverage":["结构切片:boards/tlora_pager/include/boards","候选业务/技术语境:结构切片 boards","所属工程边界:boards","候选结构对象数:3","候选结构关系数:0","对象:TLoRaPagerBoard (class)","对象:SX1262Access (class)","对象:AppContext (class)"],"evidencePaths":["boards/tlora_pager/include/boards/tlora_pager/tlora_pager_board.h#L79","boards/tlora_pager/include/boards/tlora_pager/tlora_pager_board.h#L57","boards/tlora_pager/include/boards/tlora_pager/tlora_pager_board.h#L26"],"questions":["该结构切片来自本地仓库证据;当前未发现足够 Trace 证据把它绑定到唯一业务故事,因此只作为软件结构模型候选视角。"],"scope":{"packageId":"boards","filePath":"boards/tlora_pager/include/boards"},"drilldowns":[{"id":"engineering:diagram:technical-hotspot:dependency-cluster--boards","kind":"technical_hotspot","title":"依赖簇:boards 技术热点","summary":"该模块依赖多个外部边界,当前按候选技术耦合中心处理;图中只保留仓库证据已经观察到的依赖方向和边界。","docPath":"docs/engineering/technical-hotspots/dependency-cluster--boards/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/dependency-cluster--boards/technical-hotspot.html","anchor":"engineering:hotspot:dependency-cluster:boards","relation":"risk_detail","reason":"查看该结构边界中的热点,确认复杂度集中在哪个对象、文件或关系簇上。"}],"elements":[{"id":"engineering:diagram:class-structural:boards-tlora_pager-include-boards:element:tlorapagerboard","mermaidId":"TLoRaPagerBoard","label":"TLoRaPagerBoard","kind":"component","anchor":"engineering:class-structural:boards-tlora_pager-include-boards","summary":"TLoRaPagerBoard 属于 boards/tlora_pager/include/boards 结构切片,用来解释「结构切片 boards」中的一个结构职责,而不是因为它在 boards 中关系数量高才被放入图。","role":"结构对象:它的职责必须结合 Use Case、Sequence 或 Component 下钻证据解释,不能只靠名称或目录判断。","whyItExists":"它位于 boards/tlora_pager/include/boards/tlora_pager/tlora_pager_board.h,并且和同切片其它类/接口处在同一源码语境;该语境比顶层目录 boards 更接近真实业务或架构边界。","relationshipMeaning":"图中的同切片关系表示候选结构协作边界;只有存在接口实现、继承、组合、策略或端口证据时,才应进一步标注为明确设计关系。","drilldownIntent":"下钻 TLoRaPagerBoard 应验证它在 Component、Sequence、Use Case Class Collaboration 中承担的具体角色,避免孤立类名被误读成业务解释。","businessRelevance":"TLoRaPagerBoard 是「结构切片 boards」候选技术承载对象;当前文档通过 Trace/Refine 链接说明它服务的触发条件、流程或规则,证据不足时会降低置信度或缩小覆盖范围。","changeImpact":"修改 TLoRaPagerBoard 可能影响 boards/tlora_pager/include/boards 内的结构说明,并应同步检查相关 Design/Engineering/Architecture 文档是否仍一致。","evidence":["boards/tlora_pager/include/boards/tlora_pager/tlora_pager_board.h#L79","结构切片:boards/tlora_pager/include/boards","对象类型:class","候选语境:结构切片 boards"],"risks":["当前切片来自本地仓库证据和路径语境推断;图中对象必须能解释同一个结构语境,否则生成流程会拆分或降级。"],"questions":[],"confidence":"high","drilldowns":[]},{"id":"engineering:diagram:class-structural:boards-tlora_pager-include-boards:element:sx1262access","mermaidId":"SX1262Access","label":"SX1262Access","kind":"component","anchor":"engineering:class-structural:boards-tlora_pager-include-boards","summary":"SX1262Access 属于 boards/tlora_pager/include/boards 结构切片,用来解释「结构切片 boards」中的一个结构职责,而不是因为它在 boards 中关系数量高才被放入图。","role":"结构对象:它的职责必须结合 Use Case、Sequence 或 Component 下钻证据解释,不能只靠名称或目录判断。","whyItExists":"它位于 boards/tlora_pager/include/boards/tlora_pager/tlora_pager_board.h,并且和同切片其它类/接口处在同一源码语境;该语境比顶层目录 boards 更接近真实业务或架构边界。","relationshipMeaning":"图中的同切片关系表示候选结构协作边界;只有存在接口实现、继承、组合、策略或端口证据时,才应进一步标注为明确设计关系。","drilldownIntent":"下钻 SX1262Access 应验证它在 Component、Sequence、Use Case Class Collaboration 中承担的具体角色,避免孤立类名被误读成业务解释。","businessRelevance":"SX1262Access 是「结构切片 boards」候选技术承载对象;当前文档通过 Trace/Refine 链接说明它服务的触发条件、流程或规则,证据不足时会降低置信度或缩小覆盖范围。","changeImpact":"修改 SX1262Access 可能影响 boards/tlora_pager/include/boards 内的结构说明,并应同步检查相关 Design/Engineering/Architecture 文档是否仍一致。","evidence":["boards/tlora_pager/include/boards/tlora_pager/tlora_pager_board.h#L57","结构切片:boards/tlora_pager/include/boards","对象类型:class","候选语境:结构切片 boards"],"risks":["当前切片来自本地仓库证据和路径语境推断;图中对象必须能解释同一个结构语境,否则生成流程会拆分或降级。"],"questions":[],"confidence":"high","drilldowns":[]},{"id":"engineering:diagram:class-structural:boards-tlora_pager-include-boards:element:appcontext","mermaidId":"AppContext","label":"AppContext","kind":"component","anchor":"engineering:class-structural:boards-tlora_pager-include-boards","summary":"AppContext 属于 boards/tlora_pager/include/boards 结构切片,用来解释「结构切片 boards」中的一个结构职责,而不是因为它在 boards 中关系数量高才被放入图。","role":"值对象/上下文对象:它提供跨流程复用的值语义或上下文语义。","whyItExists":"它位于 boards/tlora_pager/include/boards/tlora_pager/tlora_pager_board.h,并且和同切片其它类/接口处在同一源码语境;该语境比顶层目录 boards 更接近真实业务或架构边界。","relationshipMeaning":"图中的同切片关系表示候选结构协作边界;只有存在接口实现、继承、组合、策略或端口证据时,才应进一步标注为明确设计关系。","drilldownIntent":"下钻 AppContext 应验证它在 Component、Sequence、Use Case Class Collaboration 中承担的具体角色,避免孤立类名被误读成业务解释。","businessRelevance":"AppContext 是「结构切片 boards」候选技术承载对象;当前文档通过 Trace/Refine 链接说明它服务的触发条件、流程或规则,证据不足时会降低置信度或缩小覆盖范围。","changeImpact":"修改 AppContext 可能影响 boards/tlora_pager/include/boards 内的结构说明,并应同步检查相关 Design/Engineering/Architecture 文档是否仍一致。","evidence":["boards/tlora_pager/include/boards/tlora_pager/tlora_pager_board.h#L26","结构切片:boards/tlora_pager/include/boards","对象类型:class","候选语境:结构切片 boards"],"risks":["当前切片来自本地仓库证据和路径语境推断;图中对象必须能解释同一个结构语境,否则生成流程会拆分或降级。"],"questions":[],"confidence":"high","drilldowns":[]}]},{"id":"engineering:diagram:class-structural:boards-tdeck-include-boards","kind":"class_structural","title":"结构协作:结构切片 boards · tdeck/include/boards","summary":"解释 boards/tdeck/include/boards 这一结构切片中类、接口、组件或值对象如何共同承担结构切片 boards中的结构职责;候选对象包括 TDeckBoard、SX1262Access。","docPath":"docs/engineering/class-structural-diagrams/boards-tdeck-include-boards/class-structural-diagram.md","htmlPath":"docs/engineering/class-structural-diagrams/boards-tdeck-include-boards/class-structural-diagram.html","anchor":"engineering:class-structural:boards-tdeck-include-boards","status":"candidate","confidence":"high","mermaidKind":"classDiagram","mermaid":"classDiagram\n class TDeckBoard[\"TDeckBoard\"] {\n \u003c\u003cclass\u003e\u003e\n }\n class SX1262Access[\"SX1262Access\"] {\n \u003c\u003cclass\u003e\u003e\n }\n note for TDeckBoard \"结构切片 boards,关系需由下钻证据确认\"","readingGuide":["这张 Class / Structural Diagram 聚焦 boards/tdeck/include/boards 这一结构切片,而不是整个 boards 顶层目录。","它只放入类、接口、枚举或结构类型;方法级高引用对象会进入 Component/Hotspot,不再混入结构协作图。","候选语境是「结构切片 boards」。读图时先确认这些对象是否共同承载同一个业务能力、共享支撑机制或适配边界。","当前没有足够类级关系证据,因此图只保留候选切片对象,并降低为结构候选视角。"],"technicalAnalysis":["boards/tdeck/include/boards 当前包含 2 个类/结构和 0 个接口/trait 候选对象。","当前缺少类级关系证据,不能把同目录对象直接解释成稳定协作。","这张图的解释目标是结构职责和边界:哪些对象像领域模型、哪些对象像接口契约、哪些对象像策略/适配器或共享支撑。","如果图中对象只是同目录但没有共同业务语境或结构关系,生成流程必须拆分或降级为 Component/Hotspot,而不是继续保留为 Class / Structural Diagram。"],"businessRelation":["该图候选关联「结构切片 boards」,应该回连到组织/过程模型中对应 Use Case 的 Class Collaboration、Activity 或 Sequence 下钻图。","软件结构模型不能只说“这里有很多类”,而要说明这些类如何让业务变化更容易或更困难。","候选对象包括:TDeckBoard、SX1262Access。"],"governanceNotes":["不要把顶层 layer、目录名或关系数量当作结构图的解释对象;结构图必须围绕可命名的业务/技术语境。","当某个对象脱离当前语境、没有关系说明或只是高引用工具类时,应从该图移除,转入 Component/Hotspot 或共享支撑切片。","变更 boards/tdeck/include/boards 时,同步维护它和相关 Use Case、Component、Sequence 的引用关系。"],"coverage":["结构切片:boards/tdeck/include/boards","候选业务/技术语境:结构切片 boards","所属工程边界:boards","候选结构对象数:2","候选结构关系数:0","对象:TDeckBoard (class)","对象:SX1262Access (class)"],"evidencePaths":["boards/tdeck/include/boards/tdeck/tdeck_board.h#L38","boards/tdeck/include/boards/tdeck/tdeck_board.h#L29"],"questions":["该结构切片来自本地仓库证据;当前未发现足够 Trace 证据把它绑定到唯一业务故事,因此只作为软件结构模型候选视角。"],"scope":{"packageId":"boards","filePath":"boards/tdeck/include/boards"},"drilldowns":[{"id":"engineering:diagram:technical-hotspot:dependency-cluster--boards","kind":"technical_hotspot","title":"依赖簇:boards 技术热点","summary":"该模块依赖多个外部边界,当前按候选技术耦合中心处理;图中只保留仓库证据已经观察到的依赖方向和边界。","docPath":"docs/engineering/technical-hotspots/dependency-cluster--boards/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/dependency-cluster--boards/technical-hotspot.html","anchor":"engineering:hotspot:dependency-cluster:boards","relation":"risk_detail","reason":"查看该结构边界中的热点,确认复杂度集中在哪个对象、文件或关系簇上。"}],"elements":[{"id":"engineering:diagram:class-structural:boards-tdeck-include-boards:element:tdeckboard","mermaidId":"TDeckBoard","label":"TDeckBoard","kind":"component","anchor":"engineering:class-structural:boards-tdeck-include-boards","summary":"TDeckBoard 属于 boards/tdeck/include/boards 结构切片,用来解释「结构切片 boards」中的一个结构职责,而不是因为它在 boards 中关系数量高才被放入图。","role":"结构对象:它的职责必须结合 Use Case、Sequence 或 Component 下钻证据解释,不能只靠名称或目录判断。","whyItExists":"它位于 boards/tdeck/include/boards/tdeck/tdeck_board.h,并且和同切片其它类/接口处在同一源码语境;该语境比顶层目录 boards 更接近真实业务或架构边界。","relationshipMeaning":"图中的同切片关系表示候选结构协作边界;只有存在接口实现、继承、组合、策略或端口证据时,才应进一步标注为明确设计关系。","drilldownIntent":"下钻 TDeckBoard 应验证它在 Component、Sequence、Use Case Class Collaboration 中承担的具体角色,避免孤立类名被误读成业务解释。","businessRelevance":"TDeckBoard 是「结构切片 boards」候选技术承载对象;当前文档通过 Trace/Refine 链接说明它服务的触发条件、流程或规则,证据不足时会降低置信度或缩小覆盖范围。","changeImpact":"修改 TDeckBoard 可能影响 boards/tdeck/include/boards 内的结构说明,并应同步检查相关 Design/Engineering/Architecture 文档是否仍一致。","evidence":["boards/tdeck/include/boards/tdeck/tdeck_board.h#L38","结构切片:boards/tdeck/include/boards","对象类型:class","候选语境:结构切片 boards"],"risks":["当前切片来自本地仓库证据和路径语境推断;图中对象必须能解释同一个结构语境,否则生成流程会拆分或降级。"],"questions":[],"confidence":"high","drilldowns":[]},{"id":"engineering:diagram:class-structural:boards-tdeck-include-boards:element:sx1262access","mermaidId":"SX1262Access","label":"SX1262Access","kind":"component","anchor":"engineering:class-structural:boards-tdeck-include-boards","summary":"SX1262Access 属于 boards/tdeck/include/boards 结构切片,用来解释「结构切片 boards」中的一个结构职责,而不是因为它在 boards 中关系数量高才被放入图。","role":"结构对象:它的职责必须结合 Use Case、Sequence 或 Component 下钻证据解释,不能只靠名称或目录判断。","whyItExists":"它位于 boards/tdeck/include/boards/tdeck/tdeck_board.h,并且和同切片其它类/接口处在同一源码语境;该语境比顶层目录 boards 更接近真实业务或架构边界。","relationshipMeaning":"图中的同切片关系表示候选结构协作边界;只有存在接口实现、继承、组合、策略或端口证据时,才应进一步标注为明确设计关系。","drilldownIntent":"下钻 SX1262Access 应验证它在 Component、Sequence、Use Case Class Collaboration 中承担的具体角色,避免孤立类名被误读成业务解释。","businessRelevance":"SX1262Access 是「结构切片 boards」候选技术承载对象;当前文档通过 Trace/Refine 链接说明它服务的触发条件、流程或规则,证据不足时会降低置信度或缩小覆盖范围。","changeImpact":"修改 SX1262Access 可能影响 boards/tdeck/include/boards 内的结构说明,并应同步检查相关 Design/Engineering/Architecture 文档是否仍一致。","evidence":["boards/tdeck/include/boards/tdeck/tdeck_board.h#L29","结构切片:boards/tdeck/include/boards","对象类型:class","候选语境:结构切片 boards"],"risks":["当前切片来自本地仓库证据和路径语境推断;图中对象必须能解释同一个结构语境,否则生成流程会拆分或降级。"],"questions":[],"confidence":"high","drilldowns":[]}]},{"id":"engineering:diagram:class-structural:boards-tdeck_pro-include-boards","kind":"class_structural","title":"结构协作:结构切片 boards · tdeck_pro/include/boards","summary":"解释 boards/tdeck_pro/include/boards 这一结构切片中类、接口、组件或值对象如何共同承担结构切片 boards中的结构职责;候选对象包括 TDeckProBoard、SX1262Access。","docPath":"docs/engineering/class-structural-diagrams/boards-tdeck_pro-include-boards/class-structural-diagram.md","htmlPath":"docs/engineering/class-structural-diagrams/boards-tdeck_pro-include-boards/class-structural-diagram.html","anchor":"engineering:class-structural:boards-tdeck_pro-include-boards","status":"candidate","confidence":"high","mermaidKind":"classDiagram","mermaid":"classDiagram\n class TDeckProBoard[\"TDeckProBoard\"] {\n \u003c\u003cclass\u003e\u003e\n }\n class SX1262Access[\"SX1262Access\"] {\n \u003c\u003cclass\u003e\u003e\n }\n note for TDeckProBoard \"结构切片 boards,关系需由下钻证据确认\"","readingGuide":["这张 Class / Structural Diagram 聚焦 boards/tdeck_pro/include/boards 这一结构切片,而不是整个 boards 顶层目录。","它只放入类、接口、枚举或结构类型;方法级高引用对象会进入 Component/Hotspot,不再混入结构协作图。","候选语境是「结构切片 boards」。读图时先确认这些对象是否共同承载同一个业务能力、共享支撑机制或适配边界。","当前没有足够类级关系证据,因此图只保留候选切片对象,并降低为结构候选视角。"],"technicalAnalysis":["boards/tdeck_pro/include/boards 当前包含 2 个类/结构和 0 个接口/trait 候选对象。","当前缺少类级关系证据,不能把同目录对象直接解释成稳定协作。","这张图的解释目标是结构职责和边界:哪些对象像领域模型、哪些对象像接口契约、哪些对象像策略/适配器或共享支撑。","如果图中对象只是同目录但没有共同业务语境或结构关系,生成流程必须拆分或降级为 Component/Hotspot,而不是继续保留为 Class / Structural Diagram。"],"businessRelation":["该图候选关联「结构切片 boards」,应该回连到组织/过程模型中对应 Use Case 的 Class Collaboration、Activity 或 Sequence 下钻图。","软件结构模型不能只说“这里有很多类”,而要说明这些类如何让业务变化更容易或更困难。","候选对象包括:TDeckProBoard、SX1262Access。"],"governanceNotes":["不要把顶层 layer、目录名或关系数量当作结构图的解释对象;结构图必须围绕可命名的业务/技术语境。","当某个对象脱离当前语境、没有关系说明或只是高引用工具类时,应从该图移除,转入 Component/Hotspot 或共享支撑切片。","变更 boards/tdeck_pro/include/boards 时,同步维护它和相关 Use Case、Component、Sequence 的引用关系。"],"coverage":["结构切片:boards/tdeck_pro/include/boards","候选业务/技术语境:结构切片 boards","所属工程边界:boards","候选结构对象数:2","候选结构关系数:0","对象:TDeckProBoard (class)","对象:SX1262Access (class)"],"evidencePaths":["boards/tdeck_pro/include/boards/tdeck_pro/tdeck_pro_board.h#L38","boards/tdeck_pro/include/boards/tdeck_pro/tdeck_pro_board.h#L29"],"questions":["该结构切片来自本地仓库证据;当前未发现足够 Trace 证据把它绑定到唯一业务故事,因此只作为软件结构模型候选视角。"],"scope":{"packageId":"boards","filePath":"boards/tdeck_pro/include/boards"},"drilldowns":[{"id":"engineering:diagram:technical-hotspot:dependency-cluster--boards","kind":"technical_hotspot","title":"依赖簇:boards 技术热点","summary":"该模块依赖多个外部边界,当前按候选技术耦合中心处理;图中只保留仓库证据已经观察到的依赖方向和边界。","docPath":"docs/engineering/technical-hotspots/dependency-cluster--boards/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/dependency-cluster--boards/technical-hotspot.html","anchor":"engineering:hotspot:dependency-cluster:boards","relation":"risk_detail","reason":"查看该结构边界中的热点,确认复杂度集中在哪个对象、文件或关系簇上。"}],"elements":[{"id":"engineering:diagram:class-structural:boards-tdeck_pro-include-boards:element:tdeckproboard","mermaidId":"TDeckProBoard","label":"TDeckProBoard","kind":"component","anchor":"engineering:class-structural:boards-tdeck_pro-include-boards","summary":"TDeckProBoard 属于 boards/tdeck_pro/include/boards 结构切片,用来解释「结构切片 boards」中的一个结构职责,而不是因为它在 boards 中关系数量高才被放入图。","role":"结构对象:它的职责必须结合 Use Case、Sequence 或 Component 下钻证据解释,不能只靠名称或目录判断。","whyItExists":"它位于 boards/tdeck_pro/include/boards/tdeck_pro/tdeck_pro_board.h,并且和同切片其它类/接口处在同一源码语境;该语境比顶层目录 boards 更接近真实业务或架构边界。","relationshipMeaning":"图中的同切片关系表示候选结构协作边界;只有存在接口实现、继承、组合、策略或端口证据时,才应进一步标注为明确设计关系。","drilldownIntent":"下钻 TDeckProBoard 应验证它在 Component、Sequence、Use Case Class Collaboration 中承担的具体角色,避免孤立类名被误读成业务解释。","businessRelevance":"TDeckProBoard 是「结构切片 boards」候选技术承载对象;当前文档通过 Trace/Refine 链接说明它服务的触发条件、流程或规则,证据不足时会降低置信度或缩小覆盖范围。","changeImpact":"修改 TDeckProBoard 可能影响 boards/tdeck_pro/include/boards 内的结构说明,并应同步检查相关 Design/Engineering/Architecture 文档是否仍一致。","evidence":["boards/tdeck_pro/include/boards/tdeck_pro/tdeck_pro_board.h#L38","结构切片:boards/tdeck_pro/include/boards","对象类型:class","候选语境:结构切片 boards"],"risks":["当前切片来自本地仓库证据和路径语境推断;图中对象必须能解释同一个结构语境,否则生成流程会拆分或降级。"],"questions":[],"confidence":"high","drilldowns":[]},{"id":"engineering:diagram:class-structural:boards-tdeck_pro-include-boards:element:sx1262access","mermaidId":"SX1262Access","label":"SX1262Access","kind":"component","anchor":"engineering:class-structural:boards-tdeck_pro-include-boards","summary":"SX1262Access 属于 boards/tdeck_pro/include/boards 结构切片,用来解释「结构切片 boards」中的一个结构职责,而不是因为它在 boards 中关系数量高才被放入图。","role":"结构对象:它的职责必须结合 Use Case、Sequence 或 Component 下钻证据解释,不能只靠名称或目录判断。","whyItExists":"它位于 boards/tdeck_pro/include/boards/tdeck_pro/tdeck_pro_board.h,并且和同切片其它类/接口处在同一源码语境;该语境比顶层目录 boards 更接近真实业务或架构边界。","relationshipMeaning":"图中的同切片关系表示候选结构协作边界;只有存在接口实现、继承、组合、策略或端口证据时,才应进一步标注为明确设计关系。","drilldownIntent":"下钻 SX1262Access 应验证它在 Component、Sequence、Use Case Class Collaboration 中承担的具体角色,避免孤立类名被误读成业务解释。","businessRelevance":"SX1262Access 是「结构切片 boards」候选技术承载对象;当前文档通过 Trace/Refine 链接说明它服务的触发条件、流程或规则,证据不足时会降低置信度或缩小覆盖范围。","changeImpact":"修改 SX1262Access 可能影响 boards/tdeck_pro/include/boards 内的结构说明,并应同步检查相关 Design/Engineering/Architecture 文档是否仍一致。","evidence":["boards/tdeck_pro/include/boards/tdeck_pro/tdeck_pro_board.h#L29","结构切片:boards/tdeck_pro/include/boards","对象类型:class","候选语境:结构切片 boards"],"risks":["当前切片来自本地仓库证据和路径语境推断;图中对象必须能解释同一个结构语境,否则生成流程会拆分或降级。"],"questions":[],"confidence":"high","drilldowns":[]}]},{"id":"engineering:diagram:class-structural:boards-twatchs3-include-boards","kind":"class_structural","title":"结构协作:结构切片 boards · twatchs3/include/boards","summary":"解释 boards/twatchs3/include/boards 这一结构切片中类、接口、组件或值对象如何共同承担结构切片 boards中的结构职责;候选对象包括 TWatchS3Board、SX1262Access。","docPath":"docs/engineering/class-structural-diagrams/boards-twatchs3-include-boards/class-structural-diagram.md","htmlPath":"docs/engineering/class-structural-diagrams/boards-twatchs3-include-boards/class-structural-diagram.html","anchor":"engineering:class-structural:boards-twatchs3-include-boards","status":"candidate","confidence":"high","mermaidKind":"classDiagram","mermaid":"classDiagram\n class TWatchS3Board[\"TWatchS3Board\"] {\n \u003c\u003cclass\u003e\u003e\n }\n class SX1262Access[\"SX1262Access\"] {\n \u003c\u003cclass\u003e\u003e\n }\n note for TWatchS3Board \"结构切片 boards,关系需由下钻证据确认\"","readingGuide":["这张 Class / Structural Diagram 聚焦 boards/twatchs3/include/boards 这一结构切片,而不是整个 boards 顶层目录。","它只放入类、接口、枚举或结构类型;方法级高引用对象会进入 Component/Hotspot,不再混入结构协作图。","候选语境是「结构切片 boards」。读图时先确认这些对象是否共同承载同一个业务能力、共享支撑机制或适配边界。","当前没有足够类级关系证据,因此图只保留候选切片对象,并降低为结构候选视角。"],"technicalAnalysis":["boards/twatchs3/include/boards 当前包含 2 个类/结构和 0 个接口/trait 候选对象。","当前缺少类级关系证据,不能把同目录对象直接解释成稳定协作。","这张图的解释目标是结构职责和边界:哪些对象像领域模型、哪些对象像接口契约、哪些对象像策略/适配器或共享支撑。","如果图中对象只是同目录但没有共同业务语境或结构关系,生成流程必须拆分或降级为 Component/Hotspot,而不是继续保留为 Class / Structural Diagram。"],"businessRelation":["该图候选关联「结构切片 boards」,应该回连到组织/过程模型中对应 Use Case 的 Class Collaboration、Activity 或 Sequence 下钻图。","软件结构模型不能只说“这里有很多类”,而要说明这些类如何让业务变化更容易或更困难。","候选对象包括:TWatchS3Board、SX1262Access。"],"governanceNotes":["不要把顶层 layer、目录名或关系数量当作结构图的解释对象;结构图必须围绕可命名的业务/技术语境。","当某个对象脱离当前语境、没有关系说明或只是高引用工具类时,应从该图移除,转入 Component/Hotspot 或共享支撑切片。","变更 boards/twatchs3/include/boards 时,同步维护它和相关 Use Case、Component、Sequence 的引用关系。"],"coverage":["结构切片:boards/twatchs3/include/boards","候选业务/技术语境:结构切片 boards","所属工程边界:boards","候选结构对象数:2","候选结构关系数:0","对象:TWatchS3Board (class)","对象:SX1262Access (class)"],"evidencePaths":["boards/twatchs3/include/boards/twatchs3/twatchs3_board.h#L30","boards/twatchs3/include/boards/twatchs3/twatchs3_board.h#L21"],"questions":["该结构切片来自本地仓库证据;当前未发现足够 Trace 证据把它绑定到唯一业务故事,因此只作为软件结构模型候选视角。"],"scope":{"packageId":"boards","filePath":"boards/twatchs3/include/boards"},"drilldowns":[{"id":"engineering:diagram:technical-hotspot:dependency-cluster--boards","kind":"technical_hotspot","title":"依赖簇:boards 技术热点","summary":"该模块依赖多个外部边界,当前按候选技术耦合中心处理;图中只保留仓库证据已经观察到的依赖方向和边界。","docPath":"docs/engineering/technical-hotspots/dependency-cluster--boards/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/dependency-cluster--boards/technical-hotspot.html","anchor":"engineering:hotspot:dependency-cluster:boards","relation":"risk_detail","reason":"查看该结构边界中的热点,确认复杂度集中在哪个对象、文件或关系簇上。"}],"elements":[{"id":"engineering:diagram:class-structural:boards-twatchs3-include-boards:element:twatchs3board","mermaidId":"TWatchS3Board","label":"TWatchS3Board","kind":"component","anchor":"engineering:class-structural:boards-twatchs3-include-boards","summary":"TWatchS3Board 属于 boards/twatchs3/include/boards 结构切片,用来解释「结构切片 boards」中的一个结构职责,而不是因为它在 boards 中关系数量高才被放入图。","role":"结构对象:它的职责必须结合 Use Case、Sequence 或 Component 下钻证据解释,不能只靠名称或目录判断。","whyItExists":"它位于 boards/twatchs3/include/boards/twatchs3/twatchs3_board.h,并且和同切片其它类/接口处在同一源码语境;该语境比顶层目录 boards 更接近真实业务或架构边界。","relationshipMeaning":"图中的同切片关系表示候选结构协作边界;只有存在接口实现、继承、组合、策略或端口证据时,才应进一步标注为明确设计关系。","drilldownIntent":"下钻 TWatchS3Board 应验证它在 Component、Sequence、Use Case Class Collaboration 中承担的具体角色,避免孤立类名被误读成业务解释。","businessRelevance":"TWatchS3Board 是「结构切片 boards」候选技术承载对象;当前文档通过 Trace/Refine 链接说明它服务的触发条件、流程或规则,证据不足时会降低置信度或缩小覆盖范围。","changeImpact":"修改 TWatchS3Board 可能影响 boards/twatchs3/include/boards 内的结构说明,并应同步检查相关 Design/Engineering/Architecture 文档是否仍一致。","evidence":["boards/twatchs3/include/boards/twatchs3/twatchs3_board.h#L30","结构切片:boards/twatchs3/include/boards","对象类型:class","候选语境:结构切片 boards"],"risks":["当前切片来自本地仓库证据和路径语境推断;图中对象必须能解释同一个结构语境,否则生成流程会拆分或降级。"],"questions":[],"confidence":"high","drilldowns":[]},{"id":"engineering:diagram:class-structural:boards-twatchs3-include-boards:element:sx1262access","mermaidId":"SX1262Access","label":"SX1262Access","kind":"component","anchor":"engineering:class-structural:boards-twatchs3-include-boards","summary":"SX1262Access 属于 boards/twatchs3/include/boards 结构切片,用来解释「结构切片 boards」中的一个结构职责,而不是因为它在 boards 中关系数量高才被放入图。","role":"结构对象:它的职责必须结合 Use Case、Sequence 或 Component 下钻证据解释,不能只靠名称或目录判断。","whyItExists":"它位于 boards/twatchs3/include/boards/twatchs3/twatchs3_board.h,并且和同切片其它类/接口处在同一源码语境;该语境比顶层目录 boards 更接近真实业务或架构边界。","relationshipMeaning":"图中的同切片关系表示候选结构协作边界;只有存在接口实现、继承、组合、策略或端口证据时,才应进一步标注为明确设计关系。","drilldownIntent":"下钻 SX1262Access 应验证它在 Component、Sequence、Use Case Class Collaboration 中承担的具体角色,避免孤立类名被误读成业务解释。","businessRelevance":"SX1262Access 是「结构切片 boards」候选技术承载对象;当前文档通过 Trace/Refine 链接说明它服务的触发条件、流程或规则,证据不足时会降低置信度或缩小覆盖范围。","changeImpact":"修改 SX1262Access 可能影响 boards/twatchs3/include/boards 内的结构说明,并应同步检查相关 Design/Engineering/Architecture 文档是否仍一致。","evidence":["boards/twatchs3/include/boards/twatchs3/twatchs3_board.h#L21","结构切片:boards/twatchs3/include/boards","对象类型:class","候选语境:结构切片 boards"],"risks":["当前切片来自本地仓库证据和路径语境推断;图中对象必须能解释同一个结构语境,否则生成流程会拆分或降级。"],"questions":[],"confidence":"high","drilldowns":[]}]},{"id":"engineering:diagram:class-structural:boards-gat562_mesh_evb_pro","kind":"class_structural","title":"结构协作:结构切片 gat562_mesh_evb_pro · gat562_mesh_evb_pro","summary":"解释 boards/gat562_mesh_evb_pro 这一结构切片中类、接口、组件或值对象如何共同承担结构切片 gat562_mesh_evb_pro中的结构职责;候选对象包括 Ssd1306MonoDisplay、ScopedGpsSuspend。","docPath":"docs/engineering/class-structural-diagrams/boards-gat562_mesh_evb_pro/class-structural-diagram.md","htmlPath":"docs/engineering/class-structural-diagrams/boards-gat562_mesh_evb_pro/class-structural-diagram.html","anchor":"engineering:class-structural:boards-gat562_mesh_evb_pro","status":"candidate","confidence":"high","mermaidKind":"classDiagram","mermaid":"classDiagram\n class Ssd1306MonoDisplay[\"Ssd1306MonoDisplay\"] {\n \u003c\u003cclass\u003e\u003e\n }\n class ScopedGpsSuspend[\"ScopedGpsSuspend\"] {\n \u003c\u003cclass\u003e\u003e\n }\n note for Ssd1306MonoDisplay \"结构切片 gat562_mesh_evb_pro,关系需由下钻证据确认\"","readingGuide":["这张 Class / Structural Diagram 聚焦 boards/gat562_mesh_evb_pro 这一结构切片,而不是整个 boards 顶层目录。","它只放入类、接口、枚举或结构类型;方法级高引用对象会进入 Component/Hotspot,不再混入结构协作图。","候选语境是「结构切片 gat562_mesh_evb_pro」。读图时先确认这些对象是否共同承载同一个业务能力、共享支撑机制或适配边界。","当前没有足够类级关系证据,因此图只保留候选切片对象,并降低为结构候选视角。"],"technicalAnalysis":["boards/gat562_mesh_evb_pro 当前包含 2 个类/结构和 0 个接口/trait 候选对象。","当前缺少类级关系证据,不能把同目录对象直接解释成稳定协作。","这张图的解释目标是结构职责和边界:哪些对象像领域模型、哪些对象像接口契约、哪些对象像策略/适配器或共享支撑。","如果图中对象只是同目录但没有共同业务语境或结构关系,生成流程必须拆分或降级为 Component/Hotspot,而不是继续保留为 Class / Structural Diagram。"],"businessRelation":["该图候选关联「结构切片 gat562_mesh_evb_pro」,应该回连到组织/过程模型中对应 Use Case 的 Class Collaboration、Activity 或 Sequence 下钻图。","软件结构模型不能只说“这里有很多类”,而要说明这些类如何让业务变化更容易或更困难。","候选对象包括:Ssd1306MonoDisplay、ScopedGpsSuspend。"],"governanceNotes":["不要把顶层 layer、目录名或关系数量当作结构图的解释对象;结构图必须围绕可命名的业务/技术语境。","当某个对象脱离当前语境、没有关系说明或只是高引用工具类时,应从该图移除,转入 Component/Hotspot 或共享支撑切片。","变更 boards/gat562_mesh_evb_pro 时,同步维护它和相关 Use Case、Component、Sequence 的引用关系。"],"coverage":["结构切片:boards/gat562_mesh_evb_pro","候选业务/技术语境:结构切片 gat562_mesh_evb_pro","所属工程边界:boards","候选结构对象数:2","候选结构关系数:0","对象:Ssd1306MonoDisplay (class)","对象:ScopedGpsSuspend (class)"],"evidencePaths":["boards/gat562_mesh_evb_pro/src/gat562_board.cpp#L398","boards/gat562_mesh_evb_pro/src/settings_store.cpp#L80"],"questions":["该结构切片来自本地仓库证据;当前未发现足够 Trace 证据把它绑定到唯一业务故事,因此只作为软件结构模型候选视角。"],"scope":{"packageId":"boards","filePath":"boards/gat562_mesh_evb_pro"},"drilldowns":[{"id":"engineering:diagram:technical-hotspot:dependency-cluster--boards","kind":"technical_hotspot","title":"依赖簇:boards 技术热点","summary":"该模块依赖多个外部边界,当前按候选技术耦合中心处理;图中只保留仓库证据已经观察到的依赖方向和边界。","docPath":"docs/engineering/technical-hotspots/dependency-cluster--boards/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/dependency-cluster--boards/technical-hotspot.html","anchor":"engineering:hotspot:dependency-cluster:boards","relation":"risk_detail","reason":"查看该结构边界中的热点,确认复杂度集中在哪个对象、文件或关系簇上。"}],"elements":[{"id":"engineering:diagram:class-structural:boards-gat562_mesh_evb_pro:element:ssd1306monodisplay","mermaidId":"Ssd1306MonoDisplay","label":"Ssd1306MonoDisplay","kind":"component","anchor":"engineering:class-structural:boards-gat562_mesh_evb_pro","summary":"Ssd1306MonoDisplay 属于 boards/gat562_mesh_evb_pro 结构切片,用来解释「结构切片 gat562_mesh_evb_pro」中的一个结构职责,而不是因为它在 boards 中关系数量高才被放入图。","role":"结构对象:它的职责必须结合 Use Case、Sequence 或 Component 下钻证据解释,不能只靠名称或目录判断。","whyItExists":"它位于 boards/gat562_mesh_evb_pro/src/gat562_board.cpp,并且和同切片其它类/接口处在同一源码语境;该语境比顶层目录 boards 更接近真实业务或架构边界。","relationshipMeaning":"图中的同切片关系表示候选结构协作边界;只有存在接口实现、继承、组合、策略或端口证据时,才应进一步标注为明确设计关系。","drilldownIntent":"下钻 Ssd1306MonoDisplay 应验证它在 Component、Sequence、Use Case Class Collaboration 中承担的具体角色,避免孤立类名被误读成业务解释。","businessRelevance":"Ssd1306MonoDisplay 是「结构切片 gat562_mesh_evb_pro」候选技术承载对象;当前文档通过 Trace/Refine 链接说明它服务的触发条件、流程或规则,证据不足时会降低置信度或缩小覆盖范围。","changeImpact":"修改 Ssd1306MonoDisplay 可能影响 boards/gat562_mesh_evb_pro 内的结构说明,并应同步检查相关 Design/Engineering/Architecture 文档是否仍一致。","evidence":["boards/gat562_mesh_evb_pro/src/gat562_board.cpp#L398","结构切片:boards/gat562_mesh_evb_pro","对象类型:class","候选语境:结构切片 gat562_mesh_evb_pro"],"risks":["当前切片来自本地仓库证据和路径语境推断;图中对象必须能解释同一个结构语境,否则生成流程会拆分或降级。"],"questions":[],"confidence":"high","drilldowns":[]},{"id":"engineering:diagram:class-structural:boards-gat562_mesh_evb_pro:element:scopedgpssuspend","mermaidId":"ScopedGpsSuspend","label":"ScopedGpsSuspend","kind":"component","anchor":"engineering:class-structural:boards-gat562_mesh_evb_pro","summary":"ScopedGpsSuspend 属于 boards/gat562_mesh_evb_pro 结构切片,用来解释「结构切片 gat562_mesh_evb_pro」中的一个结构职责,而不是因为它在 boards 中关系数量高才被放入图。","role":"结构对象:它的职责必须结合 Use Case、Sequence 或 Component 下钻证据解释,不能只靠名称或目录判断。","whyItExists":"它位于 boards/gat562_mesh_evb_pro/src/settings_store.cpp,并且和同切片其它类/接口处在同一源码语境;该语境比顶层目录 boards 更接近真实业务或架构边界。","relationshipMeaning":"图中的同切片关系表示候选结构协作边界;只有存在接口实现、继承、组合、策略或端口证据时,才应进一步标注为明确设计关系。","drilldownIntent":"下钻 ScopedGpsSuspend 应验证它在 Component、Sequence、Use Case Class Collaboration 中承担的具体角色,避免孤立类名被误读成业务解释。","businessRelevance":"ScopedGpsSuspend 是「结构切片 gat562_mesh_evb_pro」候选技术承载对象;当前文档通过 Trace/Refine 链接说明它服务的触发条件、流程或规则,证据不足时会降低置信度或缩小覆盖范围。","changeImpact":"修改 ScopedGpsSuspend 可能影响 boards/gat562_mesh_evb_pro 内的结构说明,并应同步检查相关 Design/Engineering/Architecture 文档是否仍一致。","evidence":["boards/gat562_mesh_evb_pro/src/settings_store.cpp#L80","结构切片:boards/gat562_mesh_evb_pro","对象类型:class","候选语境:结构切片 gat562_mesh_evb_pro"],"risks":["当前切片来自本地仓库证据和路径语境推断;图中对象必须能解释同一个结构语境,否则生成流程会拆分或降级。"],"questions":[],"confidence":"high","drilldowns":[]}]},{"id":"engineering:diagram:class-structural:boards-t_echo_lite","kind":"class_structural","title":"结构协作:结构切片 t_echo_lite · t_echo_lite","summary":"解释 boards/t_echo_lite 这一结构切片中类、接口、组件或值对象如何共同承担结构切片 t_echo_lite中的结构职责;候选对象包括 EpaperMonoDisplay、ScopedGpsSuspend。","docPath":"docs/engineering/class-structural-diagrams/boards-t_echo_lite/class-structural-diagram.md","htmlPath":"docs/engineering/class-structural-diagrams/boards-t_echo_lite/class-structural-diagram.html","anchor":"engineering:class-structural:boards-t_echo_lite","status":"candidate","confidence":"high","mermaidKind":"classDiagram","mermaid":"classDiagram\n class EpaperMonoDisplay[\"EpaperMonoDisplay\"] {\n \u003c\u003cclass\u003e\u003e\n }\n class ScopedGpsSuspend[\"ScopedGpsSuspend\"] {\n \u003c\u003cclass\u003e\u003e\n }\n note for EpaperMonoDisplay \"结构切片 t_echo_lite,关系需由下钻证据确认\"","readingGuide":["这张 Class / Structural Diagram 聚焦 boards/t_echo_lite 这一结构切片,而不是整个 boards 顶层目录。","它只放入类、接口、枚举或结构类型;方法级高引用对象会进入 Component/Hotspot,不再混入结构协作图。","候选语境是「结构切片 t_echo_lite」。读图时先确认这些对象是否共同承载同一个业务能力、共享支撑机制或适配边界。","当前没有足够类级关系证据,因此图只保留候选切片对象,并降低为结构候选视角。"],"technicalAnalysis":["boards/t_echo_lite 当前包含 2 个类/结构和 0 个接口/trait 候选对象。","当前缺少类级关系证据,不能把同目录对象直接解释成稳定协作。","这张图的解释目标是结构职责和边界:哪些对象像领域模型、哪些对象像接口契约、哪些对象像策略/适配器或共享支撑。","如果图中对象只是同目录但没有共同业务语境或结构关系,生成流程必须拆分或降级为 Component/Hotspot,而不是继续保留为 Class / Structural Diagram。"],"businessRelation":["该图候选关联「结构切片 t_echo_lite」,应该回连到组织/过程模型中对应 Use Case 的 Class Collaboration、Activity 或 Sequence 下钻图。","软件结构模型不能只说“这里有很多类”,而要说明这些类如何让业务变化更容易或更困难。","候选对象包括:EpaperMonoDisplay、ScopedGpsSuspend。"],"governanceNotes":["不要把顶层 layer、目录名或关系数量当作结构图的解释对象;结构图必须围绕可命名的业务/技术语境。","当某个对象脱离当前语境、没有关系说明或只是高引用工具类时,应从该图移除,转入 Component/Hotspot 或共享支撑切片。","变更 boards/t_echo_lite 时,同步维护它和相关 Use Case、Component、Sequence 的引用关系。"],"coverage":["结构切片:boards/t_echo_lite","候选业务/技术语境:结构切片 t_echo_lite","所属工程边界:boards","候选结构对象数:2","候选结构关系数:0","对象:EpaperMonoDisplay (class)","对象:ScopedGpsSuspend (class)"],"evidencePaths":["boards/t_echo_lite/src/t_echo_lite_board.cpp#L856","boards/t_echo_lite/src/settings_store.cpp#L95"],"questions":["该结构切片来自本地仓库证据;当前未发现足够 Trace 证据把它绑定到唯一业务故事,因此只作为软件结构模型候选视角。"],"scope":{"packageId":"boards","filePath":"boards/t_echo_lite"},"drilldowns":[{"id":"engineering:diagram:component:boards-makeboardprofile","kind":"component","title":"函数节点:makeBoardProfile","summary":"function 位于 boards/t_echo_lite/include/boards/t_echo_lite/board_profile.h#L188,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/boards-makeboardprofile/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/boards-makeboardprofile/component-diagram.html","anchor":"engineering:component:function:makeboardprofile:boards-t_echo_lite-include-boards-t_echo_lite-board_profile.h:188","relation":"realized_by","reason":"打开 函数节点:makeBoardProfile 的组件视角,是为了验证结构图里的对象角色是否有文件锚点 boards/t_echo_lite/include/boards/t_echo_lite/board_profile.h、被引用/调用关系和下游关系证据支撑。"},{"id":"engineering:diagram:component:boards-pinnum","kind":"component","title":"函数节点:pinNum","summary":"function 位于 boards/t_echo_lite/include/boards/t_echo_lite/board_profile.h#L8,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/boards-pinnum/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/boards-pinnum/component-diagram.html","anchor":"engineering:component:function:pinnum:boards-t_echo_lite-include-boards-t_echo_lite-board_profile.h:8","relation":"realized_by","reason":"打开 函数节点:pinNum 的组件视角,是为了验证结构图里的对象角色是否有文件锚点 boards/t_echo_lite/include/boards/t_echo_lite/board_profile.h、被引用/调用关系和下游关系证据支撑。"},{"id":"engineering:diagram:technical-hotspot:dependency-cluster--boards","kind":"technical_hotspot","title":"依赖簇:boards 技术热点","summary":"该模块依赖多个外部边界,当前按候选技术耦合中心处理;图中只保留仓库证据已经观察到的依赖方向和边界。","docPath":"docs/engineering/technical-hotspots/dependency-cluster--boards/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/dependency-cluster--boards/technical-hotspot.html","anchor":"engineering:hotspot:dependency-cluster:boards","relation":"risk_detail","reason":"查看该结构边界中的热点,确认复杂度集中在哪个对象、文件或关系簇上。"}],"elements":[{"id":"engineering:diagram:class-structural:boards-t_echo_lite:element:epapermonodisplay","mermaidId":"EpaperMonoDisplay","label":"EpaperMonoDisplay","kind":"component","anchor":"engineering:class-structural:boards-t_echo_lite","summary":"EpaperMonoDisplay 属于 boards/t_echo_lite 结构切片,用来解释「结构切片 t_echo_lite」中的一个结构职责,而不是因为它在 boards 中关系数量高才被放入图。","role":"结构对象:它的职责必须结合 Use Case、Sequence 或 Component 下钻证据解释,不能只靠名称或目录判断。","whyItExists":"它位于 boards/t_echo_lite/src/t_echo_lite_board.cpp,并且和同切片其它类/接口处在同一源码语境;该语境比顶层目录 boards 更接近真实业务或架构边界。","relationshipMeaning":"图中的同切片关系表示候选结构协作边界;只有存在接口实现、继承、组合、策略或端口证据时,才应进一步标注为明确设计关系。","drilldownIntent":"下钻 EpaperMonoDisplay 应验证它在 Component、Sequence、Use Case Class Collaboration 中承担的具体角色,避免孤立类名被误读成业务解释。","businessRelevance":"EpaperMonoDisplay 是「结构切片 t_echo_lite」候选技术承载对象;当前文档通过 Trace/Refine 链接说明它服务的触发条件、流程或规则,证据不足时会降低置信度或缩小覆盖范围。","changeImpact":"修改 EpaperMonoDisplay 可能影响 boards/t_echo_lite 内的结构说明,并应同步检查相关 Design/Engineering/Architecture 文档是否仍一致。","evidence":["boards/t_echo_lite/src/t_echo_lite_board.cpp#L856","结构切片:boards/t_echo_lite","对象类型:class","候选语境:结构切片 t_echo_lite"],"risks":["当前切片来自本地仓库证据和路径语境推断;图中对象必须能解释同一个结构语境,否则生成流程会拆分或降级。"],"questions":[],"confidence":"high","drilldowns":[]},{"id":"engineering:diagram:class-structural:boards-t_echo_lite:element:scopedgpssuspend","mermaidId":"ScopedGpsSuspend","label":"ScopedGpsSuspend","kind":"component","anchor":"engineering:class-structural:boards-t_echo_lite","summary":"ScopedGpsSuspend 属于 boards/t_echo_lite 结构切片,用来解释「结构切片 t_echo_lite」中的一个结构职责,而不是因为它在 boards 中关系数量高才被放入图。","role":"结构对象:它的职责必须结合 Use Case、Sequence 或 Component 下钻证据解释,不能只靠名称或目录判断。","whyItExists":"它位于 boards/t_echo_lite/src/settings_store.cpp,并且和同切片其它类/接口处在同一源码语境;该语境比顶层目录 boards 更接近真实业务或架构边界。","relationshipMeaning":"图中的同切片关系表示候选结构协作边界;只有存在接口实现、继承、组合、策略或端口证据时,才应进一步标注为明确设计关系。","drilldownIntent":"下钻 ScopedGpsSuspend 应验证它在 Component、Sequence、Use Case Class Collaboration 中承担的具体角色,避免孤立类名被误读成业务解释。","businessRelevance":"ScopedGpsSuspend 是「结构切片 t_echo_lite」候选技术承载对象;当前文档通过 Trace/Refine 链接说明它服务的触发条件、流程或规则,证据不足时会降低置信度或缩小覆盖范围。","changeImpact":"修改 ScopedGpsSuspend 可能影响 boards/t_echo_lite 内的结构说明,并应同步检查相关 Design/Engineering/Architecture 文档是否仍一致。","evidence":["boards/t_echo_lite/src/settings_store.cpp#L95","结构切片:boards/t_echo_lite","对象类型:class","候选语境:结构切片 t_echo_lite"],"risks":["当前切片来自本地仓库证据和路径语境推断;图中对象必须能解释同一个结构语境,否则生成流程会拆分或降级。"],"questions":[],"confidence":"high","drilldowns":[]}]}]},{"id":"engineering:category:sequence","kind":"sequence","title":"Sequence Diagrams","directory":"docs/engineering/sequence-diagrams","mapDocPath":"docs/engineering/sequence-diagrams/sequence-diagrams-maps.md","mapHtmlPath":"docs/engineering/sequence-diagrams/sequence-diagrams-maps.html","summary":"由真实调用关系恢复的运行时协作片段。","count":18,"items":[{"id":"engineering:diagram:sequence:tick-calls-log_loop_interval","kind":"sequence","title":"动态协作:tick 调用 log_loop_interval","summary":"apps/esp32_lvgl/src/esp32_lvgl_arduino_loop_runtime.cpp 中的 tick calls apps/esp32_lvgl/src/esp32_lvgl_arduino_loop_runtime.cpp 中的 log_loop_interval。","docPath":"docs/engineering/sequence-diagrams/tick-calls-log_loop_interval/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/tick-calls-log_loop_interval/sequence-diagram.html","anchor":"engineering:runtime-flow:tick:log_loop_interval:apps-esp32_lvgl-src-esp32_lvgl_arduino_loop_runtime.cpp:apps-esp32_lvgl-src-esp32_lvgl_arduino_loop_runtime.cpp","status":"candidate","confidence":"high","mermaidKind":"sequenceDiagram","mermaid":"sequenceDiagram\n participant Source as tick\n participant Target as log_loop_interval\n Source-\u003e\u003eTarget: calls\n Note over Source,Target: apps/esp32_lvgl","readingGuide":["这张 Sequence Diagram 聚焦 tick 调用 log_loop_interval 的技术协作片段。","它描述的是一个局部运行片段,不一定等同于完整业务流程。","当前关系来自本地调用证据;若没有 Use Case Trace,它只表示局部协作片段,不直接等同于主成功场景、回调、补偿或失败路径。"],"technicalAnalysis":["apps/esp32_lvgl/src/esp32_lvgl_arduino_loop_runtime.cpp 与 apps/esp32_lvgl/src/esp32_lvgl_arduino_loop_runtime.cpp 之间存在 calls 关系,所属技术边界是 apps/esp32_lvgl。","Sequence Diagram 用于解释运行时或协作顺序,适合承接那些从 Package/Component 图看不清的动态行为。","如果未来证据显示存在异步消息、回调、超时或失败补偿,应为同一业务/技术场景拆出多张 sequence,而不是塞进一张大图。"],"businessRelation":["业务 Use Case 的主成功路径、失败路径和回调路径最终会落到若干技术 sequence 片段上。","当前片段可能解释某个业务故事中的技术执行步骤;如果没有 Use Case Trace,它只作为软件结构模型中的局部协作片段。","如果它被确认属于某个 Use Case,应在 docs/design 对应下钻 Sequence Diagram 中链接到这份工程 sequence 文档。"],"governanceNotes":["不要只根据单条关系判断完整调用链;需要结合前后游关系补全场景。","当 sequence 涉及外部系统、模型调用、文件写入或 Git 操作时,应补充失败路径和重试/补偿说明。","如果该 sequence 支撑用户可见功能,应同步维护组织/过程模型的业务下钻图。"],"coverage":["交互类型:calls","来源:apps/esp32_lvgl/src/esp32_lvgl_arduino_loop_runtime.cpp","目标:apps/esp32_lvgl/src/esp32_lvgl_arduino_loop_runtime.cpp","所属模块:apps/esp32_lvgl"],"evidencePaths":["apps/esp32_lvgl/src/esp32_lvgl_arduino_loop_runtime.cpp","apps/esp32_lvgl/src/esp32_lvgl_arduino_loop_runtime.cpp"],"questions":[],"scope":{"packageId":"apps/esp32_lvgl","sourcePath":"apps/esp32_lvgl/src/esp32_lvgl_arduino_loop_runtime.cpp","targetPath":"apps/esp32_lvgl/src/esp32_lvgl_arduino_loop_runtime.cpp","targetPackageId":"apps/esp32_lvgl","sourceName":"tick","targetName":"log_loop_interval"},"drilldowns":[],"elements":[{"id":"engineering:diagram:sequence:tick-calls-log_loop_interval:element:tick","mermaidId":"Source","label":"tick","kind":"component","anchor":"engineering:runtime-flow:tick:log_loop_interval:apps-esp32_lvgl-src-esp32_lvgl_arduino_loop_runtime.cpp:apps-esp32_lvgl-src-esp32_lvgl_arduino_loop_runtime.cpp:source","summary":"tick 是当前 Sequence Diagram 的来源参与者,用来解释 apps/esp32_lvgl/src/esp32_lvgl_arduino_loop_runtime.cpp 中的 tick calls apps/esp32_lvgl/src/esp32_lvgl_arduino_loop_runtime.cpp 中的 log_loop_interval。","role":"消息发起/依赖方:它触发或引用目标能力。","whyItExists":"本地仓库证据在 apps/esp32_lvgl/src/esp32_lvgl_arduino_loop_runtime.cpp 与 apps/esp32_lvgl/src/esp32_lvgl_arduino_loop_runtime.cpp 之间观察到 calls,因此 tick 被放入 sequence。","relationshipMeaning":"tick -\u003e log_loop_interval 表示当前片段的依赖方向;如果关系只是 import,它只能说明静态依赖,不能直接证明运行时顺序。","drilldownIntent":"下钻 tick 可以查看对应 Component Diagram 或结构上下文,判断这个参与者在更大技术边界中的职责。","businessRelevance":"业务 Use Case 的执行过程可能落到多个 sequence 片段上;当前片段只是候选技术步骤,需要组织/过程模型证据确认业务含义。","changeImpact":"修改 apps/esp32_lvgl/src/esp32_lvgl_arduino_loop_runtime.cpp 可能改变该 sequence 的依赖关系、调用证据和相关组件/结构图的解释。","evidence":["apps/esp32_lvgl/src/esp32_lvgl_arduino_loop_runtime.cpp","交互类型:calls","来源:apps/esp32_lvgl/src/esp32_lvgl_arduino_loop_runtime.cpp","目标:apps/esp32_lvgl/src/esp32_lvgl_arduino_loop_runtime.cpp","所属模块:apps/esp32_lvgl"],"risks":["单条 sequence 片段不足以证明完整调用链或业务主成功路径。"],"questions":["当前关系类型需要按证据区分运行时调用、静态 import、类型引用或配置引用;若只是静态关系,本图不应被解释成真实调用顺序。"],"confidence":"high","drilldowns":[]},{"id":"engineering:diagram:sequence:tick-calls-log_loop_interval:element:log_loop_interval","mermaidId":"Target","label":"log_loop_interval","kind":"component","anchor":"engineering:runtime-flow:tick:log_loop_interval:apps-esp32_lvgl-src-esp32_lvgl_arduino_loop_runtime.cpp:apps-esp32_lvgl-src-esp32_lvgl_arduino_loop_runtime.cpp:target","summary":"log_loop_interval 是当前 Sequence Diagram 的目标参与者,用来解释 apps/esp32_lvgl/src/esp32_lvgl_arduino_loop_runtime.cpp 中的 tick calls apps/esp32_lvgl/src/esp32_lvgl_arduino_loop_runtime.cpp 中的 log_loop_interval。","role":"消息接收/被依赖方:它提供被当前片段引用或调用的能力。","whyItExists":"本地仓库证据在 apps/esp32_lvgl/src/esp32_lvgl_arduino_loop_runtime.cpp 与 apps/esp32_lvgl/src/esp32_lvgl_arduino_loop_runtime.cpp 之间观察到 calls,因此 log_loop_interval 被放入 sequence。","relationshipMeaning":"tick -\u003e log_loop_interval 表示目标能力被当前片段依赖;需要结合调用证据确认它是运行时调用、类型引用还是静态导入。","drilldownIntent":"下钻 log_loop_interval 可以查看对应 Component Diagram 或结构上下文,判断这个参与者在更大技术边界中的职责。","businessRelevance":"业务 Use Case 的执行过程可能落到多个 sequence 片段上;当前片段只是候选技术步骤,需要组织/过程模型证据确认业务含义。","changeImpact":"修改 apps/esp32_lvgl/src/esp32_lvgl_arduino_loop_runtime.cpp 可能改变该 sequence 的依赖关系、调用证据和相关组件/结构图的解释。","evidence":["apps/esp32_lvgl/src/esp32_lvgl_arduino_loop_runtime.cpp","交互类型:calls","来源:apps/esp32_lvgl/src/esp32_lvgl_arduino_loop_runtime.cpp","目标:apps/esp32_lvgl/src/esp32_lvgl_arduino_loop_runtime.cpp","所属模块:apps/esp32_lvgl"],"risks":["单条 sequence 片段不足以证明完整调用链或业务主成功路径。"],"questions":["当前关系类型需要按证据区分运行时调用、静态 import、类型引用或配置引用;若只是静态关系,本图不应被解释成真实调用顺序。"],"confidence":"high","drilldowns":[]}]},{"id":"engineering:diagram:sequence:add_status_line-calls-add_label","kind":"sequence","title":"动态协作:add_status_line 调用 add_label","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_status_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_label。","docPath":"docs/engineering/sequence-diagrams/add_status_line-calls-add_label/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/add_status_line-calls-add_label/sequence-diagram.html","anchor":"engineering:runtime-flow:add_status_line:add_label:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","status":"candidate","confidence":"high","mermaidKind":"sequenceDiagram","mermaid":"sequenceDiagram\n participant Source as add_status_line\n participant Target as add_label\n Source-\u003e\u003eTarget: calls\n Note over Source,Target: apps/esp32_lvgl","readingGuide":["这张 Sequence Diagram 聚焦 add_status_line 调用 add_label 的技术协作片段。","它描述的是一个局部运行片段,不一定等同于完整业务流程。","当前关系来自本地调用证据;若没有 Use Case Trace,它只表示局部协作片段,不直接等同于主成功场景、回调、补偿或失败路径。"],"technicalAnalysis":["apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 与 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 之间存在 calls 关系,所属技术边界是 apps/esp32_lvgl。","Sequence Diagram 用于解释运行时或协作顺序,适合承接那些从 Package/Component 图看不清的动态行为。","如果未来证据显示存在异步消息、回调、超时或失败补偿,应为同一业务/技术场景拆出多张 sequence,而不是塞进一张大图。"],"businessRelation":["业务 Use Case 的主成功路径、失败路径和回调路径最终会落到若干技术 sequence 片段上。","当前片段可能解释某个业务故事中的技术执行步骤;如果没有 Use Case Trace,它只作为软件结构模型中的局部协作片段。","如果它被确认属于某个 Use Case,应在 docs/design 对应下钻 Sequence Diagram 中链接到这份工程 sequence 文档。"],"governanceNotes":["不要只根据单条关系判断完整调用链;需要结合前后游关系补全场景。","当 sequence 涉及外部系统、模型调用、文件写入或 Git 操作时,应补充失败路径和重试/补偿说明。","如果该 sequence 支撑用户可见功能,应同步维护组织/过程模型的业务下钻图。"],"coverage":["交互类型:calls","来源:apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","目标:apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","所属模块:apps/esp32_lvgl"],"evidencePaths":["apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp"],"questions":[],"scope":{"packageId":"apps/esp32_lvgl","sourcePath":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","targetPath":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","targetPackageId":"apps/esp32_lvgl","sourceName":"add_status_line","targetName":"add_label"},"drilldowns":[{"id":"engineering:diagram:component:apps-esp32_lvgl-companion_enter","kind":"component","title":"函数节点:companion_enter","summary":"function 位于 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp#L72,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-companion_enter/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-companion_enter/component-diagram.html","anchor":"engineering:component:function:companion_enter:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:72","relation":"source_or_target","reason":"打开 函数节点:companion_enter 的组件图,查看当前 sequence 参与者的真实职责、文件锚点和关系压力。"}],"elements":[{"id":"engineering:diagram:sequence:add_status_line-calls-add_label:element:add_status_line","mermaidId":"Source","label":"add_status_line","kind":"component","anchor":"engineering:runtime-flow:add_status_line:add_label:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:source","summary":"add_status_line 是当前 Sequence Diagram 的来源参与者,用来解释 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_status_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_label。","role":"消息发起/依赖方:它触发或引用目标能力。","whyItExists":"本地仓库证据在 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 与 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 之间观察到 calls,因此 add_status_line 被放入 sequence。","relationshipMeaning":"add_status_line -\u003e add_label 表示当前片段的依赖方向;如果关系只是 import,它只能说明静态依赖,不能直接证明运行时顺序。","drilldownIntent":"下钻 add_status_line 可以查看对应 Component Diagram 或结构上下文,判断这个参与者在更大技术边界中的职责。","businessRelevance":"业务 Use Case 的执行过程可能落到多个 sequence 片段上;当前片段只是候选技术步骤,需要组织/过程模型证据确认业务含义。","changeImpact":"修改 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 可能改变该 sequence 的依赖关系、调用证据和相关组件/结构图的解释。","evidence":["apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","交互类型:calls","来源:apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","目标:apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","所属模块:apps/esp32_lvgl"],"risks":["单条 sequence 片段不足以证明完整调用链或业务主成功路径。"],"questions":["当前关系类型需要按证据区分运行时调用、静态 import、类型引用或配置引用;若只是静态关系,本图不应被解释成真实调用顺序。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:component:apps-esp32_lvgl-companion_enter","kind":"component","title":"函数节点:companion_enter","summary":"function 位于 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp#L72,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-companion_enter/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-companion_enter/component-diagram.html","anchor":"engineering:component:function:companion_enter:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:72","relation":"source_or_target","reason":"打开 函数节点:companion_enter 的组件图,查看当前 sequence 参与者的真实职责、文件锚点和关系压力。"}]},{"id":"engineering:diagram:sequence:add_status_line-calls-add_label:element:add_label","mermaidId":"Target","label":"add_label","kind":"component","anchor":"engineering:runtime-flow:add_status_line:add_label:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:target","summary":"add_label 是当前 Sequence Diagram 的目标参与者,用来解释 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_status_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_label。","role":"消息接收/被依赖方:它提供被当前片段引用或调用的能力。","whyItExists":"本地仓库证据在 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 与 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 之间观察到 calls,因此 add_label 被放入 sequence。","relationshipMeaning":"add_status_line -\u003e add_label 表示目标能力被当前片段依赖;需要结合调用证据确认它是运行时调用、类型引用还是静态导入。","drilldownIntent":"下钻 add_label 可以查看对应 Component Diagram 或结构上下文,判断这个参与者在更大技术边界中的职责。","businessRelevance":"业务 Use Case 的执行过程可能落到多个 sequence 片段上;当前片段只是候选技术步骤,需要组织/过程模型证据确认业务含义。","changeImpact":"修改 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 可能改变该 sequence 的依赖关系、调用证据和相关组件/结构图的解释。","evidence":["apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","交互类型:calls","来源:apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","目标:apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","所属模块:apps/esp32_lvgl"],"risks":["单条 sequence 片段不足以证明完整调用链或业务主成功路径。"],"questions":["当前关系类型需要按证据区分运行时调用、静态 import、类型引用或配置引用;若只是静态关系,本图不应被解释成真实调用顺序。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:component:apps-esp32_lvgl-companion_enter","kind":"component","title":"函数节点:companion_enter","summary":"function 位于 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp#L72,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-companion_enter/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-companion_enter/component-diagram.html","anchor":"engineering:component:function:companion_enter:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:72","relation":"source_or_target","reason":"打开 函数节点:companion_enter 的组件图,查看当前 sequence 参与者的真实职责、文件锚点和关系压力。"}]}]},{"id":"engineering:diagram:sequence:add_u32_line-calls-add_label","kind":"sequence","title":"动态协作:add_u32_line 调用 add_label","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_u32_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_label。","docPath":"docs/engineering/sequence-diagrams/add_u32_line-calls-add_label/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/add_u32_line-calls-add_label/sequence-diagram.html","anchor":"engineering:runtime-flow:add_u32_line:add_label:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","status":"candidate","confidence":"high","mermaidKind":"sequenceDiagram","mermaid":"sequenceDiagram\n participant Source as add_u32_line\n participant Target as add_label\n Source-\u003e\u003eTarget: calls\n Note over Source,Target: apps/esp32_lvgl","readingGuide":["这张 Sequence Diagram 聚焦 add_u32_line 调用 add_label 的技术协作片段。","它描述的是一个局部运行片段,不一定等同于完整业务流程。","当前关系来自本地调用证据;若没有 Use Case Trace它只表示局部协作片段,不直接等同于主成功场景、回调、补偿或失败路径。"],"technicalAnalysis":["apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 与 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 之间存在 calls 关系,所属技术边界是 apps/esp32_lvgl。","Sequence Diagram 用于解释运行时或协作顺序,适合承接那些从 Package/Component 图看不清的动态行为。","如果未来证据显示存在异步消息、回调、超时或失败补偿,应为同一业务/技术场景拆出多张 sequence,而不是塞进一张大图。"],"businessRelation":["业务 Use Case 的主成功路径、失败路径和回调路径最终会落到若干技术 sequence 片段上。","当前片段可能解释某个业务故事中的技术执行步骤;如果没有 Use Case Trace,它只作为软件结构模型中的局部协作片段。","如果它被确认属于某个 Use Case,应在 docs/design 对应下钻 Sequence Diagram 中链接到这份工程 sequence 文档。"],"governanceNotes":["不要只根据单条关系判断完整调用链;需要结合前后游关系补全场景。","当 sequence 涉及外部系统、模型调用、文件写入或 Git 操作时,应补充失败路径和重试/补偿说明。","如果该 sequence 支撑用户可见功能,应同步维护组织/过程模型的业务下钻图。"],"coverage":["交互类型:calls","来源:apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","目标:apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","所属模块:apps/esp32_lvgl"],"evidencePaths":["apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp"],"questions":[],"scope":{"packageId":"apps/esp32_lvgl","sourcePath":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","targetPath":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","targetPackageId":"apps/esp32_lvgl","sourceName":"add_u32_line","targetName":"add_label"},"drilldowns":[{"id":"engineering:diagram:component:apps-esp32_lvgl-companion_enter","kind":"component","title":"函数节点:companion_enter","summary":"function 位于 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp#L72,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-companion_enter/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-companion_enter/component-diagram.html","anchor":"engineering:component:function:companion_enter:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:72","relation":"source_or_target","reason":"打开 函数节点:companion_enter 的组件图,查看当前 sequence 参与者的真实职责、文件锚点和关系压力。"}],"elements":[{"id":"engineering:diagram:sequence:add_u32_line-calls-add_label:element:add_u32_line","mermaidId":"Source","label":"add_u32_line","kind":"component","anchor":"engineering:runtime-flow:add_u32_line:add_label:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:source","summary":"add_u32_line 是当前 Sequence Diagram 的来源参与者,用来解释 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_u32_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_label。","role":"消息发起/依赖方:它触发或引用目标能力。","whyItExists":"本地仓库证据在 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 与 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 之间观察到 calls,因此 add_u32_line 被放入 sequence。","relationshipMeaning":"add_u32_line -\u003e add_label 表示当前片段的依赖方向;如果关系只是 import,它只能说明静态依赖,不能直接证明运行时顺序。","drilldownIntent":"下钻 add_u32_line 可以查看对应 Component Diagram 或结构上下文,判断这个参与者在更大技术边界中的职责。","businessRelevance":"业务 Use Case 的执行过程可能落到多个 sequence 片段上;当前片段只是候选技术步骤,需要组织/过程模型证据确认业务含义。","changeImpact":"修改 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 可能改变该 sequence 的依赖关系、调用证据和相关组件/结构图的解释。","evidence":["apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","交互类型:calls","来源:apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","目标:apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","所属模块:apps/esp32_lvgl"],"risks":["单条 sequence 片段不足以证明完整调用链或业务主成功路径。"],"questions":["当前关系类型需要按证据区分运行时调用、静态 import、类型引用或配置引用;若只是静态关系,本图不应被解释成真实调用顺序。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:component:apps-esp32_lvgl-companion_enter","kind":"component","title":"函数节点:companion_enter","summary":"function 位于 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp#L72,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-companion_enter/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-companion_enter/component-diagram.html","anchor":"engineering:component:function:companion_enter:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:72","relation":"source_or_target","reason":"打开 函数节点:companion_enter 的组件图,查看当前 sequence 参与者的真实职责、文件锚点和关系压力。"}]},{"id":"engineering:diagram:sequence:add_u32_line-calls-add_label:element:add_label","mermaidId":"Target","label":"add_label","kind":"component","anchor":"engineering:runtime-flow:add_u32_line:add_label:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:target","summary":"add_label 是当前 Sequence Diagram 的目标参与者,用来解释 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_u32_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_label。","role":"消息接收/被依赖方:它提供被当前片段引用或调用的能力。","whyItExists":"本地仓库证据在 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 与 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 之间观察到 calls,因此 add_label 被放入 sequence。","relationshipMeaning":"add_u32_line -\u003e add_label 表示目标能力被当前片段依赖;需要结合调用证据确认它是运行时调用、类型引用还是静态导入。","drilldownIntent":"下钻 add_label 可以查看对应 Component Diagram 或结构上下文,判断这个参与者在更大技术边界中的职责。","businessRelevance":"业务 Use Case 的执行过程可能落到多个 sequence 片段上;当前片段只是候选技术步骤,需要组织/过程模型证据确认业务含义。","changeImpact":"修改 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 可能改变该 sequence 的依赖关系、调用证据和相关组件/结构图的解释。","evidence":["apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","交互类型:calls","来源:apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","目标:apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","所属模块:apps/esp32_lvgl"],"risks":["单条 sequence 片段不足以证明完整调用链或业务主成功路径。"],"questions":["当前关系类型需要按证据区分运行时调用、静态 import、类型引用或配置引用;若只是静态关系,本图不应被解释成真实调用顺序。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:component:apps-esp32_lvgl-companion_enter","kind":"component","title":"函数节点:companion_enter","summary":"function 位于 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp#L72,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-companion_enter/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-companion_enter/component-diagram.html","anchor":"engineering:component:function:companion_enter:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:72","relation":"source_or_target","reason":"打开 函数节点:companion_enter 的组件图,查看当前 sequence 参与者的真实职责、文件锚点和关系压力。"}]}]},{"id":"engineering:diagram:sequence:add_hex_line-calls-add_status_line","kind":"sequence","title":"动态协作:add_hex_line 调用 add_status_line","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_hex_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_status_line。","docPath":"docs/engineering/sequence-diagrams/add_hex_line-calls-add_status_line/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/add_hex_line-calls-add_status_line/sequence-diagram.html","anchor":"engineering:runtime-flow:add_hex_line:add_status_line:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","status":"candidate","confidence":"high","mermaidKind":"sequenceDiagram","mermaid":"sequenceDiagram\n participant Source as add_hex_line\n participant Target as add_status_line\n Source-\u003e\u003eTarget: calls\n Note over Source,Target: apps/esp32_lvgl","readingGuide":["这张 Sequence Diagram 聚焦 add_hex_line 调用 add_status_line 的技术协作片段。","它描述的是一个局部运行片段,不一定等同于完整业务流程。","当前关系来自本地调用证据;若没有 Use Case Trace,它只表示局部协作片段,不直接等同于主成功场景、回调、补偿或失败路径。"],"technicalAnalysis":["apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 与 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 之间存在 calls 关系,所属技术边界是 apps/esp32_lvgl。","Sequence Diagram 用于解释运行时或协作顺序,适合承接那些从 Package/Component 图看不清的动态行为。","如果未来证据显示存在异步消息、回调、超时或失败补偿,应为同一业务/技术场景拆出多张 sequence,而不是塞进一张大图。"],"businessRelation":["业务 Use Case 的主成功路径、失败路径和回调路径最终会落到若干技术 sequence 片段上。","当前片段可能解释某个业务故事中的技术执行步骤;如果没有 Use Case Trace,它只作为软件结构模型中的局部协作片段。","如果它被确认属于某个 Use Case,应在 docs/design 对应下钻 Sequence Diagram 中链接到这份工程 sequence 文档。"],"governanceNotes":["不要只根据单条关系判断完整调用链;需要结合前后游关系补全场景。","当 sequence 涉及外部系统、模型调用、文件写入或 Git 操作时,应补充失败路径和重试/补偿说明。","如果该 sequence 支撑用户可见功能,应同步维护组织/过程模型的业务下钻图。"],"coverage":["交互类型:calls","来源:apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","目标:apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","所属模块:apps/esp32_lvgl"],"evidencePaths":["apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp"],"questions":[],"scope":{"packageId":"apps/esp32_lvgl","sourcePath":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","targetPath":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","targetPackageId":"apps/esp32_lvgl","sourceName":"add_hex_line","targetName":"add_status_line"},"drilldowns":[{"id":"engineering:diagram:component:apps-esp32_lvgl-companion_enter","kind":"component","title":"函数节点:companion_enter","summary":"function 位于 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp#L72,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-companion_enter/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-companion_enter/component-diagram.html","anchor":"engineering:component:function:companion_enter:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:72","relation":"source_or_target","reason":"打开 函数节点:companion_enter 的组件图,查看当前 sequence 参与者的真实职责、文件锚点和关系压力。"}],"elements":[{"id":"engineering:diagram:sequence:add_hex_line-calls-add_status_line:element:add_hex_line","mermaidId":"Source","label":"add_hex_line","kind":"component","anchor":"engineering:runtime-flow:add_hex_line:add_status_line:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:source","summary":"add_hex_line 是当前 Sequence Diagram 的来源参与者,用来解释 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_hex_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_status_line。","role":"消息发起/依赖方:它触发或引用目标能力。","whyItExists":"本地仓库证据在 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 与 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 之间观察到 calls,因此 add_hex_line 被放入 sequence。","relationshipMeaning":"add_hex_line -\u003e add_status_line 表示当前片段的依赖方向;如果关系只是 import,它只能说明静态依赖,不能直接证明运行时顺序。","drilldownIntent":"下钻 add_hex_line 可以查看对应 Component Diagram 或结构上下文,判断这个参与者在更大技术边界中的职责。","businessRelevance":"业务 Use Case 的执行过程可能落到多个 sequence 片段上;当前片段只是候选技术步骤,需要组织/过程模型证据确认业务含义。","changeImpact":"修改 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 可能改变该 sequence 的依赖关系、调用证据和相关组件/结构图的解释。","evidence":["apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","交互类型:calls","来源:apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","目标:apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","所属模块:apps/esp32_lvgl"],"risks":["单条 sequence 片段不足以证明完整调用链或业务主成功路径。"],"questions":["当前关系类型需要按证据区分运行时调用、静态 import、类型引用或配置引用;若只是静态关系,本图不应被解释成真实调用顺序。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:component:apps-esp32_lvgl-companion_enter","kind":"component","title":"函数节点:companion_enter","summary":"function 位于 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp#L72,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-companion_enter/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-companion_enter/component-diagram.html","anchor":"engineering:component:function:companion_enter:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:72","relation":"source_or_target","reason":"打开 函数节点:companion_enter 的组件图,查看当前 sequence 参与者的真实职责、文件锚点和关系压力。"}]},{"id":"engineering:diagram:sequence:add_hex_line-calls-add_status_line:element:add_status_line","mermaidId":"Target","label":"add_status_line","kind":"component","anchor":"engineering:runtime-flow:add_hex_line:add_status_line:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:target","summary":"add_status_line 是当前 Sequence Diagram 的目标参与者,用来解释 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_hex_line calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_status_line。","role":"消息接收/被依赖方:它提供被当前片段引用或调用的能力。","whyItExists":"本地仓库证据在 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 与 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 之间观察到 calls,因此 add_status_line 被放入 sequence。","relationshipMeaning":"add_hex_line -\u003e add_status_line 表示目标能力被当前片段依赖;需要结合调用证据确认它是运行时调用、类型引用还是静态导入。","drilldownIntent":"下钻 add_status_line 可以查看对应 Component Diagram 或结构上下文,判断这个参与者在更大技术边界中的职责。","businessRelevance":"业务 Use Case 的执行过程可能落到多个 sequence 片段上;当前片段只是候选技术步骤,需要组织/过程模型证据确认业务含义。","changeImpact":"修改 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 可能改变该 sequence 的依赖关系、调用证据和相关组件/结构图的解释。","evidence":["apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","交互类型:calls","来源:apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","目标:apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","所属模块:apps/esp32_lvgl"],"risks":["单条 sequence 片段不足以证明完整调用链或业务主成功路径。"],"questions":["当前关系类型需要按证据区分运行时调用、静态 import、类型引用或配置引用;若只是静态关系,本图不应被解释成真实调用顺序。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:component:apps-esp32_lvgl-companion_enter","kind":"component","title":"函数节点:companion_enter","summary":"function 位于 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp#L72,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-companion_enter/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-companion_enter/component-diagram.html","anchor":"engineering:component:function:companion_enter:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:72","relation":"source_or_target","reason":"打开 函数节点:companion_enter 的组件图,查看当前 sequence 参与者的真实职责、文件锚点和关系压力。"}]}]},{"id":"engineering:diagram:sequence:companion_enter-calls-add_label","kind":"sequence","title":"动态协作:companion_enter 调用 add_label","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 companion_enter calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_label。","docPath":"docs/engineering/sequence-diagrams/companion_enter-calls-add_label/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/companion_enter-calls-add_label/sequence-diagram.html","anchor":"engineering:runtime-flow:companion_enter:add_label:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","status":"candidate","confidence":"high","mermaidKind":"sequenceDiagram","mermaid":"sequenceDiagram\n participant Source as companion_enter\n participant Target as add_label\n Source-\u003e\u003eTarget: calls\n Note over Source,Target: apps/esp32_lvgl","readingGuide":["这张 Sequence Diagram 聚焦 companion_enter 调用 add_label 的技术协作片段。","它描述的是一个局部运行片段,不一定等同于完整业务流程。","当前关系来自本地调用证据;若没有 Use Case Trace,它只表示局部协作片段,不直接等同于主成功场景、回调、补偿或失败路径。"],"technicalAnalysis":["apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 与 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 之间存在 calls 关系,所属技术边界是 apps/esp32_lvgl。","Sequence Diagram 用于解释运行时或协作顺序,适合承接那些从 Package/Component 图看不清的动态行为。","如果未来证据显示存在异步消息、回调、超时或失败补偿,应为同一业务/技术场景拆出多张 sequence,而不是塞进一张大图。"],"businessRelation":["业务 Use Case 的主成功路径、失败路径和回调路径最终会落到若干技术 sequence 片段上。","当前片段可能解释某个业务故事中的技术执行步骤;如果没有 Use Case Trace,它只作为软件结构模型中的局部协作片段。","如果它被确认属于某个 Use Case,应在 docs/design 对应下钻 Sequence Diagram 中链接到这份工程 sequence 文档。"],"governanceNotes":["不要只根据单条关系判断完整调用链;需要结合前后游关系补全场景。","当 sequence 涉及外部系统、模型调用、文件写入或 Git 操作时,应补充失败路径和重试/补偿说明。","如果该 sequence 支撑用户可见功能,应同步维护组织/过程模型的业务下钻图。"],"coverage":["交互类型:calls","来源:apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","目标:apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","所属模块:apps/esp32_lvgl"],"evidencePaths":["apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp"],"questions":[],"scope":{"packageId":"apps/esp32_lvgl","sourcePath":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","targetPath":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","targetPackageId":"apps/esp32_lvgl","sourceName":"companion_enter","targetName":"add_label"},"drilldowns":[{"id":"engineering:diagram:component:apps-esp32_lvgl-companion_enter","kind":"component","title":"函数节点:companion_enter","summary":"function 位于 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp#L72,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-companion_enter/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-companion_enter/component-diagram.html","anchor":"engineering:component:function:companion_enter:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:72","relation":"source_or_target","reason":"打开 函数节点:companion_enter 的组件图,查看当前 sequence 参与者的真实职责、文件锚点和关系压力。"}],"elements":[{"id":"engineering:diagram:sequence:companion_enter-calls-add_label:element:companion_enter","mermaidId":"Source","label":"companion_enter","kind":"component","anchor":"engineering:runtime-flow:companion_enter:add_label:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:source","summary":"companion_enter 是当前 Sequence Diagram 的来源参与者,用来解释 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 companion_enter calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_label。","role":"消息发起/依赖方:它触发或引用目标能力。","whyItExists":"本地仓库证据在 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 与 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 之间观察到 calls,因此 companion_enter 被放入 sequence。","relationshipMeaning":"companion_enter -\u003e add_label 表示当前片段的依赖方向;如果关系只是 import,它只能说明静态依赖,不能直接证明运行时顺序。","drilldownIntent":"下钻 companion_enter 可以查看对应 Component Diagram 或结构上下文,判断这个参与者在更大技术边界中的职责。","businessRelevance":"业务 Use Case 的执行过程可能落到多个 sequence 片段上;当前片段只是候选技术步骤,需要组织/过程模型证据确认业务含义。","changeImpact":"修改 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 可能改变该 sequence 的依赖关系、调用证据和相关组件/结构图的解释。","evidence":["apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","交互类型:calls","来源:apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","目标:apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","所属模块:apps/esp32_lvgl"],"risks":["单条 sequence 片段不足以证明完整调用链或业务主成功路径。"],"questions":["当前关系类型需要按证据区分运行时调用、静态 import、类型引用或配置引用;若只是静态关系,本图不应被解释成真实调用顺序。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:component:apps-esp32_lvgl-companion_enter","kind":"component","title":"函数节点:companion_enter","summary":"function 位于 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp#L72,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-companion_enter/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-companion_enter/component-diagram.html","anchor":"engineering:component:function:companion_enter:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:72","relation":"source_or_target","reason":"打开 函数节点:companion_enter 的组件图,查看当前 sequence 参与者的真实职责、文件锚点和关系压力。"}]},{"id":"engineering:diagram:sequence:companion_enter-calls-add_label:element:add_label","mermaidId":"Target","label":"add_label","kind":"component","anchor":"engineering:runtime-flow:companion_enter:add_label:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:target","summary":"add_label 是当前 Sequence Diagram 的目标参与者,用来解释 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 companion_enter calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_label。","role":"消息接收/被依赖方:它提供被当前片段引用或调用的能力。","whyItExists":"本地仓库证据在 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 与 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 之间观察到 calls,因此 add_label 被放入 sequence。","relationshipMeaning":"companion_enter -\u003e add_label 表示目标能力被当前片段依赖;需要结合调用证据确认它是运行时调用、类型引用还是静态导入。","drilldownIntent":"下钻 add_label 可以查看对应 Component Diagram 或结构上下文,判断这个参与者在更大技术边界中的职责。","businessRelevance":"业务 Use Case 的执行过程可能落到多个 sequence 片段上;当前片段只是候选技术步骤,需要组织/过程模型证据确认业务含义。","changeImpact":"修改 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 可能改变该 sequence 的依赖关系、调用证据和相关组件/结构图的解释。","evidence":["apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","交互类型:calls","来源:apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","目标:apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","所属模块:apps/esp32_lvgl"],"risks":["单条 sequence 片段不足以证明完整调用链或业务主成功路径。"],"questions":["当前关系类型需要按证据区分运行时调用、静态 import、类型引用或配置引用;若只是静态关系,本图不应被解释成真实调用顺序。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:component:apps-esp32_lvgl-companion_enter","kind":"component","title":"函数节点:companion_enter","summary":"function 位于 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp#L72,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-companion_enter/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-companion_enter/component-diagram.html","anchor":"engineering:component:function:companion_enter:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:72","relation":"source_or_target","reason":"打开 函数节点:companion_enter 的组件图,查看当前 sequence 参与者的真实职责、文件锚点和关系压力。"}]}]},{"id":"engineering:diagram:sequence:companion_enter-calls-add_status_line","kind":"sequence","title":"动态协作:companion_enter 调用 add_status_line","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 companion_enter calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_status_line。","docPath":"docs/engineering/sequence-diagrams/companion_enter-calls-add_status_line/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/companion_enter-calls-add_status_line/sequence-diagram.html","anchor":"engineering:runtime-flow:companion_enter:add_status_line:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","status":"candidate","confidence":"high","mermaidKind":"sequenceDiagram","mermaid":"sequenceDiagram\n participant Source as companion_enter\n participant Target as add_status_line\n Source-\u003e\u003eTarget: calls\n Note over Source,Target: apps/esp32_lvgl","readingGuide":["这张 Sequence Diagram 聚焦 companion_enter 调用 add_status_line 的技术协作片段。","它描述的是一个局部运行片段,不一定等同于完整业务流程。","当前关系来自本地调用证据;若没有 Use Case Trace,它只表示局部协作片段,不直接等同于主成功场景、回调、补偿或失败路径。"],"technicalAnalysis":["apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 与 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 之间存在 calls 关系,所属技术边界是 apps/esp32_lvgl。","Sequence Diagram 用于解释运行时或协作顺序,适合承接那些从 Package/Component 图看不清的动态行为。","如果未来证据显示存在异步消息、回调、超时或失败补偿,应为同一业务/技术场景拆出多张 sequence,而不是塞进一张大图。"],"businessRelation":["业务 Use Case 的主成功路径、失败路径和回调路径最终会落到若干技术 sequence 片段上。","当前片段可能解释某个业务故事中的技术执行步骤;如果没有 Use Case Trace,它只作为软件结构模型中的局部协作片段。","如果它被确认属于某个 Use Case,应在 docs/design 对应下钻 Sequence Diagram 中链接到这份工程 sequence 文档。"],"governanceNotes":["不要只根据单条关系判断完整调用链;需要结合前后游关系补全场景。","当 sequence 涉及外部系统、模型调用、文件写入或 Git 操作时,应补充失败路径和重试/补偿说明。","如果该 sequence 支撑用户可见功能,应同步维护组织/过程模型的业务下钻图。"],"coverage":["交互类型:calls","来源:apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","目标:apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","所属模块:apps/esp32_lvgl"],"evidencePaths":["apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp"],"questions":[],"scope":{"packageId":"apps/esp32_lvgl","sourcePath":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","targetPath":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","targetPackageId":"apps/esp32_lvgl","sourceName":"companion_enter","targetName":"add_status_line"},"drilldowns":[{"id":"engineering:diagram:component:apps-esp32_lvgl-companion_enter","kind":"component","title":"函数节点:companion_enter","summary":"function 位于 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp#L72,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-companion_enter/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-companion_enter/component-diagram.html","anchor":"engineering:component:function:companion_enter:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:72","relation":"source_or_target","reason":"打开 函数节点:companion_enter 的组件图,查看当前 sequence 参与者的真实职责、文件锚点和关系压力。"}],"elements":[{"id":"engineering:diagram:sequence:companion_enter-calls-add_status_line:element:companion_enter","mermaidId":"Source","label":"companion_enter","kind":"component","anchor":"engineering:runtime-flow:companion_enter:add_status_line:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:source","summary":"companion_enter 是当前 Sequence Diagram 的来源参与者,用来解释 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 companion_enter calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_status_line。","role":"消息发起/依赖方:它触发或引用目标能力。","whyItExists":"本地仓库证据在 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 与 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 之间观察到 calls,因此 companion_enter 被放入 sequence。","relationshipMeaning":"companion_enter -\u003e add_status_line 表示当前片段的依赖方向;如果关系只是 import,它只能说明静态依赖,不能直接证明运行时顺序。","drilldownIntent":"下钻 companion_enter 可以查看对应 Component Diagram 或结构上下文,判断这个参与者在更大技术边界中的职责。","businessRelevance":"业务 Use Case 的执行过程可能落到多个 sequence 片段上;当前片段只是候选技术步骤,需要组织/过程模型证据确认业务含义。","changeImpact":"修改 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 可能改变该 sequence 的依赖关系、调用证据和相关组件/结构图的解释。","evidence":["apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","交互类型:calls","来源:apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","目标:apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","所属模块:apps/esp32_lvgl"],"risks":["单条 sequence 片段不足以证明完整调用链或业务主成功路径。"],"questions":["当前关系类型需要按证据区分运行时调用、静态 import、类型引用或配置引用;若只是静态关系,本图不应被解释成真实调用顺序。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:component:apps-esp32_lvgl-companion_enter","kind":"component","title":"函数节点:companion_enter","summary":"function 位于 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp#L72,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-companion_enter/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-companion_enter/component-diagram.html","anchor":"engineering:component:function:companion_enter:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:72","relation":"source_or_target","reason":"打开 函数节点:companion_enter 的组件图,查看当前 sequence 参与者的真实职责、文件锚点和关系压力。"}]},{"id":"engineering:diagram:sequence:companion_enter-calls-add_status_line:element:add_status_line","mermaidId":"Target","label":"add_status_line","kind":"component","anchor":"engineering:runtime-flow:companion_enter:add_status_line:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:target","summary":"add_status_line 是当前 Sequence Diagram 的目标参与者,用来解释 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 companion_enter calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_status_line。","role":"消息接收/被依赖方:它提供被当前片段引用或调用的能力。","whyItExists":"本地仓库证据在 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 与 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 之间观察到 calls,因此 add_status_line 被放入 sequence。","relationshipMeaning":"companion_enter -\u003e add_status_line 表示目标能力被当前片段依赖;需要结合调用证据确认它是运行时调用、类型引用还是静态导入。","drilldownIntent":"下钻 add_status_line 可以查看对应 Component Diagram 或结构上下文,判断这个参与者在更大技术边界中的职责。","businessRelevance":"业务 Use Case 的执行过程可能落到多个 sequence 片段上;当前片段只是候选技术步骤,需要组织/过程模型证据确认业务含义。","changeImpact":"修改 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 可能改变该 sequence 的依赖关系、调用证据和相关组件/结构图的解释。","evidence":["apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","交互类型:calls","来源:apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","目标:apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","所属模块:apps/esp32_lvgl"],"risks":["单条 sequence 片段不足以证明完整调用链或业务主成功路径。"],"questions":["当前关系类型需要按证据区分运行时调用、静态 import、类型引用或配置引用;若只是静态关系,本图不应被解释成真实调用顺序。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:component:apps-esp32_lvgl-companion_enter","kind":"component","title":"函数节点:companion_enter","summary":"function 位于 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp#L72,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-companion_enter/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-companion_enter/component-diagram.html","anchor":"engineering:component:function:companion_enter:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:72","relation":"source_or_target","reason":"打开 函数节点:companion_enter 的组件图,查看当前 sequence 参与者的真实职责、文件锚点和关系压力。"}]}]},{"id":"engineering:diagram:sequence:companion_enter-calls-add_u32_line","kind":"sequence","title":"动态协作:companion_enter 调用 add_u32_line","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 companion_enter calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_u32_line。","docPath":"docs/engineering/sequence-diagrams/companion_enter-calls-add_u32_line/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/companion_enter-calls-add_u32_line/sequence-diagram.html","anchor":"engineering:runtime-flow:companion_enter:add_u32_line:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","status":"candidate","confidence":"high","mermaidKind":"sequenceDiagram","mermaid":"sequenceDiagram\n participant Source as companion_enter\n participant Target as add_u32_line\n Source-\u003e\u003eTarget: calls\n Note over Source,Target: apps/esp32_lvgl","readingGuide":["这张 Sequence Diagram 聚焦 companion_enter 调用 add_u32_line 的技术协作片段。","它描述的是一个局部运行片段,不一定等同于完整业务流程。","当前关系来自本地调用证据;若没有 Use Case Trace,它只表示局部协作片段,不直接等同于主成功场景、回调、补偿或失败路径。"],"technicalAnalysis":["apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 与 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 之间存在 calls 关系,所属技术边界是 apps/esp32_lvgl。","Sequence Diagram 用于解释运行时或协作顺序,适合承接那些从 Package/Component 图看不清的动态行为。","如果未来证据显示存在异步消息、回调、超时或失败补偿,应为同一业务/技术场景拆出多张 sequence,而不是塞进一张大图。"],"businessRelation":["业务 Use Case 的主成功路径、失败路径和回调路径最终会落到若干技术 sequence 片段上。","当前片段可能解释某个业务故事中的技术执行步骤;如果没有 Use Case Trace,它只作为软件结构模型中的局部协作片段。","如果它被确认属于某个 Use Case,应在 docs/design 对应下钻 Sequence Diagram 中链接到这份工程 sequence 文档。"],"governanceNotes":["不要只根据单条关系判断完整调用链;需要结合前后游关系补全场景。","当 sequence 涉及外部系统、模型调用、文件写入或 Git 操作时,应补充失败路径和重试/补偿说明。","如果该 sequence 支撑用户可见功能,应同步维护组织/过程模型的业务下钻图。"],"coverage":["交互类型:calls","来源:apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","目标:apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","所属模块:apps/esp32_lvgl"],"evidencePaths":["apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp"],"questions":[],"scope":{"packageId":"apps/esp32_lvgl","sourcePath":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","targetPath":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","targetPackageId":"apps/esp32_lvgl","sourceName":"companion_enter","targetName":"add_u32_line"},"drilldowns":[{"id":"engineering:diagram:component:apps-esp32_lvgl-companion_enter","kind":"component","title":"函数节点:companion_enter","summary":"function 位于 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp#L72,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-companion_enter/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-companion_enter/component-diagram.html","anchor":"engineering:component:function:companion_enter:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:72","relation":"source_or_target","reason":"打开 函数节点:companion_enter 的组件图,查看当前 sequence 参与者的真实职责、文件锚点和关系压力。"}],"elements":[{"id":"engineering:diagram:sequence:companion_enter-calls-add_u32_line:element:companion_enter","mermaidId":"Source","label":"companion_enter","kind":"component","anchor":"engineering:runtime-flow:companion_enter:add_u32_line:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:source","summary":"companion_enter 是当前 Sequence Diagram 的来源参与者,用来解释 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 companion_enter calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_u32_line。","role":"消息发起/依赖方:它触发或引用目标能力。","whyItExists":"本地仓库证据在 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 与 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 之间观察到 calls,因此 companion_enter 被放入 sequence。","relationshipMeaning":"companion_enter -\u003e add_u32_line 表示当前片段的依赖方向;如果关系只是 import,它只能说明静态依赖,不能直接证明运行时顺序。","drilldownIntent":"下钻 companion_enter 可以查看对应 Component Diagram 或结构上下文,判断这个参与者在更大技术边界中的职责。","businessRelevance":"业务 Use Case 的执行过程可能落到多个 sequence 片段上;当前片段只是候选技术步骤,需要组织/过程模型证据确认业务含义。","changeImpact":"修改 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 可能改变该 sequence 的依赖关系、调用证据和相关组件/结构图的解释。","evidence":["apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","交互类型:calls","来源:apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","目标:apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","所属模块:apps/esp32_lvgl"],"risks":["单条 sequence 片段不足以证明完整调用链或业务主成功路径。"],"questions":["当前关系类型需要按证据区分运行时调用、静态 import、类型引用或配置引用;若只是静态关系,本图不应被解释成真实调用顺序。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:component:apps-esp32_lvgl-companion_enter","kind":"component","title":"函数节点:companion_enter","summary":"function 位于 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp#L72,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-companion_enter/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-companion_enter/component-diagram.html","anchor":"engineering:component:function:companion_enter:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:72","relation":"source_or_target","reason":"打开 函数节点:companion_enter 的组件图,查看当前 sequence 参与者的真实职责、文件锚点和关系压力。"}]},{"id":"engineering:diagram:sequence:companion_enter-calls-add_u32_line:element:add_u32_line","mermaidId":"Target","label":"add_u32_line","kind":"component","anchor":"engineering:runtime-flow:companion_enter:add_u32_line:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:target","summary":"add_u32_line 是当前 Sequence Diagram 的目标参与者,用来解释 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 companion_enter calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_u32_line。","role":"消息接收/被依赖方:它提供被当前片段引用或调用的能力。","whyItExists":"本地仓库证据在 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 与 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 之间观察到 calls,因此 add_u32_line 被放入 sequence。","relationshipMeaning":"companion_enter -\u003e add_u32_line 表示目标能力被当前片段依赖;需要结合调用证据确认它是运行时调用、类型引用还是静态导入。","drilldownIntent":"下钻 add_u32_line 可以查看对应 Component Diagram 或结构上下文,判断这个参与者在更大技术边界中的职责。","businessRelevance":"业务 Use Case 的执行过程可能落到多个 sequence 片段上;当前片段只是候选技术步骤,需要组织/过程模型证据确认业务含义。","changeImpact":"修改 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 可能改变该 sequence 的依赖关系、调用证据和相关组件/结构图的解释。","evidence":["apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","交互类型:calls","来源:apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","目标:apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","所属模块:apps/esp32_lvgl"],"risks":["单条 sequence 片段不足以证明完整调用链或业务主成功路径。"],"questions":["当前关系类型需要按证据区分运行时调用、静态 import、类型引用或配置引用;若只是静态关系,本图不应被解释成真实调用顺序。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:component:apps-esp32_lvgl-companion_enter","kind":"component","title":"函数节点:companion_enter","summary":"function 位于 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp#L72,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-companion_enter/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-companion_enter/component-diagram.html","anchor":"engineering:component:function:companion_enter:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:72","relation":"source_or_target","reason":"打开 函数节点:companion_enter 的组件图,查看当前 sequence 参与者的真实职责、文件锚点和关系压力。"}]}]},{"id":"engineering:diagram:sequence:companion_enter-calls-add_hex_line","kind":"sequence","title":"动态协作:companion_enter 调用 add_hex_line","summary":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 companion_enter calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_hex_line。","docPath":"docs/engineering/sequence-diagrams/companion_enter-calls-add_hex_line/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/companion_enter-calls-add_hex_line/sequence-diagram.html","anchor":"engineering:runtime-flow:companion_enter:add_hex_line:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp","status":"candidate","confidence":"high","mermaidKind":"sequenceDiagram","mermaid":"sequenceDiagram\n participant Source as companion_enter\n participant Target as add_hex_line\n Source-\u003e\u003eTarget: calls\n Note over Source,Target: apps/esp32_lvgl","readingGuide":["这张 Sequence Diagram 聚焦 companion_enter 调用 add_hex_line 的技术协作片段。","它描述的是一个局部运行片段,不一定等同于完整业务流程。","当前关系来自本地调用证据;若没有 Use Case Trace,它只表示局部协作片段,不直接等同于主成功场景、回调、补偿或失败路径。"],"technicalAnalysis":["apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 与 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 之间存在 calls 关系,所属技术边界是 apps/esp32_lvgl。","Sequence Diagram 用于解释运行时或协作顺序,适合承接那些从 Package/Component 图看不清的动态行为。","如果未来证据显示存在异步消息、回调、超时或失败补偿,应为同一业务/技术场景拆出多张 sequence,而不是塞进一张大图。"],"businessRelation":["业务 Use Case 的主成功路径、失败路径和回调路径最终会落到若干技术 sequence 片段上。","当前片段可能解释某个业务故事中的技术执行步骤;如果没有 Use Case Trace,它只作为软件结构模型中的局部协作片段。","如果它被确认属于某个 Use Case,应在 docs/design 对应下钻 Sequence Diagram 中链接到这份工程 sequence 文档。"],"governanceNotes":["不要只根据单条关系判断完整调用链;需要结合前后游关系补全场景。","当 sequence 涉及外部系统、模型调用、文件写入或 Git 操作时,应补充失败路径和重试/补偿说明。","如果该 sequence 支撑用户可见功能,应同步维护组织/过程模型的业务下钻图。"],"coverage":["交互类型:calls","来源:apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","目标:apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","所属模块:apps/esp32_lvgl"],"evidencePaths":["apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp"],"questions":[],"scope":{"packageId":"apps/esp32_lvgl","sourcePath":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","targetPath":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","targetPackageId":"apps/esp32_lvgl","sourceName":"companion_enter","targetName":"add_hex_line"},"drilldowns":[{"id":"engineering:diagram:component:apps-esp32_lvgl-companion_enter","kind":"component","title":"函数节点:companion_enter","summary":"function 位于 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp#L72,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-companion_enter/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-companion_enter/component-diagram.html","anchor":"engineering:component:function:companion_enter:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:72","relation":"source_or_target","reason":"打开 函数节点:companion_enter 的组件图,查看当前 sequence 参与者的真实职责、文件锚点和关系压力。"}],"elements":[{"id":"engineering:diagram:sequence:companion_enter-calls-add_hex_line:element:companion_enter","mermaidId":"Source","label":"companion_enter","kind":"component","anchor":"engineering:runtime-flow:companion_enter:add_hex_line:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:source","summary":"companion_enter 是当前 Sequence Diagram 的来源参与者,用来解释 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 companion_enter calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_hex_line。","role":"消息发起/依赖方:它触发或引用目标能力。","whyItExists":"本地仓库证据在 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 与 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 之间观察到 calls,因此 companion_enter 被放入 sequence。","relationshipMeaning":"companion_enter -\u003e add_hex_line 表示当前片段的依赖方向;如果关系只是 import,它只能说明静态依赖,不能直接证明运行时顺序。","drilldownIntent":"下钻 companion_enter 可以查看对应 Component Diagram 或结构上下文,判断这个参与者在更大技术边界中的职责。","businessRelevance":"业务 Use Case 的执行过程可能落到多个 sequence 片段上;当前片段只是候选技术步骤,需要组织/过程模型证据确认业务含义。","changeImpact":"修改 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 可能改变该 sequence 的依赖关系、调用证据和相关组件/结构图的解释。","evidence":["apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","交互类型:calls","来源:apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","目标:apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","所属模块:apps/esp32_lvgl"],"risks":["单条 sequence 片段不足以证明完整调用链或业务主成功路径。"],"questions":["当前关系类型需要按证据区分运行时调用、静态 import、类型引用或配置引用;若只是静态关系,本图不应被解释成真实调用顺序。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:component:apps-esp32_lvgl-companion_enter","kind":"component","title":"函数节点:companion_enter","summary":"function 位于 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp#L72,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-companion_enter/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-companion_enter/component-diagram.html","anchor":"engineering:component:function:companion_enter:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:72","relation":"source_or_target","reason":"打开 函数节点:companion_enter 的组件图,查看当前 sequence 参与者的真实职责、文件锚点和关系压力。"}]},{"id":"engineering:diagram:sequence:companion_enter-calls-add_hex_line:element:add_hex_line","mermaidId":"Target","label":"add_hex_line","kind":"component","anchor":"engineering:runtime-flow:companion_enter:add_hex_line:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:target","summary":"add_hex_line 是当前 Sequence Diagram 的目标参与者,用来解释 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 companion_enter calls apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 中的 add_hex_line。","role":"消息接收/被依赖方:它提供被当前片段引用或调用的能力。","whyItExists":"本地仓库证据在 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 与 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 之间观察到 calls,因此 add_hex_line 被放入 sequence。","relationshipMeaning":"companion_enter -\u003e add_hex_line 表示目标能力被当前片段依赖;需要结合调用证据确认它是运行时调用、类型引用还是静态导入。","drilldownIntent":"下钻 add_hex_line 可以查看对应 Component Diagram 或结构上下文,判断这个参与者在更大技术边界中的职责。","businessRelevance":"业务 Use Case 的执行过程可能落到多个 sequence 片段上;当前片段只是候选技术步骤,需要组织/过程模型证据确认业务含义。","changeImpact":"修改 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp 可能改变该 sequence 的依赖关系、调用证据和相关组件/结构图的解释。","evidence":["apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","交互类型:calls","来源:apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","目标:apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","所属模块:apps/esp32_lvgl"],"risks":["单条 sequence 片段不足以证明完整调用链或业务主成功路径。"],"questions":["当前关系类型需要按证据区分运行时调用、静态 import、类型引用或配置引用;若只是静态关系,本图不应被解释成真实调用顺序。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:component:apps-esp32_lvgl-companion_enter","kind":"component","title":"函数节点:companion_enter","summary":"function 位于 apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp#L72,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-companion_enter/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-esp32_lvgl-companion_enter/component-diagram.html","anchor":"engineering:component:function:companion_enter:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:72","relation":"source_or_target","reason":"打开 函数节点:companion_enter 的组件图,查看当前 sequence 参与者的真实职责、文件锚点和关系压力。"}]}]},{"id":"engineering:diagram:sequence:startesp32lvglloopruntime-calls-canstartesp32lvglloopruntime","kind":"sequence","title":"动态协作:startEsp32LvglLoopRuntime 调用 canStartEsp32LvglLoopRuntime","summary":"apps/esp32_lvgl/src/esp32_lvgl_loop_runtime.cpp 中的 startEsp32LvglLoopRuntime calls apps/esp32_lvgl/src/esp32_lvgl_loop_runtime.cpp 中的 canStartEsp32LvglLoopRuntime。","docPath":"docs/engineering/sequence-diagrams/startesp32lvglloopruntime-calls-canstartesp32lvglloopruntime/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/startesp32lvglloopruntime-calls-canstartesp32lvglloopruntime/sequence-diagram.html","anchor":"engineering:runtime-flow:startesp32lvglloopruntime:canstartesp32lvglloopruntime:apps-esp32_lvgl-src-esp32_lvgl_loop_runtime.cpp:apps-esp32_lvgl-src-esp32_lvgl_loop_runtime.cpp","status":"candidate","confidence":"high","mermaidKind":"sequenceDiagram","mermaid":"sequenceDiagram\n participant Source as startEsp32LvglLoopRuntime\n participant Target as canStartEsp32LvglLoopRuntime\n Source-\u003e\u003eTarget: calls\n Note over Source,Target: apps/esp32_lvgl","readingGuide":["这张 Sequence Diagram 聚焦 startEsp32LvglLoopRuntime 调用 canStartEsp32LvglLoopRuntime 的技术协作片段。","它描述的是一个局部运行片段,不一定等同于完整业务流程。","当前关系来自本地调用证据;若没有 Use Case Trace,它只表示局部协作片段,不直接等同于主成功场景、回调、补偿或失败路径。"],"technicalAnalysis":["apps/esp32_lvgl/src/esp32_lvgl_loop_runtime.cpp 与 apps/esp32_lvgl/src/esp32_lvgl_loop_runtime.cpp 之间存在 calls 关系,所属技术边界是 apps/esp32_lvgl。","Sequence Diagram 用于解释运行时或协作顺序,适合承接那些从 Package/Component 图看不清的动态行为。","如果未来证据显示存在异步消息、回调、超时或失败补偿,应为同一业务/技术场景拆出多张 sequence,而不是塞进一张大图。"],"businessRelation":["业务 Use Case 的主成功路径、失败路径和回调路径最终会落到若干技术 sequence 片段上。","当前片段可能解释某个业务故事中的技术执行步骤;如果没有 Use Case Trace,它只作为软件结构模型中的局部协作片段。","如果它被确认属于某个 Use Case,应在 docs/design 对应下钻 Sequence Diagram 中链接到这份工程 sequence 文档。"],"governanceNotes":["不要只根据单条关系判断完整调用链;需要结合前后游关系补全场景。","当 sequence 涉及外部系统、模型调用、文件写入或 Git 操作时,应补充失败路径和重试/补偿说明。","如果该 sequence 支撑用户可见功能,应同步维护组织/过程模型的业务下钻图。"],"coverage":["交互类型:calls","来源:apps/esp32_lvgl/src/esp32_lvgl_loop_runtime.cpp","目标:apps/esp32_lvgl/src/esp32_lvgl_loop_runtime.cpp","所属模块:apps/esp32_lvgl"],"evidencePaths":["apps/esp32_lvgl/src/esp32_lvgl_loop_runtime.cpp","apps/esp32_lvgl/src/esp32_lvgl_loop_runtime.cpp"],"questions":[],"scope":{"packageId":"apps/esp32_lvgl","sourcePath":"apps/esp32_lvgl/src/esp32_lvgl_loop_runtime.cpp","targetPath":"apps/esp32_lvgl/src/esp32_lvgl_loop_runtime.cpp","targetPackageId":"apps/esp32_lvgl","sourceName":"startEsp32LvglLoopRuntime","targetName":"canStartEsp32LvglLoopRuntime"},"drilldowns":[],"elements":[{"id":"engineering:diagram:sequence:startesp32lvglloopruntime-calls-canstartesp32lvglloopruntime:element:startesp32lvglloopruntime","mermaidId":"Source","label":"startEsp32LvglLoopRuntime","kind":"component","anchor":"engineering:runtime-flow:startesp32lvglloopruntime:canstartesp32lvglloopruntime:apps-esp32_lvgl-src-esp32_lvgl_loop_runtime.cpp:apps-esp32_lvgl-src-esp32_lvgl_loop_runtime.cpp:source","summary":"startEsp32LvglLoopRuntime 是当前 Sequence Diagram 的来源参与者,用来解释 apps/esp32_lvgl/src/esp32_lvgl_loop_runtime.cpp 中的 startEsp32LvglLoopRuntime calls apps/esp32_lvgl/src/esp32_lvgl_loop_runtime.cpp 中的 canStartEsp32LvglLoopRuntime。","role":"消息发起/依赖方:它触发或引用目标能力。","whyItExists":"本地仓库证据在 apps/esp32_lvgl/src/esp32_lvgl_loop_runtime.cpp 与 apps/esp32_lvgl/src/esp32_lvgl_loop_runtime.cpp 之间观察到 calls,因此 startEsp32LvglLoopRuntime 被放入 sequence。","relationshipMeaning":"startEsp32LvglLoopRuntime -\u003e canStartEsp32LvglLoopRuntime 表示当前片段的依赖方向;如果关系只是 import,它只能说明静态依赖,不能直接证明运行时顺序。","drilldownIntent":"下钻 startEsp32LvglLoopRuntime 可以查看对应 Component Diagram 或结构上下文,判断这个参与者在更大技术边界中的职责。","businessRelevance":"业务 Use Case 的执行过程可能落到多个 sequence 片段上;当前片段只是候选技术步骤,需要组织/过程模型证据确认业务含义。","changeImpact":"修改 apps/esp32_lvgl/src/esp32_lvgl_loop_runtime.cpp 可能改变该 sequence 的依赖关系、调用证据和相关组件/结构图的解释。","evidence":["apps/esp32_lvgl/src/esp32_lvgl_loop_runtime.cpp","交互类型:calls","来源:apps/esp32_lvgl/src/esp32_lvgl_loop_runtime.cpp","目标:apps/esp32_lvgl/src/esp32_lvgl_loop_runtime.cpp","所属模块:apps/esp32_lvgl"],"risks":["单条 sequence 片段不足以证明完整调用链或业务主成功路径。"],"questions":["当前关系类型需要按证据区分运行时调用、静态 import、类型引用或配置引用;若只是静态关系,本图不应被解释成真实调用顺序。"],"confidence":"high","drilldowns":[]},{"id":"engineering:diagram:sequence:startesp32lvglloopruntime-calls-canstartesp32lvglloopruntime:element:canstartesp32lvglloopruntime","mermaidId":"Target","label":"canStartEsp32LvglLoopRuntime","kind":"component","anchor":"engineering:runtime-flow:startesp32lvglloopruntime:canstartesp32lvglloopruntime:apps-esp32_lvgl-src-esp32_lvgl_loop_runtime.cpp:apps-esp32_lvgl-src-esp32_lvgl_loop_runtime.cpp:target","summary":"canStartEsp32LvglLoopRuntime 是当前 Sequence Diagram 的目标参与者,用来解释 apps/esp32_lvgl/src/esp32_lvgl_loop_runtime.cpp 中的 startEsp32LvglLoopRuntime calls apps/esp32_lvgl/src/esp32_lvgl_loop_runtime.cpp 中的 canStartEsp32LvglLoopRuntime。","role":"消息接收/被依赖方:它提供被当前片段引用或调用的能力。","whyItExists":"本地仓库证据在 apps/esp32_lvgl/src/esp32_lvgl_loop_runtime.cpp 与 apps/esp32_lvgl/src/esp32_lvgl_loop_runtime.cpp 之间观察到 calls,因此 canStartEsp32LvglLoopRuntime 被放入 sequence。","relationshipMeaning":"startEsp32LvglLoopRuntime -\u003e canStartEsp32LvglLoopRuntime 表示目标能力被当前片段依赖;需要结合调用证据确认它是运行时调用、类型引用还是静态导入。","drilldownIntent":"下钻 canStartEsp32LvglLoopRuntime 可以查看对应 Component Diagram 或结构上下文,判断这个参与者在更大技术边界中的职责。","businessRelevance":"业务 Use Case 的执行过程可能落到多个 sequence 片段上;当前片段只是候选技术步骤,需要组织/过程模型证据确认业务含义。","changeImpact":"修改 apps/esp32_lvgl/src/esp32_lvgl_loop_runtime.cpp 可能改变该 sequence 的依赖关系、调用证据和相关组件/结构图的解释。","evidence":["apps/esp32_lvgl/src/esp32_lvgl_loop_runtime.cpp","交互类型:calls","来源:apps/esp32_lvgl/src/esp32_lvgl_loop_runtime.cpp","目标:apps/esp32_lvgl/src/esp32_lvgl_loop_runtime.cpp","所属模块:apps/esp32_lvgl"],"risks":["单条 sequence 片段不足以证明完整调用链或业务主成功路径。"],"questions":["当前关系类型需要按证据区分运行时调用、静态 import、类型引用或配置引用;若只是静态关系,本图不应被解释成真实调用顺序。"],"confidence":"high","drilldowns":[]}]},{"id":"engineering:diagram:sequence:hasesp32lvglruntimetargetprofile-calls-esp32lvglruntimetargetprofile","kind":"sequence","title":"动态协作:hasEsp32LvglRuntimeTargetProfile 调用 esp32LvglRuntimeTargetProfile","summary":"apps/esp32_lvgl/src/esp32_lvgl_runtime_config.cpp 中的 hasEsp32LvglRuntimeTargetProfile calls apps/esp32_lvgl/src/esp32_lvgl_runtime_config.cpp 中的 esp32LvglRuntimeTargetProfile。","docPath":"docs/engineering/sequence-diagrams/hasesp32lvglruntimetargetprofile-calls-esp32lvglruntimetargetprofile/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/hasesp32lvglruntimetargetprofile-calls-esp32lvglruntimetargetprofile/sequence-diagram.html","anchor":"engineering:runtime-flow:hasesp32lvglruntimetargetprofile:esp32lvglruntimetargetprofile:apps-esp32_lvgl-src-esp32_lvgl_runtime_config.cpp:apps-esp32_lvgl-src-esp32_lvgl_runtime_config.cpp","status":"candidate","confidence":"high","mermaidKind":"sequenceDiagram","mermaid":"sequenceDiagram\n participant Source as hasEsp32LvglRuntimeTargetProfile\n participant Target as esp32LvglRuntimeTargetProfile\n Source-\u003e\u003eTarget: calls\n Note over Source,Target: apps/esp32_lvgl","readingGuide":["这张 Sequence Diagram 聚焦 hasEsp32LvglRuntimeTargetProfile 调用 esp32LvglRuntimeTargetProfile 的技术协作片段。","它描述的是一个局部运行片段,不一定等同于完整业务流程。","当前关系来自本地调用证据;若没有 Use Case Trace,它只表示局部协作片段,不直接等同于主成功场景、回调、补偿或失败路径。"],"technicalAnalysis":["apps/esp32_lvgl/src/esp32_lvgl_runtime_config.cpp 与 apps/esp32_lvgl/src/esp32_lvgl_runtime_config.cpp 之间存在 calls 关系,所属技术边界是 apps/esp32_lvgl。","Sequence Diagram 用于解释运行时或协作顺序,适合承接那些从 Package/Component 图看不清的动态行为。","如果未来证据显示存在异步消息、回调、超时或失败补偿,应为同一业务/技术场景拆出多张 sequence,而不是塞进一张大图。"],"businessRelation":["业务 Use Case 的主成功路径、失败路径和回调路径最终会落到若干技术 sequence 片段上。","当前片段可能解释某个业务故事中的技术执行步骤;如果没有 Use Case Trace,它只作为软件结构模型中的局部协作片段。","如果它被确认属于某个 Use Case,应在 docs/design 对应下钻 Sequence Diagram 中链接到这份工程 sequence 文档。"],"governanceNotes":["不要只根据单条关系判断完整调用链;需要结合前后游关系补全场景。","当 sequence 涉及外部系统、模型调用、文件写入或 Git 操作时,应补充失败路径和重试/补偿说明。","如果该 sequence 支撑用户可见功能,应同步维护组织/过程模型的业务下钻图。"],"coverage":["交互类型:calls","来源:apps/esp32_lvgl/src/esp32_lvgl_runtime_config.cpp","目标:apps/esp32_lvgl/src/esp32_lvgl_runtime_config.cpp","所属模块:apps/esp32_lvgl"],"evidencePaths":["apps/esp32_lvgl/src/esp32_lvgl_runtime_config.cpp","apps/esp32_lvgl/src/esp32_lvgl_runtime_config.cpp"],"questions":[],"scope":{"packageId":"apps/esp32_lvgl","sourcePath":"apps/esp32_lvgl/src/esp32_lvgl_runtime_config.cpp","targetPath":"apps/esp32_lvgl/src/esp32_lvgl_runtime_config.cpp","targetPackageId":"apps/esp32_lvgl","sourceName":"hasEsp32LvglRuntimeTargetProfile","targetName":"esp32LvglRuntimeTargetProfile"},"drilldowns":[],"elements":[{"id":"engineering:diagram:sequence:hasesp32lvglruntimetargetprofile-calls-esp32lvglruntimetargetprofile:element:hasesp32lvglruntimetargetprofile","mermaidId":"Source","label":"hasEsp32LvglRuntimeTargetProfile","kind":"component","anchor":"engineering:runtime-flow:hasesp32lvglruntimetargetprofile:esp32lvglruntimetargetprofile:apps-esp32_lvgl-src-esp32_lvgl_runtime_config.cpp:apps-esp32_lvgl-src-esp32_lvgl_runtime_config.cpp:source","summary":"hasEsp32LvglRuntimeTargetProfile 是当前 Sequence Diagram 的来源参与者,用来解释 apps/esp32_lvgl/src/esp32_lvgl_runtime_config.cpp 中的 hasEsp32LvglRuntimeTargetProfile calls apps/esp32_lvgl/src/esp32_lvgl_runtime_config.cpp 中的 esp32LvglRuntimeTargetProfile。","role":"消息发起/依赖方:它触发或引用目标能力。","whyItExists":"本地仓库证据在 apps/esp32_lvgl/src/esp32_lvgl_runtime_config.cpp 与 apps/esp32_lvgl/src/esp32_lvgl_runtime_config.cpp 之间观察到 calls,因此 hasEsp32LvglRuntimeTargetProfile 被放入 sequence。","relationshipMeaning":"hasEsp32LvglRuntimeTargetProfile -\u003e esp32LvglRuntimeTargetProfile 表示当前片段的依赖方向;如果关系只是 import,它只能说明静态依赖,不能直接证明运行时顺序。","drilldownIntent":"下钻 hasEsp32LvglRuntimeTargetProfile 可以查看对应 Component Diagram 或结构上下文,判断这个参与者在更大技术边界中的职责。","businessRelevance":"业务 Use Case 的执行过程可能落到多个 sequence 片段上;当前片段只是候选技术步骤,需要组织/过程模型证据确认业务含义。","changeImpact":"修改 apps/esp32_lvgl/src/esp32_lvgl_runtime_config.cpp 可能改变该 sequence 的依赖关系、调用证据和相关组件/结构图的解释。","evidence":["apps/esp32_lvgl/src/esp32_lvgl_runtime_config.cpp","交互类型:calls","来源:apps/esp32_lvgl/src/esp32_lvgl_runtime_config.cpp","目标:apps/esp32_lvgl/src/esp32_lvgl_runtime_config.cpp","所属模块:apps/esp32_lvgl"],"risks":["单条 sequence 片段不足以证明完整调用链或业务主成功路径。"],"questions":["当前关系类型需要按证据区分运行时调用、静态 import、类型引用或配置引用;若只是静态关系,本图不应被解释成真实调用顺序。"],"confidence":"high","drilldowns":[]},{"id":"engineering:diagram:sequence:hasesp32lvglruntimetargetprofile-calls-esp32lvglruntimetargetprofile:element:esp32lvglruntimetargetprofile","mermaidId":"Target","label":"esp32LvglRuntimeTargetProfile","kind":"component","anchor":"engineering:runtime-flow:hasesp32lvglruntimetargetprofile:esp32lvglruntimetargetprofile:apps-esp32_lvgl-src-esp32_lvgl_runtime_config.cpp:apps-esp32_lvgl-src-esp32_lvgl_runtime_config.cpp:target","summary":"esp32LvglRuntimeTargetProfile 是当前 Sequence Diagram 的目标参与者,用来解释 apps/esp32_lvgl/src/esp32_lvgl_runtime_config.cpp 中的 hasEsp32LvglRuntimeTargetProfile calls apps/esp32_lvgl/src/esp32_lvgl_runtime_config.cpp 中的 esp32LvglRuntimeTargetProfile。","role":"消息接收/被依赖方:它提供被当前片段引用或调用的能力。","whyItExists":"本地仓库证据在 apps/esp32_lvgl/src/esp32_lvgl_runtime_config.cpp 与 apps/esp32_lvgl/src/esp32_lvgl_runtime_config.cpp 之间观察到 calls,因此 esp32LvglRuntimeTargetProfile 被放入 sequence。","relationshipMeaning":"hasEsp32LvglRuntimeTargetProfile -\u003e esp32LvglRuntimeTargetProfile 表示目标能力被当前片段依赖;需要结合调用证据确认它是运行时调用、类型引用还是静态导入。","drilldownIntent":"下钻 esp32LvglRuntimeTargetProfile 可以查看对应 Component Diagram 或结构上下文,判断这个参与者在更大技术边界中的职责。","businessRelevance":"业务 Use Case 的执行过程可能落到多个 sequence 片段上;当前片段只是候选技术步骤,需要组织/过程模型证据确认业务含义。","changeImpact":"修改 apps/esp32_lvgl/src/esp32_lvgl_runtime_config.cpp 可能改变该 sequence 的依赖关系、调用证据和相关组件/结构图的解释。","evidence":["apps/esp32_lvgl/src/esp32_lvgl_runtime_config.cpp","交互类型:calls","来源:apps/esp32_lvgl/src/esp32_lvgl_runtime_config.cpp","目标:apps/esp32_lvgl/src/esp32_lvgl_runtime_config.cpp","所属模块:apps/esp32_lvgl"],"risks":["单条 sequence 片段不足以证明完整调用链或业务主成功路径。"],"questions":["当前关系类型需要按证据区分运行时调用、静态 import、类型引用或配置引用;若只是静态关系,本图不应被解释成真实调用顺序。"],"confidence":"high","drilldowns":[]}]},{"id":"engineering:diagram:sequence:showbootui-calls-lockui","kind":"sequence","title":"动态协作:showBootUi 调用 lockUi","summary":"apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 中的 showBootUi calls apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 中的 lockUi。","docPath":"docs/engineering/sequence-diagrams/showbootui-calls-lockui/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/showbootui-calls-lockui/sequence-diagram.html","anchor":"engineering:runtime-flow:showbootui:lockui:apps-esp32_lvgl-src-esp32_lvgl_startup_runtime.cpp:apps-esp32_lvgl-src-esp32_lvgl_startup_runtime.cpp","status":"candidate","confidence":"high","mermaidKind":"sequenceDiagram","mermaid":"sequenceDiagram\n participant Source as showBootUi\n participant Target as lockUi\n Source-\u003e\u003eTarget: calls\n Note over Source,Target: apps/esp32_lvgl","readingGuide":["这张 Sequence Diagram 聚焦 showBootUi 调用 lockUi 的技术协作片段。","它描述的是一个局部运行片段,不一定等同于完整业务流程。","当前关系来自本地调用证据;若没有 Use Case Trace,它只表示局部协作片段,不直接等同于主成功场景、回调、补偿或失败路径。"],"technicalAnalysis":["apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 与 apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 之间存在 calls 关系,所属技术边界是 apps/esp32_lvgl。","Sequence Diagram 用于解释运行时或协作顺序,适合承接那些从 Package/Component 图看不清的动态行为。","如果未来证据显示存在异步消息、回调、超时或失败补偿,应为同一业务/技术场景拆出多张 sequence,而不是塞进一张大图。"],"businessRelation":["业务 Use Case 的主成功路径、失败路径和回调路径最终会落到若干技术 sequence 片段上。","当前片段可能解释某个业务故事中的技术执行步骤;如果没有 Use Case Trace,它只作为软件结构模型中的局部协作片段。","如果它被确认属于某个 Use Case,应在 docs/design 对应下钻 Sequence Diagram 中链接到这份工程 sequence 文档。"],"governanceNotes":["不要只根据单条关系判断完整调用链;需要结合前后游关系补全场景。","当 sequence 涉及外部系统、模型调用、文件写入或 Git 操作时,应补充失败路径和重试/补偿说明。","如果该 sequence 支撑用户可见功能,应同步维护组织/过程模型的业务下钻图。"],"coverage":["交互类型:calls","来源:apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","目标:apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","所属模块:apps/esp32_lvgl"],"evidencePaths":["apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp"],"questions":[],"scope":{"packageId":"apps/esp32_lvgl","sourcePath":"apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","targetPath":"apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","targetPackageId":"apps/esp32_lvgl","sourceName":"showBootUi","targetName":"lockUi"},"drilldowns":[],"elements":[{"id":"engineering:diagram:sequence:showbootui-calls-lockui:element:showbootui","mermaidId":"Source","label":"showBootUi","kind":"component","anchor":"engineering:runtime-flow:showbootui:lockui:apps-esp32_lvgl-src-esp32_lvgl_startup_runtime.cpp:apps-esp32_lvgl-src-esp32_lvgl_startup_runtime.cpp:source","summary":"showBootUi 是当前 Sequence Diagram 的来源参与者,用来解释 apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 中的 showBootUi calls apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 中的 lockUi。","role":"消息发起/依赖方:它触发或引用目标能力。","whyItExists":"本地仓库证据在 apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 与 apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 之间观察到 calls,因此 showBootUi 被放入 sequence。","relationshipMeaning":"showBootUi -\u003e lockUi 表示当前片段的依赖方向;如果关系只是 import,它只能说明静态依赖,不能直接证明运行时顺序。","drilldownIntent":"下钻 showBootUi 可以查看对应 Component Diagram 或结构上下文,判断这个参与者在更大技术边界中的职责。","businessRelevance":"业务 Use Case 的执行过程可能落到多个 sequence 片段上;当前片段只是候选技术步骤,需要组织/过程模型证据确认业务含义。","changeImpact":"修改 apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 可能改变该 sequence 的依赖关系、调用证据和相关组件/结构图的解释。","evidence":["apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","交互类型:calls","来源:apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","目标:apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","所属模块:apps/esp32_lvgl"],"risks":["单条 sequence 片段不足以证明完整调用链或业务主成功路径。"],"questions":["当前关系类型需要按证据区分运行时调用、静态 import、类型引用或配置引用;若只是静态关系,本图不应被解释成真实调用顺序。"],"confidence":"high","drilldowns":[]},{"id":"engineering:diagram:sequence:showbootui-calls-lockui:element:lockui","mermaidId":"Target","label":"lockUi","kind":"component","anchor":"engineering:runtime-flow:showbootui:lockui:apps-esp32_lvgl-src-esp32_lvgl_startup_runtime.cpp:apps-esp32_lvgl-src-esp32_lvgl_startup_runtime.cpp:target","summary":"lockUi 是当前 Sequence Diagram 的目标参与者,用来解释 apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 中的 showBootUi calls apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 中的 lockUi。","role":"消息接收/被依赖方:它提供被当前片段引用或调用的能力。","whyItExists":"本地仓库证据在 apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 与 apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 之间观察到 calls,因此 lockUi 被放入 sequence。","relationshipMeaning":"showBootUi -\u003e lockUi 表示目标能力被当前片段依赖;需要结合调用证据确认它是运行时调用、类型引用还是静态导入。","drilldownIntent":"下钻 lockUi 可以查看对应 Component Diagram 或结构上下文,判断这个参与者在更大技术边界中的职责。","businessRelevance":"业务 Use Case 的执行过程可能落到多个 sequence 片段上;当前片段只是候选技术步骤,需要组织/过程模型证据确认业务含义。","changeImpact":"修改 apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 可能改变该 sequence 的依赖关系、调用证据和相关组件/结构图的解释。","evidence":["apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","交互类型:calls","来源:apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","目标:apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","所属模块:apps/esp32_lvgl"],"risks":["单条 sequence 片段不足以证明完整调用链或业务主成功路径。"],"questions":["当前关系类型需要按证据区分运行时调用、静态 import、类型引用或配置引用;若只是静态关系,本图不应被解释成真实调用顺序。"],"confidence":"high","drilldowns":[]}]},{"id":"engineering:diagram:sequence:showbootui-calls-unlockui","kind":"sequence","title":"动态协作:showBootUi 调用 unlockUi","summary":"apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 中的 showBootUi calls apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 中的 unlockUi。","docPath":"docs/engineering/sequence-diagrams/showbootui-calls-unlockui/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/showbootui-calls-unlockui/sequence-diagram.html","anchor":"engineering:runtime-flow:showbootui:unlockui:apps-esp32_lvgl-src-esp32_lvgl_startup_runtime.cpp:apps-esp32_lvgl-src-esp32_lvgl_startup_runtime.cpp","status":"candidate","confidence":"high","mermaidKind":"sequenceDiagram","mermaid":"sequenceDiagram\n participant Source as showBootUi\n participant Target as unlockUi\n Source-\u003e\u003eTarget: calls\n Note over Source,Target: apps/esp32_lvgl","readingGuide":["这张 Sequence Diagram 聚焦 showBootUi 调用 unlockUi 的技术协作片段。","它描述的是一个局部运行片段,不一定等同于完整业务流程。","当前关系来自本地调用证据;若没有 Use Case Trace,它只表示局部协作片段,不直接等同于主成功场景、回调、补偿或失败路径。"],"technicalAnalysis":["apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 与 apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 之间存在 calls 关系,所属技术边界是 apps/esp32_lvgl。","Sequence Diagram 用于解释运行时或协作顺序,适合承接那些从 Package/Component 图看不清的动态行为。","如果未来证据显示存在异步消息、回调、超时或失败补偿,应为同一业务/技术场景拆出多张 sequence,而不是塞进一张大图。"],"businessRelation":["业务 Use Case 的主成功路径、失败路径和回调路径最终会落到若干技术 sequence 片段上。","当前片段可能解释某个业务故事中的技术执行步骤;如果没有 Use Case Trace,它只作为软件结构模型中的局部协作片段。","如果它被确认属于某个 Use Case,应在 docs/design 对应下钻 Sequence Diagram 中链接到这份工程 sequence 文档。"],"governanceNotes":["不要只根据单条关系判断完整调用链;需要结合前后游关系补全场景。","当 sequence 涉及外部系统、模型调用、文件写入或 Git 操作时,应补充失败路径和重试/补偿说明。","如果该 sequence 支撑用户可见功能,应同步维护组织/过程模型的业务下钻图。"],"coverage":["交互类型:calls","来源:apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","目标:apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","所属模块:apps/esp32_lvgl"],"evidencePaths":["apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp"],"questions":[],"scope":{"packageId":"apps/esp32_lvgl","sourcePath":"apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","targetPath":"apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","targetPackageId":"apps/esp32_lvgl","sourceName":"showBootUi","targetName":"unlockUi"},"drilldowns":[],"elements":[{"id":"engineering:diagram:sequence:showbootui-calls-unlockui:element:showbootui","mermaidId":"Source","label":"showBootUi","kind":"component","anchor":"engineering:runtime-flow:showbootui:unlockui:apps-esp32_lvgl-src-esp32_lvgl_startup_runtime.cpp:apps-esp32_lvgl-src-esp32_lvgl_startup_runtime.cpp:source","summary":"showBootUi 是当前 Sequence Diagram 的来源参与者,用来解释 apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 中的 showBootUi calls apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 中的 unlockUi。","role":"消息发起/依赖方:它触发或引用目标能力。","whyItExists":"本地仓库证据在 apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 与 apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 之间观察到 calls,因此 showBootUi 被放入 sequence。","relationshipMeaning":"showBootUi -\u003e unlockUi 表示当前片段的依赖方向;如果关系只是 import,它只能说明静态依赖,不能直接证明运行时顺序。","drilldownIntent":"下钻 showBootUi 可以查看对应 Component Diagram 或结构上下文,判断这个参与者在更大技术边界中的职责。","businessRelevance":"业务 Use Case 的执行过程可能落到多个 sequence 片段上;当前片段只是候选技术步骤,需要组织/过程模型证据确认业务含义。","changeImpact":"修改 apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 可能改变该 sequence 的依赖关系、调用证据和相关组件/结构图的解释。","evidence":["apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","交互类型:calls","来源:apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","目标:apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","所属模块:apps/esp32_lvgl"],"risks":["单条 sequence 片段不足以证明完整调用链或业务主成功路径。"],"questions":["当前关系类型需要按证据区分运行时调用、静态 import、类型引用或配置引用;若只是静态关系,本图不应被解释成真实调用顺序。"],"confidence":"high","drilldowns":[]},{"id":"engineering:diagram:sequence:showbootui-calls-unlockui:element:unlockui","mermaidId":"Target","label":"unlockUi","kind":"component","anchor":"engineering:runtime-flow:showbootui:unlockui:apps-esp32_lvgl-src-esp32_lvgl_startup_runtime.cpp:apps-esp32_lvgl-src-esp32_lvgl_startup_runtime.cpp:target","summary":"unlockUi 是当前 Sequence Diagram 的目标参与者,用来解释 apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 中的 showBootUi calls apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 中的 unlockUi。","role":"消息接收/被依赖方:它提供被当前片段引用或调用的能力。","whyItExists":"本地仓库证据在 apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 与 apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 之间观察到 calls,因此 unlockUi 被放入 sequence。","relationshipMeaning":"showBootUi -\u003e unlockUi 表示目标能力被当前片段依赖;需要结合调用证据确认它是运行时调用、类型引用还是静态导入。","drilldownIntent":"下钻 unlockUi 可以查看对应 Component Diagram 或结构上下文,判断这个参与者在更大技术边界中的职责。","businessRelevance":"业务 Use Case 的执行过程可能落到多个 sequence 片段上;当前片段只是候选技术步骤,需要组织/过程模型证据确认业务含义。","changeImpact":"修改 apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 可能改变该 sequence 的依赖关系、调用证据和相关组件/结构图的解释。","evidence":["apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","交互类型:calls","来源:apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","目标:apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","所属模块:apps/esp32_lvgl"],"risks":["单条 sequence 片段不足以证明完整调用链或业务主成功路径。"],"questions":["当前关系类型需要按证据区分运行时调用、静态 import、类型引用或配置引用;若只是静态关系,本图不应被解释成真实调用顺序。"],"confidence":"high","drilldowns":[]}]},{"id":"engineering:diagram:sequence:setbootlog-calls-lockui","kind":"sequence","title":"动态协作:setBootLog 调用 lockUi","summary":"apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 中的 setBootLog calls apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 中的 lockUi。","docPath":"docs/engineering/sequence-diagrams/setbootlog-calls-lockui/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/setbootlog-calls-lockui/sequence-diagram.html","anchor":"engineering:runtime-flow:setbootlog:lockui:apps-esp32_lvgl-src-esp32_lvgl_startup_runtime.cpp:apps-esp32_lvgl-src-esp32_lvgl_startup_runtime.cpp","status":"candidate","confidence":"high","mermaidKind":"sequenceDiagram","mermaid":"sequenceDiagram\n participant Source as setBootLog\n participant Target as lockUi\n Source-\u003e\u003eTarget: calls\n Note over Source,Target: apps/esp32_lvgl","readingGuide":["这张 Sequence Diagram 聚焦 setBootLog 调用 lockUi 的技术协作片段。","它描述的是一个局部运行片段,不一定等同于完整业务流程。","当前关系来自本地调用证据;若没有 Use Case Trace,它只表示局部协作片段,不直接等同于主成功场景、回调、补偿或失败路径。"],"technicalAnalysis":["apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 与 apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 之间存在 calls 关系,所属技术边界是 apps/esp32_lvgl。","Sequence Diagram 用于解释运行时或协作顺序,适合承接那些从 Package/Component 图看不清的动态行为。","如果未来证据显示存在异步消息、回调、超时或失败补偿,应为同一业务/技术场景拆出多张 sequence,而不是塞进一张大图。"],"businessRelation":["业务 Use Case 的主成功路径、失败路径和回调路径最终会落到若干技术 sequence 片段上。","当前片段可能解释某个业务故事中的技术执行步骤;如果没有 Use Case Trace,它只作为软件结构模型中的局部协作片段。","如果它被确认属于某个 Use Case,应在 docs/design 对应下钻 Sequence Diagram 中链接到这份工程 sequence 文档。"],"governanceNotes":["不要只根据单条关系判断完整调用链;需要结合前后游关系补全场景。","当 sequence 涉及外部系统、模型调用、文件写入或 Git 操作时,应补充失败路径和重试/补偿说明。","如果该 sequence 支撑用户可见功能,应同步维护组织/过程模型的业务下钻图。"],"coverage":["交互类型:calls","来源:apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","目标:apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","所属模块:apps/esp32_lvgl"],"evidencePaths":["apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp"],"questions":[],"scope":{"packageId":"apps/esp32_lvgl","sourcePath":"apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","targetPath":"apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","targetPackageId":"apps/esp32_lvgl","sourceName":"setBootLog","targetName":"lockUi"},"drilldowns":[],"elements":[{"id":"engineering:diagram:sequence:setbootlog-calls-lockui:element:setbootlog","mermaidId":"Source","label":"setBootLog","kind":"component","anchor":"engineering:runtime-flow:setbootlog:lockui:apps-esp32_lvgl-src-esp32_lvgl_startup_runtime.cpp:apps-esp32_lvgl-src-esp32_lvgl_startup_runtime.cpp:source","summary":"setBootLog 是当前 Sequence Diagram 的来源参与者,用来解释 apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 中的 setBootLog calls apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 中的 lockUi。","role":"消息发起/依赖方:它触发或引用目标能力。","whyItExists":"本地仓库证据在 apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 与 apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 之间观察到 calls,因此 setBootLog 被放入 sequence。","relationshipMeaning":"setBootLog -\u003e lockUi 表示当前片段的依赖方向;如果关系只是 import,它只能说明静态依赖,不能直接证明运行时顺序。","drilldownIntent":"下钻 setBootLog 可以查看对应 Component Diagram 或结构上下文,判断这个参与者在更大技术边界中的职责。","businessRelevance":"业务 Use Case 的执行过程可能落到多个 sequence 片段上;当前片段只是候选技术步骤,需要组织/过程模型证据确认业务含义。","changeImpact":"修改 apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 可能改变该 sequence 的依赖关系、调用证据和相关组件/结构图的解释。","evidence":["apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","交互类型:calls","来源:apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","目标:apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","所属模块:apps/esp32_lvgl"],"risks":["单条 sequence 片段不足以证明完整调用链或业务主成功路径。"],"questions":["当前关系类型需要按证据区分运行时调用、静态 import、类型引用或配置引用;若只是静态关系,本图不应被解释成真实调用顺序。"],"confidence":"high","drilldowns":[]},{"id":"engineering:diagram:sequence:setbootlog-calls-lockui:element:lockui","mermaidId":"Target","label":"lockUi","kind":"component","anchor":"engineering:runtime-flow:setbootlog:lockui:apps-esp32_lvgl-src-esp32_lvgl_startup_runtime.cpp:apps-esp32_lvgl-src-esp32_lvgl_startup_runtime.cpp:target","summary":"lockUi 是当前 Sequence Diagram 的目标参与者,用来解释 apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 中的 setBootLog calls apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 中的 lockUi。","role":"消息接收/被依赖方:它提供被当前片段引用或调用的能力。","whyItExists":"本地仓库证据在 apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 与 apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 之间观察到 calls,因此 lockUi 被放入 sequence。","relationshipMeaning":"setBootLog -\u003e lockUi 表示目标能力被当前片段依赖;需要结合调用证据确认它是运行时调用、类型引用还是静态导入。","drilldownIntent":"下钻 lockUi 可以查看对应 Component Diagram 或结构上下文,判断这个参与者在更大技术边界中的职责。","businessRelevance":"业务 Use Case 的执行过程可能落到多个 sequence 片段上;当前片段只是候选技术步骤,需要组织/过程模型证据确认业务含义。","changeImpact":"修改 apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 可能改变该 sequence 的依赖关系、调用证据和相关组件/结构图的解释。","evidence":["apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","交互类型:calls","来源:apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","目标:apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","所属模块:apps/esp32_lvgl"],"risks":["单条 sequence 片段不足以证明完整调用链或业务主成功路径。"],"questions":["当前关系类型需要按证据区分运行时调用、静态 import、类型引用或配置引用;若只是静态关系,本图不应被解释成真实调用顺序。"],"confidence":"high","drilldowns":[]}]},{"id":"engineering:diagram:sequence:setbootlog-calls-unlockui","kind":"sequence","title":"动态协作:setBootLog 调用 unlockUi","summary":"apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 中的 setBootLog calls apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 中的 unlockUi。","docPath":"docs/engineering/sequence-diagrams/setbootlog-calls-unlockui/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/setbootlog-calls-unlockui/sequence-diagram.html","anchor":"engineering:runtime-flow:setbootlog:unlockui:apps-esp32_lvgl-src-esp32_lvgl_startup_runtime.cpp:apps-esp32_lvgl-src-esp32_lvgl_startup_runtime.cpp","status":"candidate","confidence":"high","mermaidKind":"sequenceDiagram","mermaid":"sequenceDiagram\n participant Source as setBootLog\n participant Target as unlockUi\n Source-\u003e\u003eTarget: calls\n Note over Source,Target: apps/esp32_lvgl","readingGuide":["这张 Sequence Diagram 聚焦 setBootLog 调用 unlockUi 的技术协作片段。","它描述的是一个局部运行片段,不一定等同于完整业务流程。","当前关系来自本地调用证据;若没有 Use Case Trace,它只表示局部协作片段,不直接等同于主成功场景、回调、补偿或失败路径。"],"technicalAnalysis":["apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 与 apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 之间存在 calls 关系,所属技术边界是 apps/esp32_lvgl。","Sequence Diagram 用于解释运行时或协作顺序,适合承接那些从 Package/Component 图看不清的动态行为。","如果未来证据显示存在异步消息、回调、超时或失败补偿,应为同一业务/技术场景拆出多张 sequence,而不是塞进一张大图。"],"businessRelation":["业务 Use Case 的主成功路径、失败路径和回调路径最终会落到若干技术 sequence 片段上。","当前片段可能解释某个业务故事中的技术执行步骤;如果没有 Use Case Trace,它只作为软件结构模型中的局部协作片段。","如果它被确认属于某个 Use Case,应在 docs/design 对应下钻 Sequence Diagram 中链接到这份工程 sequence 文档。"],"governanceNotes":["不要只根据单条关系判断完整调用链;需要结合前后游关系补全场景。","当 sequence 涉及外部系统、模型调用、文件写入或 Git 操作时,应补充失败路径和重试/补偿说明。","如果该 sequence 支撑用户可见功能,应同步维护组织/过程模型的业务下钻图。"],"coverage":["交互类型:calls","来源:apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","目标:apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","所属模块:apps/esp32_lvgl"],"evidencePaths":["apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp"],"questions":[],"scope":{"packageId":"apps/esp32_lvgl","sourcePath":"apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","targetPath":"apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","targetPackageId":"apps/esp32_lvgl","sourceName":"setBootLog","targetName":"unlockUi"},"drilldowns":[],"elements":[{"id":"engineering:diagram:sequence:setbootlog-calls-unlockui:element:setbootlog","mermaidId":"Source","label":"setBootLog","kind":"component","anchor":"engineering:runtime-flow:setbootlog:unlockui:apps-esp32_lvgl-src-esp32_lvgl_startup_runtime.cpp:apps-esp32_lvgl-src-esp32_lvgl_startup_runtime.cpp:source","summary":"setBootLog 是当前 Sequence Diagram 的来源参与者,用来解释 apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 中的 setBootLog calls apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 中的 unlockUi。","role":"消息发起/依赖方:它触发或引用目标能力。","whyItExists":"本地仓库证据在 apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 与 apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 之间观察到 calls,因此 setBootLog 被放入 sequence。","relationshipMeaning":"setBootLog -\u003e unlockUi 表示当前片段的依赖方向;如果关系只是 import,它只能说明静态依赖,不能直接证明运行时顺序。","drilldownIntent":"下钻 setBootLog 可以查看对应 Component Diagram 或结构上下文,判断这个参与者在更大技术边界中的职责。","businessRelevance":"业务 Use Case 的执行过程可能落到多个 sequence 片段上;当前片段只是候选技术步骤,需要组织/过程模型证据确认业务含义。","changeImpact":"修改 apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 可能改变该 sequence 的依赖关系、调用证据和相关组件/结构图的解释。","evidence":["apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","交互类型:calls","来源:apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","目标:apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","所属模块:apps/esp32_lvgl"],"risks":["单条 sequence 片段不足以证明完整调用链或业务主成功路径。"],"questions":["当前关系类型需要按证据区分运行时调用、静态 import、类型引用或配置引用;若只是静态关系,本图不应被解释成真实调用顺序。"],"confidence":"high","drilldowns":[]},{"id":"engineering:diagram:sequence:setbootlog-calls-unlockui:element:unlockui","mermaidId":"Target","label":"unlockUi","kind":"component","anchor":"engineering:runtime-flow:setbootlog:unlockui:apps-esp32_lvgl-src-esp32_lvgl_startup_runtime.cpp:apps-esp32_lvgl-src-esp32_lvgl_startup_runtime.cpp:target","summary":"unlockUi 是当前 Sequence Diagram 的目标参与者,用来解释 apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 中的 setBootLog calls apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 中的 unlockUi。","role":"消息接收/被依赖方:它提供被当前片段引用或调用的能力。","whyItExists":"本地仓库证据在 apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 与 apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 之间观察到 calls,因此 unlockUi 被放入 sequence。","relationshipMeaning":"setBootLog -\u003e unlockUi 表示目标能力被当前片段依赖;需要结合调用证据确认它是运行时调用、类型引用还是静态导入。","drilldownIntent":"下钻 unlockUi 可以查看对应 Component Diagram 或结构上下文,判断这个参与者在更大技术边界中的职责。","businessRelevance":"业务 Use Case 的执行过程可能落到多个 sequence 片段上;当前片段只是候选技术步骤,需要组织/过程模型证据确认业务含义。","changeImpact":"修改 apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 可能改变该 sequence 的依赖关系、调用证据和相关组件/结构图的解释。","evidence":["apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","交互类型:calls","来源:apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","目标:apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","所属模块:apps/esp32_lvgl"],"risks":["单条 sequence 片段不足以证明完整调用链或业务主成功路径。"],"questions":["当前关系类型需要按证据区分运行时调用、静态 import、类型引用或配置引用;若只是静态关系,本图不应被解释成真实调用顺序。"],"confidence":"high","drilldowns":[]}]},{"id":"engineering:diagram:sequence:canrunesp32lvglstartupruntime-calls-canstartesp32lvglloopruntime","kind":"sequence","title":"动态协作:canRunEsp32LvglStartupRuntime 调用 canStartEsp32LvglLoopRuntime","summary":"apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 中的 canRunEsp32LvglStartupRuntime calls apps/esp32_lvgl/src/esp32_lvgl_loop_runtime.cpp 中的 canStartEsp32LvglLoopRuntime。","docPath":"docs/engineering/sequence-diagrams/canrunesp32lvglstartupruntime-calls-canstartesp32lvglloopruntime/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/canrunesp32lvglstartupruntime-calls-canstartesp32lvglloopruntime/sequence-diagram.html","anchor":"engineering:runtime-flow:canrunesp32lvglstartupruntime:canstartesp32lvglloopruntime:apps-esp32_lvgl-src-esp32_lvgl_startup_runtime.cpp:apps-esp32_lvgl-src-esp32_lvgl_loop_runtime.cpp","status":"candidate","confidence":"high","mermaidKind":"sequenceDiagram","mermaid":"sequenceDiagram\n participant Source as canRunEsp32LvglStartupRuntime\n participant Target as canStartEsp32LvglLoopRuntime\n Source-\u003e\u003eTarget: calls\n Note over Source,Target: apps/esp32_lvgl","readingGuide":["这张 Sequence Diagram 聚焦 canRunEsp32LvglStartupRuntime 调用 canStartEsp32LvglLoopRuntime 的技术协作片段。","它描述的是一个局部运行片段,不一定等同于完整业务流程。","当前关系来自本地调用证据;若没有 Use Case Trace,它只表示局部协作片段,不直接等同于主成功场景、回调、补偿或失败路径。"],"technicalAnalysis":["apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 与 apps/esp32_lvgl/src/esp32_lvgl_loop_runtime.cpp 之间存在 calls 关系,所属技术边界是 apps/esp32_lvgl。","Sequence Diagram 用于解释运行时或协作顺序,适合承接那些从 Package/Component 图看不清的动态行为。","如果未来证据显示存在异步消息、回调、超时或失败补偿,应为同一业务/技术场景拆出多张 sequence,而不是塞进一张大图。"],"businessRelation":["业务 Use Case 的主成功路径、失败路径和回调路径最终会落到若干技术 sequence 片段上。","当前片段可能解释某个业务故事中的技术执行步骤;如果没有 Use Case Trace,它只作为软件结构模型中的局部协作片段。","如果它被确认属于某个 Use Case,应在 docs/design 对应下钻 Sequence Diagram 中链接到这份工程 sequence 文档。"],"governanceNotes":["不要只根据单条关系判断完整调用链;需要结合前后游关系补全场景。","当 sequence 涉及外部系统、模型调用、文件写入或 Git 操作时,应补充失败路径和重试/补偿说明。","如果该 sequence 支撑用户可见功能,应同步维护组织/过程模型的业务下钻图。"],"coverage":["交互类型:calls","来源:apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","目标:apps/esp32_lvgl/src/esp32_lvgl_loop_runtime.cpp","所属模块:apps/esp32_lvgl"],"evidencePaths":["apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","apps/esp32_lvgl/src/esp32_lvgl_loop_runtime.cpp"],"questions":[],"scope":{"packageId":"apps/esp32_lvgl","sourcePath":"apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","targetPath":"apps/esp32_lvgl/src/esp32_lvgl_loop_runtime.cpp","targetPackageId":"apps/esp32_lvgl","sourceName":"canRunEsp32LvglStartupRuntime","targetName":"canStartEsp32LvglLoopRuntime"},"drilldowns":[],"elements":[{"id":"engineering:diagram:sequence:canrunesp32lvglstartupruntime-calls-canstartesp32lvglloopruntime:element:canrunesp32lvglstartupruntime","mermaidId":"Source","label":"canRunEsp32LvglStartupRuntime","kind":"component","anchor":"engineering:runtime-flow:canrunesp32lvglstartupruntime:canstartesp32lvglloopruntime:apps-esp32_lvgl-src-esp32_lvgl_startup_runtime.cpp:apps-esp32_lvgl-src-esp32_lvgl_loop_runtime.cpp:source","summary":"canRunEsp32LvglStartupRuntime 是当前 Sequence Diagram 的来源参与者,用来解释 apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 中的 canRunEsp32LvglStartupRuntime calls apps/esp32_lvgl/src/esp32_lvgl_loop_runtime.cpp 中的 canStartEsp32LvglLoopRuntime。","role":"消息发起/依赖方:它触发或引用目标能力。","whyItExists":"本地仓库证据在 apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 与 apps/esp32_lvgl/src/esp32_lvgl_loop_runtime.cpp 之间观察到 calls,因此 canRunEsp32LvglStartupRuntime 被放入 sequence。","relationshipMeaning":"canRunEsp32LvglStartupRuntime -\u003e canStartEsp32LvglLoopRuntime 表示当前片段的依赖方向;如果关系只是 import,它只能说明静态依赖,不能直接证明运行时顺序。","drilldownIntent":"下钻 canRunEsp32LvglStartupRuntime 可以查看对应 Component Diagram 或结构上下文,判断这个参与者在更大技术边界中的职责。","businessRelevance":"业务 Use Case 的执行过程可能落到多个 sequence 片段上;当前片段只是候选技术步骤,需要组织/过程模型证据确认业务含义。","changeImpact":"修改 apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 可能改变该 sequence 的依赖关系、调用证据和相关组件/结构图的解释。","evidence":["apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","交互类型:calls","来源:apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","目标:apps/esp32_lvgl/src/esp32_lvgl_loop_runtime.cpp","所属模块:apps/esp32_lvgl","apps/esp32_lvgl/src/esp32_lvgl_loop_runtime.cpp"],"risks":["单条 sequence 片段不足以证明完整调用链或业务主成功路径。"],"questions":["当前关系类型需要按证据区分运行时调用、静态 import、类型引用或配置引用;若只是静态关系,本图不应被解释成真实调用顺序。"],"confidence":"high","drilldowns":[]},{"id":"engineering:diagram:sequence:canrunesp32lvglstartupruntime-calls-canstartesp32lvglloopruntime:element:canstartesp32lvglloopruntime","mermaidId":"Target","label":"canStartEsp32LvglLoopRuntime","kind":"component","anchor":"engineering:runtime-flow:canrunesp32lvglstartupruntime:canstartesp32lvglloopruntime:apps-esp32_lvgl-src-esp32_lvgl_startup_runtime.cpp:apps-esp32_lvgl-src-esp32_lvgl_loop_runtime.cpp:target","summary":"canStartEsp32LvglLoopRuntime 是当前 Sequence Diagram 的目标参与者,用来解释 apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 中的 canRunEsp32LvglStartupRuntime calls apps/esp32_lvgl/src/esp32_lvgl_loop_runtime.cpp 中的 canStartEsp32LvglLoopRuntime。","role":"消息接收/被依赖方:它提供被当前片段引用或调用的能力。","whyItExists":"本地仓库证据在 apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 与 apps/esp32_lvgl/src/esp32_lvgl_loop_runtime.cpp 之间观察到 calls,因此 canStartEsp32LvglLoopRuntime 被放入 sequence。","relationshipMeaning":"canRunEsp32LvglStartupRuntime -\u003e canStartEsp32LvglLoopRuntime 表示目标能力被当前片段依赖;需要结合调用证据确认它是运行时调用、类型引用还是静态导入。","drilldownIntent":"下钻 canStartEsp32LvglLoopRuntime 可以查看对应 Component Diagram 或结构上下文,判断这个参与者在更大技术边界中的职责。","businessRelevance":"业务 Use Case 的执行过程可能落到多个 sequence 片段上;当前片段只是候选技术步骤,需要组织/过程模型证据确认业务含义。","changeImpact":"修改 apps/esp32_lvgl/src/esp32_lvgl_loop_runtime.cpp 可能改变该 sequence 的依赖关系、调用证据和相关组件/结构图的解释。","evidence":["apps/esp32_lvgl/src/esp32_lvgl_loop_runtime.cpp","交互类型:calls","来源:apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","目标:apps/esp32_lvgl/src/esp32_lvgl_loop_runtime.cpp","所属模块:apps/esp32_lvgl","apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp"],"risks":["单条 sequence 片段不足以证明完整调用链或业务主成功路径。"],"questions":["当前关系类型需要按证据区分运行时调用、静态 import、类型引用或配置引用;若只是静态关系,本图不应被解释成真实调用顺序。"],"confidence":"high","drilldowns":[]}]},{"id":"engineering:diagram:sequence:runesp32lvglstartupruntime-calls-canrunesp32lvglstartupruntime","kind":"sequence","title":"动态协作:runEsp32LvglStartupRuntime 调用 canRunEsp32LvglStartupRuntime","summary":"apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 中的 runEsp32LvglStartupRuntime calls apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 中的 canRunEsp32LvglStartupRuntime。","docPath":"docs/engineering/sequence-diagrams/runesp32lvglstartupruntime-calls-canrunesp32lvglstartupruntime/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/runesp32lvglstartupruntime-calls-canrunesp32lvglstartupruntime/sequence-diagram.html","anchor":"engineering:runtime-flow:runesp32lvglstartupruntime:canrunesp32lvglstartupruntime:apps-esp32_lvgl-src-esp32_lvgl_startup_runtime.cpp:apps-esp32_lvgl-src-esp32_lvgl_startup_runtime.cpp","status":"candidate","confidence":"high","mermaidKind":"sequenceDiagram","mermaid":"sequenceDiagram\n participant Source as runEsp32LvglStartupRuntime\n participant Target as canRunEsp32LvglStartupRuntime\n Source-\u003e\u003eTarget: calls\n Note over Source,Target: apps/esp32_lvgl","readingGuide":["这张 Sequence Diagram 聚焦 runEsp32LvglStartupRuntime 调用 canRunEsp32LvglStartupRuntime 的技术协作片段。","它描述的是一个局部运行片段,不一定等同于完整业务流程。","当前关系来自本地调用证据;若没有 Use Case Trace,它只表示局部协作片段,不直接等同于主成功场景、回调、补偿或失败路径。"],"technicalAnalysis":["apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 与 apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 之间存在 calls 关系,所属技术边界是 apps/esp32_lvgl。","Sequence Diagram 用于解释运行时或协作顺序,适合承接那些从 Package/Component 图看不清的动态行为。","如果未来证据显示存在异步消息、回调、超时或失败补偿,应为同一业务/技术场景拆出多张 sequence,而不是塞进一张大图。"],"businessRelation":["业务 Use Case 的主成功路径、失败路径和回调路径最终会落到若干技术 sequence 片段上。","当前片段可能解释某个业务故事中的技术执行步骤;如果没有 Use Case Trace,它只作为软件结构模型中的局部协作片段。","如果它被确认属于某个 Use Case,应在 docs/design 对应下钻 Sequence Diagram 中链接到这份工程 sequence 文档。"],"governanceNotes":["不要只根据单条关系判断完整调用链;需要结合前后游关系补全场景。","当 sequence 涉及外部系统、模型调用、文件写入或 Git 操作时,应补充失败路径和重试/补偿说明。","如果该 sequence 支撑用户可见功能,应同步维护组织/过程模型的业务下钻图。"],"coverage":["交互类型:calls","来源:apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","目标:apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","所属模块:apps/esp32_lvgl"],"evidencePaths":["apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp"],"questions":[],"scope":{"packageId":"apps/esp32_lvgl","sourcePath":"apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","targetPath":"apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","targetPackageId":"apps/esp32_lvgl","sourceName":"runEsp32LvglStartupRuntime","targetName":"canRunEsp32LvglStartupRuntime"},"drilldowns":[],"elements":[{"id":"engineering:diagram:sequence:runesp32lvglstartupruntime-calls-canrunesp32lvglstartupruntime:element:runesp32lvglstartupruntime","mermaidId":"Source","label":"runEsp32LvglStartupRuntime","kind":"component","anchor":"engineering:runtime-flow:runesp32lvglstartupruntime:canrunesp32lvglstartupruntime:apps-esp32_lvgl-src-esp32_lvgl_startup_runtime.cpp:apps-esp32_lvgl-src-esp32_lvgl_startup_runtime.cpp:source","summary":"runEsp32LvglStartupRuntime 是当前 Sequence Diagram 的来源参与者,用来解释 apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 中的 runEsp32LvglStartupRuntime calls apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 中的 canRunEsp32LvglStartupRuntime。","role":"消息发起/依赖方:它触发或引用目标能力。","whyItExists":"本地仓库证据在 apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 与 apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 之间观察到 calls,因此 runEsp32LvglStartupRuntime 被放入 sequence。","relationshipMeaning":"runEsp32LvglStartupRuntime -\u003e canRunEsp32LvglStartupRuntime 表示当前片段的依赖方向;如果关系只是 import,它只能说明静态依赖,不能直接证明运行时顺序。","drilldownIntent":"下钻 runEsp32LvglStartupRuntime 可以查看对应 Component Diagram 或结构上下文,判断这个参与者在更大技术边界中的职责。","businessRelevance":"业务 Use Case 的执行过程可能落到多个 sequence 片段上;当前片段只是候选技术步骤,需要组织/过程模型证据确认业务含义。","changeImpact":"修改 apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 可能改变该 sequence 的依赖关系、调用证据和相关组件/结构图的解释。","evidence":["apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","交互类型:calls","来源:apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","目标:apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","所属模块:apps/esp32_lvgl"],"risks":["单条 sequence 片段不足以证明完整调用链或业务主成功路径。"],"questions":["当前关系类型需要按证据区分运行时调用、静态 import、类型引用或配置引用;若只是静态关系,本图不应被解释成真实调用顺序。"],"confidence":"high","drilldowns":[]},{"id":"engineering:diagram:sequence:runesp32lvglstartupruntime-calls-canrunesp32lvglstartupruntime:element:canrunesp32lvglstartupruntime","mermaidId":"Target","label":"canRunEsp32LvglStartupRuntime","kind":"component","anchor":"engineering:runtime-flow:runesp32lvglstartupruntime:canrunesp32lvglstartupruntime:apps-esp32_lvgl-src-esp32_lvgl_startup_runtime.cpp:apps-esp32_lvgl-src-esp32_lvgl_startup_runtime.cpp:target","summary":"canRunEsp32LvglStartupRuntime 是当前 Sequence Diagram 的目标参与者,用来解释 apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 中的 runEsp32LvglStartupRuntime calls apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 中的 canRunEsp32LvglStartupRuntime。","role":"消息接收/被依赖方:它提供被当前片段引用或调用的能力。","whyItExists":"本地仓库证据在 apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 与 apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 之间观察到 calls,因此 canRunEsp32LvglStartupRuntime 被放入 sequence。","relationshipMeaning":"runEsp32LvglStartupRuntime -\u003e canRunEsp32LvglStartupRuntime 表示目标能力被当前片段依赖;需要结合调用证据确认它是运行时调用、类型引用还是静态导入。","drilldownIntent":"下钻 canRunEsp32LvglStartupRuntime 可以查看对应 Component Diagram 或结构上下文,判断这个参与者在更大技术边界中的职责。","businessRelevance":"业务 Use Case 的执行过程可能落到多个 sequence 片段上;当前片段只是候选技术步骤,需要组织/过程模型证据确认业务含义。","changeImpact":"修改 apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 可能改变该 sequence 的依赖关系、调用证据和相关组件/结构图的解释。","evidence":["apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","交互类型:calls","来源:apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","目标:apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","所属模块:apps/esp32_lvgl"],"risks":["单条 sequence 片段不足以证明完整调用链或业务主成功路径。"],"questions":["当前关系类型需要按证据区分运行时调用、静态 import、类型引用或配置引用;若只是静态关系,本图不应被解释成真实调用顺序。"],"confidence":"high","drilldowns":[]}]},{"id":"engineering:diagram:sequence:runesp32lvglstartupruntime-calls-showbootui","kind":"sequence","title":"动态协作:runEsp32LvglStartupRuntime 调用 showBootUi","summary":"apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 中的 runEsp32LvglStartupRuntime calls apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 中的 showBootUi。","docPath":"docs/engineering/sequence-diagrams/runesp32lvglstartupruntime-calls-showbootui/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/runesp32lvglstartupruntime-calls-showbootui/sequence-diagram.html","anchor":"engineering:runtime-flow:runesp32lvglstartupruntime:showbootui:apps-esp32_lvgl-src-esp32_lvgl_startup_runtime.cpp:apps-esp32_lvgl-src-esp32_lvgl_startup_runtime.cpp","status":"candidate","confidence":"high","mermaidKind":"sequenceDiagram","mermaid":"sequenceDiagram\n participant Source as runEsp32LvglStartupRuntime\n participant Target as showBootUi\n Source-\u003e\u003eTarget: calls\n Note over Source,Target: apps/esp32_lvgl","readingGuide":["这张 Sequence Diagram 聚焦 runEsp32LvglStartupRuntime 调用 showBootUi 的技术协作片段。","它描述的是一个局部运行片段,不一定等同于完整业务流程。","当前关系来自本地调用证据;若没有 Use Case Trace,它只表示局部协作片段,不直接等同于主成功场景、回调、补偿或失败路径。"],"technicalAnalysis":["apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 与 apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 之间存在 calls 关系,所属技术边界是 apps/esp32_lvgl。","Sequence Diagram 用于解释运行时或协作顺序,适合承接那些从 Package/Component 图看不清的动态行为。","如果未来证据显示存在异步消息、回调、超时或失败补偿,应为同一业务/技术场景拆出多张 sequence,而不是塞进一张大图。"],"businessRelation":["业务 Use Case 的主成功路径、失败路径和回调路径最终会落到若干技术 sequence 片段上。","当前片段可能解释某个业务故事中的技术执行步骤;如果没有 Use Case Trace,它只作为软件结构模型中的局部协作片段。","如果它被确认属于某个 Use Case,应在 docs/design 对应下钻 Sequence Diagram 中链接到这份工程 sequence 文档。"],"governanceNotes":["不要只根据单条关系判断完整调用链;需要结合前后游关系补全场景。","当 sequence 涉及外部系统、模型调用、文件写入或 Git 操作时,应补充失败路径和重试/补偿说明。","如果该 sequence 支撑用户可见功能,应同步维护组织/过程模型的业务下钻图。"],"coverage":["交互类型:calls","来源:apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","目标:apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","所属模块:apps/esp32_lvgl"],"evidencePaths":["apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp"],"questions":[],"scope":{"packageId":"apps/esp32_lvgl","sourcePath":"apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","targetPath":"apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","targetPackageId":"apps/esp32_lvgl","sourceName":"runEsp32LvglStartupRuntime","targetName":"showBootUi"},"drilldowns":[],"elements":[{"id":"engineering:diagram:sequence:runesp32lvglstartupruntime-calls-showbootui:element:runesp32lvglstartupruntime","mermaidId":"Source","label":"runEsp32LvglStartupRuntime","kind":"component","anchor":"engineering:runtime-flow:runesp32lvglstartupruntime:showbootui:apps-esp32_lvgl-src-esp32_lvgl_startup_runtime.cpp:apps-esp32_lvgl-src-esp32_lvgl_startup_runtime.cpp:source","summary":"runEsp32LvglStartupRuntime 是当前 Sequence Diagram 的来源参与者,用来解释 apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 中的 runEsp32LvglStartupRuntime calls apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 中的 showBootUi。","role":"消息发起/依赖方:它触发或引用目标能力。","whyItExists":"本地仓库证据在 apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 与 apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 之间观察到 calls,因此 runEsp32LvglStartupRuntime 被放入 sequence。","relationshipMeaning":"runEsp32LvglStartupRuntime -\u003e showBootUi 表示当前片段的依赖方向;如果关系只是 import,它只能说明静态依赖,不能直接证明运行时顺序。","drilldownIntent":"下钻 runEsp32LvglStartupRuntime 可以查看对应 Component Diagram 或结构上下文,判断这个参与者在更大技术边界中的职责。","businessRelevance":"业务 Use Case 的执行过程可能落到多个 sequence 片段上;当前片段只是候选技术步骤,需要组织/过程模型证据确认业务含义。","changeImpact":"修改 apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 可能改变该 sequence 的依赖关系、调用证据和相关组件/结构图的解释。","evidence":["apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","交互类型:calls","来源:apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","目标:apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","所属模块:apps/esp32_lvgl"],"risks":["单条 sequence 片段不足以证明完整调用链或业务主成功路径。"],"questions":["当前关系类型需要按证据区分运行时调用、静态 import、类型引用或配置引用;若只是静态关系,本图不应被解释成真实调用顺序。"],"confidence":"high","drilldowns":[]},{"id":"engineering:diagram:sequence:runesp32lvglstartupruntime-calls-showbootui:element:showbootui","mermaidId":"Target","label":"showBootUi","kind":"component","anchor":"engineering:runtime-flow:runesp32lvglstartupruntime:showbootui:apps-esp32_lvgl-src-esp32_lvgl_startup_runtime.cpp:apps-esp32_lvgl-src-esp32_lvgl_startup_runtime.cpp:target","summary":"showBootUi 是当前 Sequence Diagram 的目标参与者,用来解释 apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 中的 runEsp32LvglStartupRuntime calls apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 中的 showBootUi。","role":"消息接收/被依赖方:它提供被当前片段引用或调用的能力。","whyItExists":"本地仓库证据在 apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 与 apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 之间观察到 calls,因此 showBootUi 被放入 sequence。","relationshipMeaning":"runEsp32LvglStartupRuntime -\u003e showBootUi 表示目标能力被当前片段依赖;需要结合调用证据确认它是运行时调用、类型引用还是静态导入。","drilldownIntent":"下钻 showBootUi 可以查看对应 Component Diagram 或结构上下文,判断这个参与者在更大技术边界中的职责。","businessRelevance":"业务 Use Case 的执行过程可能落到多个 sequence 片段上;当前片段只是候选技术步骤,需要组织/过程模型证据确认业务含义。","changeImpact":"修改 apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 可能改变该 sequence 的依赖关系、调用证据和相关组件/结构图的解释。","evidence":["apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","交互类型:calls","来源:apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","目标:apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","所属模块:apps/esp32_lvgl"],"risks":["单条 sequence 片段不足以证明完整调用链或业务主成功路径。"],"questions":["当前关系类型需要按证据区分运行时调用、静态 import、类型引用或配置引用;若只是静态关系,本图不应被解释成真实调用顺序。"],"confidence":"high","drilldowns":[]}]},{"id":"engineering:diagram:sequence:runesp32lvglstartupruntime-calls-setbootlog","kind":"sequence","title":"动态协作:runEsp32LvglStartupRuntime 调用 setBootLog","summary":"apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 中的 runEsp32LvglStartupRuntime calls apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 中的 setBootLog。","docPath":"docs/engineering/sequence-diagrams/runesp32lvglstartupruntime-calls-setbootlog/sequence-diagram.md","htmlPath":"docs/engineering/sequence-diagrams/runesp32lvglstartupruntime-calls-setbootlog/sequence-diagram.html","anchor":"engineering:runtime-flow:runesp32lvglstartupruntime:setbootlog:apps-esp32_lvgl-src-esp32_lvgl_startup_runtime.cpp:apps-esp32_lvgl-src-esp32_lvgl_startup_runtime.cpp","status":"candidate","confidence":"high","mermaidKind":"sequenceDiagram","mermaid":"sequenceDiagram\n participant Source as runEsp32LvglStartupRuntime\n participant Target as setBootLog\n Source-\u003e\u003eTarget: calls\n Note over Source,Target: apps/esp32_lvgl","readingGuide":["这张 Sequence Diagram 聚焦 runEsp32LvglStartupRuntime 调用 setBootLog 的技术协作片段。","它描述的是一个局部运行片段,不一定等同于完整业务流程。","当前关系来自本地调用证据;若没有 Use Case Trace,它只表示局部协作片段,不直接等同于主成功场景、回调、补偿或失败路径。"],"technicalAnalysis":["apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 与 apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 之间存在 calls 关系,所属技术边界是 apps/esp32_lvgl。","Sequence Diagram 用于解释运行时或协作顺序,适合承接那些从 Package/Component 图看不清的动态行为。","如果未来证据显示存在异步消息、回调、超时或失败补偿,应为同一业务/技术场景拆出多张 sequence,而不是塞进一张大图。"],"businessRelation":["业务 Use Case 的主成功路径、失败路径和回调路径最终会落到若干技术 sequence 片段上。","当前片段可能解释某个业务故事中的技术执行步骤;如果没有 Use Case Trace,它只作为软件结构模型中的局部协作片段。","如果它被确认属于某个 Use Case,应在 docs/design 对应下钻 Sequence Diagram 中链接到这份工程 sequence 文档。"],"governanceNotes":["不要只根据单条关系判断完整调用链;需要结合前后游关系补全场景。","当 sequence 涉及外部系统、模型调用、文件写入或 Git 操作时,应补充失败路径和重试/补偿说明。","如果该 sequence 支撑用户可见功能,应同步维护组织/过程模型的业务下钻图。"],"coverage":["交互类型:calls","来源:apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","目标:apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","所属模块:apps/esp32_lvgl"],"evidencePaths":["apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp"],"questions":[],"scope":{"packageId":"apps/esp32_lvgl","sourcePath":"apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","targetPath":"apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","targetPackageId":"apps/esp32_lvgl","sourceName":"runEsp32LvglStartupRuntime","targetName":"setBootLog"},"drilldowns":[],"elements":[{"id":"engineering:diagram:sequence:runesp32lvglstartupruntime-calls-setbootlog:element:runesp32lvglstartupruntime","mermaidId":"Source","label":"runEsp32LvglStartupRuntime","kind":"component","anchor":"engineering:runtime-flow:runesp32lvglstartupruntime:setbootlog:apps-esp32_lvgl-src-esp32_lvgl_startup_runtime.cpp:apps-esp32_lvgl-src-esp32_lvgl_startup_runtime.cpp:source","summary":"runEsp32LvglStartupRuntime 是当前 Sequence Diagram 的来源参与者,用来解释 apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 中的 runEsp32LvglStartupRuntime calls apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 中的 setBootLog。","role":"消息发起/依赖方:它触发或引用目标能力。","whyItExists":"本地仓库证据在 apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 与 apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 之间观察到 calls,因此 runEsp32LvglStartupRuntime 被放入 sequence。","relationshipMeaning":"runEsp32LvglStartupRuntime -\u003e setBootLog 表示当前片段的依赖方向;如果关系只是 import,它只能说明静态依赖,不能直接证明运行时顺序。","drilldownIntent":"下钻 runEsp32LvglStartupRuntime 可以查看对应 Component Diagram 或结构上下文,判断这个参与者在更大技术边界中的职责。","businessRelevance":"业务 Use Case 的执行过程可能落到多个 sequence 片段上;当前片段只是候选技术步骤,需要组织/过程模型证据确认业务含义。","changeImpact":"修改 apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 可能改变该 sequence 的依赖关系、调用证据和相关组件/结构图的解释。","evidence":["apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","交互类型:calls","来源:apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","目标:apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","所属模块:apps/esp32_lvgl"],"risks":["单条 sequence 片段不足以证明完整调用链或业务主成功路径。"],"questions":["当前关系类型需要按证据区分运行时调用、静态 import、类型引用或配置引用;若只是静态关系,本图不应被解释成真实调用顺序。"],"confidence":"high","drilldowns":[]},{"id":"engineering:diagram:sequence:runesp32lvglstartupruntime-calls-setbootlog:element:setbootlog","mermaidId":"Target","label":"setBootLog","kind":"component","anchor":"engineering:runtime-flow:runesp32lvglstartupruntime:setbootlog:apps-esp32_lvgl-src-esp32_lvgl_startup_runtime.cpp:apps-esp32_lvgl-src-esp32_lvgl_startup_runtime.cpp:target","summary":"setBootLog 是当前 Sequence Diagram 的目标参与者,用来解释 apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 中的 runEsp32LvglStartupRuntime calls apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 中的 setBootLog。","role":"消息接收/被依赖方:它提供被当前片段引用或调用的能力。","whyItExists":"本地仓库证据在 apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 与 apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 之间观察到 calls,因此 setBootLog 被放入 sequence。","relationshipMeaning":"runEsp32LvglStartupRuntime -\u003e setBootLog 表示目标能力被当前片段依赖;需要结合调用证据确认它是运行时调用、类型引用还是静态导入。","drilldownIntent":"下钻 setBootLog 可以查看对应 Component Diagram 或结构上下文,判断这个参与者在更大技术边界中的职责。","businessRelevance":"业务 Use Case 的执行过程可能落到多个 sequence 片段上;当前片段只是候选技术步骤,需要组织/过程模型证据确认业务含义。","changeImpact":"修改 apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp 可能改变该 sequence 的依赖关系、调用证据和相关组件/结构图的解释。","evidence":["apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","交互类型:calls","来源:apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","目标:apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","所属模块:apps/esp32_lvgl"],"risks":["单条 sequence 片段不足以证明完整调用链或业务主成功路径。"],"questions":["当前关系类型需要按证据区分运行时调用、静态 import、类型引用或配置引用;若只是静态关系,本图不应被解释成真实调用顺序。"],"confidence":"high","drilldowns":[]}]}]},{"id":"engineering:category:state_machine","kind":"state_machine","title":"State Machine Diagrams","directory":"docs/engineering/state-machine-diagrams","mapDocPath":"docs/engineering/state-machine-diagrams/state-machine-diagrams-maps.md","mapHtmlPath":"docs/engineering/state-machine-diagrams/state-machine-diagrams-maps.html","summary":"仅在代码事实表明存在明确状态语义时生成。","count":0,"items":[]},{"id":"engineering:category:technical_hotspot","kind":"technical_hotspot","title":"Technical Hotspots","directory":"docs/engineering/technical-hotspots","mapDocPath":"docs/engineering/technical-hotspots/technical-hotspots-maps.md","mapHtmlPath":"docs/engineering/technical-hotspots/technical-hotspots-maps.html","summary":"大文件、被广泛复用对象、外部协作对象、依赖簇和扫描告警。","count":16,"items":[{"id":"engineering:diagram:technical-hotspot:large-file--build-t_display_p4_tft-bootloader-config-kconfig_menus-json","kind":"technical_hotspot","title":"大文件:build.t_display_p4_tft/bootloader/config/kconfig_menus.json 技术热点","summary":"该文件约 13990 行,可能形成阅读、变更和评审负担。","docPath":"docs/engineering/technical-hotspots/large-file--build-t_display_p4_tft-bootloader-config-kconfig_menus-json/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/large-file--build-t_display_p4_tft-bootloader-config-kconfig_menus-json/technical-hotspot.html","anchor":"engineering:hotspot:large-file:build.t_display_p4_tft-bootloader-config-kconfig_menus.json","status":"candidate","confidence":"high","mermaidKind":"flowchart","mermaid":"flowchart LR\n target[\"build.t_display_p4_tft/bootloader/config/kconfig_menus.json\"]\n hotspot[\"大文件\"]\n signal[\"约 13990 行代码或文档\"]\n target --\u003e hotspot\n hotspot --\u003e signal","readingGuide":["这张技术热点图解释 大文件:build.t_display_p4_tft/bootloader/config/kconfig_menus.json,热点类型是 大文件。","热点是软件结构模型中的候选提醒:它提示复杂度集中点,但不直接等同于缺陷或必须整改项。","目标位置是 build.t_display_p4_tft/bootloader/config/kconfig_menus.json,当前复杂度信号是:约 13990 行代码或文档。"],"technicalAnalysis":["该文件约 13990 行,可能形成阅读、变更和评审负担。","大文件会提高阅读、评审、冲突合并和局部修改的成本,尤其不利于 agent 精准定位上下文。","热点分析需要和 Package、Component、Sequence 图交叉阅读,避免把单一指标误判为设计结论。"],"businessRelation":["技术热点会间接影响业务交付:它可能让某些 Use Case 的变更成本、验证成本和回归风险升高。","如果 build.t_display_p4_tft/bootloader/config/kconfig_menus.json 被某个 Use Case 的证据引用,那么这个热点应出现在该 Use Case 的风险或治理说明中。","如果组织/过程模型没有 Use Case 证据引用该热点,它只作为工程治理候选,不作为业务风险结论。"],"governanceNotes":["不要因为热点存在就立即重构;先确认它影响了哪些业务故事、哪些变更频率最高、哪些测试覆盖最薄弱。","如果决定治理,应把治理目标拆成可验证的原子提交,并记录语义化版本变化。","治理完成后,应重新生成软件结构模型文档,确认复杂度候选点是否被解释或缓解,并把结论写入 changelog。"],"coverage":["热点类型:大文件","目标:build.t_display_p4_tft/bootloader/config/kconfig_menus.json","复杂度信号:约 13990 行代码或文档"],"evidencePaths":["build.t_display_p4_tft/bootloader/config/kconfig_menus.json"],"questions":["该热点只是候选复杂度信号;当前文档只记录影响面和证据位置,不把它升级为已确认缺陷。"],"scope":{"packageId":"build.t_display_p4_tft","filePath":"build.t_display_p4_tft/bootloader/config/kconfig_menus.json"},"drilldowns":[{"id":"engineering:diagram:package:build-t_display_p4_tft","kind":"package","title":"模块边界:build.t_display_p4_tft","summary":"解释 build.t_display_p4_tft 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/build-t_display_p4_tft/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/build-t_display_p4_tft/package-diagram.html","anchor":"engineering:package:build.t_display_p4_tft","relation":"parent_boundary","reason":"回到 build.t_display_p4_tft 的包级边界,判断热点是否只是局部文件问题,还是影响整个模块治理。"}],"elements":[{"id":"engineering:diagram:technical-hotspot:large-file--build-t_display_p4_tft-bootloader-config-kconfig_menus-json:element:build.t_display_p4_tft-bootloader-config-kconfig_menus.json","mermaidId":"target","label":"build.t_display_p4_tft/bootloader/config/kconfig_menus.json","kind":"file","anchor":"engineering:hotspot:large-file:build.t_display_p4_tft-bootloader-config-kconfig_menus.json:target","summary":"build.t_display_p4_tft/bootloader/config/kconfig_menus.json 是当前热点指向的具体文件、模块或目标位置,所有热点解释必须能回到这个证据锚点。","role":"热点证据目标:它承载复杂度信号,而不是抽象风险标签。","whyItExists":"本地仓库证据或仓库扫描在 build.t_display_p4_tft/bootloader/config/kconfig_menus.json 观察到复杂度信号,因此它被放入 Technical Hotspot Diagram。","relationshipMeaning":"target -\u003e hotspot 表示该位置产生或承载当前复杂度提醒;它需要反向关联到 package、component、结构或 sequence 才能判断真实影响。","drilldownIntent":"下钻目标位置可以查看所属 package 或附近 component,确认热点是否影响真实业务能力和可维护性。","businessRelevance":"如果 build.t_display_p4_tft/bootloader/config/kconfig_menus.json 被 Use Case 证据引用,那么该热点会提高对应业务变更的阅读、验证或回归成本。","changeImpact":"治理 build.t_display_p4_tft/bootloader/config/kconfig_menus.json 可能影响文件结构、导入路径、测试覆盖和语义化版本记录。","evidence":["build.t_display_p4_tft/bootloader/config/kconfig_menus.json","热点类型:大文件","目标:build.t_display_p4_tft/bootloader/config/kconfig_menus.json","复杂度信号:约 13990 行代码或文档"],"risks":["热点目标不等于缺陷;需要确认它是否真的影响高频业务变化或关键运行路径。"],"questions":["当前热点只说明 build.t_display_p4_tft/bootloader/config/kconfig_menus.json 存在复杂度信号;若证据来自生成文件、聚合导出或扫描噪声,应降级或移除。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:package:build-t_display_p4_tft","kind":"package","title":"模块边界:build.t_display_p4_tft","summary":"解释 build.t_display_p4_tft 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/build-t_display_p4_tft/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/build-t_display_p4_tft/package-diagram.html","anchor":"engineering:package:build.t_display_p4_tft","relation":"parent_boundary","reason":"回到 build.t_display_p4_tft 的包级边界,判断热点是否只是局部文件问题,还是影响整个模块治理。"}]},{"id":"engineering:diagram:technical-hotspot:large-file--build-t_display_p4_tft-bootloader-config-kconfig_menus-json:element:build.t_display_p4_tft-bootloader-config-kconfig_menus.json","mermaidId":"hotspot","label":"大文件:build.t_display_p4_tft/bootloader/config/kconfig_menus.json 技术热点","kind":"technical_hotspot","anchor":"engineering:hotspot:large-file:build.t_display_p4_tft-bootloader-config-kconfig_menus.json","summary":"大文件:build.t_display_p4_tft/bootloader/config/kconfig_menus.json 技术热点 是当前技术复杂度热点,用来提醒治理前先理解影响面,而不是立即重构。","role":"候选风险/治理入口:它把复杂度信号转化为可讨论的工程问题。","whyItExists":"该热点由本地仓库事实生成,说明某个文件、模块或依赖簇可能让理解、修改或验证成本升高。","relationshipMeaning":"热点节点连接目标位置,表示风险来自具体工程事实;它需要和 package/component/sequence 交叉阅读。","drilldownIntent":"下钻热点相关的 package、component 或 sequence,可以确认它影响的是边界、对象、调用链还是运行配置。","businessRelevance":"技术热点会间接影响业务交付:它可能让某些 Use Case 的变更成本、验证成本和回归风险上升。","changeImpact":"治理热点应拆成可验证的原子提交,并同步记录语义化版本、Git 版本和文档变更。","evidence":["build.t_display_p4_tft/bootloader/config/kconfig_menus.json","热点类型:大文件","目标:build.t_display_p4_tft/bootloader/config/kconfig_menus.json","复杂度信号:约 13990 行代码或文档"],"risks":["不要把热点当作已确认缺陷;先确认业务影响和证据质量。"],"questions":["该热点只是候选复杂度信号;当前文档只记录影响面和证据位置,不把它升级为已确认缺陷。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:package:build-t_display_p4_tft","kind":"package","title":"模块边界:build.t_display_p4_tft","summary":"解释 build.t_display_p4_tft 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/build-t_display_p4_tft/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/build-t_display_p4_tft/package-diagram.html","anchor":"engineering:package:build.t_display_p4_tft","relation":"parent_boundary","reason":"回到 build.t_display_p4_tft 的包级边界,判断热点是否只是局部文件问题,还是影响整个模块治理。"}]}]},{"id":"engineering:diagram:technical-hotspot:large-file--build-tdisplayp4_amoled-bootloader-config-kconfig_menus-json","kind":"technical_hotspot","title":"大文件:build.tdisplayp4_amoled/bootloader/config/kconfig_menus.json 技术热点","summary":"该文件约 13990 行,可能形成阅读、变更和评审负担。","docPath":"docs/engineering/technical-hotspots/large-file--build-tdisplayp4_amoled-bootloader-config-kconfig_menus-json/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/large-file--build-tdisplayp4_amoled-bootloader-config-kconfig_menus-json/technical-hotspot.html","anchor":"engineering:hotspot:large-file:build.tdisplayp4_amoled-bootloader-config-kconfig_menus.json","status":"candidate","confidence":"high","mermaidKind":"flowchart","mermaid":"flowchart LR\n target[\"build.tdisplayp4_amoled/bootloader/config/kconfig_menus.json\"]\n hotspot[\"大文件\"]\n signal[\"约 13990 行代码或文档\"]\n target --\u003e hotspot\n hotspot --\u003e signal","readingGuide":["这张技术热点图解释 大文件:build.tdisplayp4_amoled/bootloader/config/kconfig_menus.json,热点类型是 大文件。","热点是软件结构模型中的候选提醒:它提示复杂度集中点,但不直接等同于缺陷或必须整改项。","目标位置是 build.tdisplayp4_amoled/bootloader/config/kconfig_menus.json,当前复杂度信号是:约 13990 行代码或文档。"],"technicalAnalysis":["该文件约 13990 行,可能形成阅读、变更和评审负担。","大文件会提高阅读、评审、冲突合并和局部修改的成本,尤其不利于 agent 精准定位上下文。","热点分析需要和 Package、Component、Sequence 图交叉阅读,避免把单一指标误判为设计结论。"],"businessRelation":["技术热点会间接影响业务交付:它可能让某些 Use Case 的变更成本、验证成本和回归风险升高。","如果 build.tdisplayp4_amoled/bootloader/config/kconfig_menus.json 被某个 Use Case 的证据引用,那么这个热点应出现在该 Use Case 的风险或治理说明中。","如果组织/过程模型没有 Use Case 证据引用该热点,它只作为工程治理候选,不作为业务风险结论。"],"governanceNotes":["不要因为热点存在就立即重构;先确认它影响了哪些业务故事、哪些变更频率最高、哪些测试覆盖最薄弱。","如果决定治理,应把治理目标拆成可验证的原子提交,并记录语义化版本变化。","治理完成后,应重新生成软件结构模型文档,确认复杂度候选点是否被解释或缓解,并把结论写入 changelog。"],"coverage":["热点类型:大文件","目标:build.tdisplayp4_amoled/bootloader/config/kconfig_menus.json","复杂度信号:约 13990 行代码或文档"],"evidencePaths":["build.tdisplayp4_amoled/bootloader/config/kconfig_menus.json"],"questions":["该热点只是候选复杂度信号;当前文档只记录影响面和证据位置,不把它升级为已确认缺陷。"],"scope":{"packageId":"build.tdisplayp4_amoled","filePath":"build.tdisplayp4_amoled/bootloader/config/kconfig_menus.json"},"drilldowns":[{"id":"engineering:diagram:package:build-tdisplayp4_amoled","kind":"package","title":"模块边界:build.tdisplayp4_amoled","summary":"解释 build.tdisplayp4_amoled 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/build-tdisplayp4_amoled/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/build-tdisplayp4_amoled/package-diagram.html","anchor":"engineering:package:build.tdisplayp4_amoled","relation":"parent_boundary","reason":"回到 build.tdisplayp4_amoled 的包级边界,判断热点是否只是局部文件问题,还是影响整个模块治理。"}],"elements":[{"id":"engineering:diagram:technical-hotspot:large-file--build-tdisplayp4_amoled-bootloader-config-kconfig_menus-json:element:build.tdisplayp4_amoled-bootloader-config-kconfig_menus.json","mermaidId":"target","label":"build.tdisplayp4_amoled/bootloader/config/kconfig_menus.json","kind":"file","anchor":"engineering:hotspot:large-file:build.tdisplayp4_amoled-bootloader-config-kconfig_menus.json:target","summary":"build.tdisplayp4_amoled/bootloader/config/kconfig_menus.json 是当前热点指向的具体文件、模块或目标位置,所有热点解释必须能回到这个证据锚点。","role":"热点证据目标:它承载复杂度信号,而不是抽象风险标签。","whyItExists":"本地仓库证据或仓库扫描在 build.tdisplayp4_amoled/bootloader/config/kconfig_menus.json 观察到复杂度信号,因此它被放入 Technical Hotspot Diagram。","relationshipMeaning":"target -\u003e hotspot 表示该位置产生或承载当前复杂度提醒;它需要反向关联到 package、component、结构或 sequence 才能判断真实影响。","drilldownIntent":"下钻目标位置可以查看所属 package 或附近 component,确认热点是否影响真实业务能力和可维护性。","businessRelevance":"如果 build.tdisplayp4_amoled/bootloader/config/kconfig_menus.json 被 Use Case 证据引用,那么该热点会提高对应业务变更的阅读、验证或回归成本。","changeImpact":"治理 build.tdisplayp4_amoled/bootloader/config/kconfig_menus.json 可能影响文件结构、导入路径、测试覆盖和语义化版本记录。","evidence":["build.tdisplayp4_amoled/bootloader/config/kconfig_menus.json","热点类型:大文件","目标:build.tdisplayp4_amoled/bootloader/config/kconfig_menus.json","复杂度信号:约 13990 行代码或文档"],"risks":["热点目标不等于缺陷;需要确认它是否真的影响高频业务变化或关键运行路径。"],"questions":["当前热点只说明 build.tdisplayp4_amoled/bootloader/config/kconfig_menus.json 存在复杂度信号;若证据来自生成文件、聚合导出或扫描噪声,应降级或移除。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:package:build-tdisplayp4_amoled","kind":"package","title":"模块边界:build.tdisplayp4_amoled","summary":"解释 build.tdisplayp4_amoled 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/build-tdisplayp4_amoled/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/build-tdisplayp4_amoled/package-diagram.html","anchor":"engineering:package:build.tdisplayp4_amoled","relation":"parent_boundary","reason":"回到 build.tdisplayp4_amoled 的包级边界,判断热点是否只是局部文件问题,还是影响整个模块治理。"}]},{"id":"engineering:diagram:technical-hotspot:large-file--build-tdisplayp4_amoled-bootloader-config-kconfig_menus-json:element:build.tdisplayp4_amoled-bootloader-config-kconfig_menus.json","mermaidId":"hotspot","label":"大文件:build.tdisplayp4_amoled/bootloader/config/kconfig_menus.json 技术热点","kind":"technical_hotspot","anchor":"engineering:hotspot:large-file:build.tdisplayp4_amoled-bootloader-config-kconfig_menus.json","summary":"大文件:build.tdisplayp4_amoled/bootloader/config/kconfig_menus.json 技术热点 是当前技术复杂度热点,用来提醒治理前先理解影响面,而不是立即重构。","role":"候选风险/治理入口:它把复杂度信号转化为可讨论的工程问题。","whyItExists":"该热点由本地仓库事实生成,说明某个文件、模块或依赖簇可能让理解、修改或验证成本升高。","relationshipMeaning":"热点节点连接目标位置,表示风险来自具体工程事实;它需要和 package/component/sequence 交叉阅读。","drilldownIntent":"下钻热点相关的 package、component 或 sequence,可以确认它影响的是边界、对象、调用链还是运行配置。","businessRelevance":"技术热点会间接影响业务交付:它可能让某些 Use Case 的变更成本、验证成本和回归风险上升。","changeImpact":"治理热点应拆成可验证的原子提交,并同步记录语义化版本、Git 版本和文档变更。","evidence":["build.tdisplayp4_amoled/bootloader/config/kconfig_menus.json","热点类型:大文件","目标:build.tdisplayp4_amoled/bootloader/config/kconfig_menus.json","复杂度信号:约 13990 行代码或文档"],"risks":["不要把热点当作已确认缺陷;先确认业务影响和证据质量。"],"questions":["该热点只是候选复杂度信号;当前文档只记录影响面和证据位置,不把它升级为已确认缺陷。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:package:build-tdisplayp4_amoled","kind":"package","title":"模块边界:build.tdisplayp4_amoled","summary":"解释 build.tdisplayp4_amoled 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/build-tdisplayp4_amoled/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/build-tdisplayp4_amoled/package-diagram.html","anchor":"engineering:package:build.tdisplayp4_amoled","relation":"parent_boundary","reason":"回到 build.tdisplayp4_amoled 的包级边界,判断热点是否只是局部文件问题,还是影响整个模块治理。"}]}]},{"id":"engineering:diagram:technical-hotspot:large-file--build-tdisplayp4_tft-bootloader-config-kconfig_menus-json","kind":"technical_hotspot","title":"大文件:build.tdisplayp4_tft/bootloader/config/kconfig_menus.json 技术热点","summary":"该文件约 13990 行,可能形成阅读、变更和评审负担。","docPath":"docs/engineering/technical-hotspots/large-file--build-tdisplayp4_tft-bootloader-config-kconfig_menus-json/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/large-file--build-tdisplayp4_tft-bootloader-config-kconfig_menus-json/technical-hotspot.html","anchor":"engineering:hotspot:large-file:build.tdisplayp4_tft-bootloader-config-kconfig_menus.json","status":"candidate","confidence":"high","mermaidKind":"flowchart","mermaid":"flowchart LR\n target[\"build.tdisplayp4_tft/bootloader/config/kconfig_menus.json\"]\n hotspot[\"大文件\"]\n signal[\"约 13990 行代码或文档\"]\n target --\u003e hotspot\n hotspot --\u003e signal","readingGuide":["这张技术热点图解释 大文件:build.tdisplayp4_tft/bootloader/config/kconfig_menus.json,热点类型是 大文件。","热点是软件结构模型中的候选提醒:它提示复杂度集中点,但不直接等同于缺陷或必须整改项。","目标位置是 build.tdisplayp4_tft/bootloader/config/kconfig_menus.json,当前复杂度信号是:约 13990 行代码或文档。"],"technicalAnalysis":["该文件约 13990 行,可能形成阅读、变更和评审负担。","大文件会提高阅读、评审、冲突合并和局部修改的成本,尤其不利于 agent 精准定位上下文。","热点分析需要和 Package、Component、Sequence 图交叉阅读,避免把单一指标误判为设计结论。"],"businessRelation":["技术热点会间接影响业务交付:它可能让某些 Use Case 的变更成本、验证成本和回归风险升高。","如果 build.tdisplayp4_tft/bootloader/config/kconfig_menus.json 被某个 Use Case 的证据引用,那么这个热点应出现在该 Use Case 的风险或治理说明中。","如果组织/过程模型没有 Use Case 证据引用该热点,它只作为工程治理候选,不作为业务风险结论。"],"governanceNotes":["不要因为热点存在就立即重构;先确认它影响了哪些业务故事、哪些变更频率最高、哪些测试覆盖最薄弱。","如果决定治理,应把治理目标拆成可验证的原子提交,并记录语义化版本变化。","治理完成后,应重新生成软件结构模型文档,确认复杂度候选点是否被解释或缓解,并把结论写入 changelog。"],"coverage":["热点类型:大文件","目标:build.tdisplayp4_tft/bootloader/config/kconfig_menus.json","复杂度信号:约 13990 行代码或文档"],"evidencePaths":["build.tdisplayp4_tft/bootloader/config/kconfig_menus.json"],"questions":["该热点只是候选复杂度信号;当前文档只记录影响面和证据位置,不把它升级为已确认缺陷。"],"scope":{"packageId":"build.tdisplayp4_tft","filePath":"build.tdisplayp4_tft/bootloader/config/kconfig_menus.json"},"drilldowns":[{"id":"engineering:diagram:package:build-tdisplayp4_tft","kind":"package","title":"模块边界:build.tdisplayp4_tft","summary":"解释 build.tdisplayp4_tft 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/build-tdisplayp4_tft/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/build-tdisplayp4_tft/package-diagram.html","anchor":"engineering:package:build.tdisplayp4_tft","relation":"parent_boundary","reason":"回到 build.tdisplayp4_tft 的包级边界,判断热点是否只是局部文件问题,还是影响整个模块治理。"}],"elements":[{"id":"engineering:diagram:technical-hotspot:large-file--build-tdisplayp4_tft-bootloader-config-kconfig_menus-json:element:build.tdisplayp4_tft-bootloader-config-kconfig_menus.json","mermaidId":"target","label":"build.tdisplayp4_tft/bootloader/config/kconfig_menus.json","kind":"file","anchor":"engineering:hotspot:large-file:build.tdisplayp4_tft-bootloader-config-kconfig_menus.json:target","summary":"build.tdisplayp4_tft/bootloader/config/kconfig_menus.json 是当前热点指向的具体文件、模块或目标位置,所有热点解释必须能回到这个证据锚点。","role":"热点证据目标:它承载复杂度信号,而不是抽象风险标签。","whyItExists":"本地仓库证据或仓库扫描在 build.tdisplayp4_tft/bootloader/config/kconfig_menus.json 观察到复杂度信号,因此它被放入 Technical Hotspot Diagram。","relationshipMeaning":"target -\u003e hotspot 表示该位置产生或承载当前复杂度提醒;它需要反向关联到 package、component、结构或 sequence 才能判断真实影响。","drilldownIntent":"下钻目标位置可以查看所属 package 或附近 component,确认热点是否影响真实业务能力和可维护性。","businessRelevance":"如果 build.tdisplayp4_tft/bootloader/config/kconfig_menus.json 被 Use Case 证据引用,那么该热点会提高对应业务变更的阅读、验证或回归成本。","changeImpact":"治理 build.tdisplayp4_tft/bootloader/config/kconfig_menus.json 可能影响文件结构、导入路径、测试覆盖和语义化版本记录。","evidence":["build.tdisplayp4_tft/bootloader/config/kconfig_menus.json","热点类型:大文件","目标:build.tdisplayp4_tft/bootloader/config/kconfig_menus.json","复杂度信号:约 13990 行代码或文档"],"risks":["热点目标不等于缺陷;需要确认它是否真的影响高频业务变化或关键运行路径。"],"questions":["当前热点只说明 build.tdisplayp4_tft/bootloader/config/kconfig_menus.json 存在复杂度信号;若证据来自生成文件、聚合导出或扫描噪声,应降级或移除。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:package:build-tdisplayp4_tft","kind":"package","title":"模块边界:build.tdisplayp4_tft","summary":"解释 build.tdisplayp4_tft 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/build-tdisplayp4_tft/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/build-tdisplayp4_tft/package-diagram.html","anchor":"engineering:package:build.tdisplayp4_tft","relation":"parent_boundary","reason":"回到 build.tdisplayp4_tft 的包级边界,判断热点是否只是局部文件问题,还是影响整个模块治理。"}]},{"id":"engineering:diagram:technical-hotspot:large-file--build-tdisplayp4_tft-bootloader-config-kconfig_menus-json:element:build.tdisplayp4_tft-bootloader-config-kconfig_menus.json","mermaidId":"hotspot","label":"大文件:build.tdisplayp4_tft/bootloader/config/kconfig_menus.json 技术热点","kind":"technical_hotspot","anchor":"engineering:hotspot:large-file:build.tdisplayp4_tft-bootloader-config-kconfig_menus.json","summary":"大文件:build.tdisplayp4_tft/bootloader/config/kconfig_menus.json 技术热点 是当前技术复杂度热点,用来提醒治理前先理解影响面,而不是立即重构。","role":"候选风险/治理入口:它把复杂度信号转化为可讨论的工程问题。","whyItExists":"该热点由本地仓库事实生成,说明某个文件、模块或依赖簇可能让理解、修改或验证成本升高。","relationshipMeaning":"热点节点连接目标位置,表示风险来自具体工程事实;它需要和 package/component/sequence 交叉阅读。","drilldownIntent":"下钻热点相关的 package、component 或 sequence,可以确认它影响的是边界、对象、调用链还是运行配置。","businessRelevance":"技术热点会间接影响业务交付:它可能让某些 Use Case 的变更成本、验证成本和回归风险上升。","changeImpact":"治理热点应拆成可验证的原子提交,并同步记录语义化版本、Git 版本和文档变更。","evidence":["build.tdisplayp4_tft/bootloader/config/kconfig_menus.json","热点类型:大文件","目标:build.tdisplayp4_tft/bootloader/config/kconfig_menus.json","复杂度信号:约 13990 行代码或文档"],"risks":["不要把热点当作已确认缺陷;先确认业务影响和证据质量。"],"questions":["该热点只是候选复杂度信号;当前文档只记录影响面和证据位置,不把它升级为已确认缺陷。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:package:build-tdisplayp4_tft","kind":"package","title":"模块边界:build.tdisplayp4_tft","summary":"解释 build.tdisplayp4_tft 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/build-tdisplayp4_tft/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/build-tdisplayp4_tft/package-diagram.html","anchor":"engineering:package:build.tdisplayp4_tft","relation":"parent_boundary","reason":"回到 build.tdisplayp4_tft 的包级边界,判断热点是否只是局部文件问题,还是影响整个模块治理。"}]}]},{"id":"engineering:diagram:technical-hotspot:large-file--managed_components-lvgl__lvgl-src-font-lv_font_montserrat_48-c","kind":"technical_hotspot","title":"大文件:managed_components/lvgl__lvgl/src/font/lv_font_montserrat_48.c 技术热点","summary":"该文件约 12570 行,可能形成阅读、变更和评审负担。","docPath":"docs/engineering/technical-hotspots/large-file--managed_components-lvgl__lvgl-src-font-lv_font_montserrat_48-c/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/large-file--managed_components-lvgl__lvgl-src-font-lv_font_montserrat_48-c/technical-hotspot.html","anchor":"engineering:hotspot:large-file:managed_components-lvgl__lvgl-src-font-lv_font_montserrat_48.c","status":"candidate","confidence":"high","mermaidKind":"flowchart","mermaid":"flowchart LR\n target[\"managed_components/lvgl__lvgl/src/font/lv_font_montserrat_48.c\"]\n hotspot[\"大文件\"]\n signal[\"约 12570 行代码或文档\"]\n target --\u003e hotspot\n hotspot --\u003e signal","readingGuide":["这张技术热点图解释 大文件:managed_components/lvgl__lvgl/src/font/lv_font_montserrat_48.c,热点类型是 大文件。","热点是软件结构模型中的候选提醒:它提示复杂度集中点,但不直接等同于缺陷或必须整改项。","目标位置是 managed_components/lvgl__lvgl/src/font/lv_font_montserrat_48.c,当前复杂度信号是:约 12570 行代码或文档。"],"technicalAnalysis":["该文件约 12570 行,可能形成阅读、变更和评审负担。","大文件会提高阅读、评审、冲突合并和局部修改的成本,尤其不利于 agent 精准定位上下文。","热点分析需要和 Package、Component、Sequence 图交叉阅读,避免把单一指标误判为设计结论。"],"businessRelation":["技术热点会间接影响业务交付:它可能让某些 Use Case 的变更成本、验证成本和回归风险升高。","如果 managed_components/lvgl__lvgl/src/font/lv_font_montserrat_48.c 被某个 Use Case 的证据引用,那么这个热点应出现在该 Use Case 的风险或治理说明中。","如果组织/过程模型没有 Use Case 证据引用该热点,它只作为工程治理候选,不作为业务风险结论。"],"governanceNotes":["不要因为热点存在就立即重构;先确认它影响了哪些业务故事、哪些变更频率最高、哪些测试覆盖最薄弱。","如果决定治理,应把治理目标拆成可验证的原子提交,并记录语义化版本变化。","治理完成后,应重新生成软件结构模型文档,确认复杂度候选点是否被解释或缓解,并把结论写入 changelog。"],"coverage":["热点类型:大文件","目标:managed_components/lvgl__lvgl/src/font/lv_font_montserrat_48.c","复杂度信号:约 12570 行代码或文档"],"evidencePaths":["managed_components/lvgl__lvgl/src/font/lv_font_montserrat_48.c"],"questions":["该热点只是候选复杂度信号;当前文档只记录影响面和证据位置,不把它升级为已确认缺陷。"],"scope":{"packageId":"managed_components","filePath":"managed_components/lvgl__lvgl/src/font/lv_font_montserrat_48.c"},"drilldowns":[{"id":"engineering:diagram:package:managed_components","kind":"package","title":"模块边界:managed_components","summary":"解释 managed_components 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/managed_components/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/managed_components/package-diagram.html","anchor":"engineering:package:managed_components","relation":"parent_boundary","reason":"回到 managed_components 的包级边界,判断热点是否只是局部文件问题,还是影响整个模块治理。"}],"elements":[{"id":"engineering:diagram:technical-hotspot:large-file--managed_components-lvgl__lvgl-src-font-lv_font_montserrat_48-c:element:managed_components-lvgl__lvgl-src-font-lv_font_montserrat_48.c","mermaidId":"target","label":"managed_components/lvgl__lvgl/src/font/lv_font_montserrat_48.c","kind":"file","anchor":"engineering:hotspot:large-file:managed_components-lvgl__lvgl-src-font-lv_font_montserrat_48.c:target","summary":"managed_components/lvgl__lvgl/src/font/lv_font_montserrat_48.c 是当前热点指向的具体文件、模块或目标位置,所有热点解释必须能回到这个证据锚点。","role":"热点证据目标:它承载复杂度信号,而不是抽象风险标签。","whyItExists":"本地仓库证据或仓库扫描在 managed_components/lvgl__lvgl/src/font/lv_font_montserrat_48.c 观察到复杂度信号,因此它被放入 Technical Hotspot Diagram。","relationshipMeaning":"target -\u003e hotspot 表示该位置产生或承载当前复杂度提醒;它需要反向关联到 package、component、结构或 sequence 才能判断真实影响。","drilldownIntent":"下钻目标位置可以查看所属 package 或附近 component,确认热点是否影响真实业务能力和可维护性。","businessRelevance":"如果 managed_components/lvgl__lvgl/src/font/lv_font_montserrat_48.c 被 Use Case 证据引用,那么该热点会提高对应业务变更的阅读、验证或回归成本。","changeImpact":"治理 managed_components/lvgl__lvgl/src/font/lv_font_montserrat_48.c 可能影响文件结构、导入路径、测试覆盖和语义化版本记录。","evidence":["managed_components/lvgl__lvgl/src/font/lv_font_montserrat_48.c","热点类型:大文件","目标:managed_components/lvgl__lvgl/src/font/lv_font_montserrat_48.c","复杂度信号:约 12570 行代码或文档"],"risks":["热点目标不等于缺陷;需要确认它是否真的影响高频业务变化或关键运行路径。"],"questions":["当前热点只说明 managed_components/lvgl__lvgl/src/font/lv_font_montserrat_48.c 存在复杂度信号;若证据来自生成文件、聚合导出或扫描噪声,应降级或移除。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:package:managed_components","kind":"package","title":"模块边界:managed_components","summary":"解释 managed_components 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/managed_components/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/managed_components/package-diagram.html","anchor":"engineering:package:managed_components","relation":"parent_boundary","reason":"回到 managed_components 的包级边界,判断热点是否只是局部文件问题,还是影响整个模块治理。"}]},{"id":"engineering:diagram:technical-hotspot:large-file--managed_components-lvgl__lvgl-src-font-lv_font_montserrat_48-c:element:managed_components-lvgl__lvgl-src-font-lv_font_montserrat_48.c","mermaidId":"hotspot","label":"大文件:managed_components/lvgl__lvgl/src/font/lv_font_montserrat_48.c 技术热点","kind":"technical_hotspot","anchor":"engineering:hotspot:large-file:managed_components-lvgl__lvgl-src-font-lv_font_montserrat_48.c","summary":"大文件:managed_components/lvgl__lvgl/src/font/lv_font_montserrat_48.c 技术热点 是当前技术复杂度热点,用来提醒治理前先理解影响面,而不是立即重构。","role":"候选风险/治理入口:它把复杂度信号转化为可讨论的工程问题。","whyItExists":"该热点由本地仓库事实生成,说明某个文件、模块或依赖簇可能让理解、修改或验证成本升高。","relationshipMeaning":"热点节点连接目标位置,表示风险来自具体工程事实;它需要和 package/component/sequence 交叉阅读。","drilldownIntent":"下钻热点相关的 package、component 或 sequence,可以确认它影响的是边界、对象、调用链还是运行配置。","businessRelevance":"技术热点会间接影响业务交付:它可能让某些 Use Case 的变更成本、验证成本和回归风险上升。","changeImpact":"治理热点应拆成可验证的原子提交,并同步记录语义化版本、Git 版本和文档变更。","evidence":["managed_components/lvgl__lvgl/src/font/lv_font_montserrat_48.c","热点类型:大文件","目标:managed_components/lvgl__lvgl/src/font/lv_font_montserrat_48.c","复杂度信号:约 12570 行代码或文档"],"risks":["不要把热点当作已确认缺陷;先确认业务影响和证据质量。"],"questions":["该热点只是候选复杂度信号;当前文档只记录影响面和证据位置,不把它升级为已确认缺陷。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:package:managed_components","kind":"package","title":"模块边界:managed_components","summary":"解释 managed_components 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/managed_components/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/managed_components/package-diagram.html","anchor":"engineering:package:managed_components","relation":"parent_boundary","reason":"回到 managed_components 的包级边界,判断热点是否只是局部文件问题,还是影响整个模块治理。"}]}]},{"id":"engineering:diagram:technical-hotspot:large-file--build-c6_companion-bootloader-config-kconfig_menus-json","kind":"technical_hotspot","title":"大文件:build.c6_companion/bootloader/config/kconfig_menus.json 技术热点","summary":"该文件约 12312 行,可能形成阅读、变更和评审负担。","docPath":"docs/engineering/technical-hotspots/large-file--build-c6_companion-bootloader-config-kconfig_menus-json/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/large-file--build-c6_companion-bootloader-config-kconfig_menus-json/technical-hotspot.html","anchor":"engineering:hotspot:large-file:build.c6_companion-bootloader-config-kconfig_menus.json","status":"candidate","confidence":"high","mermaidKind":"flowchart","mermaid":"flowchart LR\n target[\"build.c6_companion/bootloader/config/kconfig_menus.json\"]\n hotspot[\"大文件\"]\n signal[\"约 12312 行代码或文档\"]\n target --\u003e hotspot\n hotspot --\u003e signal","readingGuide":["这张技术热点图解释 大文件:build.c6_companion/bootloader/config/kconfig_menus.json,热点类型是 大文件。","热点是软件结构模型中的候选提醒:它提示复杂度集中点,但不直接等同于缺陷或必须整改项。","目标位置是 build.c6_companion/bootloader/config/kconfig_menus.json,当前复杂度信号是:约 12312 行代码或文档。"],"technicalAnalysis":["该文件约 12312 行,可能形成阅读、变更和评审负担。","大文件会提高阅读、评审、冲突合并和局部修改的成本,尤其不利于 agent 精准定位上下文。","热点分析需要和 Package、Component、Sequence 图交叉阅读,避免把单一指标误判为设计结论。"],"businessRelation":["技术热点会间接影响业务交付:它可能让某些 Use Case 的变更成本、验证成本和回归风险升高。","如果 build.c6_companion/bootloader/config/kconfig_menus.json 被某个 Use Case 的证据引用,那么这个热点应出现在该 Use Case 的风险或治理说明中。","如果组织/过程模型没有 Use Case 证据引用该热点,它只作为工程治理候选,不作为业务风险结论。"],"governanceNotes":["不要因为热点存在就立即重构;先确认它影响了哪些业务故事、哪些变更频率最高、哪些测试覆盖最薄弱。","如果决定治理,应把治理目标拆成可验证的原子提交,并记录语义化版本变化。","治理完成后,应重新生成软件结构模型文档,确认复杂度候选点是否被解释或缓解,并把结论写入 changelog。"],"coverage":["热点类型:大文件","目标:build.c6_companion/bootloader/config/kconfig_menus.json","复杂度信号:约 12312 行代码或文档"],"evidencePaths":["build.c6_companion/bootloader/config/kconfig_menus.json"],"questions":["该热点只是候选复杂度信号;当前文档只记录影响面和证据位置,不把它升级为已确认缺陷。"],"scope":{"packageId":"build.c6_companion","filePath":"build.c6_companion/bootloader/config/kconfig_menus.json"},"drilldowns":[{"id":"engineering:diagram:package:build-c6_companion","kind":"package","title":"模块边界:build.c6_companion","summary":"解释 build.c6_companion 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/build-c6_companion/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/build-c6_companion/package-diagram.html","anchor":"engineering:package:build.c6_companion","relation":"parent_boundary","reason":"回到 build.c6_companion 的包级边界,判断热点是否只是局部文件问题,还是影响整个模块治理。"}],"elements":[{"id":"engineering:diagram:technical-hotspot:large-file--build-c6_companion-bootloader-config-kconfig_menus-json:element:build.c6_companion-bootloader-config-kconfig_menus.json","mermaidId":"target","label":"build.c6_companion/bootloader/config/kconfig_menus.json","kind":"file","anchor":"engineering:hotspot:large-file:build.c6_companion-bootloader-config-kconfig_menus.json:target","summary":"build.c6_companion/bootloader/config/kconfig_menus.json 是当前热点指向的具体文件、模块或目标位置,所有热点解释必须能回到这个证据锚点。","role":"热点证据目标:它承载复杂度信号,而不是抽象风险标签。","whyItExists":"本地仓库证据或仓库扫描在 build.c6_companion/bootloader/config/kconfig_menus.json 观察到复杂度信号,因此它被放入 Technical Hotspot Diagram。","relationshipMeaning":"target -\u003e hotspot 表示该位置产生或承载当前复杂度提醒;它需要反向关联到 package、component、结构或 sequence 才能判断真实影响。","drilldownIntent":"下钻目标位置可以查看所属 package 或附近 component,确认热点是否影响真实业务能力和可维护性。","businessRelevance":"如果 build.c6_companion/bootloader/config/kconfig_menus.json 被 Use Case 证据引用,那么该热点会提高对应业务变更的阅读、验证或回归成本。","changeImpact":"治理 build.c6_companion/bootloader/config/kconfig_menus.json 可能影响文件结构、导入路径、测试覆盖和语义化版本记录。","evidence":["build.c6_companion/bootloader/config/kconfig_menus.json","热点类型:大文件","目标:build.c6_companion/bootloader/config/kconfig_menus.json","复杂度信号:约 12312 行代码或文档"],"risks":["热点目标不等于缺陷;需要确认它是否真的影响高频业务变化或关键运行路径。"],"questions":["当前热点只说明 build.c6_companion/bootloader/config/kconfig_menus.json 存在复杂度信号;若证据来自生成文件、聚合导出或扫描噪声,应降级或移除。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:package:build-c6_companion","kind":"package","title":"模块边界:build.c6_companion","summary":"解释 build.c6_companion 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/build-c6_companion/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/build-c6_companion/package-diagram.html","anchor":"engineering:package:build.c6_companion","relation":"parent_boundary","reason":"回到 build.c6_companion 的包级边界,判断热点是否只是局部文件问题,还是影响整个模块治理。"}]},{"id":"engineering:diagram:technical-hotspot:large-file--build-c6_companion-bootloader-config-kconfig_menus-json:element:build.c6_companion-bootloader-config-kconfig_menus.json","mermaidId":"hotspot","label":"大文件:build.c6_companion/bootloader/config/kconfig_menus.json 技术热点","kind":"technical_hotspot","anchor":"engineering:hotspot:large-file:build.c6_companion-bootloader-config-kconfig_menus.json","summary":"大文件:build.c6_companion/bootloader/config/kconfig_menus.json 技术热点 是当前技术复杂度热点,用来提醒治理前先理解影响面,而不是立即重构。","role":"候选风险/治理入口:它把复杂度信号转化为可讨论的工程问题。","whyItExists":"该热点由本地仓库事实生成,说明某个文件、模块或依赖簇可能让理解、修改或验证成本升高。","relationshipMeaning":"热点节点连接目标位置,表示风险来自具体工程事实;它需要和 package/component/sequence 交叉阅读。","drilldownIntent":"下钻热点相关的 package、component 或 sequence,可以确认它影响的是边界、对象、调用链还是运行配置。","businessRelevance":"技术热点会间接影响业务交付:它可能让某些 Use Case 的变更成本、验证成本和回归风险上升。","changeImpact":"治理热点应拆成可验证的原子提交,并同步记录语义化版本、Git 版本和文档变更。","evidence":["build.c6_companion/bootloader/config/kconfig_menus.json","热点类型:大文件","目标:build.c6_companion/bootloader/config/kconfig_menus.json","复杂度信号:约 12312 行代码或文档"],"risks":["不要把热点当作已确认缺陷;先确认业务影响和证据质量。"],"questions":["该热点只是候选复杂度信号;当前文档只记录影响面和证据位置,不把它升级为已确认缺陷。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:package:build-c6_companion","kind":"package","title":"模块边界:build.c6_companion","summary":"解释 build.c6_companion 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/build-c6_companion/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/build-c6_companion/package-diagram.html","anchor":"engineering:package:build.c6_companion","relation":"parent_boundary","reason":"回到 build.c6_companion 的包级边界,判断热点是否只是局部文件问题,还是影响整个模块治理。"}]}]},{"id":"engineering:diagram:technical-hotspot:large-file--managed_components-lvgl__lvgl-src-font-lv_font_montserrat_46-c","kind":"technical_hotspot","title":"大文件:managed_components/lvgl__lvgl/src/font/lv_font_montserrat_46.c 技术热点","summary":"该文件约 11869 行,可能形成阅读、变更和评审负担。","docPath":"docs/engineering/technical-hotspots/large-file--managed_components-lvgl__lvgl-src-font-lv_font_montserrat_46-c/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/large-file--managed_components-lvgl__lvgl-src-font-lv_font_montserrat_46-c/technical-hotspot.html","anchor":"engineering:hotspot:large-file:managed_components-lvgl__lvgl-src-font-lv_font_montserrat_46.c","status":"candidate","confidence":"high","mermaidKind":"flowchart","mermaid":"flowchart LR\n target[\"managed_components/lvgl__lvgl/src/font/lv_font_montserrat_46.c\"]\n hotspot[\"大文件\"]\n signal[\"约 11869 行代码或文档\"]\n target --\u003e hotspot\n hotspot --\u003e signal","readingGuide":["这张技术热点图解释 大文件:managed_components/lvgl__lvgl/src/font/lv_font_montserrat_46.c,热点类型是 大文件。","热点是软件结构模型中的候选提醒:它提示复杂度集中点,但不直接等同于缺陷或必须整改项。","目标位置是 managed_components/lvgl__lvgl/src/font/lv_font_montserrat_46.c,当前复杂度信号是:约 11869 行代码或文档。"],"technicalAnalysis":["该文件约 11869 行,可能形成阅读、变更和评审负担。","大文件会提高阅读、评审、冲突合并和局部修改的成本,尤其不利于 agent 精准定位上下文。","热点分析需要和 Package、Component、Sequence 图交叉阅读,避免把单一指标误判为设计结论。"],"businessRelation":["技术热点会间接影响业务交付:它可能让某些 Use Case 的变更成本、验证成本和回归风险升高。","如果 managed_components/lvgl__lvgl/src/font/lv_font_montserrat_46.c 被某个 Use Case 的证据引用,那么这个热点应出现在该 Use Case 的风险或治理说明中。","如果组织/过程模型没有 Use Case 证据引用该热点,它只作为工程治理候选,不作为业务风险结论。"],"governanceNotes":["不要因为热点存在就立即重构;先确认它影响了哪些业务故事、哪些变更频率最高、哪些测试覆盖最薄弱。","如果决定治理,应把治理目标拆成可验证的原子提交,并记录语义化版本变化。","治理完成后,应重新生成软件结构模型文档,确认复杂度候选点是否被解释或缓解,并把结论写入 changelog。"],"coverage":["热点类型:大文件","目标:managed_components/lvgl__lvgl/src/font/lv_font_montserrat_46.c","复杂度信号:约 11869 行代码或文档"],"evidencePaths":["managed_components/lvgl__lvgl/src/font/lv_font_montserrat_46.c"],"questions":["该热点只是候选复杂度信号;当前文档只记录影响面和证据位置,不把它升级为已确认缺陷。"],"scope":{"packageId":"managed_components","filePath":"managed_components/lvgl__lvgl/src/font/lv_font_montserrat_46.c"},"drilldowns":[{"id":"engineering:diagram:package:managed_components","kind":"package","title":"模块边界:managed_components","summary":"解释 managed_components 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/managed_components/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/managed_components/package-diagram.html","anchor":"engineering:package:managed_components","relation":"parent_boundary","reason":"回到 managed_components 的包级边界,判断热点是否只是局部文件问题,还是影响整个模块治理。"}],"elements":[{"id":"engineering:diagram:technical-hotspot:large-file--managed_components-lvgl__lvgl-src-font-lv_font_montserrat_46-c:element:managed_components-lvgl__lvgl-src-font-lv_font_montserrat_46.c","mermaidId":"target","label":"managed_components/lvgl__lvgl/src/font/lv_font_montserrat_46.c","kind":"file","anchor":"engineering:hotspot:large-file:managed_components-lvgl__lvgl-src-font-lv_font_montserrat_46.c:target","summary":"managed_components/lvgl__lvgl/src/font/lv_font_montserrat_46.c 是当前热点指向的具体文件、模块或目标位置,所有热点解释必须能回到这个证据锚点。","role":"热点证据目标:它承载复杂度信号,而不是抽象风险标签。","whyItExists":"本地仓库证据或仓库扫描在 managed_components/lvgl__lvgl/src/font/lv_font_montserrat_46.c 观察到复杂度信号,因此它被放入 Technical Hotspot Diagram。","relationshipMeaning":"target -\u003e hotspot 表示该位置产生或承载当前复杂度提醒;它需要反向关联到 package、component、结构或 sequence 才能判断真实影响。","drilldownIntent":"下钻目标位置可以查看所属 package 或附近 component,确认热点是否影响真实业务能力和可维护性。","businessRelevance":"如果 managed_components/lvgl__lvgl/src/font/lv_font_montserrat_46.c 被 Use Case 证据引用,那么该热点会提高对应业务变更的阅读、验证或回归成本。","changeImpact":"治理 managed_components/lvgl__lvgl/src/font/lv_font_montserrat_46.c 可能影响文件结构、导入路径、测试覆盖和语义化版本记录。","evidence":["managed_components/lvgl__lvgl/src/font/lv_font_montserrat_46.c","热点类型:大文件","目标:managed_components/lvgl__lvgl/src/font/lv_font_montserrat_46.c","复杂度信号:约 11869 行代码或文档"],"risks":["热点目标不等于缺陷;需要确认它是否真的影响高频业务变化或关键运行路径。"],"questions":["当前热点只说明 managed_components/lvgl__lvgl/src/font/lv_font_montserrat_46.c 存在复杂度信号;若证据来自生成文件、聚合导出或扫描噪声,应降级或移除。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:package:managed_components","kind":"package","title":"模块边界:managed_components","summary":"解释 managed_components 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/managed_components/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/managed_components/package-diagram.html","anchor":"engineering:package:managed_components","relation":"parent_boundary","reason":"回到 managed_components 的包级边界,判断热点是否只是局部文件问题,还是影响整个模块治理。"}]},{"id":"engineering:diagram:technical-hotspot:large-file--managed_components-lvgl__lvgl-src-font-lv_font_montserrat_46-c:element:managed_components-lvgl__lvgl-src-font-lv_font_montserrat_46.c","mermaidId":"hotspot","label":"大文件:managed_components/lvgl__lvgl/src/font/lv_font_montserrat_46.c 技术热点","kind":"technical_hotspot","anchor":"engineering:hotspot:large-file:managed_components-lvgl__lvgl-src-font-lv_font_montserrat_46.c","summary":"大文件:managed_components/lvgl__lvgl/src/font/lv_font_montserrat_46.c 技术热点 是当前技术复杂度热点,用来提醒治理前先理解影响面,而不是立即重构。","role":"候选风险/治理入口:它把复杂度信号转化为可讨论的工程问题。","whyItExists":"该热点由本地仓库事实生成,说明某个文件、模块或依赖簇可能让理解、修改或验证成本升高。","relationshipMeaning":"热点节点连接目标位置,表示风险来自具体工程事实;它需要和 package/component/sequence 交叉阅读。","drilldownIntent":"下钻热点相关的 package、component 或 sequence,可以确认它影响的是边界、对象、调用链还是运行配置。","businessRelevance":"技术热点会间接影响业务交付:它可能让某些 Use Case 的变更成本、验证成本和回归风险上升。","changeImpact":"治理热点应拆成可验证的原子提交,并同步记录语义化版本、Git 版本和文档变更。","evidence":["managed_components/lvgl__lvgl/src/font/lv_font_montserrat_46.c","热点类型:大文件","目标:managed_components/lvgl__lvgl/src/font/lv_font_montserrat_46.c","复杂度信号:约 11869 行代码或文档"],"risks":["不要把热点当作已确认缺陷;先确认业务影响和证据质量。"],"questions":["该热点只是候选复杂度信号;当前文档只记录影响面和证据位置,不把它升级为已确认缺陷。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:package:managed_components","kind":"package","title":"模块边界:managed_components","summary":"解释 managed_components 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/managed_components/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/managed_components/package-diagram.html","anchor":"engineering:package:managed_components","relation":"parent_boundary","reason":"回到 managed_components 的包级边界,判断热点是否只是局部文件问题,还是影响整个模块治理。"}]}]},{"id":"engineering:diagram:technical-hotspot:large-file--managed_components-lvgl__lvgl-src-font-lv_font_montserrat_44-c","kind":"technical_hotspot","title":"大文件:managed_components/lvgl__lvgl/src/font/lv_font_montserrat_44.c 技术热点","summary":"该文件约 10917 行,可能形成阅读、变更和评审负担。","docPath":"docs/engineering/technical-hotspots/large-file--managed_components-lvgl__lvgl-src-font-lv_font_montserrat_44-c/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/large-file--managed_components-lvgl__lvgl-src-font-lv_font_montserrat_44-c/technical-hotspot.html","anchor":"engineering:hotspot:large-file:managed_components-lvgl__lvgl-src-font-lv_font_montserrat_44.c","status":"candidate","confidence":"high","mermaidKind":"flowchart","mermaid":"flowchart LR\n target[\"managed_components/lvgl__lvgl/src/font/lv_font_montserrat_44.c\"]\n hotspot[\"大文件\"]\n signal[\"约 10917 行代码或文档\"]\n target --\u003e hotspot\n hotspot --\u003e signal","readingGuide":["这张技术热点图解释 大文件:managed_components/lvgl__lvgl/src/font/lv_font_montserrat_44.c,热点类型是 大文件。","热点是软件结构模型中的候选提醒:它提示复杂度集中点,但不直接等同于缺陷或必须整改项。","目标位置是 managed_components/lvgl__lvgl/src/font/lv_font_montserrat_44.c,当前复杂度信号是:约 10917 行代码或文档。"],"technicalAnalysis":["该文件约 10917 行,可能形成阅读、变更和评审负担。","大文件会提高阅读、评审、冲突合并和局部修改的成本,尤其不利于 agent 精准定位上下文。","热点分析需要和 Package、Component、Sequence 图交叉阅读,避免把单一指标误判为设计结论。"],"businessRelation":["技术热点会间接影响业务交付:它可能让某些 Use Case 的变更成本、验证成本和回归风险升高。","如果 managed_components/lvgl__lvgl/src/font/lv_font_montserrat_44.c 被某个 Use Case 的证据引用,那么这个热点应出现在该 Use Case 的风险或治理说明中。","如果组织/过程模型没有 Use Case 证据引用该热点,它只作为工程治理候选,不作为业务风险结论。"],"governanceNotes":["不要因为热点存在就立即重构;先确认它影响了哪些业务故事、哪些变更频率最高、哪些测试覆盖最薄弱。","如果决定治理,应把治理目标拆成可验证的原子提交,并记录语义化版本变化。","治理完成后,应重新生成软件结构模型文档,确认复杂度候选点是否被解释或缓解,并把结论写入 changelog。"],"coverage":["热点类型:大文件","目标:managed_components/lvgl__lvgl/src/font/lv_font_montserrat_44.c","复杂度信号:约 10917 行代码或文档"],"evidencePaths":["managed_components/lvgl__lvgl/src/font/lv_font_montserrat_44.c"],"questions":["该热点只是候选复杂度信号;当前文档只记录影响面和证据位置,不把它升级为已确认缺陷。"],"scope":{"packageId":"managed_components","filePath":"managed_components/lvgl__lvgl/src/font/lv_font_montserrat_44.c"},"drilldowns":[{"id":"engineering:diagram:package:managed_components","kind":"package","title":"模块边界:managed_components","summary":"解释 managed_components 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/managed_components/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/managed_components/package-diagram.html","anchor":"engineering:package:managed_components","relation":"parent_boundary","reason":"回到 managed_components 的包级边界,判断热点是否只是局部文件问题,还是影响整个模块治理。"}],"elements":[{"id":"engineering:diagram:technical-hotspot:large-file--managed_components-lvgl__lvgl-src-font-lv_font_montserrat_44-c:element:managed_components-lvgl__lvgl-src-font-lv_font_montserrat_44.c","mermaidId":"target","label":"managed_components/lvgl__lvgl/src/font/lv_font_montserrat_44.c","kind":"file","anchor":"engineering:hotspot:large-file:managed_components-lvgl__lvgl-src-font-lv_font_montserrat_44.c:target","summary":"managed_components/lvgl__lvgl/src/font/lv_font_montserrat_44.c 是当前热点指向的具体文件、模块或目标位置,所有热点解释必须能回到这个证据锚点。","role":"热点证据目标:它承载复杂度信号,而不是抽象风险标签。","whyItExists":"本地仓库证据或仓库扫描在 managed_components/lvgl__lvgl/src/font/lv_font_montserrat_44.c 观察到复杂度信号,因此它被放入 Technical Hotspot Diagram。","relationshipMeaning":"target -\u003e hotspot 表示该位置产生或承载当前复杂度提醒;它需要反向关联到 package、component、结构或 sequence 才能判断真实影响。","drilldownIntent":"下钻目标位置可以查看所属 package 或附近 component,确认热点是否影响真实业务能力和可维护性。","businessRelevance":"如果 managed_components/lvgl__lvgl/src/font/lv_font_montserrat_44.c 被 Use Case 证据引用,那么该热点会提高对应业务变更的阅读、验证或回归成本。","changeImpact":"治理 managed_components/lvgl__lvgl/src/font/lv_font_montserrat_44.c 可能影响文件结构、导入路径、测试覆盖和语义化版本记录。","evidence":["managed_components/lvgl__lvgl/src/font/lv_font_montserrat_44.c","热点类型:大文件","目标:managed_components/lvgl__lvgl/src/font/lv_font_montserrat_44.c","复杂度信号:约 10917 行代码或文档"],"risks":["热点目标不等于缺陷;需要确认它是否真的影响高频业务变化或关键运行路径。"],"questions":["当前热点只说明 managed_components/lvgl__lvgl/src/font/lv_font_montserrat_44.c 存在复杂度信号;若证据来自生成文件、聚合导出或扫描噪声,应降级或移除。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:package:managed_components","kind":"package","title":"模块边界:managed_components","summary":"解释 managed_components 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/managed_components/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/managed_components/package-diagram.html","anchor":"engineering:package:managed_components","relation":"parent_boundary","reason":"回到 managed_components 的包级边界,判断热点是否只是局部文件问题,还是影响整个模块治理。"}]},{"id":"engineering:diagram:technical-hotspot:large-file--managed_components-lvgl__lvgl-src-font-lv_font_montserrat_44-c:element:managed_components-lvgl__lvgl-src-font-lv_font_montserrat_44.c","mermaidId":"hotspot","label":"大文件:managed_components/lvgl__lvgl/src/font/lv_font_montserrat_44.c 技术热点","kind":"technical_hotspot","anchor":"engineering:hotspot:large-file:managed_components-lvgl__lvgl-src-font-lv_font_montserrat_44.c","summary":"大文件:managed_components/lvgl__lvgl/src/font/lv_font_montserrat_44.c 技术热点 是当前技术复杂度热点,用来提醒治理前先理解影响面,而不是立即重构。","role":"候选风险/治理入口:它把复杂度信号转化为可讨论的工程问题。","whyItExists":"该热点由本地仓库事实生成,说明某个文件、模块或依赖簇可能让理解、修改或验证成本升高。","relationshipMeaning":"热点节点连接目标位置,表示风险来自具体工程事实;它需要和 package/component/sequence 交叉阅读。","drilldownIntent":"下钻热点相关的 package、component 或 sequence,可以确认它影响的是边界、对象、调用链还是运行配置。","businessRelevance":"技术热点会间接影响业务交付:它可能让某些 Use Case 的变更成本、验证成本和回归风险上升。","changeImpact":"治理热点应拆成可验证的原子提交,并同步记录语义化版本、Git 版本和文档变更。","evidence":["managed_components/lvgl__lvgl/src/font/lv_font_montserrat_44.c","热点类型:大文件","目标:managed_components/lvgl__lvgl/src/font/lv_font_montserrat_44.c","复杂度信号:约 10917 行代码或文档"],"risks":["不要把热点当作已确认缺陷;先确认业务影响和证据质量。"],"questions":["该热点只是候选复杂度信号;当前文档只记录影响面和证据位置,不把它升级为已确认缺陷。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:package:managed_components","kind":"package","title":"模块边界:managed_components","summary":"解释 managed_components 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/managed_components/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/managed_components/package-diagram.html","anchor":"engineering:package:managed_components","relation":"parent_boundary","reason":"回到 managed_components 的包级边界,判断热点是否只是局部文件问题,还是影响整个模块治理。"}]}]},{"id":"engineering:diagram:technical-hotspot:large-file--managed_components-lvgl__lvgl-src-font-lv_font_montserrat_42-c","kind":"technical_hotspot","title":"大文件:managed_components/lvgl__lvgl/src/font/lv_font_montserrat_42.c 技术热点","summary":"该文件约 10091 行,可能形成阅读、变更和评审负担。","docPath":"docs/engineering/technical-hotspots/large-file--managed_components-lvgl__lvgl-src-font-lv_font_montserrat_42-c/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/large-file--managed_components-lvgl__lvgl-src-font-lv_font_montserrat_42-c/technical-hotspot.html","anchor":"engineering:hotspot:large-file:managed_components-lvgl__lvgl-src-font-lv_font_montserrat_42.c","status":"candidate","confidence":"high","mermaidKind":"flowchart","mermaid":"flowchart LR\n target[\"managed_components/lvgl__lvgl/src/font/lv_font_montserrat_42.c\"]\n hotspot[\"大文件\"]\n signal[\"约 10091 行代码或文档\"]\n target --\u003e hotspot\n hotspot --\u003e signal","readingGuide":["这张技术热点图解释 大文件:managed_components/lvgl__lvgl/src/font/lv_font_montserrat_42.c,热点类型是 大文件。","热点是软件结构模型中的候选提醒:它提示复杂度集中点,但不直接等同于缺陷或必须整改项。","目标位置是 managed_components/lvgl__lvgl/src/font/lv_font_montserrat_42.c,当前复杂度信号是:约 10091 行代码或文档。"],"technicalAnalysis":["该文件约 10091 行,可能形成阅读、变更和评审负担。","大文件会提高阅读、评审、冲突合并和局部修改的成本,尤其不利于 agent 精准定位上下文。","热点分析需要和 Package、Component、Sequence 图交叉阅读,避免把单一指标误判为设计结论。"],"businessRelation":["技术热点会间接影响业务交付:它可能让某些 Use Case 的变更成本、验证成本和回归风险升高。","如果 managed_components/lvgl__lvgl/src/font/lv_font_montserrat_42.c 被某个 Use Case 的证据引用,那么这个热点应出现在该 Use Case 的风险或治理说明中。","如果组织/过程模型没有 Use Case 证据引用该热点,它只作为工程治理候选,不作为业务风险结论。"],"governanceNotes":["不要因为热点存在就立即重构;先确认它影响了哪些业务故事、哪些变更频率最高、哪些测试覆盖最薄弱。","如果决定治理,应把治理目标拆成可验证的原子提交,并记录语义化版本变化。","治理完成后,应重新生成软件结构模型文档,确认复杂度候选点是否被解释或缓解,并把结论写入 changelog。"],"coverage":["热点类型:大文件","目标:managed_components/lvgl__lvgl/src/font/lv_font_montserrat_42.c","复杂度信号:约 10091 行代码或文档"],"evidencePaths":["managed_components/lvgl__lvgl/src/font/lv_font_montserrat_42.c"],"questions":["该热点只是候选复杂度信号;当前文档只记录影响面和证据位置,不把它升级为已确认缺陷。"],"scope":{"packageId":"managed_components","filePath":"managed_components/lvgl__lvgl/src/font/lv_font_montserrat_42.c"},"drilldowns":[{"id":"engineering:diagram:package:managed_components","kind":"package","title":"模块边界:managed_components","summary":"解释 managed_components 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/managed_components/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/managed_components/package-diagram.html","anchor":"engineering:package:managed_components","relation":"parent_boundary","reason":"回到 managed_components 的包级边界,判断热点是否只是局部文件问题,还是影响整个模块治理。"}],"elements":[{"id":"engineering:diagram:technical-hotspot:large-file--managed_components-lvgl__lvgl-src-font-lv_font_montserrat_42-c:element:managed_components-lvgl__lvgl-src-font-lv_font_montserrat_42.c","mermaidId":"target","label":"managed_components/lvgl__lvgl/src/font/lv_font_montserrat_42.c","kind":"file","anchor":"engineering:hotspot:large-file:managed_components-lvgl__lvgl-src-font-lv_font_montserrat_42.c:target","summary":"managed_components/lvgl__lvgl/src/font/lv_font_montserrat_42.c 是当前热点指向的具体文件、模块或目标位置,所有热点解释必须能回到这个证据锚点。","role":"热点证据目标:它承载复杂度信号,而不是抽象风险标签。","whyItExists":"本地仓库证据或仓库扫描在 managed_components/lvgl__lvgl/src/font/lv_font_montserrat_42.c 观察到复杂度信号,因此它被放入 Technical Hotspot Diagram。","relationshipMeaning":"target -\u003e hotspot 表示该位置产生或承载当前复杂度提醒;它需要反向关联到 package、component、结构或 sequence 才能判断真实影响。","drilldownIntent":"下钻目标位置可以查看所属 package 或附近 component,确认热点是否影响真实业务能力和可维护性。","businessRelevance":"如果 managed_components/lvgl__lvgl/src/font/lv_font_montserrat_42.c 被 Use Case 证据引用,那么该热点会提高对应业务变更的阅读、验证或回归成本。","changeImpact":"治理 managed_components/lvgl__lvgl/src/font/lv_font_montserrat_42.c 可能影响文件结构、导入路径、测试覆盖和语义化版本记录。","evidence":["managed_components/lvgl__lvgl/src/font/lv_font_montserrat_42.c","热点类型:大文件","目标:managed_components/lvgl__lvgl/src/font/lv_font_montserrat_42.c","复杂度信号:约 10091 行代码或文档"],"risks":["热点目标不等于缺陷;需要确认它是否真的影响高频业务变化或关键运行路径。"],"questions":["当前热点只说明 managed_components/lvgl__lvgl/src/font/lv_font_montserrat_42.c 存在复杂度信号;若证据来自生成文件、聚合导出或扫描噪声,应降级或移除。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:package:managed_components","kind":"package","title":"模块边界:managed_components","summary":"解释 managed_components 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/managed_components/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/managed_components/package-diagram.html","anchor":"engineering:package:managed_components","relation":"parent_boundary","reason":"回到 managed_components 的包级边界,判断热点是否只是局部文件问题,还是影响整个模块治理。"}]},{"id":"engineering:diagram:technical-hotspot:large-file--managed_components-lvgl__lvgl-src-font-lv_font_montserrat_42-c:element:managed_components-lvgl__lvgl-src-font-lv_font_montserrat_42.c","mermaidId":"hotspot","label":"大文件:managed_components/lvgl__lvgl/src/font/lv_font_montserrat_42.c 技术热点","kind":"technical_hotspot","anchor":"engineering:hotspot:large-file:managed_components-lvgl__lvgl-src-font-lv_font_montserrat_42.c","summary":"大文件:managed_components/lvgl__lvgl/src/font/lv_font_montserrat_42.c 技术热点 是当前技术复杂度热点,用来提醒治理前先理解影响面,而不是立即重构。","role":"候选风险/治理入口:它把复杂度信号转化为可讨论的工程问题。","whyItExists":"该热点由本地仓库事实生成,说明某个文件、模块或依赖簇可能让理解、修改或验证成本升高。","relationshipMeaning":"热点节点连接目标位置,表示风险来自具体工程事实;它需要和 package/component/sequence 交叉阅读。","drilldownIntent":"下钻热点相关的 package、component 或 sequence,可以确认它影响的是边界、对象、调用链还是运行配置。","businessRelevance":"技术热点会间接影响业务交付:它可能让某些 Use Case 的变更成本、验证成本和回归风险上升。","changeImpact":"治理热点应拆成可验证的原子提交,并同步记录语义化版本、Git 版本和文档变更。","evidence":["managed_components/lvgl__lvgl/src/font/lv_font_montserrat_42.c","热点类型:大文件","目标:managed_components/lvgl__lvgl/src/font/lv_font_montserrat_42.c","复杂度信号:约 10091 行代码或文档"],"risks":["不要把热点当作已确认缺陷;先确认业务影响和证据质量。"],"questions":["该热点只是候选复杂度信号;当前文档只记录影响面和证据位置,不把它升级为已确认缺陷。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:package:managed_components","kind":"package","title":"模块边界:managed_components","summary":"解释 managed_components 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/managed_components/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/managed_components/package-diagram.html","anchor":"engineering:package:managed_components","relation":"parent_boundary","reason":"回到 managed_components 的包级边界,判断热点是否只是局部文件问题,还是影响整个模块治理。"}]}]},{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--main","kind":"technical_hotspot","title":"承担外部协作的候选对象:main 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--main/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--main/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:main:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:49","status":"candidate","confidence":"high","mermaidKind":"flowchart","mermaid":"flowchart LR\n target[\"apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp\"]\n hotspot[\"承担外部协作的候选对象\"]\n signal[\"连接多个外部对象或能力\"]\n target --\u003e hotspot\n hotspot --\u003e signal","readingGuide":["这张技术热点图解释 承担外部协作的候选对象:main,热点类型是 承担外部协作的候选对象。","热点是软件结构模型中的候选提醒:它提示复杂度集中点,但不直接等同于缺陷或必须整改项。","目标位置是 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp,当前复杂度信号是:连接多个外部对象或能力。"],"technicalAnalysis":["该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","依赖多个外部对象意味着该目标可能承担了过宽的编排或聚合职责。","热点分析需要和 Package、Component、Sequence 图交叉阅读,避免把单一指标误判为设计结论。"],"businessRelation":["技术热点会间接影响业务交付:它可能让某些 Use Case 的变更成本、验证成本和回归风险升高。","如果 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp 被某个 Use Case 的证据引用,那么这个热点应出现在该 Use Case 的风险或治理说明中。","如果组织/过程模型没有 Use Case 证据引用该热点,它只作为工程治理候选,不作为业务风险结论。"],"governanceNotes":["不要因为热点存在就立即重构;先确认它影响了哪些业务故事、哪些变更频率最高、哪些测试覆盖最薄弱。","如果决定治理,应把治理目标拆成可验证的原子提交,并记录语义化版本变化。","治理完成后,应重新生成软件结构模型文档,确认复杂度候选点是否被解释或缓解,并把结论写入 changelog。"],"coverage":["热点类型:承担外部协作的候选对象","目标:apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp","复杂度信号:连接多个外部对象或能力"],"evidencePaths":["apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L49"],"questions":["该热点只是候选复杂度信号;当前文档只记录影响面和证据位置,不把它升级为已确认缺陷。"],"scope":{"packageId":"apps/linux_cardputer_zero","filePath":"apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp"},"drilldowns":[{"id":"engineering:diagram:package:apps-linux_cardputer_zero","kind":"package","title":"模块边界:apps/linux_cardputer_zero","summary":"解释 apps/linux_cardputer_zero 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/apps-linux_cardputer_zero/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/apps-linux_cardputer_zero/package-diagram.html","anchor":"engineering:package:apps-linux_cardputer_zero","relation":"parent_boundary","reason":"回到 apps/linux_cardputer_zero 的包级边界,判断热点是否只是局部文件问题,还是影响整个模块治理。"},{"id":"engineering:diagram:component:apps-linux_cardputer_zero-main","kind":"component","title":"函数节点:main","summary":"function 位于 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L49,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-main/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-main/component-diagram.html","anchor":"engineering:component:function:main:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:49","relation":"realized_by","reason":"查看 函数节点:main 是否是热点直接影响的组件,从具体职责和调用关系判断治理优先级。"},{"id":"engineering:diagram:component:apps-linux_cardputer_zero-contains","kind":"component","title":"函数节点:contains","summary":"function 位于 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L19,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-contains/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-contains/component-diagram.html","anchor":"engineering:component:function:contains:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:19","relation":"realized_by","reason":"查看 函数节点:contains 是否是热点直接影响的组件,从具体职责和调用关系判断治理优先级。"},{"id":"engineering:diagram:component:apps-linux_cardputer_zero-not_contains","kind":"component","title":"函数节点:not_contains","summary":"function 位于 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L24,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-not_contains/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-not_contains/component-diagram.html","anchor":"engineering:component:function:not_contains:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:24","relation":"realized_by","reason":"查看 函数节点:not_contains 是否是热点直接影响的组件,从具体职责和调用关系判断治理优先级。"},{"id":"engineering:diagram:component:apps-linux_cardputer_zero-read_file","kind":"component","title":"函数节点:read_file","summary":"function 位于 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L10,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-read_file/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-read_file/component-diagram.html","anchor":"engineering:component:function:read_file:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:10","relation":"realized_by","reason":"查看 函数节点:read_file 是否是热点直接影响的组件,从具体职责和调用关系判断治理优先级。"}],"elements":[{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--main:element:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp","mermaidId":"target","label":"apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp","kind":"file","anchor":"engineering:hotspot:external-collaboration-pressure:main:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:49:target","summary":"apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp 是当前热点指向的具体文件、模块或目标位置,所有热点解释必须能回到这个证据锚点。","role":"热点证据目标:它承载复杂度信号,而不是抽象风险标签。","whyItExists":"本地仓库证据或仓库扫描在 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp 观察到复杂度信号,因此它被放入 Technical Hotspot Diagram。","relationshipMeaning":"target -\u003e hotspot 表示该位置产生或承载当前复杂度提醒;它需要反向关联到 package、component、结构或 sequence 才能判断真实影响。","drilldownIntent":"下钻目标位置可以查看所属 package 或附近 component,确认热点是否影响真实业务能力和可维护性。","businessRelevance":"如果 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp 被 Use Case 证据引用,那么该热点会提高对应业务变更的阅读、验证或回归成本。","changeImpact":"治理 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp 可能影响文件结构、导入路径、测试覆盖和语义化版本记录。","evidence":["apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp","apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L49","热点类型:承担外部协作的候选对象","目标:apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp","复杂度信号:连接多个外部对象或能力"],"risks":["热点目标不等于缺陷;需要确认它是否真的影响高频业务变化或关键运行路径。"],"questions":["当前热点只说明 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp 存在复杂度信号;若证据来自生成文件、聚合导出或扫描噪声,应降级或移除。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:package:apps-linux_cardputer_zero","kind":"package","title":"模块边界:apps/linux_cardputer_zero","summary":"解释 apps/linux_cardputer_zero 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/apps-linux_cardputer_zero/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/apps-linux_cardputer_zero/package-diagram.html","anchor":"engineering:package:apps-linux_cardputer_zero","relation":"parent_boundary","reason":"回到 apps/linux_cardputer_zero 的包级边界,判断热点是否只是局部文件问题,还是影响整个模块治理。"},{"id":"engineering:diagram:component:apps-linux_cardputer_zero-main","kind":"component","title":"函数节点:main","summary":"function 位于 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L49,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-main/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-main/component-diagram.html","anchor":"engineering:component:function:main:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:49","relation":"realized_by","reason":"查看 函数节点:main 是否是热点直接影响的组件,从具体职责和调用关系判断治理优先级。"},{"id":"engineering:diagram:component:apps-linux_cardputer_zero-contains","kind":"component","title":"函数节点:contains","summary":"function 位于 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L19,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-contains/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-contains/component-diagram.html","anchor":"engineering:component:function:contains:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:19","relation":"realized_by","reason":"查看 函数节点:contains 是否是热点直接影响的组件,从具体职责和调用关系判断治理优先级。"},{"id":"engineering:diagram:component:apps-linux_cardputer_zero-not_contains","kind":"component","title":"函数节点:not_contains","summary":"function 位于 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L24,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-not_contains/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-not_contains/component-diagram.html","anchor":"engineering:component:function:not_contains:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:24","relation":"realized_by","reason":"查看 函数节点:not_contains 是否是热点直接影响的组件,从具体职责和调用关系判断治理优先级。"},{"id":"engineering:diagram:component:apps-linux_cardputer_zero-read_file","kind":"component","title":"函数节点:read_file","summary":"function 位于 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L10,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-read_file/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-read_file/component-diagram.html","anchor":"engineering:component:function:read_file:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:10","relation":"realized_by","reason":"查看 函数节点:read_file 是否是热点直接影响的组件,从具体职责和调用关系判断治理优先级。"}]},{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--main:element:main","mermaidId":"hotspot","label":"承担外部协作的候选对象:main 技术热点","kind":"technical_hotspot","anchor":"engineering:hotspot:external-collaboration-pressure:main:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:49","summary":"承担外部协作的候选对象:main 技术热点 是当前技术复杂度热点,用来提醒治理前先理解影响面,而不是立即重构。","role":"候选风险/治理入口:它把复杂度信号转化为可讨论的工程问题。","whyItExists":"该热点由本地仓库事实生成,说明某个文件、模块或依赖簇可能让理解、修改或验证成本升高。","relationshipMeaning":"热点节点连接目标位置,表示风险来自具体工程事实;它需要和 package/component/sequence 交叉阅读。","drilldownIntent":"下钻热点相关的 package、component 或 sequence,可以确认它影响的是边界、对象、调用链还是运行配置。","businessRelevance":"技术热点会间接影响业务交付:它可能让某些 Use Case 的变更成本、验证成本和回归风险上升。","changeImpact":"治理热点应拆成可验证的原子提交,并同步记录语义化版本、Git 版本和文档变更。","evidence":["apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L49","热点类型:承担外部协作的候选对象","目标:apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp","复杂度信号:连接多个外部对象或能力"],"risks":["不要把热点当作已确认缺陷;先确认业务影响和证据质量。"],"questions":["该热点只是候选复杂度信号;当前文档只记录影响面和证据位置,不把它升级为已确认缺陷。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:package:apps-linux_cardputer_zero","kind":"package","title":"模块边界:apps/linux_cardputer_zero","summary":"解释 apps/linux_cardputer_zero 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/apps-linux_cardputer_zero/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/apps-linux_cardputer_zero/package-diagram.html","anchor":"engineering:package:apps-linux_cardputer_zero","relation":"parent_boundary","reason":"回到 apps/linux_cardputer_zero 的包级边界,判断热点是否只是局部文件问题,还是影响整个模块治理。"},{"id":"engineering:diagram:component:apps-linux_cardputer_zero-main","kind":"component","title":"函数节点:main","summary":"function 位于 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L49,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-main/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-main/component-diagram.html","anchor":"engineering:component:function:main:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:49","relation":"realized_by","reason":"查看 函数节点:main 是否是热点直接影响的组件,从具体职责和调用关系判断治理优先级。"},{"id":"engineering:diagram:component:apps-linux_cardputer_zero-contains","kind":"component","title":"函数节点:contains","summary":"function 位于 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L19,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-contains/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-contains/component-diagram.html","anchor":"engineering:component:function:contains:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:19","relation":"realized_by","reason":"查看 函数节点:contains 是否是热点直接影响的组件,从具体职责和调用关系判断治理优先级。"},{"id":"engineering:diagram:component:apps-linux_cardputer_zero-not_contains","kind":"component","title":"函数节点:not_contains","summary":"function 位于 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L24,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-not_contains/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-not_contains/component-diagram.html","anchor":"engineering:component:function:not_contains:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:24","relation":"realized_by","reason":"查看 函数节点:not_contains 是否是热点直接影响的组件,从具体职责和调用关系判断治理优先级。"},{"id":"engineering:diagram:component:apps-linux_cardputer_zero-read_file","kind":"component","title":"函数节点:read_file","summary":"function 位于 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L10,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-read_file/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-read_file/component-diagram.html","anchor":"engineering:component:function:read_file:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:10","relation":"realized_by","reason":"查看 函数节点:read_file 是否是热点直接影响的组件,从具体职责和调用关系判断治理优先级。"}]}]},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--contains","kind":"technical_hotspot","title":"被广泛复用的候选对象:contains 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--contains/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--contains/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:contains:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:19","status":"candidate","confidence":"high","mermaidKind":"flowchart","mermaid":"flowchart LR\n target[\"apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp\"]\n hotspot[\"被广泛复用的候选对象\"]\n signal[\"被多处代码引用或调用\"]\n target --\u003e hotspot\n hotspot --\u003e signal","readingGuide":["这张技术热点图解释 被广泛复用的候选对象:contains,热点类型是 被广泛复用的候选对象。","热点是软件结构模型中的候选提醒:它提示复杂度集中点,但不直接等同于缺陷或必须整改项。","目标位置是 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp,当前复杂度信号是:被多处代码引用或调用。"],"technicalAnalysis":["该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","被多个对象依赖意味着该目标修改时更容易产生兼容性和回归风险。","热点分析需要和 Package、Component、Sequence 图交叉阅读,避免把单一指标误判为设计结论。"],"businessRelation":["技术热点会间接影响业务交付:它可能让某些 Use Case 的变更成本、验证成本和回归风险升高。","如果 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp 被某个 Use Case 的证据引用,那么这个热点应出现在该 Use Case 的风险或治理说明中。","如果组织/过程模型没有 Use Case 证据引用该热点,它只作为工程治理候选,不作为业务风险结论。"],"governanceNotes":["不要因为热点存在就立即重构;先确认它影响了哪些业务故事、哪些变更频率最高、哪些测试覆盖最薄弱。","如果决定治理,应把治理目标拆成可验证的原子提交,并记录语义化版本变化。","治理完成后,应重新生成软件结构模型文档,确认复杂度候选点是否被解释或缓解,并把结论写入 changelog。"],"coverage":["热点类型:被广泛复用的候选对象","目标:apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp","复杂度信号:被多处代码引用或调用"],"evidencePaths":["apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L19"],"questions":["该热点只是候选复杂度信号;当前文档只记录影响面和证据位置,不把它升级为已确认缺陷。"],"scope":{"packageId":"apps/linux_cardputer_zero","filePath":"apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp"},"drilldowns":[{"id":"engineering:diagram:package:apps-linux_cardputer_zero","kind":"package","title":"模块边界:apps/linux_cardputer_zero","summary":"解释 apps/linux_cardputer_zero 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/apps-linux_cardputer_zero/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/apps-linux_cardputer_zero/package-diagram.html","anchor":"engineering:package:apps-linux_cardputer_zero","relation":"parent_boundary","reason":"回到 apps/linux_cardputer_zero 的包级边界,判断热点是否只是局部文件问题,还是影响整个模块治理。"},{"id":"engineering:diagram:component:apps-linux_cardputer_zero-main","kind":"component","title":"函数节点:main","summary":"function 位于 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L49,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-main/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-main/component-diagram.html","anchor":"engineering:component:function:main:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:49","relation":"realized_by","reason":"查看 函数节点:main 是否是热点直接影响的组件,从具体职责和调用关系判断治理优先级。"},{"id":"engineering:diagram:component:apps-linux_cardputer_zero-contains","kind":"component","title":"函数节点:contains","summary":"function 位于 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L19,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-contains/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-contains/component-diagram.html","anchor":"engineering:component:function:contains:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:19","relation":"realized_by","reason":"查看 函数节点:contains 是否是热点直接影响的组件,从具体职责和调用关系判断治理优先级。"},{"id":"engineering:diagram:component:apps-linux_cardputer_zero-not_contains","kind":"component","title":"函数节点:not_contains","summary":"function 位于 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L24,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-not_contains/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-not_contains/component-diagram.html","anchor":"engineering:component:function:not_contains:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:24","relation":"realized_by","reason":"查看 函数节点:not_contains 是否是热点直接影响的组件,从具体职责和调用关系判断治理优先级。"},{"id":"engineering:diagram:component:apps-linux_cardputer_zero-read_file","kind":"component","title":"函数节点:read_file","summary":"function 位于 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L10,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-read_file/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-read_file/component-diagram.html","anchor":"engineering:component:function:read_file:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:10","relation":"realized_by","reason":"查看 函数节点:read_file 是否是热点直接影响的组件,从具体职责和调用关系判断治理优先级。"}],"elements":[{"id":"engineering:diagram:technical-hotspot:reuse-pressure--contains:element:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp","mermaidId":"target","label":"apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp","kind":"file","anchor":"engineering:hotspot:reuse-pressure:contains:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:19:target","summary":"apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp 是当前热点指向的具体文件、模块或目标位置,所有热点解释必须能回到这个证据锚点。","role":"热点证据目标:它承载复杂度信号,而不是抽象风险标签。","whyItExists":"本地仓库证据或仓库扫描在 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp 观察到复杂度信号,因此它被放入 Technical Hotspot Diagram。","relationshipMeaning":"target -\u003e hotspot 表示该位置产生或承载当前复杂度提醒;它需要反向关联到 package、component、结构或 sequence 才能判断真实影响。","drilldownIntent":"下钻目标位置可以查看所属 package 或附近 component,确认热点是否影响真实业务能力和可维护性。","businessRelevance":"如果 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp 被 Use Case 证据引用,那么该热点会提高对应业务变更的阅读、验证或回归成本。","changeImpact":"治理 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp 可能影响文件结构、导入路径、测试覆盖和语义化版本记录。","evidence":["apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp","apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L19","热点类型:被广泛复用的候选对象","目标:apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp","复杂度信号:被多处代码引用或调用"],"risks":["热点目标不等于缺陷;需要确认它是否真的影响高频业务变化或关键运行路径。"],"questions":["当前热点只说明 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp 存在复杂度信号;若证据来自生成文件、聚合导出或扫描噪声,应降级或移除。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:package:apps-linux_cardputer_zero","kind":"package","title":"模块边界:apps/linux_cardputer_zero","summary":"解释 apps/linux_cardputer_zero 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/apps-linux_cardputer_zero/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/apps-linux_cardputer_zero/package-diagram.html","anchor":"engineering:package:apps-linux_cardputer_zero","relation":"parent_boundary","reason":"回到 apps/linux_cardputer_zero 的包级边界,判断热点是否只是局部文件问题,还是影响整个模块治理。"},{"id":"engineering:diagram:component:apps-linux_cardputer_zero-main","kind":"component","title":"函数节点:main","summary":"function 位于 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L49,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-main/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-main/component-diagram.html","anchor":"engineering:component:function:main:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:49","relation":"realized_by","reason":"查看 函数节点:main 是否是热点直接影响的组件,从具体职责和调用关系判断治理优先级。"},{"id":"engineering:diagram:component:apps-linux_cardputer_zero-contains","kind":"component","title":"函数节点:contains","summary":"function 位于 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L19,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-contains/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-contains/component-diagram.html","anchor":"engineering:component:function:contains:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:19","relation":"realized_by","reason":"查看 函数节点:contains 是否是热点直接影响的组件,从具体职责和调用关系判断治理优先级。"},{"id":"engineering:diagram:component:apps-linux_cardputer_zero-not_contains","kind":"component","title":"函数节点:not_contains","summary":"function 位于 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L24,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-not_contains/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-not_contains/component-diagram.html","anchor":"engineering:component:function:not_contains:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:24","relation":"realized_by","reason":"查看 函数节点:not_contains 是否是热点直接影响的组件,从具体职责和调用关系判断治理优先级。"},{"id":"engineering:diagram:component:apps-linux_cardputer_zero-read_file","kind":"component","title":"函数节点:read_file","summary":"function 位于 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L10,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-read_file/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-read_file/component-diagram.html","anchor":"engineering:component:function:read_file:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:10","relation":"realized_by","reason":"查看 函数节点:read_file 是否是热点直接影响的组件,从具体职责和调用关系判断治理优先级。"}]},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--contains:element:contains","mermaidId":"hotspot","label":"被广泛复用的候选对象:contains 技术热点","kind":"technical_hotspot","anchor":"engineering:hotspot:reuse-pressure:contains:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:19","summary":"被广泛复用的候选对象:contains 技术热点 是当前技术复杂度热点,用来提醒治理前先理解影响面,而不是立即重构。","role":"候选风险/治理入口:它把复杂度信号转化为可讨论的工程问题。","whyItExists":"该热点由本地仓库事实生成,说明某个文件、模块或依赖簇可能让理解、修改或验证成本升高。","relationshipMeaning":"热点节点连接目标位置,表示风险来自具体工程事实;它需要和 package/component/sequence 交叉阅读。","drilldownIntent":"下钻热点相关的 package、component 或 sequence,可以确认它影响的是边界、对象、调用链还是运行配置。","businessRelevance":"技术热点会间接影响业务交付:它可能让某些 Use Case 的变更成本、验证成本和回归风险上升。","changeImpact":"治理热点应拆成可验证的原子提交,并同步记录语义化版本、Git 版本和文档变更。","evidence":["apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L19","热点类型:被广泛复用的候选对象","目标:apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp","复杂度信号:被多处代码引用或调用"],"risks":["不要把热点当作已确认缺陷;先确认业务影响和证据质量。"],"questions":["该热点只是候选复杂度信号;当前文档只记录影响面和证据位置,不把它升级为已确认缺陷。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:package:apps-linux_cardputer_zero","kind":"package","title":"模块边界:apps/linux_cardputer_zero","summary":"解释 apps/linux_cardputer_zero 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/apps-linux_cardputer_zero/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/apps-linux_cardputer_zero/package-diagram.html","anchor":"engineering:package:apps-linux_cardputer_zero","relation":"parent_boundary","reason":"回到 apps/linux_cardputer_zero 的包级边界,判断热点是否只是局部文件问题,还是影响整个模块治理。"},{"id":"engineering:diagram:component:apps-linux_cardputer_zero-main","kind":"component","title":"函数节点:main","summary":"function 位于 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L49,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-main/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-main/component-diagram.html","anchor":"engineering:component:function:main:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:49","relation":"realized_by","reason":"查看 函数节点:main 是否是热点直接影响的组件,从具体职责和调用关系判断治理优先级。"},{"id":"engineering:diagram:component:apps-linux_cardputer_zero-contains","kind":"component","title":"函数节点:contains","summary":"function 位于 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L19,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-contains/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-contains/component-diagram.html","anchor":"engineering:component:function:contains:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:19","relation":"realized_by","reason":"查看 函数节点:contains 是否是热点直接影响的组件,从具体职责和调用关系判断治理优先级。"},{"id":"engineering:diagram:component:apps-linux_cardputer_zero-not_contains","kind":"component","title":"函数节点:not_contains","summary":"function 位于 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L24,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-not_contains/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-not_contains/component-diagram.html","anchor":"engineering:component:function:not_contains:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:24","relation":"realized_by","reason":"查看 函数节点:not_contains 是否是热点直接影响的组件,从具体职责和调用关系判断治理优先级。"},{"id":"engineering:diagram:component:apps-linux_cardputer_zero-read_file","kind":"component","title":"函数节点:read_file","summary":"function 位于 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp#L10,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-read_file/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_cardputer_zero-read_file/component-diagram.html","anchor":"engineering:component:function:read_file:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:10","relation":"realized_by","reason":"查看 函数节点:read_file 是否是热点直接影响的组件,从具体职责和调用关系判断治理优先级。"}]}]},{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--launchsettingslayout","kind":"technical_hotspot","title":"承担外部协作的候选对象:launchSettingsLayout 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--launchsettingslayout/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:launchsettingslayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:110","status":"candidate","confidence":"high","mermaidKind":"flowchart","mermaid":"flowchart LR\n target[\"apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp\"]\n hotspot[\"承担外部协作的候选对象\"]\n signal[\"连接多个外部对象或能力\"]\n target --\u003e hotspot\n hotspot --\u003e signal","readingGuide":["这张技术热点图解释 承担外部协作的候选对象:launchSettingsLayout,热点类型是 承担外部协作的候选对象。","热点是软件结构模型中的候选提醒:它提示复杂度集中点,但不直接等同于缺陷或必须整改项。","目标位置是 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp,当前复杂度信号是:连接多个外部对象或能力。"],"technicalAnalysis":["该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","依赖多个外部对象意味着该目标可能承担了过宽的编排或聚合职责。","热点分析需要和 Package、Component、Sequence 图交叉阅读,避免把单一指标误判为设计结论。"],"businessRelation":["技术热点会间接影响业务交付:它可能让某些 Use Case 的变更成本、验证成本和回归风险升高。","如果 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp 被某个 Use Case 的证据引用,那么这个热点应出现在该 Use Case 的风险或治理说明中。","如果组织/过程模型没有 Use Case 证据引用该热点,它只作为工程治理候选,不作为业务风险结论。"],"governanceNotes":["不要因为热点存在就立即重构;先确认它影响了哪些业务故事、哪些变更频率最高、哪些测试覆盖最薄弱。","如果决定治理,应把治理目标拆成可验证的原子提交,并记录语义化版本变化。","治理完成后,应重新生成软件结构模型文档,确认复杂度候选点是否被解释或缓解,并把结论写入 changelog。"],"coverage":["热点类型:承担外部协作的候选对象","目标:apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp","复杂度信号:连接多个外部对象或能力"],"evidencePaths":["apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L110"],"questions":["该热点只是候选复杂度信号;当前文档只记录影响面和证据位置,不把它升级为已确认缺陷。"],"scope":{"packageId":"apps/linux_uconsole_gtk","filePath":"apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp"},"drilldowns":[{"id":"engineering:diagram:package:apps-linux_uconsole_gtk","kind":"package","title":"模块边界:apps/linux_uconsole_gtk","summary":"解释 apps/linux_uconsole_gtk 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/apps-linux_uconsole_gtk/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/apps-linux_uconsole_gtk/package-diagram.html","anchor":"engineering:package:apps-linux_uconsole_gtk","relation":"parent_boundary","reason":"回到 apps/linux_uconsole_gtk 的包级边界,判断热点是否只是局部文件问题,还是影响整个模块治理。"},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-launchsettingslayout","kind":"component","title":"函数节点:launchSettingsLayout","summary":"function 位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L110,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-launchsettingslayout/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-launchsettingslayout/component-diagram.html","anchor":"engineering:component:function:launchsettingslayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:110","relation":"realized_by","reason":"查看 函数节点:launchSettingsLayout 是否是热点直接影响的组件,从具体职责和调用关系判断治理优先级。"},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-makesettingsrow","kind":"component","title":"函数节点:makeSettingsRow","summary":"function 位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L22,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-makesettingsrow/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-makesettingsrow/component-diagram.html","anchor":"engineering:component:function:makesettingsrow:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:22","relation":"realized_by","reason":"查看 函数节点:makeSettingsRow 是否是热点直接影响的组件,从具体职责和调用关系判断治理优先级。"},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-makeswitch","kind":"component","title":"函数节点:makeSwitch","summary":"function 位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L75,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-makeswitch/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-makeswitch/component-diagram.html","anchor":"engineering:component:function:makeswitch:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:75","relation":"realized_by","reason":"查看 函数节点:makeSwitch 是否是热点直接影响的组件,从具体职责和调用关系判断治理优先级。"},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-makespin","kind":"component","title":"函数节点:makeSpin","summary":"function 位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L68,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-makespin/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-makespin/component-diagram.html","anchor":"engineering:component:function:makespin:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:68","relation":"realized_by","reason":"查看 函数节点:makeSpin 是否是热点直接影响的组件,从具体职责和调用关系判断治理优先级。"}],"elements":[{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--launchsettingslayout:element:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp","mermaidId":"target","label":"apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp","kind":"file","anchor":"engineering:hotspot:external-collaboration-pressure:launchsettingslayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:110:target","summary":"apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp 是当前热点指向的具体文件、模块或目标位置,所有热点解释必须能回到这个证据锚点。","role":"热点证据目标:它承载复杂度信号,而不是抽象风险标签。","whyItExists":"本地仓库证据或仓库扫描在 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp 观察到复杂度信号,因此它被放入 Technical Hotspot Diagram。","relationshipMeaning":"target -\u003e hotspot 表示该位置产生或承载当前复杂度提醒;它需要反向关联到 package、component、结构或 sequence 才能判断真实影响。","drilldownIntent":"下钻目标位置可以查看所属 package 或附近 component,确认热点是否影响真实业务能力和可维护性。","businessRelevance":"如果 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp 被 Use Case 证据引用,那么该热点会提高对应业务变更的阅读、验证或回归成本。","changeImpact":"治理 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp 可能影响文件结构、导入路径、测试覆盖和语义化版本记录。","evidence":["apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp","apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L110","热点类型:承担外部协作的候选对象","目标:apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp","复杂度信号:连接多个外部对象或能力"],"risks":["热点目标不等于缺陷;需要确认它是否真的影响高频业务变化或关键运行路径。"],"questions":["当前热点只说明 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp 存在复杂度信号;若证据来自生成文件、聚合导出或扫描噪声,应降级或移除。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:package:apps-linux_uconsole_gtk","kind":"package","title":"模块边界:apps/linux_uconsole_gtk","summary":"解释 apps/linux_uconsole_gtk 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/apps-linux_uconsole_gtk/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/apps-linux_uconsole_gtk/package-diagram.html","anchor":"engineering:package:apps-linux_uconsole_gtk","relation":"parent_boundary","reason":"回到 apps/linux_uconsole_gtk 的包级边界,判断热点是否只是局部文件问题,还是影响整个模块治理。"},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-launchsettingslayout","kind":"component","title":"函数节点:launchSettingsLayout","summary":"function 位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L110,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-launchsettingslayout/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-launchsettingslayout/component-diagram.html","anchor":"engineering:component:function:launchsettingslayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:110","relation":"realized_by","reason":"查看 函数节点:launchSettingsLayout 是否是热点直接影响的组件,从具体职责和调用关系判断治理优先级。"},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-makesettingsrow","kind":"component","title":"函数节点:makeSettingsRow","summary":"function 位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L22,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-makesettingsrow/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-makesettingsrow/component-diagram.html","anchor":"engineering:component:function:makesettingsrow:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:22","relation":"realized_by","reason":"查看 函数节点:makeSettingsRow 是否是热点直接影响的组件,从具体职责和调用关系判断治理优先级。"},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-makeswitch","kind":"component","title":"函数节点:makeSwitch","summary":"function 位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L75,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-makeswitch/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-makeswitch/component-diagram.html","anchor":"engineering:component:function:makeswitch:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:75","relation":"realized_by","reason":"查看 函数节点:makeSwitch 是否是热点直接影响的组件,从具体职责和调用关系判断治理优先级。"},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-makespin","kind":"component","title":"函数节点:makeSpin","summary":"function 位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L68,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-makespin/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-makespin/component-diagram.html","anchor":"engineering:component:function:makespin:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:68","relation":"realized_by","reason":"查看 函数节点:makeSpin 是否是热点直接影响的组件,从具体职责和调用关系判断治理优先级。"}]},{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--launchsettingslayout:element:launchsettingslayout","mermaidId":"hotspot","label":"承担外部协作的候选对象:launchSettingsLayout 技术热点","kind":"technical_hotspot","anchor":"engineering:hotspot:external-collaboration-pressure:launchsettingslayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:110","summary":"承担外部协作的候选对象:launchSettingsLayout 技术热点 是当前技术复杂度热点,用来提醒治理前先理解影响面,而不是立即重构。","role":"候选风险/治理入口:它把复杂度信号转化为可讨论的工程问题。","whyItExists":"该热点由本地仓库事实生成,说明某个文件、模块或依赖簇可能让理解、修改或验证成本升高。","relationshipMeaning":"热点节点连接目标位置,表示风险来自具体工程事实;它需要和 package/component/sequence 交叉阅读。","drilldownIntent":"下钻热点相关的 package、component 或 sequence,可以确认它影响的是边界、对象、调用链还是运行配置。","businessRelevance":"技术热点会间接影响业务交付:它可能让某些 Use Case 的变更成本、验证成本和回归风险上升。","changeImpact":"治理热点应拆成可验证的原子提交,并同步记录语义化版本、Git 版本和文档变更。","evidence":["apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L110","热点类型:承担外部协作的候选对象","目标:apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp","复杂度信号:连接多个外部对象或能力"],"risks":["不要把热点当作已确认缺陷;先确认业务影响和证据质量。"],"questions":["该热点只是候选复杂度信号;当前文档只记录影响面和证据位置,不把它升级为已确认缺陷。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:package:apps-linux_uconsole_gtk","kind":"package","title":"模块边界:apps/linux_uconsole_gtk","summary":"解释 apps/linux_uconsole_gtk 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/apps-linux_uconsole_gtk/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/apps-linux_uconsole_gtk/package-diagram.html","anchor":"engineering:package:apps-linux_uconsole_gtk","relation":"parent_boundary","reason":"回到 apps/linux_uconsole_gtk 的包级边界,判断热点是否只是局部文件问题,还是影响整个模块治理。"},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-launchsettingslayout","kind":"component","title":"函数节点:launchSettingsLayout","summary":"function 位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L110,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-launchsettingslayout/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-launchsettingslayout/component-diagram.html","anchor":"engineering:component:function:launchsettingslayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:110","relation":"realized_by","reason":"查看 函数节点:launchSettingsLayout 是否是热点直接影响的组件,从具体职责和调用关系判断治理优先级。"},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-makesettingsrow","kind":"component","title":"函数节点:makeSettingsRow","summary":"function 位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L22,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-makesettingsrow/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-makesettingsrow/component-diagram.html","anchor":"engineering:component:function:makesettingsrow:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:22","relation":"realized_by","reason":"查看 函数节点:makeSettingsRow 是否是热点直接影响的组件,从具体职责和调用关系判断治理优先级。"},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-makeswitch","kind":"component","title":"函数节点:makeSwitch","summary":"function 位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L75,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-makeswitch/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-makeswitch/component-diagram.html","anchor":"engineering:component:function:makeswitch:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:75","relation":"realized_by","reason":"查看 函数节点:makeSwitch 是否是热点直接影响的组件,从具体职责和调用关系判断治理优先级。"},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-makespin","kind":"component","title":"函数节点:makeSpin","summary":"function 位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L68,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-makespin/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-makespin/component-diagram.html","anchor":"engineering:component:function:makespin:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:68","relation":"realized_by","reason":"查看 函数节点:makeSpin 是否是热点直接影响的组件,从具体职责和调用关系判断治理优先级。"}]}]},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makelabel","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeLabel 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makelabel/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makelabel:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp:9","status":"candidate","confidence":"high","mermaidKind":"flowchart","mermaid":"flowchart LR\n target[\"apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp\"]\n hotspot[\"被广泛复用的候选对象\"]\n signal[\"被多处代码引用或调用\"]\n target --\u003e hotspot\n hotspot --\u003e signal","readingGuide":["这张技术热点图解释 被广泛复用的候选对象:makeLabel,热点类型是 被广泛复用的候选对象。","热点是软件结构模型中的候选提醒:它提示复杂度集中点,但不直接等同于缺陷或必须整改项。","目标位置是 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp,当前复杂度信号是:被多处代码引用或调用。"],"technicalAnalysis":["该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","被多个对象依赖意味着该目标修改时更容易产生兼容性和回归风险。","热点分析需要和 Package、Component、Sequence 图交叉阅读,避免把单一指标误判为设计结论。"],"businessRelation":["技术热点会间接影响业务交付:它可能让某些 Use Case 的变更成本、验证成本和回归风险升高。","如果 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp 被某个 Use Case 的证据引用,那么这个热点应出现在该 Use Case 的风险或治理说明中。","如果组织/过程模型没有 Use Case 证据引用该热点,它只作为工程治理候选,不作为业务风险结论。"],"governanceNotes":["不要因为热点存在就立即重构;先确认它影响了哪些业务故事、哪些变更频率最高、哪些测试覆盖最薄弱。","如果决定治理,应把治理目标拆成可验证的原子提交,并记录语义化版本变化。","治理完成后,应重新生成软件结构模型文档,确认复杂度候选点是否被解释或缓解,并把结论写入 changelog。"],"coverage":["热点类型:被广泛复用的候选对象","目标:apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp","复杂度信号:被多处代码引用或调用"],"evidencePaths":["apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp#L9"],"questions":["该热点只是候选复杂度信号;当前文档只记录影响面和证据位置,不把它升级为已确认缺陷。"],"scope":{"packageId":"apps/linux_uconsole_gtk","filePath":"apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp"},"drilldowns":[{"id":"engineering:diagram:package:apps-linux_uconsole_gtk","kind":"package","title":"模块边界:apps/linux_uconsole_gtk","summary":"解释 apps/linux_uconsole_gtk 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/apps-linux_uconsole_gtk/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/apps-linux_uconsole_gtk/package-diagram.html","anchor":"engineering:package:apps-linux_uconsole_gtk","relation":"parent_boundary","reason":"回到 apps/linux_uconsole_gtk 的包级边界,判断热点是否只是局部文件问题,还是影响整个模块治理。"},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-makelabel","kind":"component","title":"函数节点:makeLabel","summary":"function 位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp#L9,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-makelabel/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-makelabel/component-diagram.html","anchor":"engineering:component:function:makelabel:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp:9","relation":"realized_by","reason":"查看 函数节点:makeLabel 是否是热点直接影响的组件,从具体职责和调用关系判断治理优先级。"},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-setlabel","kind":"component","title":"函数节点:setLabel","summary":"function 位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp#L44,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-setlabel/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-setlabel/component-diagram.html","anchor":"engineering:component:function:setlabel:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp:44","relation":"realized_by","reason":"查看 函数节点:setLabel 是否是热点直接影响的组件,从具体职责和调用关系判断治理优先级。"}],"elements":[{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makelabel:element:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp","mermaidId":"target","label":"apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp","kind":"file","anchor":"engineering:hotspot:reuse-pressure:makelabel:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp:9:target","summary":"apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp 是当前热点指向的具体文件、模块或目标位置,所有热点解释必须能回到这个证据锚点。","role":"热点证据目标:它承载复杂度信号,而不是抽象风险标签。","whyItExists":"本地仓库证据或仓库扫描在 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp 观察到复杂度信号,因此它被放入 Technical Hotspot Diagram。","relationshipMeaning":"target -\u003e hotspot 表示该位置产生或承载当前复杂度提醒;它需要反向关联到 package、component、结构或 sequence 才能判断真实影响。","drilldownIntent":"下钻目标位置可以查看所属 package 或附近 component,确认热点是否影响真实业务能力和可维护性。","businessRelevance":"如果 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp 被 Use Case 证据引用,那么该热点会提高对应业务变更的阅读、验证或回归成本。","changeImpact":"治理 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp 可能影响文件结构、导入路径、测试覆盖和语义化版本记录。","evidence":["apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp","apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp#L9","热点类型:被广泛复用的候选对象","目标:apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp","复杂度信号:被多处代码引用或调用"],"risks":["热点目标不等于缺陷;需要确认它是否真的影响高频业务变化或关键运行路径。"],"questions":["当前热点只说明 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp 存在复杂度信号;若证据来自生成文件、聚合导出或扫描噪声,应降级或移除。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:package:apps-linux_uconsole_gtk","kind":"package","title":"模块边界:apps/linux_uconsole_gtk","summary":"解释 apps/linux_uconsole_gtk 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/apps-linux_uconsole_gtk/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/apps-linux_uconsole_gtk/package-diagram.html","anchor":"engineering:package:apps-linux_uconsole_gtk","relation":"parent_boundary","reason":"回到 apps/linux_uconsole_gtk 的包级边界,判断热点是否只是局部文件问题,还是影响整个模块治理。"},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-makelabel","kind":"component","title":"函数节点:makeLabel","summary":"function 位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp#L9,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-makelabel/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-makelabel/component-diagram.html","anchor":"engineering:component:function:makelabel:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp:9","relation":"realized_by","reason":"查看 函数节点:makeLabel 是否是热点直接影响的组件,从具体职责和调用关系判断治理优先级。"},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-setlabel","kind":"component","title":"函数节点:setLabel","summary":"function 位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp#L44,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-setlabel/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-setlabel/component-diagram.html","anchor":"engineering:component:function:setlabel:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp:44","relation":"realized_by","reason":"查看 函数节点:setLabel 是否是热点直接影响的组件,从具体职责和调用关系判断治理优先级。"}]},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makelabel:element:makelabel","mermaidId":"hotspot","label":"被广泛复用的候选对象:makeLabel 技术热点","kind":"technical_hotspot","anchor":"engineering:hotspot:reuse-pressure:makelabel:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp:9","summary":"被广泛复用的候选对象:makeLabel 技术热点 是当前技术复杂度热点,用来提醒治理前先理解影响面,而不是立即重构。","role":"候选风险/治理入口:它把复杂度信号转化为可讨论的工程问题。","whyItExists":"该热点由本地仓库事实生成,说明某个文件、模块或依赖簇可能让理解、修改或验证成本升高。","relationshipMeaning":"热点节点连接目标位置,表示风险来自具体工程事实;它需要和 package/component/sequence 交叉阅读。","drilldownIntent":"下钻热点相关的 package、component 或 sequence,可以确认它影响的是边界、对象、调用链还是运行配置。","businessRelevance":"技术热点会间接影响业务交付:它可能让某些 Use Case 的变更成本、验证成本和回归风险上升。","changeImpact":"治理热点应拆成可验证的原子提交,并同步记录语义化版本、Git 版本和文档变更。","evidence":["apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp#L9","热点类型:被广泛复用的候选对象","目标:apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp","复杂度信号:被多处代码引用或调用"],"risks":["不要把热点当作已确认缺陷;先确认业务影响和证据质量。"],"questions":["该热点只是候选复杂度信号;当前文档只记录影响面和证据位置,不把它升级为已确认缺陷。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:package:apps-linux_uconsole_gtk","kind":"package","title":"模块边界:apps/linux_uconsole_gtk","summary":"解释 apps/linux_uconsole_gtk 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/apps-linux_uconsole_gtk/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/apps-linux_uconsole_gtk/package-diagram.html","anchor":"engineering:package:apps-linux_uconsole_gtk","relation":"parent_boundary","reason":"回到 apps/linux_uconsole_gtk 的包级边界,判断热点是否只是局部文件问题,还是影响整个模块治理。"},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-makelabel","kind":"component","title":"函数节点:makeLabel","summary":"function 位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp#L9,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-makelabel/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-makelabel/component-diagram.html","anchor":"engineering:component:function:makelabel:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp:9","relation":"realized_by","reason":"查看 函数节点:makeLabel 是否是热点直接影响的组件,从具体职责和调用关系判断治理优先级。"},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-setlabel","kind":"component","title":"函数节点:setLabel","summary":"function 位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp#L44,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-setlabel/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-setlabel/component-diagram.html","anchor":"engineering:component:function:setlabel:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp:44","relation":"realized_by","reason":"查看 函数节点:setLabel 是否是热点直接影响的组件,从具体职责和调用关系判断治理优先级。"}]}]},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--lv_examples-h","kind":"technical_hotspot","title":"被广泛复用的候选对象:../../lv_examples.h 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--lv_examples-h/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--lv_examples-h/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:..-..-lv_examples.h:managed_components-lvgl__lvgl-examples-layouts-flex-lv_example_flex_1.c:","status":"candidate","confidence":"high","mermaidKind":"flowchart","mermaid":"flowchart LR\n target[\"managed_components/lvgl__lvgl/examples/layouts/flex/lv_example_flex_1.c\"]\n hotspot[\"被广泛复用的候选对象\"]\n signal[\"被多处代码引用或调用\"]\n target --\u003e hotspot\n hotspot --\u003e signal","readingGuide":["这张技术热点图解释 被广泛复用的候选对象:../../lv_examples.h,热点类型是 被广泛复用的候选对象。","热点是软件结构模型中的候选提醒:它提示复杂度集中点,但不直接等同于缺陷或必须整改项。","目标位置是 managed_components/lvgl__lvgl/examples/layouts/flex/lv_example_flex_1.c,当前复杂度信号是:被多处代码引用或调用。"],"technicalAnalysis":["该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","被多个对象依赖意味着该目标修改时更容易产生兼容性和回归风险。","热点分析需要和 Package、Component、Sequence 图交叉阅读,避免把单一指标误判为设计结论。"],"businessRelation":["技术热点会间接影响业务交付:它可能让某些 Use Case 的变更成本、验证成本和回归风险升高。","如果 managed_components/lvgl__lvgl/examples/layouts/flex/lv_example_flex_1.c 被某个 Use Case 的证据引用,那么这个热点应出现在该 Use Case 的风险或治理说明中。","如果组织/过程模型没有 Use Case 证据引用该热点,它只作为工程治理候选,不作为业务风险结论。"],"governanceNotes":["不要因为热点存在就立即重构;先确认它影响了哪些业务故事、哪些变更频率最高、哪些测试覆盖最薄弱。","如果决定治理,应把治理目标拆成可验证的原子提交,并记录语义化版本变化。","治理完成后,应重新生成软件结构模型文档,确认复杂度候选点是否被解释或缓解,并把结论写入 changelog。"],"coverage":["热点类型:被广泛复用的候选对象","目标:managed_components/lvgl__lvgl/examples/layouts/flex/lv_example_flex_1.c","复杂度信号:被多处代码引用或调用"],"evidencePaths":["managed_components/lvgl__lvgl/examples/layouts/flex/lv_example_flex_1.c"],"questions":["该热点只是候选复杂度信号;当前文档只记录影响面和证据位置,不把它升级为已确认缺陷。"],"scope":{"packageId":"managed_components","filePath":"managed_components/lvgl__lvgl/examples/layouts/flex/lv_example_flex_1.c"},"drilldowns":[{"id":"engineering:diagram:package:managed_components","kind":"package","title":"模块边界:managed_components","summary":"解释 managed_components 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/managed_components/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/managed_components/package-diagram.html","anchor":"engineering:package:managed_components","relation":"parent_boundary","reason":"回到 managed_components 的包级边界,判断热点是否只是局部文件问题,还是影响整个模块治理。"}],"elements":[{"id":"engineering:diagram:technical-hotspot:reuse-pressure--lv_examples-h:element:managed_components-lvgl__lvgl-examples-layouts-flex-lv_example_flex_1.c","mermaidId":"target","label":"managed_components/lvgl__lvgl/examples/layouts/flex/lv_example_flex_1.c","kind":"file","anchor":"engineering:hotspot:reuse-pressure:..-..-lv_examples.h:managed_components-lvgl__lvgl-examples-layouts-flex-lv_example_flex_1.c::target","summary":"managed_components/lvgl__lvgl/examples/layouts/flex/lv_example_flex_1.c 是当前热点指向的具体文件、模块或目标位置,所有热点解释必须能回到这个证据锚点。","role":"热点证据目标:它承载复杂度信号,而不是抽象风险标签。","whyItExists":"本地仓库证据或仓库扫描在 managed_components/lvgl__lvgl/examples/layouts/flex/lv_example_flex_1.c 观察到复杂度信号,因此它被放入 Technical Hotspot Diagram。","relationshipMeaning":"target -\u003e hotspot 表示该位置产生或承载当前复杂度提醒;它需要反向关联到 package、component、结构或 sequence 才能判断真实影响。","drilldownIntent":"下钻目标位置可以查看所属 package 或附近 component,确认热点是否影响真实业务能力和可维护性。","businessRelevance":"如果 managed_components/lvgl__lvgl/examples/layouts/flex/lv_example_flex_1.c 被 Use Case 证据引用,那么该热点会提高对应业务变更的阅读、验证或回归成本。","changeImpact":"治理 managed_components/lvgl__lvgl/examples/layouts/flex/lv_example_flex_1.c 可能影响文件结构、导入路径、测试覆盖和语义化版本记录。","evidence":["managed_components/lvgl__lvgl/examples/layouts/flex/lv_example_flex_1.c","热点类型:被广泛复用的候选对象","目标:managed_components/lvgl__lvgl/examples/layouts/flex/lv_example_flex_1.c","复杂度信号:被多处代码引用或调用"],"risks":["热点目标不等于缺陷;需要确认它是否真的影响高频业务变化或关键运行路径。"],"questions":["当前热点只说明 managed_components/lvgl__lvgl/examples/layouts/flex/lv_example_flex_1.c 存在复杂度信号;若证据来自生成文件、聚合导出或扫描噪声,应降级或移除。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:package:managed_components","kind":"package","title":"模块边界:managed_components","summary":"解释 managed_components 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/managed_components/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/managed_components/package-diagram.html","anchor":"engineering:package:managed_components","relation":"parent_boundary","reason":"回到 managed_components 的包级边界,判断热点是否只是局部文件问题,还是影响整个模块治理。"}]},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--lv_examples-h:element:..-..-lv_examples.h","mermaidId":"hotspot","label":"被广泛复用的候选对象:../../lv_examples.h 技术热点","kind":"technical_hotspot","anchor":"engineering:hotspot:reuse-pressure:..-..-lv_examples.h:managed_components-lvgl__lvgl-examples-layouts-flex-lv_example_flex_1.c:","summary":"被广泛复用的候选对象:../../lv_examples.h 技术热点 是当前技术复杂度热点,用来提醒治理前先理解影响面,而不是立即重构。","role":"候选风险/治理入口:它把复杂度信号转化为可讨论的工程问题。","whyItExists":"该热点由本地仓库事实生成,说明某个文件、模块或依赖簇可能让理解、修改或验证成本升高。","relationshipMeaning":"热点节点连接目标位置,表示风险来自具体工程事实;它需要和 package/component/sequence 交叉阅读。","drilldownIntent":"下钻热点相关的 package、component 或 sequence,可以确认它影响的是边界、对象、调用链还是运行配置。","businessRelevance":"技术热点会间接影响业务交付:它可能让某些 Use Case 的变更成本、验证成本和回归风险上升。","changeImpact":"治理热点应拆成可验证的原子提交,并同步记录语义化版本、Git 版本和文档变更。","evidence":["managed_components/lvgl__lvgl/examples/layouts/flex/lv_example_flex_1.c","热点类型:被广泛复用的候选对象","目标:managed_components/lvgl__lvgl/examples/layouts/flex/lv_example_flex_1.c","复杂度信号:被多处代码引用或调用"],"risks":["不要把热点当作已确认缺陷;先确认业务影响和证据质量。"],"questions":["该热点只是候选复杂度信号;当前文档只记录影响面和证据位置,不把它升级为已确认缺陷。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:package:managed_components","kind":"package","title":"模块边界:managed_components","summary":"解释 managed_components 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/managed_components/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/managed_components/package-diagram.html","anchor":"engineering:package:managed_components","relation":"parent_boundary","reason":"回到 managed_components 的包级边界,判断热点是否只是局部文件问题,还是影响整个模块治理。"}]}]},{"id":"engineering:diagram:technical-hotspot:dependency-cluster--boards","kind":"technical_hotspot","title":"依赖簇:boards 技术热点","summary":"该模块依赖多个外部边界,当前按候选技术耦合中心处理;图中只保留仓库证据已经观察到的依赖方向和边界。","docPath":"docs/engineering/technical-hotspots/dependency-cluster--boards/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/dependency-cluster--boards/technical-hotspot.html","anchor":"engineering:hotspot:dependency-cluster:boards","status":"candidate","confidence":"medium","mermaidKind":"flowchart","mermaid":"flowchart LR\n target[\"boards\"]\n hotspot[\"依赖聚集边界\"]\n signal[\"依赖多个外部工程边界\"]\n target --\u003e hotspot\n hotspot --\u003e signal","readingGuide":["这张技术热点图解释 依赖簇:boards,热点类型是 依赖聚集边界。","热点是软件结构模型中的候选提醒:它提示复杂度集中点,但不直接等同于缺陷或必须整改项。","目标位置是 boards,当前复杂度信号是:依赖多个外部工程边界。"],"technicalAnalysis":["该模块依赖多个外部边界,当前按候选技术耦合中心处理;图中只保留仓库证据已经观察到的依赖方向和边界。","该热点反映了依赖聚集或扫描异常,需要结合上下文判断真实影响。","热点分析需要和 Package、Component、Sequence 图交叉阅读,避免把单一指标误判为设计结论。"],"businessRelation":["技术热点会间接影响业务交付:它可能让某些 Use Case 的变更成本、验证成本和回归风险升高。","如果 boards 被某个 Use Case 的证据引用,那么这个热点应出现在该 Use Case 的风险或治理说明中。","如果组织/过程模型没有 Use Case 证据引用该热点,它只作为工程治理候选,不作为业务风险结论。"],"governanceNotes":["不要因为热点存在就立即重构;先确认它影响了哪些业务故事、哪些变更频率最高、哪些测试覆盖最薄弱。","如果决定治理,应把治理目标拆成可验证的原子提交,并记录语义化版本变化。","治理完成后,应重新生成软件结构模型文档,确认复杂度候选点是否被解释或缓解,并把结论写入 changelog。"],"coverage":["热点类型:依赖聚集边界","目标:boards","复杂度信号:依赖多个外部工程边界"],"evidencePaths":["boards/cardputerzero/board_facts.h","boards/cardputerzero/BOARD.md","boards/gat562_mesh_evb_pro.json","boards/gat562_mesh_evb_pro/board_facts.h","boards/gat562_mesh_evb_pro/BOARD.md"],"questions":["该热点只是候选复杂度信号;当前文档只记录影响面和证据位置,不把它升级为已确认缺陷。"],"scope":{"packageId":"boards","filePath":"boards"},"drilldowns":[{"id":"engineering:diagram:package:boards","kind":"package","title":"模块边界:boards","summary":"解释 boards 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/boards/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/boards/package-diagram.html","anchor":"engineering:package:boards","relation":"parent_boundary","reason":"回到 boards 的包级边界,判断热点是否只是局部文件问题,还是影响整个模块治理。"},{"id":"engineering:diagram:class-structural:boards-gat562_mesh_evb_pro-include-boards","kind":"class_structural","title":"结构协作:结构切片 boards · gat562_mesh_evb_pro/include/boards","summary":"解释 boards/gat562_mesh_evb_pro/include/boards 这一结构切片中类、接口、组件或值对象如何共同承担结构切片 boards中的结构职责;候选对象包括 Gat562Board、SX1262、Sx1262RadioPacketIo、Gat562Board::I2cGuard、GpsRuntime。","docPath":"docs/engineering/class-structural-diagrams/boards-gat562_mesh_evb_pro-include-boards/class-structural-diagram.md","htmlPath":"docs/engineering/class-structural-diagrams/boards-gat562_mesh_evb_pro-include-boards/class-structural-diagram.html","anchor":"engineering:class-structural:boards-gat562_mesh_evb_pro-include-boards","relation":"structural_context","reason":"查看热点所在模块的结构切片,确认复杂度是否来自对象职责分布或边界混淆。"},{"id":"engineering:diagram:class-structural:boards-t_echo_lite-include-boards","kind":"class_structural","title":"结构协作:结构切片 boards · t_echo_lite/include/boards","summary":"解释 boards/t_echo_lite/include/boards 这一结构切片中类、接口、组件或值对象如何共同承担结构切片 boards中的结构职责;候选对象包括 TEchoLiteBoard、Sx1262RadioPacketIo、TEchoLiteBoard::I2cGuard、GpsRuntime、Module。","docPath":"docs/engineering/class-structural-diagrams/boards-t_echo_lite-include-boards/class-structural-diagram.md","htmlPath":"docs/engineering/class-structural-diagrams/boards-t_echo_lite-include-boards/class-structural-diagram.html","anchor":"engineering:class-structural:boards-t_echo_lite-include-boards","relation":"structural_context","reason":"查看热点所在模块的结构切片,确认复杂度是否来自对象职责分布或边界混淆。"}],"elements":[{"id":"engineering:diagram:technical-hotspot:dependency-cluster--boards:element:boards","mermaidId":"target","label":"boards","kind":"file","anchor":"engineering:hotspot:dependency-cluster:boards:target","summary":"boards 是当前热点指向的具体文件、模块或目标位置,所有热点解释必须能回到这个证据锚点。","role":"热点证据目标:它承载复杂度信号,而不是抽象风险标签。","whyItExists":"本地仓库证据或仓库扫描在 boards 观察到复杂度信号,因此它被放入 Technical Hotspot Diagram。","relationshipMeaning":"target -\u003e hotspot 表示该位置产生或承载当前复杂度提醒;它需要反向关联到 package、component、结构或 sequence 才能判断真实影响。","drilldownIntent":"下钻目标位置可以查看所属 package 或附近 component,确认热点是否影响真实业务能力和可维护性。","businessRelevance":"如果 boards 被 Use Case 证据引用,那么该热点会提高对应业务变更的阅读、验证或回归成本。","changeImpact":"治理 boards 可能影响文件结构、导入路径、测试覆盖和语义化版本记录。","evidence":["boards","boards/cardputerzero/board_facts.h","boards/cardputerzero/BOARD.md","boards/gat562_mesh_evb_pro.json","boards/gat562_mesh_evb_pro/board_facts.h","boards/gat562_mesh_evb_pro/BOARD.md","热点类型:依赖聚集边界","目标:boards"],"risks":["热点目标不等于缺陷;需要确认它是否真的影响高频业务变化或关键运行路径。"],"questions":["当前热点只说明 boards 存在复杂度信号;若证据来自生成文件、聚合导出或扫描噪声,应降级或移除。"],"confidence":"medium","drilldowns":[{"id":"engineering:diagram:package:boards","kind":"package","title":"模块边界:boards","summary":"解释 boards 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/boards/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/boards/package-diagram.html","anchor":"engineering:package:boards","relation":"parent_boundary","reason":"回到 boards 的包级边界,判断热点是否只是局部文件问题,还是影响整个模块治理。"}]},{"id":"engineering:diagram:technical-hotspot:dependency-cluster--boards:element:boards","mermaidId":"hotspot","label":"依赖簇:boards 技术热点","kind":"technical_hotspot","anchor":"engineering:hotspot:dependency-cluster:boards","summary":"依赖簇:boards 技术热点 是当前技术复杂度热点,用来提醒治理前先理解影响面,而不是立即重构。","role":"候选风险/治理入口:它把复杂度信号转化为可讨论的工程问题。","whyItExists":"该热点由本地仓库事实生成,说明某个文件、模块或依赖簇可能让理解、修改或验证成本升高。","relationshipMeaning":"热点节点连接目标位置,表示风险来自具体工程事实;它需要和 package/component/sequence 交叉阅读。","drilldownIntent":"下钻热点相关的 package、component 或 sequence,可以确认它影响的是边界、对象、调用链还是运行配置。","businessRelevance":"技术热点会间接影响业务交付:它可能让某些 Use Case 的变更成本、验证成本和回归风险上升。","changeImpact":"治理热点应拆成可验证的原子提交,并同步记录语义化版本、Git 版本和文档变更。","evidence":["boards/cardputerzero/board_facts.h","boards/cardputerzero/BOARD.md","boards/gat562_mesh_evb_pro.json","boards/gat562_mesh_evb_pro/board_facts.h","boards/gat562_mesh_evb_pro/BOARD.md","热点类型:依赖聚集边界","目标:boards","复杂度信号:依赖多个外部工程边界"],"risks":["不要把热点当作已确认缺陷;先确认业务影响和证据质量。"],"questions":["该热点只是候选复杂度信号;当前文档只记录影响面和证据位置,不把它升级为已确认缺陷。"],"confidence":"medium","drilldowns":[{"id":"engineering:diagram:package:boards","kind":"package","title":"模块边界:boards","summary":"解释 boards 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/boards/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/boards/package-diagram.html","anchor":"engineering:package:boards","relation":"parent_boundary","reason":"回到 boards 的包级边界,判断热点是否只是局部文件问题,还是影响整个模块治理。"},{"id":"engineering:diagram:class-structural:boards-gat562_mesh_evb_pro-include-boards","kind":"class_structural","title":"结构协作:结构切片 boards · gat562_mesh_evb_pro/include/boards","summary":"解释 boards/gat562_mesh_evb_pro/include/boards 这一结构切片中类、接口、组件或值对象如何共同承担结构切片 boards中的结构职责;候选对象包括 Gat562Board、SX1262、Sx1262RadioPacketIo、Gat562Board::I2cGuard、GpsRuntime。","docPath":"docs/engineering/class-structural-diagrams/boards-gat562_mesh_evb_pro-include-boards/class-structural-diagram.md","htmlPath":"docs/engineering/class-structural-diagrams/boards-gat562_mesh_evb_pro-include-boards/class-structural-diagram.html","anchor":"engineering:class-structural:boards-gat562_mesh_evb_pro-include-boards","relation":"structural_context","reason":"查看热点所在模块的结构切片,确认复杂度是否来自对象职责分布或边界混淆。"},{"id":"engineering:diagram:class-structural:boards-t_echo_lite-include-boards","kind":"class_structural","title":"结构协作:结构切片 boards · t_echo_lite/include/boards","summary":"解释 boards/t_echo_lite/include/boards 这一结构切片中类、接口、组件或值对象如何共同承担结构切片 boards中的结构职责;候选对象包括 TEchoLiteBoard、Sx1262RadioPacketIo、TEchoLiteBoard::I2cGuard、GpsRuntime、Module。","docPath":"docs/engineering/class-structural-diagrams/boards-t_echo_lite-include-boards/class-structural-diagram.md","htmlPath":"docs/engineering/class-structural-diagrams/boards-t_echo_lite-include-boards/class-structural-diagram.html","anchor":"engineering:class-structural:boards-t_echo_lite-include-boards","relation":"structural_context","reason":"查看热点所在模块的结构切片,确认复杂度是否来自对象职责分布或边界混淆。"}]}]},{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--boards-tlora_pager-src-tlora_pager_board-cpp","kind":"technical_hotspot","title":"承担外部协作的候选对象:boards/tlora_pager/src/tlora_pager_board.cpp 技术热点","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","docPath":"docs/engineering/technical-hotspots/collaboration-pressure--boards-tlora_pager-src-tlora_pager_board-cpp/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/collaboration-pressure--boards-tlora_pager-src-tlora_pager_board-cpp/technical-hotspot.html","anchor":"engineering:hotspot:external-collaboration-pressure:boards-tlora_pager-src-tlora_pager_board.cpp:boards-tlora_pager-src-tlora_pager_board.cpp:1","status":"candidate","confidence":"high","mermaidKind":"flowchart","mermaid":"flowchart LR\n target[\"boards/tlora_pager/src/tlora_pager_board.cpp\"]\n hotspot[\"承担外部协作的候选对象\"]\n signal[\"连接多个外部对象或能力\"]\n target --\u003e hotspot\n hotspot --\u003e signal","readingGuide":["这张技术热点图解释 承担外部协作的候选对象:boards/tlora_pager/src/tlora_pager_board.cpp,热点类型是 承担外部协作的候选对象。","热点是软件结构模型中的候选提醒:它提示复杂度集中点,但不直接等同于缺陷或必须整改项。","目标位置是 boards/tlora_pager/src/tlora_pager_board.cpp,当前复杂度信号是:连接多个外部对象或能力。"],"technicalAnalysis":["该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。","依赖多个外部对象意味着该目标可能承担了过宽的编排或聚合职责。","热点分析需要和 Package、Component、Sequence 图交叉阅读,避免把单一指标误判为设计结论。"],"businessRelation":["技术热点会间接影响业务交付:它可能让某些 Use Case 的变更成本、验证成本和回归风险升高。","如果 boards/tlora_pager/src/tlora_pager_board.cpp 被某个 Use Case 的证据引用,那么这个热点应出现在该 Use Case 的风险或治理说明中。","如果组织/过程模型没有 Use Case 证据引用该热点,它只作为工程治理候选,不作为业务风险结论。"],"governanceNotes":["不要因为热点存在就立即重构;先确认它影响了哪些业务故事、哪些变更频率最高、哪些测试覆盖最薄弱。","如果决定治理,应把治理目标拆成可验证的原子提交,并记录语义化版本变化。","治理完成后,应重新生成软件结构模型文档,确认复杂度候选点是否被解释或缓解,并把结论写入 changelog。"],"coverage":["热点类型:承担外部协作的候选对象","目标:boards/tlora_pager/src/tlora_pager_board.cpp","复杂度信号:连接多个外部对象或能力"],"evidencePaths":["boards/tlora_pager/src/tlora_pager_board.cpp#L1"],"questions":["该热点只是候选复杂度信号;当前文档只记录影响面和证据位置,不把它升级为已确认缺陷。"],"scope":{"packageId":"boards","filePath":"boards/tlora_pager/src/tlora_pager_board.cpp"},"drilldowns":[{"id":"engineering:diagram:package:boards","kind":"package","title":"模块边界:boards","summary":"解释 boards 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/boards/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/boards/package-diagram.html","anchor":"engineering:package:boards","relation":"parent_boundary","reason":"回到 boards 的包级边界,判断热点是否只是局部文件问题,还是影响整个模块治理。"},{"id":"engineering:diagram:class-structural:boards-gat562_mesh_evb_pro-include-boards","kind":"class_structural","title":"结构协作:结构切片 boards · gat562_mesh_evb_pro/include/boards","summary":"解释 boards/gat562_mesh_evb_pro/include/boards 这一结构切片中类、接口、组件或值对象如何共同承担结构切片 boards中的结构职责;候选对象包括 Gat562Board、SX1262、Sx1262RadioPacketIo、Gat562Board::I2cGuard、GpsRuntime。","docPath":"docs/engineering/class-structural-diagrams/boards-gat562_mesh_evb_pro-include-boards/class-structural-diagram.md","htmlPath":"docs/engineering/class-structural-diagrams/boards-gat562_mesh_evb_pro-include-boards/class-structural-diagram.html","anchor":"engineering:class-structural:boards-gat562_mesh_evb_pro-include-boards","relation":"structural_context","reason":"查看热点所在模块的结构切片,确认复杂度是否来自对象职责分布或边界混淆。"},{"id":"engineering:diagram:class-structural:boards-t_echo_lite-include-boards","kind":"class_structural","title":"结构协作:结构切片 boards · t_echo_lite/include/boards","summary":"解释 boards/t_echo_lite/include/boards 这一结构切片中类、接口、组件或值对象如何共同承担结构切片 boards中的结构职责;候选对象包括 TEchoLiteBoard、Sx1262RadioPacketIo、TEchoLiteBoard::I2cGuard、GpsRuntime、Module。","docPath":"docs/engineering/class-structural-diagrams/boards-t_echo_lite-include-boards/class-structural-diagram.md","htmlPath":"docs/engineering/class-structural-diagrams/boards-t_echo_lite-include-boards/class-structural-diagram.html","anchor":"engineering:class-structural:boards-t_echo_lite-include-boards","relation":"structural_context","reason":"查看热点所在模块的结构切片,确认复杂度是否来自对象职责分布或边界混淆。"}],"elements":[{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--boards-tlora_pager-src-tlora_pager_board-cpp:element:boards-tlora_pager-src-tlora_pager_board.cpp","mermaidId":"target","label":"boards/tlora_pager/src/tlora_pager_board.cpp","kind":"file","anchor":"engineering:hotspot:external-collaboration-pressure:boards-tlora_pager-src-tlora_pager_board.cpp:boards-tlora_pager-src-tlora_pager_board.cpp:1:target","summary":"boards/tlora_pager/src/tlora_pager_board.cpp 是当前热点指向的具体文件、模块或目标位置,所有热点解释必须能回到这个证据锚点。","role":"热点证据目标:它承载复杂度信号,而不是抽象风险标签。","whyItExists":"本地仓库证据或仓库扫描在 boards/tlora_pager/src/tlora_pager_board.cpp 观察到复杂度信号,因此它被放入 Technical Hotspot Diagram。","relationshipMeaning":"target -\u003e hotspot 表示该位置产生或承载当前复杂度提醒;它需要反向关联到 package、component、结构或 sequence 才能判断真实影响。","drilldownIntent":"下钻目标位置可以查看所属 package 或附近 component,确认热点是否影响真实业务能力和可维护性。","businessRelevance":"如果 boards/tlora_pager/src/tlora_pager_board.cpp 被 Use Case 证据引用,那么该热点会提高对应业务变更的阅读、验证或回归成本。","changeImpact":"治理 boards/tlora_pager/src/tlora_pager_board.cpp 可能影响文件结构、导入路径、测试覆盖和语义化版本记录。","evidence":["boards/tlora_pager/src/tlora_pager_board.cpp","boards/tlora_pager/src/tlora_pager_board.cpp#L1","热点类型:承担外部协作的候选对象","目标:boards/tlora_pager/src/tlora_pager_board.cpp","复杂度信号:连接多个外部对象或能力"],"risks":["热点目标不等于缺陷;需要确认它是否真的影响高频业务变化或关键运行路径。"],"questions":["当前热点只说明 boards/tlora_pager/src/tlora_pager_board.cpp 存在复杂度信号;若证据来自生成文件、聚合导出或扫描噪声,应降级或移除。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:package:boards","kind":"package","title":"模块边界:boards","summary":"解释 boards 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/boards/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/boards/package-diagram.html","anchor":"engineering:package:boards","relation":"parent_boundary","reason":"回到 boards 的包级边界,判断热点是否只是局部文件问题,还是影响整个模块治理。"}]},{"id":"engineering:diagram:technical-hotspot:collaboration-pressure--boards-tlora_pager-src-tlora_pager_board-cpp:element:boards-tlora_pager-src-tlora_pager_board.cpp","mermaidId":"hotspot","label":"承担外部协作的候选对象:boards/tlora_pager/src/tlora_pager_board.cpp 技术热点","kind":"technical_hotspot","anchor":"engineering:hotspot:external-collaboration-pressure:boards-tlora_pager-src-tlora_pager_board.cpp:boards-tlora_pager-src-tlora_pager_board.cpp:1","summary":"承担外部协作的候选对象:boards/tlora_pager/src/tlora_pager_board.cpp 技术热点 是当前技术复杂度热点,用来提醒治理前先理解影响面,而不是立即重构。","role":"候选风险/治理入口:它把复杂度信号转化为可讨论的工程问题。","whyItExists":"该热点由本地仓库事实生成,说明某个文件、模块或依赖簇可能让理解、修改或验证成本升高。","relationshipMeaning":"热点节点连接目标位置,表示风险来自具体工程事实;它需要和 package/component/sequence 交叉阅读。","drilldownIntent":"下钻热点相关的 package、component 或 sequence,可以确认它影响的是边界、对象、调用链还是运行配置。","businessRelevance":"技术热点会间接影响业务交付:它可能让某些 Use Case 的变更成本、验证成本和回归风险上升。","changeImpact":"治理热点应拆成可验证的原子提交,并同步记录语义化版本、Git 版本和文档变更。","evidence":["boards/tlora_pager/src/tlora_pager_board.cpp#L1","热点类型:承担外部协作的候选对象","目标:boards/tlora_pager/src/tlora_pager_board.cpp","复杂度信号:连接多个外部对象或能力"],"risks":["不要把热点当作已确认缺陷;先确认业务影响和证据质量。"],"questions":["该热点只是候选复杂度信号;当前文档只记录影响面和证据位置,不把它升级为已确认缺陷。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:package:boards","kind":"package","title":"模块边界:boards","summary":"解释 boards 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/boards/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/boards/package-diagram.html","anchor":"engineering:package:boards","relation":"parent_boundary","reason":"回到 boards 的包级边界,判断热点是否只是局部文件问题,还是影响整个模块治理。"},{"id":"engineering:diagram:class-structural:boards-gat562_mesh_evb_pro-include-boards","kind":"class_structural","title":"结构协作:结构切片 boards · gat562_mesh_evb_pro/include/boards","summary":"解释 boards/gat562_mesh_evb_pro/include/boards 这一结构切片中类、接口、组件或值对象如何共同承担结构切片 boards中的结构职责;候选对象包括 Gat562Board、SX1262、Sx1262RadioPacketIo、Gat562Board::I2cGuard、GpsRuntime。","docPath":"docs/engineering/class-structural-diagrams/boards-gat562_mesh_evb_pro-include-boards/class-structural-diagram.md","htmlPath":"docs/engineering/class-structural-diagrams/boards-gat562_mesh_evb_pro-include-boards/class-structural-diagram.html","anchor":"engineering:class-structural:boards-gat562_mesh_evb_pro-include-boards","relation":"structural_context","reason":"查看热点所在模块的结构切片,确认复杂度是否来自对象职责分布或边界混淆。"},{"id":"engineering:diagram:class-structural:boards-t_echo_lite-include-boards","kind":"class_structural","title":"结构协作:结构切片 boards · t_echo_lite/include/boards","summary":"解释 boards/t_echo_lite/include/boards 这一结构切片中类、接口、组件或值对象如何共同承担结构切片 boards中的结构职责;候选对象包括 TEchoLiteBoard、Sx1262RadioPacketIo、TEchoLiteBoard::I2cGuard、GpsRuntime、Module。","docPath":"docs/engineering/class-structural-diagrams/boards-t_echo_lite-include-boards/class-structural-diagram.md","htmlPath":"docs/engineering/class-structural-diagrams/boards-t_echo_lite-include-boards/class-structural-diagram.html","anchor":"engineering:class-structural:boards-t_echo_lite-include-boards","relation":"structural_context","reason":"查看热点所在模块的结构切片,确认复杂度是否来自对象职责分布或边界混淆。"}]}]},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makesettingsrow","kind":"technical_hotspot","title":"被广泛复用的候选对象:makeSettingsRow 技术热点","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","docPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.md","htmlPath":"docs/engineering/technical-hotspots/reuse-pressure--makesettingsrow/technical-hotspot.html","anchor":"engineering:hotspot:reuse-pressure:makesettingsrow:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:22","status":"candidate","confidence":"high","mermaidKind":"flowchart","mermaid":"flowchart LR\n target[\"apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp\"]\n hotspot[\"被广泛复用的候选对象\"]\n signal[\"被多处代码引用或调用\"]\n target --\u003e hotspot\n hotspot --\u003e signal","readingGuide":["这张技术热点图解释 被广泛复用的候选对象:makeSettingsRow,热点类型是 被广泛复用的候选对象。","热点是软件结构模型中的候选提醒:它提示复杂度集中点,但不直接等同于缺陷或必须整改项。","目标位置是 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp,当前复杂度信号是:被多处代码引用或调用。"],"technicalAnalysis":["该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。","被多个对象依赖意味着该目标修改时更容易产生兼容性和回归风险。","热点分析需要和 Package、Component、Sequence 图交叉阅读,避免把单一指标误判为设计结论。"],"businessRelation":["技术热点会间接影响业务交付:它可能让某些 Use Case 的变更成本、验证成本和回归风险升高。","如果 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp 被某个 Use Case 的证据引用,那么这个热点应出现在该 Use Case 的风险或治理说明中。","如果组织/过程模型没有 Use Case 证据引用该热点,它只作为工程治理候选,不作为业务风险结论。"],"governanceNotes":["不要因为热点存在就立即重构;先确认它影响了哪些业务故事、哪些变更频率最高、哪些测试覆盖最薄弱。","如果决定治理,应把治理目标拆成可验证的原子提交,并记录语义化版本变化。","治理完成后,应重新生成软件结构模型文档,确认复杂度候选点是否被解释或缓解,并把结论写入 changelog。"],"coverage":["热点类型:被广泛复用的候选对象","目标:apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp","复杂度信号:被多处代码引用或调用"],"evidencePaths":["apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L22"],"questions":["该热点只是候选复杂度信号;当前文档只记录影响面和证据位置,不把它升级为已确认缺陷。"],"scope":{"packageId":"apps/linux_uconsole_gtk","filePath":"apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp"},"drilldowns":[{"id":"engineering:diagram:package:apps-linux_uconsole_gtk","kind":"package","title":"模块边界:apps/linux_uconsole_gtk","summary":"解释 apps/linux_uconsole_gtk 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/apps-linux_uconsole_gtk/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/apps-linux_uconsole_gtk/package-diagram.html","anchor":"engineering:package:apps-linux_uconsole_gtk","relation":"parent_boundary","reason":"回到 apps/linux_uconsole_gtk 的包级边界,判断热点是否只是局部文件问题,还是影响整个模块治理。"},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-launchsettingslayout","kind":"component","title":"函数节点:launchSettingsLayout","summary":"function 位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L110,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-launchsettingslayout/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-launchsettingslayout/component-diagram.html","anchor":"engineering:component:function:launchsettingslayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:110","relation":"realized_by","reason":"查看 函数节点:launchSettingsLayout 是否是热点直接影响的组件,从具体职责和调用关系判断治理优先级。"},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-makesettingsrow","kind":"component","title":"函数节点:makeSettingsRow","summary":"function 位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L22,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-makesettingsrow/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-makesettingsrow/component-diagram.html","anchor":"engineering:component:function:makesettingsrow:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:22","relation":"realized_by","reason":"查看 函数节点:makeSettingsRow 是否是热点直接影响的组件,从具体职责和调用关系判断治理优先级。"},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-makeswitch","kind":"component","title":"函数节点:makeSwitch","summary":"function 位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L75,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-makeswitch/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-makeswitch/component-diagram.html","anchor":"engineering:component:function:makeswitch:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:75","relation":"realized_by","reason":"查看 函数节点:makeSwitch 是否是热点直接影响的组件,从具体职责和调用关系判断治理优先级。"},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-makespin","kind":"component","title":"函数节点:makeSpin","summary":"function 位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L68,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-makespin/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-makespin/component-diagram.html","anchor":"engineering:component:function:makespin:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:68","relation":"realized_by","reason":"查看 函数节点:makeSpin 是否是热点直接影响的组件,从具体职责和调用关系判断治理优先级。"}],"elements":[{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makesettingsrow:element:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp","mermaidId":"target","label":"apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp","kind":"file","anchor":"engineering:hotspot:reuse-pressure:makesettingsrow:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:22:target","summary":"apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp 是当前热点指向的具体文件、模块或目标位置,所有热点解释必须能回到这个证据锚点。","role":"热点证据目标:它承载复杂度信号,而不是抽象风险标签。","whyItExists":"本地仓库证据或仓库扫描在 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp 观察到复杂度信号,因此它被放入 Technical Hotspot Diagram。","relationshipMeaning":"target -\u003e hotspot 表示该位置产生或承载当前复杂度提醒;它需要反向关联到 package、component、结构或 sequence 才能判断真实影响。","drilldownIntent":"下钻目标位置可以查看所属 package 或附近 component,确认热点是否影响真实业务能力和可维护性。","businessRelevance":"如果 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp 被 Use Case 证据引用,那么该热点会提高对应业务变更的阅读、验证或回归成本。","changeImpact":"治理 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp 可能影响文件结构、导入路径、测试覆盖和语义化版本记录。","evidence":["apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp","apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L22","热点类型:被广泛复用的候选对象","目标:apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp","复杂度信号:被多处代码引用或调用"],"risks":["热点目标不等于缺陷;需要确认它是否真的影响高频业务变化或关键运行路径。"],"questions":["当前热点只说明 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp 存在复杂度信号;若证据来自生成文件、聚合导出或扫描噪声,应降级或移除。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:package:apps-linux_uconsole_gtk","kind":"package","title":"模块边界:apps/linux_uconsole_gtk","summary":"解释 apps/linux_uconsole_gtk 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/apps-linux_uconsole_gtk/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/apps-linux_uconsole_gtk/package-diagram.html","anchor":"engineering:package:apps-linux_uconsole_gtk","relation":"parent_boundary","reason":"回到 apps/linux_uconsole_gtk 的包级边界,判断热点是否只是局部文件问题,还是影响整个模块治理。"},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-launchsettingslayout","kind":"component","title":"函数节点:launchSettingsLayout","summary":"function 位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L110,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-launchsettingslayout/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-launchsettingslayout/component-diagram.html","anchor":"engineering:component:function:launchsettingslayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:110","relation":"realized_by","reason":"查看 函数节点:launchSettingsLayout 是否是热点直接影响的组件,从具体职责和调用关系判断治理优先级。"},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-makesettingsrow","kind":"component","title":"函数节点:makeSettingsRow","summary":"function 位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L22,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-makesettingsrow/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-makesettingsrow/component-diagram.html","anchor":"engineering:component:function:makesettingsrow:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:22","relation":"realized_by","reason":"查看 函数节点:makeSettingsRow 是否是热点直接影响的组件,从具体职责和调用关系判断治理优先级。"},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-makeswitch","kind":"component","title":"函数节点:makeSwitch","summary":"function 位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L75,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-makeswitch/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-makeswitch/component-diagram.html","anchor":"engineering:component:function:makeswitch:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:75","relation":"realized_by","reason":"查看 函数节点:makeSwitch 是否是热点直接影响的组件,从具体职责和调用关系判断治理优先级。"},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-makespin","kind":"component","title":"函数节点:makeSpin","summary":"function 位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L68,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-makespin/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-makespin/component-diagram.html","anchor":"engineering:component:function:makespin:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:68","relation":"realized_by","reason":"查看 函数节点:makeSpin 是否是热点直接影响的组件,从具体职责和调用关系判断治理优先级。"}]},{"id":"engineering:diagram:technical-hotspot:reuse-pressure--makesettingsrow:element:makesettingsrow","mermaidId":"hotspot","label":"被广泛复用的候选对象:makeSettingsRow 技术热点","kind":"technical_hotspot","anchor":"engineering:hotspot:reuse-pressure:makesettingsrow:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:22","summary":"被广泛复用的候选对象:makeSettingsRow 技术热点 是当前技术复杂度热点,用来提醒治理前先理解影响面,而不是立即重构。","role":"候选风险/治理入口:它把复杂度信号转化为可讨论的工程问题。","whyItExists":"该热点由本地仓库事实生成,说明某个文件、模块或依赖簇可能让理解、修改或验证成本升高。","relationshipMeaning":"热点节点连接目标位置,表示风险来自具体工程事实;它需要和 package/component/sequence 交叉阅读。","drilldownIntent":"下钻热点相关的 package、component 或 sequence,可以确认它影响的是边界、对象、调用链还是运行配置。","businessRelevance":"技术热点会间接影响业务交付:它可能让某些 Use Case 的变更成本、验证成本和回归风险上升。","changeImpact":"治理热点应拆成可验证的原子提交,并同步记录语义化版本、Git 版本和文档变更。","evidence":["apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L22","热点类型:被广泛复用的候选对象","目标:apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp","复杂度信号:被多处代码引用或调用"],"risks":["不要把热点当作已确认缺陷;先确认业务影响和证据质量。"],"questions":["该热点只是候选复杂度信号;当前文档只记录影响面和证据位置,不把它升级为已确认缺陷。"],"confidence":"high","drilldowns":[{"id":"engineering:diagram:package:apps-linux_uconsole_gtk","kind":"package","title":"模块边界:apps/linux_uconsole_gtk","summary":"解释 apps/linux_uconsole_gtk 的包/模块边界、文件数量、符号数量和跨模块依赖。","docPath":"docs/engineering/package-diagrams/apps-linux_uconsole_gtk/package-diagram.md","htmlPath":"docs/engineering/package-diagrams/apps-linux_uconsole_gtk/package-diagram.html","anchor":"engineering:package:apps-linux_uconsole_gtk","relation":"parent_boundary","reason":"回到 apps/linux_uconsole_gtk 的包级边界,判断热点是否只是局部文件问题,还是影响整个模块治理。"},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-launchsettingslayout","kind":"component","title":"函数节点:launchSettingsLayout","summary":"function 位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L110,协调多个外部对象或能力,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-launchsettingslayout/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-launchsettingslayout/component-diagram.html","anchor":"engineering:component:function:launchsettingslayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:110","relation":"realized_by","reason":"查看 函数节点:launchSettingsLayout 是否是热点直接影响的组件,从具体职责和调用关系判断治理优先级。"},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-makesettingsrow","kind":"component","title":"函数节点:makeSettingsRow","summary":"function 位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L22,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-makesettingsrow/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-makesettingsrow/component-diagram.html","anchor":"engineering:component:function:makesettingsrow:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:22","relation":"realized_by","reason":"查看 函数节点:makeSettingsRow 是否是热点直接影响的组件,从具体职责和调用关系判断治理优先级。"},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-makeswitch","kind":"component","title":"函数节点:makeSwitch","summary":"function 位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L75,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-makeswitch/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-makeswitch/component-diagram.html","anchor":"engineering:component:function:makeswitch:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:75","relation":"realized_by","reason":"查看 函数节点:makeSwitch 是否是热点直接影响的组件,从具体职责和调用关系判断治理优先级。"},{"id":"engineering:diagram:component:apps-linux_uconsole_gtk-makespin","kind":"component","title":"函数节点:makeSpin","summary":"function 位于 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp#L68,被多个对象复用或依赖,用于解释技术协作和变更影响面。","docPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-makespin/component-diagram.md","htmlPath":"docs/engineering/component-diagrams/apps-linux_uconsole_gtk-makespin/component-diagram.html","anchor":"engineering:component:function:makespin:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:68","relation":"realized_by","reason":"查看 函数节点:makeSpin 是否是热点直接影响的组件,从具体职责和调用关系判断治理优先级。"}]}]}]}]}</script>
<script type="application/json" id="praxis-engineering-complexity-model">{"schemaVersion":"praxis.engineeringComplexityModel.v1","root":"C:\\Users\\vicliu\\Projects\\trail-mate","generatedAt":"2026-06-25T09:19:20.669Z","source":"repository_evidence","projectVersion":"0.1.0","git":{"branch":"main","commit":"34aad0bffa2f6450192f655f248a94b6c3cbd767","shortCommit":"34aad0bffa2f","dirty":true},"summary":{"fileCount":11735,"nodeCount":15063,"edgeCount":12150,"packageCount":18,"componentCount":24,"runtimeFlowCount":18,"deploymentNodeCount":0,"hotspotCount":18},"packages":[{"id":"engineering:package:managed_components","title":"managed_components","path":"managed_components","fileCount":2231,"nodeCount":3506,"incoming":0,"outgoing":87},{"id":"engineering:package:build.t_display_p4_tft","title":"build.t_display_p4_tft","path":"build.t_display_p4_tft","fileCount":2722,"nodeCount":2069,"incoming":0,"outgoing":0},{"id":"engineering:package:build.tdisplayp4_tft","title":"build.tdisplayp4_tft","path":"build.tdisplayp4_tft","fileCount":2400,"nodeCount":1961,"incoming":0,"outgoing":0},{"id":"engineering:package:boards","title":"boards","path":"boards","fileCount":92,"nodeCount":1952,"incoming":47,"outgoing":183},{"id":"engineering:package:build.tdisplayp4_amoled","title":"build.tdisplayp4_amoled","path":"build.tdisplayp4_amoled","fileCount":2394,"nodeCount":1867,"incoming":0,"outgoing":0},{"id":"engineering:package:build.c6_companion","title":"build.c6_companion","path":"build.c6_companion","fileCount":1641,"nodeCount":1527,"incoming":0,"outgoing":0},{"id":"engineering:package:apps-linux_uconsole_gtk","title":"apps/linux_uconsole_gtk","path":"apps/linux_uconsole_gtk","fileCount":54,"nodeCount":697,"incoming":41,"outgoing":43},{"id":"engineering:package:apps-esp32_lvgl","title":"apps/esp32_lvgl","path":"apps/esp32_lvgl","fileCount":31,"nodeCount":402,"incoming":217,"outgoing":3},{"id":"engineering:package:firmware","title":"firmware","path":"firmware","fileCount":33,"nodeCount":376,"incoming":68,"outgoing":23},{"id":"engineering:package:apps-nrf52_node","title":"apps/nrf52_node","path":"apps/nrf52_node","fileCount":23,"nodeCount":287,"incoming":20,"outgoing":72},{"id":"engineering:package:apps-linux_cardputer_zero","title":"apps/linux_cardputer_zero","path":"apps/linux_cardputer_zero","fileCount":24,"nodeCount":230,"incoming":40,"outgoing":11},{"id":"engineering:package:apps-linux_sim_shell","title":"apps/linux_sim_shell","path":"apps/linux_sim_shell","fileCount":15,"nodeCount":102,"incoming":6,"outgoing":12},{"id":"engineering:package:builds","title":"builds","path":"builds","fileCount":34,"nodeCount":46,"incoming":0,"outgoing":5},{"id":"engineering:package:images","title":"images","path":"images","fileCount":36,"nodeCount":36,"incoming":0,"outgoing":0},{"id":"engineering:package:cmake","title":"cmake","path":"cmake","fileCount":2,"nodeCount":2,"incoming":0,"outgoing":0},{"id":"engineering:package:apps-readme.md","title":"apps/README.md","path":"apps/README.md","fileCount":1,"nodeCount":1,"incoming":0,"outgoing":0},{"id":"engineering:package:copyright","title":"COPYRIGHT","path":"COPYRIGHT","fileCount":1,"nodeCount":1,"incoming":0,"outgoing":0},{"id":"engineering:package:license","title":"LICENSE","path":"LICENSE","fileCount":1,"nodeCount":1,"incoming":0,"outgoing":0}],"components":[{"id":"engineering:component:apps-linux_cardputer_zero:main:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:49","title":"main","kind":"function","filePath":"apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp","line":49,"reusePressure":1,"externalCollaborationPressure":646},{"id":"engineering:component:apps-linux_cardputer_zero:main:apps-linux_cardputer_zero-tests-linux_cardputer_zero_packaging_smoke.cpp:38","title":"main","kind":"function","filePath":"apps/linux_cardputer_zero/tests/linux_cardputer_zero_packaging_smoke.cpp","line":38,"reusePressure":1,"externalCollaborationPressure":468},{"id":"engineering:component:apps-linux_cardputer_zero:contains:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:19","title":"contains","kind":"function","filePath":"apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp","line":19,"reusePressure":447,"externalCollaborationPressure":0},{"id":"engineering:component:apps-linux_cardputer_zero:contains:apps-linux_cardputer_zero-tests-linux_cardputer_zero_packaging_smoke.cpp:19","title":"contains","kind":"function","filePath":"apps/linux_cardputer_zero/tests/linux_cardputer_zero_packaging_smoke.cpp","line":19,"reusePressure":415,"externalCollaborationPressure":0},{"id":"engineering:component:apps-linux_uconsole_gtk:launchsettingslayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:110","title":"launchSettingsLayout","kind":"function","filePath":"apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp","line":110,"reusePressure":1,"externalCollaborationPressure":322},{"id":"engineering:component:apps-linux_uconsole_gtk:makelabel:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp:9","title":"makeLabel","kind":"function","filePath":"apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp","line":9,"reusePressure":251,"externalCollaborationPressure":0},{"id":"engineering:component:apps-linux_uconsole_gtk:makesettingsrow:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:22","title":"makeSettingsRow","kind":"function","filePath":"apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp","line":22,"reusePressure":137,"externalCollaborationPressure":4},{"id":"engineering:component:apps-esp32_lvgl:main:apps-esp32_lvgl-tests-esp32_lvgl_sd_coredump_contract_smoke.cpp:33","title":"main","kind":"function","filePath":"apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp","line":33,"reusePressure":1,"externalCollaborationPressure":130},{"id":"engineering:component:apps-linux_cardputer_zero:not_contains:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:24","title":"not_contains","kind":"function","filePath":"apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp","line":24,"reusePressure":125,"externalCollaborationPressure":2},{"id":"engineering:component:firmware:main:firmware-c6_companion-tests-test_tm_services_functional.cpp:97","title":"main","kind":"function","filePath":"firmware/c6_companion/tests/test_tm_services_functional.cpp","line":97,"reusePressure":1,"externalCollaborationPressure":94},{"id":"engineering:component:apps-esp32_lvgl:contains:apps-esp32_lvgl-tests-esp32_lvgl_sd_coredump_contract_smoke.cpp:19","title":"contains","kind":"function","filePath":"apps/esp32_lvgl/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp","line":19,"reusePressure":85,"externalCollaborationPressure":0},{"id":"engineering:component:boards:makeboardprofile:boards-t_echo_lite-include-boards-t_echo_lite-board_profile.h:188","title":"makeBoardProfile","kind":"function","filePath":"boards/t_echo_lite/include/boards/t_echo_lite/board_profile.h","line":188,"reusePressure":1,"externalCollaborationPressure":78},{"id":"engineering:component:boards:pinnum:boards-t_echo_lite-include-boards-t_echo_lite-board_profile.h:8","title":"pinNum","kind":"function","filePath":"boards/t_echo_lite/include/boards/t_echo_lite/board_profile.h","line":8,"reusePressure":79,"externalCollaborationPressure":0},{"id":"engineering:component:apps-linux_uconsole_gtk:refreshui:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_shell.cpp:285","title":"refreshUi","kind":"function","filePath":"apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_shell.cpp","line":285,"reusePressure":55,"externalCollaborationPressure":20},{"id":"engineering:component:apps-linux_uconsole_gtk:refreshmap:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_map_logic.cpp:1243","title":"refreshMap","kind":"function","filePath":"apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_map_logic.cpp","line":1243,"reusePressure":21,"externalCollaborationPressure":50},{"id":"engineering:component:apps-linux_cardputer_zero:read_file:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp:10","title":"read_file","kind":"function","filePath":"apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp","line":10,"reusePressure":63,"externalCollaborationPressure":0},{"id":"engineering:component:firmware:tm_services_record_error:firmware-c6_companion-components-tm_services-tm_services.c:471","title":"tm_services_record_error","kind":"function","filePath":"firmware/c6_companion/components/tm_services/tm_services.c","line":471,"reusePressure":59,"externalCollaborationPressure":4},{"id":"engineering:component:apps-linux_uconsole_gtk:main:apps-linux_uconsole_gtk-tests-uconsole_meshtastic_node_payload_smoke.cpp:89","title":"main","kind":"function","filePath":"apps/linux_uconsole_gtk/tests/uconsole_meshtastic_node_payload_smoke.cpp","line":89,"reusePressure":1,"externalCollaborationPressure":58},{"id":"engineering:component:apps-linux_uconsole_gtk:launchmaplayout:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_map_layout.cpp:105","title":"launchMapLayout","kind":"function","filePath":"apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_map_layout.cpp","line":105,"reusePressure":1,"externalCollaborationPressure":56},{"id":"engineering:component:apps-esp32_lvgl:companion_enter:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:72","title":"companion_enter","kind":"function","filePath":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","line":72,"reusePressure":1,"externalCollaborationPressure":50},{"id":"engineering:component:apps-linux_uconsole_gtk:expect:apps-linux_uconsole_gtk-tests-uconsole_meshtastic_node_payload_smoke.cpp:15","title":"expect","kind":"function","filePath":"apps/linux_uconsole_gtk/tests/uconsole_meshtastic_node_payload_smoke.cpp","line":15,"reusePressure":51,"externalCollaborationPressure":0},{"id":"engineering:component:apps-linux_uconsole_gtk:makeswitch:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:75","title":"makeSwitch","kind":"function","filePath":"apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp","line":75,"reusePressure":51,"externalCollaborationPressure":0},{"id":"engineering:component:apps-linux_uconsole_gtk:setlabel:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp:44","title":"setLabel","kind":"function","filePath":"apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp","line":44,"reusePressure":51,"externalCollaborationPressure":0},{"id":"engineering:component:apps-linux_uconsole_gtk:makespin:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp:68","title":"makeSpin","kind":"function","filePath":"apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp","line":68,"reusePressure":47,"externalCollaborationPressure":0}],"runtimeFlows":[{"id":"engineering:runtime-flow:apps-esp32_lvgl-src-esp32_lvgl_arduino_loop_runtime.cpp:apps-esp32_lvgl-src-esp32_lvgl_arduino_loop_runtime.cpp:calls","title":"tick -\u003e log_loop_interval","edgeKind":"calls","sourcePath":"apps/esp32_lvgl/src/esp32_lvgl_arduino_loop_runtime.cpp","targetPath":"apps/esp32_lvgl/src/esp32_lvgl_arduino_loop_runtime.cpp"},{"id":"engineering:runtime-flow:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:calls","title":"add_status_line -\u003e add_label","edgeKind":"calls","sourcePath":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","targetPath":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp"},{"id":"engineering:runtime-flow:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:calls","title":"add_u32_line -\u003e add_label","edgeKind":"calls","sourcePath":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","targetPath":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp"},{"id":"engineering:runtime-flow:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:calls","title":"add_hex_line -\u003e add_status_line","edgeKind":"calls","sourcePath":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","targetPath":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp"},{"id":"engineering:runtime-flow:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:calls","title":"companion_enter -\u003e add_label","edgeKind":"calls","sourcePath":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","targetPath":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp"},{"id":"engineering:runtime-flow:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:calls","title":"companion_enter -\u003e add_status_line","edgeKind":"calls","sourcePath":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","targetPath":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp"},{"id":"engineering:runtime-flow:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:calls","title":"companion_enter -\u003e add_u32_line","edgeKind":"calls","sourcePath":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","targetPath":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp"},{"id":"engineering:runtime-flow:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:apps-esp32_lvgl-src-esp32_lvgl_idf_app_registry.cpp:calls","title":"companion_enter -\u003e add_hex_line","edgeKind":"calls","sourcePath":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp","targetPath":"apps/esp32_lvgl/src/esp32_lvgl_idf_app_registry.cpp"},{"id":"engineering:runtime-flow:apps-esp32_lvgl-src-esp32_lvgl_loop_runtime.cpp:apps-esp32_lvgl-src-esp32_lvgl_loop_runtime.cpp:calls","title":"startEsp32LvglLoopRuntime -\u003e canStartEsp32LvglLoopRuntime","edgeKind":"calls","sourcePath":"apps/esp32_lvgl/src/esp32_lvgl_loop_runtime.cpp","targetPath":"apps/esp32_lvgl/src/esp32_lvgl_loop_runtime.cpp"},{"id":"engineering:runtime-flow:apps-esp32_lvgl-src-esp32_lvgl_runtime_config.cpp:apps-esp32_lvgl-src-esp32_lvgl_runtime_config.cpp:calls","title":"hasEsp32LvglRuntimeTargetProfile -\u003e esp32LvglRuntimeTargetProfile","edgeKind":"calls","sourcePath":"apps/esp32_lvgl/src/esp32_lvgl_runtime_config.cpp","targetPath":"apps/esp32_lvgl/src/esp32_lvgl_runtime_config.cpp"},{"id":"engineering:runtime-flow:apps-esp32_lvgl-src-esp32_lvgl_startup_runtime.cpp:apps-esp32_lvgl-src-esp32_lvgl_startup_runtime.cpp:calls","title":"showBootUi -\u003e lockUi","edgeKind":"calls","sourcePath":"apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","targetPath":"apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp"},{"id":"engineering:runtime-flow:apps-esp32_lvgl-src-esp32_lvgl_startup_runtime.cpp:apps-esp32_lvgl-src-esp32_lvgl_startup_runtime.cpp:calls","title":"showBootUi -\u003e unlockUi","edgeKind":"calls","sourcePath":"apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","targetPath":"apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp"},{"id":"engineering:runtime-flow:apps-esp32_lvgl-src-esp32_lvgl_startup_runtime.cpp:apps-esp32_lvgl-src-esp32_lvgl_startup_runtime.cpp:calls","title":"setBootLog -\u003e lockUi","edgeKind":"calls","sourcePath":"apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","targetPath":"apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp"},{"id":"engineering:runtime-flow:apps-esp32_lvgl-src-esp32_lvgl_startup_runtime.cpp:apps-esp32_lvgl-src-esp32_lvgl_startup_runtime.cpp:calls","title":"setBootLog -\u003e unlockUi","edgeKind":"calls","sourcePath":"apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","targetPath":"apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp"},{"id":"engineering:runtime-flow:apps-esp32_lvgl-src-esp32_lvgl_startup_runtime.cpp:apps-esp32_lvgl-src-esp32_lvgl_loop_runtime.cpp:calls","title":"canRunEsp32LvglStartupRuntime -\u003e canStartEsp32LvglLoopRuntime","edgeKind":"calls","sourcePath":"apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","targetPath":"apps/esp32_lvgl/src/esp32_lvgl_loop_runtime.cpp"},{"id":"engineering:runtime-flow:apps-esp32_lvgl-src-esp32_lvgl_startup_runtime.cpp:apps-esp32_lvgl-src-esp32_lvgl_startup_runtime.cpp:calls","title":"runEsp32LvglStartupRuntime -\u003e canRunEsp32LvglStartupRuntime","edgeKind":"calls","sourcePath":"apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","targetPath":"apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp"},{"id":"engineering:runtime-flow:apps-esp32_lvgl-src-esp32_lvgl_startup_runtime.cpp:apps-esp32_lvgl-src-esp32_lvgl_startup_runtime.cpp:calls","title":"runEsp32LvglStartupRuntime -\u003e showBootUi","edgeKind":"calls","sourcePath":"apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","targetPath":"apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp"},{"id":"engineering:runtime-flow:apps-esp32_lvgl-src-esp32_lvgl_startup_runtime.cpp:apps-esp32_lvgl-src-esp32_lvgl_startup_runtime.cpp:calls","title":"runEsp32LvglStartupRuntime -\u003e setBootLog","edgeKind":"calls","sourcePath":"apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp","targetPath":"apps/esp32_lvgl/src/esp32_lvgl_startup_runtime.cpp"}],"deploymentNodes":[],"hotspots":[{"id":"engineering:hotspot:large-file:build.t_display_p4_tft-bootloader-config-kconfig_menus.json","title":"大文件:build.t_display_p4_tft/bootloader/config/kconfig_menus.json","kind":"大文件","targetPath":"build.t_display_p4_tft/bootloader/config/kconfig_menus.json","signal":"约 13990 行代码或文档","summary":"该文件约 13990 行,可能形成阅读、变更和评审负担。"},{"id":"engineering:hotspot:large-file:build.tdisplayp4_amoled-bootloader-config-kconfig_menus.json","title":"大文件:build.tdisplayp4_amoled/bootloader/config/kconfig_menus.json","kind":"大文件","targetPath":"build.tdisplayp4_amoled/bootloader/config/kconfig_menus.json","signal":"约 13990 行代码或文档","summary":"该文件约 13990 行,可能形成阅读、变更和评审负担。"},{"id":"engineering:hotspot:large-file:build.tdisplayp4_tft-bootloader-config-kconfig_menus.json","title":"大文件:build.tdisplayp4_tft/bootloader/config/kconfig_menus.json","kind":"大文件","targetPath":"build.tdisplayp4_tft/bootloader/config/kconfig_menus.json","signal":"约 13990 行代码或文档","summary":"该文件约 13990 行,可能形成阅读、变更和评审负担。"},{"id":"engineering:hotspot:large-file:managed_components-lvgl__lvgl-src-font-lv_font_montserrat_48.c","title":"大文件:managed_components/lvgl__lvgl/src/font/lv_font_montserrat_48.c","kind":"大文件","targetPath":"managed_components/lvgl__lvgl/src/font/lv_font_montserrat_48.c","signal":"约 12570 行代码或文档","summary":"该文件约 12570 行,可能形成阅读、变更和评审负担。"},{"id":"engineering:hotspot:large-file:build.c6_companion-bootloader-config-kconfig_menus.json","title":"大文件:build.c6_companion/bootloader/config/kconfig_menus.json","kind":"大文件","targetPath":"build.c6_companion/bootloader/config/kconfig_menus.json","signal":"约 12312 行代码或文档","summary":"该文件约 12312 行,可能形成阅读、变更和评审负担。"},{"id":"engineering:hotspot:large-file:managed_components-lvgl__lvgl-src-font-lv_font_montserrat_46.c","title":"大文件:managed_components/lvgl__lvgl/src/font/lv_font_montserrat_46.c","kind":"大文件","targetPath":"managed_components/lvgl__lvgl/src/font/lv_font_montserrat_46.c","signal":"约 11869 行代码或文档","summary":"该文件约 11869 行,可能形成阅读、变更和评审负担。"},{"id":"engineering:hotspot:large-file:managed_components-lvgl__lvgl-src-font-lv_font_montserrat_44.c","title":"大文件:managed_components/lvgl__lvgl/src/font/lv_font_montserrat_44.c","kind":"大文件","targetPath":"managed_components/lvgl__lvgl/src/font/lv_font_montserrat_44.c","signal":"约 10917 行代码或文档","summary":"该文件约 10917 行,可能形成阅读、变更和评审负担。"},{"id":"engineering:hotspot:large-file:managed_components-lvgl__lvgl-src-font-lv_font_montserrat_42.c","title":"大文件:managed_components/lvgl__lvgl/src/font/lv_font_montserrat_42.c","kind":"大文件","targetPath":"managed_components/lvgl__lvgl/src/font/lv_font_montserrat_42.c","signal":"约 10091 行代码或文档","summary":"该文件约 10091 行,可能形成阅读、变更和评审负担。"},{"id":"engineering:hotspot:collaboration-pressure:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp","title":"承担外部协作的候选对象:main","kind":"承担外部协作的候选对象","targetPath":"apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp","signal":"连接多个外部对象或能力","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。"},{"id":"engineering:hotspot:collaboration-pressure:apps-linux_cardputer_zero-tests-linux_cardputer_zero_packaging_smoke.cpp","title":"承担外部协作的候选对象:main","kind":"承担外部协作的候选对象","targetPath":"apps/linux_cardputer_zero/tests/linux_cardputer_zero_packaging_smoke.cpp","signal":"连接多个外部对象或能力","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。"},{"id":"engineering:hotspot:reuse-pressure:apps-linux_cardputer_zero-tests-linux_cardputer_zero_business_wiring_smoke.cpp","title":"被广泛复用的候选对象:contains","kind":"被广泛复用的候选对象","targetPath":"apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp","signal":"被多处代码引用或调用","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。"},{"id":"engineering:hotspot:reuse-pressure:apps-linux_cardputer_zero-tests-linux_cardputer_zero_packaging_smoke.cpp","title":"被广泛复用的候选对象:contains","kind":"被广泛复用的候选对象","targetPath":"apps/linux_cardputer_zero/tests/linux_cardputer_zero_packaging_smoke.cpp","signal":"被多处代码引用或调用","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。"},{"id":"engineering:hotspot:collaboration-pressure:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp","title":"承担外部协作的候选对象:launchSettingsLayout","kind":"承担外部协作的候选对象","targetPath":"apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp","signal":"连接多个外部对象或能力","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。"},{"id":"engineering:hotspot:reuse-pressure:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_widgets.cpp","title":"被广泛复用的候选对象:makeLabel","kind":"被广泛复用的候选对象","targetPath":"apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp","signal":"被多处代码引用或调用","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。"},{"id":"engineering:hotspot:reuse-pressure:managed_components-lvgl__lvgl-examples-layouts-flex-lv_example_flex_1.c","title":"被广泛复用的候选对象:../../lv_examples.h","kind":"被广泛复用的候选对象","targetPath":"managed_components/lvgl__lvgl/examples/layouts/flex/lv_example_flex_1.c","signal":"被多处代码引用或调用","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。"},{"id":"engineering:hotspot:dependency-cluster:boards","title":"依赖簇:boards","kind":"依赖聚集边界","targetPath":"boards","signal":"依赖多个外部工程边界","summary":"该模块依赖多个外部边界,当前按候选技术耦合中心处理;图中只保留仓库证据已经观察到的依赖方向和边界。"},{"id":"engineering:hotspot:collaboration-pressure:boards-tlora_pager-src-tlora_pager_board.cpp","title":"承担外部协作的候选对象:boards/tlora_pager/src/tlora_pager_board.cpp","kind":"承担外部协作的候选对象","targetPath":"boards/tlora_pager/src/tlora_pager_board.cpp","signal":"连接多个外部对象或能力","summary":"该符号连接多个外部对象或能力,可能承担编排、聚合或过宽责任。"},{"id":"engineering:hotspot:reuse-pressure:apps-linux_uconsole_gtk-src-platform-gtk-gtk_uconsole_settings_layout.cpp","title":"被广泛复用的候选对象:makeSettingsRow","kind":"被广泛复用的候选对象","targetPath":"apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp","signal":"被多处代码引用或调用","summary":"该符号被多处代码引用或调用,可能是共享核心、隐式接口或变更扩散点。"}]}</script>
</main>
</body>
</html>