refactor(structure): relocate remaining legacy files out of main
This commit is contained in:
@@ -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.
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user