refactor(structure): relocate remaining legacy files out of main

This commit is contained in:
admin
2026-02-26 10:25:31 +08:00
parent 044618b4ed
commit 4526dad056
5 changed files with 5 additions and 5 deletions

View File

@@ -5,13 +5,13 @@
- `components/domain/{include,internal,src}`: business-domain services. - `components/domain/{include,internal,src}`: business-domain services.
- `components/control_plane/{include,internal,src}`: lifecycle, policy, health, retry/backoff orchestration. - `components/control_plane/{include,internal,src}`: lifecycle, policy, health, retry/backoff orchestration.
- `components/app_composition/{include,internal,src}`: composition boundary; `app_main` only wires modules. - `components/app_composition/{include,internal,src}`: composition boundary; `app_main` only wires modules.
- `main/dependency_whitelist.md`: approved exceptions for unavoidable lateral dependencies. - `dependency_whitelist.md`: approved exceptions for unavoidable lateral dependencies.
- `main/third_party/`, `components/domain/assets/fonts/`, `tools/`: vendored code, embedded assets, utility scripts. - `components/domain/third_party/`, `components/domain/assets/fonts/`, `tools/`: vendored code, embedded assets, utility scripts.
- `build/`: generated artifacts only (ignored). - `build/`: generated artifacts only (ignored).
## Mandatory Architecture Constraints ## Mandatory Architecture Constraints
1. Dependencies are one-way only: `app_composition -> control_plane -> domain -> platform`. 1. Dependencies are one-way only: `app_composition -> control_plane -> domain -> platform`.
2. Lateral direct dependencies are forbidden unless listed in `main/dependency_whitelist.md`. 2. Lateral direct dependencies are forbidden unless listed in `dependency_whitelist.md`.
3. Cross-domain communication must use events or Port interfaces; never include another domain's `internal/*.h`. 3. Cross-domain communication must use events or Port interfaces; never include another domain's `internal/*.h`.
4. Each component keeps one public header in `include/`; private headers stay in `internal/` via `PRIV_INCLUDE_DIRS`. 4. Each component keeps one public header in `include/`; private headers stay in `internal/` via `PRIV_INCLUDE_DIRS`.
5. Runtime state must have a single source of truth (SSOT); other modules subscribe/query instead of copying fields. 5. Runtime state must have a single source of truth (SSOT); other modules subscribe/query instead of copying fields.

View File

@@ -15,10 +15,10 @@ idf_component_register(
"src/voice_interaction_ws_audio.c" "src/voice_interaction_ws_audio.c"
"src/voice_interaction_marker.c" "src/voice_interaction_marker.c"
"src/voice_interaction_tasks.c" "src/voice_interaction_tasks.c"
"../../main/third_party/qrcodegen.c" "third_party/qrcodegen.c"
INCLUDE_DIRS INCLUDE_DIRS
"include" "include"
"../../main/third_party" "third_party"
PRIV_INCLUDE_DIRS PRIV_INCLUDE_DIRS
"internal" "internal"
REQUIRES REQUIRES