mirror of
https://github.com/vicliu624/trail-mate.git
synced 2026-07-12 06:39:00 +00:00
89 lines
1.6 MiB
Plaintext
89 lines
1.6 MiB
Plaintext
<!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>Git:34aad0bffa2f / 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="[{"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":"contains","reason":"打开 managed_components 的包级图,先确认它是什么工程边界,再用文件规模、符号规模、跨模块引用方向和下钻图判断它是入口模块、共享能力、runtime 支撑还是基础设施边界。 可继续下钻到 4 个 Technical Hotspot。"},{"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":"contains","reason":"打开 build.t_display_p4_tft 的包级图,先确认它是什么工程边界,再用文件规模、符号规模、跨模块引用方向和下钻图判断它是入口模块、共享能力、runtime 支撑还是基础设施边界。 可继续下钻到 1 个 Technical Hotspot。"},{"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":"contains","reason":"打开 build.tdisplayp4_tft 的包级图,先确认它是什么工程边界,再用文件规模、符号规模、跨模块引用方向和下钻图判断它是入口模块、共享能力、runtime 支撑还是基础设施边界。 可继续下钻到 1 个 Technical Hotspot。"},{"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":"contains","reason":"打开 boards 的包级图,先确认它是什么工程边界,再用文件规模、符号规模、跨模块引用方向和下钻图判断它是入口模块、共享能力、runtime 支撑还是基础设施边界。 可继续下钻到 2 个 Component Diagram、5 个 Class / Structural Diagram、2 个 Technical Hotspot。"},{"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":"contains","reason":"打开 build.tdisplayp4_amoled 的包级图,先确认它是什么工程边界,再用文件规模、符号规模、跨模块引用方向和下钻图判断它是入口模块、共享能力、runtime 支撑还是基础设施边界。 可继续下钻到 1 个 Technical Hotspot。"},{"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":"contains","reason":"打开 build.c6_companion 的包级图,先确认它是什么工程边界,再用文件规模、符号规模、跨模块引用方向和下钻图判断它是入口模块、共享能力、runtime 支撑还是基础设施边界。 可继续下钻到 1 个 Technical Hotspot。"},{"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":"contains","reason":"打开 apps/linux_uconsole_gtk 的包级图,先确认它是什么工程边界,再用文件规模、符号规模、跨模块引用方向和下钻图判断它是入口模块、共享能力、runtime 支撑还是基础设施边界。 可继续下钻到 8 个 Component Diagram、3 个 Technical Hotspot。"},{"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":"contains","reason":"打开 apps/esp32_lvgl 的包级图,先确认它是什么工程边界,再用文件规模、符号规模、跨模块引用方向和下钻图判断它是入口模块、共享能力、runtime 支撑还是基础设施边界。 可继续下钻到 3 个 Component Diagram、6 个 Sequence Diagram。"},{"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":"contains","reason":"打开 firmware 的包级图,先确认它是什么工程边界,再用文件规模、符号规模、跨模块引用方向和下钻图判断它是入口模块、共享能力、runtime 支撑还是基础设施边界。 可继续下钻到 2 个 Component Diagram。"},{"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":"contains","reason":"打开 apps/nrf52_node 的包级图,先确认它是什么工程边界,再用文件规模、符号规模、跨模块引用方向和下钻图判断它是入口模块、共享能力、runtime 支撑还是基础设施边界。"},{"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":"contains","reason":"打开 apps/linux_cardputer_zero 的包级图,先确认它是什么工程边界,再用文件规模、符号规模、跨模块引用方向和下钻图判断它是入口模块、共享能力、runtime 支撑还是基础设施边界。 可继续下钻到 4 个 Component Diagram、2 个 Technical Hotspot。"},{"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":"contains","reason":"打开 apps/linux_sim_shell 的包级图,先确认它是什么工程边界,再用文件规模、符号规模、跨模块引用方向和下钻图判断它是入口模块、共享能力、runtime 支撑还是基础设施边界。"}]">
|
||
<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="[{"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/tests/linux_cardputer_zero_business_wiring_smoke.cpp 的哪类技术对象、承担什么职责、被引用/调用关系和对外依赖/调用关系是否形成变更压力,以及它与结构图、sequence 和热点的关系。 可继续下钻到 2 个 Technical Hotspot。"},{"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/tests/linux_cardputer_zero_business_wiring_smoke.cpp 的哪类技术对象、承担什么职责、被引用/调用关系和对外依赖/调用关系是否形成变更压力,以及它与结构图、sequence 和热点的关系。 可继续下钻到 2 个 Technical Hotspot。"},{"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/src/platform/gtk/gtk_uconsole_settings_layout.cpp 的哪类技术对象、承担什么职责、被引用/调用关系和对外依赖/调用关系是否形成变更压力,以及它与结构图、sequence 和热点的关系。 可继续下钻到 3 个 Technical Hotspot。"},{"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/src/platform/gtk/gtk_uconsole_widgets.cpp 的哪类技术对象、承担什么职责、被引用/调用关系和对外依赖/调用关系是否形成变更压力,以及它与结构图、sequence 和热点的关系。 可继续下钻到 3 个 Technical Hotspot。"},{"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/src/platform/gtk/gtk_uconsole_settings_layout.cpp 的哪类技术对象、承担什么职责、被引用/调用关系和对外依赖/调用关系是否形成变更压力,以及它与结构图、sequence 和热点的关系。 可继续下钻到 3 个 Technical Hotspot。"},{"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/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp 的哪类技术对象、承担什么职责、被引用/调用关系和对外依赖/调用关系是否形成变更压力,以及它与结构图、sequence 和热点的关系。 可继续下钻到 5 个 Sequence Diagram。"},{"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/tests/linux_cardputer_zero_business_wiring_smoke.cpp 的哪类技术对象、承担什么职责、被引用/调用关系和对外依赖/调用关系是否形成变更压力,以及它与结构图、sequence 和热点的关系。 可继续下钻到 2 个 Technical Hotspot。"},{"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/c6_companion/tests/test_tm_services_functional.cpp 的哪类技术对象、承担什么职责、被引用/调用关系和对外依赖/调用关系是否形成变更压力,以及它与结构图、sequence 和热点的关系。"},{"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/tests/esp32_lvgl_sd_coredump_contract_smoke.cpp 的哪类技术对象、承担什么职责、被引用/调用关系和对外依赖/调用关系是否形成变更压力,以及它与结构图、sequence 和热点的关系。 可继续下钻到 5 个 Sequence Diagram。"},{"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/t_echo_lite/include/boards/t_echo_lite/board_profile.h 的哪类技术对象、承担什么职责、被引用/调用关系和对外依赖/调用关系是否形成变更压力,以及它与结构图、sequence 和热点的关系。 可继续下钻到 2 个 Class / Structural Diagram、2 个 Technical Hotspot。"},{"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/t_echo_lite/include/boards/t_echo_lite/board_profile.h 的哪类技术对象、承担什么职责、被引用/调用关系和对外依赖/调用关系是否形成变更压力,以及它与结构图、sequence 和热点的关系。 可继续下钻到 2 个 Class / Structural Diagram、2 个 Technical Hotspot。"},{"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/src/platform/gtk/gtk_uconsole_shell.cpp 的哪类技术对象、承担什么职责、被引用/调用关系和对外依赖/调用关系是否形成变更压力,以及它与结构图、sequence 和热点的关系。 可继续下钻到 3 个 Technical Hotspot。"}]">
|
||
<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="[{"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":"contains","reason":"打开 结构协作:结构切片 boards · gat562_mesh_evb_pro/include/boards,查看 boards/gat562_mesh_evb_pro/include/boards 中类、接口和值对象是否共同解释一个业务能力、共享支撑机制或适配边界;如果不能解释共同语境,这张图就应该拆分或降级。 可继续下钻到 1 个 Technical Hotspot。"},{"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":"contains","reason":"打开 结构协作:结构切片 boards · t_echo_lite/include/boards,查看 boards/t_echo_lite/include/boards 中类、接口和值对象是否共同解释一个业务能力、共享支撑机制或适配边界;如果不能解释共同语境,这张图就应该拆分或降级。 可继续下钻到 2 个 Component Diagram、1 个 Technical Hotspot。"},{"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":"contains","reason":"打开 结构协作:结构切片 boards · tab5/include/boards,查看 boards/tab5/include/boards 中类、接口和值对象是否共同解释一个业务能力、共享支撑机制或适配边界;如果不能解释共同语境,这张图就应该拆分或降级。 可继续下钻到 1 个 Technical Hotspot。"},{"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":"contains","reason":"打开 结构协作:结构切片 boards · t_display_p4/include/boards,查看 boards/t_display_p4/include/boards 中类、接口和值对象是否共同解释一个业务能力、共享支撑机制或适配边界;如果不能解释共同语境,这张图就应该拆分或降级。 可继续下钻到 1 个 Technical Hotspot。"},{"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":"contains","reason":"打开 结构协作:结构切片 boards · tlora_pager/include/boards,查看 boards/tlora_pager/include/boards 中类、接口和值对象是否共同解释一个业务能力、共享支撑机制或适配边界;如果不能解释共同语境,这张图就应该拆分或降级。 可继续下钻到 1 个 Technical Hotspot。"},{"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","relation":"contains","reason":"打开 结构协作:结构切片 boards · tdeck/include/boards,查看 boards/tdeck/include/boards 中类、接口和值对象是否共同解释一个业务能力、共享支撑机制或适配边界;如果不能解释共同语境,这张图就应该拆分或降级。 可继续下钻到 1 个 Technical Hotspot。"},{"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","relation":"contains","reason":"打开 结构协作:结构切片 boards · tdeck_pro/include/boards,查看 boards/tdeck_pro/include/boards 中类、接口和值对象是否共同解释一个业务能力、共享支撑机制或适配边界;如果不能解释共同语境,这张图就应该拆分或降级。 可继续下钻到 1 个 Technical Hotspot。"},{"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","relation":"contains","reason":"打开 结构协作:结构切片 boards · twatchs3/include/boards,查看 boards/twatchs3/include/boards 中类、接口和值对象是否共同解释一个业务能力、共享支撑机制或适配边界;如果不能解释共同语境,这张图就应该拆分或降级。 可继续下钻到 1 个 Technical Hotspot。"},{"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","relation":"contains","reason":"打开 结构协作:结构切片 gat562_mesh_evb_pro · gat562_mesh_evb_pro,查看 boards/gat562_mesh_evb_pro 中类、接口和值对象是否共同解释一个业务能力、共享支撑机制或适配边界;如果不能解释共同语境,这张图就应该拆分或降级。 可继续下钻到 1 个 Technical Hotspot。"},{"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","relation":"contains","reason":"打开 结构协作:结构切片 t_echo_lite · t_echo_lite,查看 boards/t_echo_lite 中类、接口和值对象是否共同解释一个业务能力、共享支撑机制或适配边界;如果不能解释共同语境,这张图就应该拆分或降级。 可继续下钻到 2 个 Component Diagram、1 个 Technical Hotspot。"}]">
|
||
<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="[{"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":"contains","reason":"打开 tick 到 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":"contains","reason":"打开 add_status_line 到 add_label 的动态协作片段,检查这次调用在相关组件、结构切片和业务下钻中承担什么运行职责。 可继续下钻到 1 个 Component Diagram。"},{"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":"contains","reason":"打开 add_u32_line 到 add_label 的动态协作片段,检查这次调用在相关组件、结构切片和业务下钻中承担什么运行职责。 可继续下钻到 1 个 Component Diagram。"},{"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":"contains","reason":"打开 add_hex_line 到 add_status_line 的动态协作片段,检查这次调用在相关组件、结构切片和业务下钻中承担什么运行职责。 可继续下钻到 1 个 Component Diagram。"},{"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":"contains","reason":"打开 companion_enter 到 add_label 的动态协作片段,检查这次调用在相关组件、结构切片和业务下钻中承担什么运行职责。 可继续下钻到 1 个 Component Diagram。"},{"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":"contains","reason":"打开 companion_enter 到 add_status_line 的动态协作片段,检查这次调用在相关组件、结构切片和业务下钻中承担什么运行职责。 可继续下钻到 1 个 Component Diagram。"},{"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","relation":"contains","reason":"打开 companion_enter 到 add_u32_line 的动态协作片段,检查这次调用在相关组件、结构切片和业务下钻中承担什么运行职责。 可继续下钻到 1 个 Component Diagram。"},{"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","relation":"contains","reason":"打开 companion_enter 到 add_hex_line 的动态协作片段,检查这次调用在相关组件、结构切片和业务下钻中承担什么运行职责。 可继续下钻到 1 个 Component Diagram。"},{"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","relation":"contains","reason":"打开 startEsp32LvglLoopRuntime 到 canStartEsp32LvglLoopRuntime 的动态协作片段,检查这次调用在相关组件、结构切片和业务下钻中承担什么运行职责。"},{"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","relation":"contains","reason":"打开 hasEsp32LvglRuntimeTargetProfile 到 esp32LvglRuntimeTargetProfile 的动态协作片段,检查这次调用在相关组件、结构切片和业务下钻中承担什么运行职责。"},{"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","relation":"contains","reason":"打开 showBootUi 到 lockUi 的动态协作片段,检查这次调用在相关组件、结构切片和业务下钻中承担什么运行职责。"},{"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","relation":"contains","reason":"打开 showBootUi 到 unlockUi 的动态协作片段,检查这次调用在相关组件、结构切片和业务下钻中承担什么运行职责。"}]">
|
||
<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="[{"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":"contains","reason":"打开 大文件: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。"},{"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":"contains","reason":"打开 大文件:build.tdisplayp4_amoled/bootloader/config/kconfig_menus.json 技术热点 的热点图,查看 build.tdisplayp4_amoled/bootloader/config/kconfig_menus.json 为什么可能抬高阅读、修改、测试或回归成本,并反向定位相关 package、component、structure 或 sequence。 可继续下钻到 1 个 Package Diagram。"},{"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":"contains","reason":"打开 大文件:build.tdisplayp4_tft/bootloader/config/kconfig_menus.json 技术热点 的热点图,查看 build.tdisplayp4_tft/bootloader/config/kconfig_menus.json 为什么可能抬高阅读、修改、测试或回归成本,并反向定位相关 package、component、structure 或 sequence。 可继续下钻到 1 个 Package Diagram。"},{"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":"contains","reason":"打开 大文件: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。"},{"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":"contains","reason":"打开 大文件:build.c6_companion/bootloader/config/kconfig_menus.json 技术热点 的热点图,查看 build.c6_companion/bootloader/config/kconfig_menus.json 为什么可能抬高阅读、修改、测试或回归成本,并反向定位相关 package、component、structure 或 sequence。 可继续下钻到 1 个 Package Diagram。"},{"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":"contains","reason":"打开 大文件: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。"},{"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":"contains","reason":"打开 大文件: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。"},{"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":"contains","reason":"打开 大文件: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。"},{"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":"contains","reason":"打开 承担外部协作的候选对象:main 技术热点 的热点图,查看 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp 为什么可能抬高阅读、修改、测试或回归成本,并反向定位相关 package、component、structure 或 sequence。 可继续下钻到 1 个 Package Diagram、4 个 Component Diagram。"},{"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":"contains","reason":"打开 被广泛复用的候选对象:contains 技术热点 的热点图,查看 apps/linux_cardputer_zero/tests/linux_cardputer_zero_business_wiring_smoke.cpp 为什么可能抬高阅读、修改、测试或回归成本,并反向定位相关 package、component、structure 或 sequence。 可继续下钻到 1 个 Package Diagram、4 个 Component Diagram。"},{"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":"contains","reason":"打开 承担外部协作的候选对象:launchSettingsLayout 技术热点 的热点图,查看 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_settings_layout.cpp 为什么可能抬高阅读、修改、测试或回归成本,并反向定位相关 package、component、structure 或 sequence。 可继续下钻到 1 个 Package Diagram、4 个 Component Diagram。"},{"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":"contains","reason":"打开 被广泛复用的候选对象:makeLabel 技术热点 的热点图,查看 apps/linux_uconsole_gtk/src/platform/gtk/gtk_uconsole_widgets.cpp 为什么可能抬高阅读、修改、测试或回归成本,并反向定位相关 package、component、structure 或 sequence。 可继续下钻到 1 个 Package Diagram、2 个 Component Diagram。"}]">
|
||
<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> |