27 lines
1.4 KiB
Markdown
27 lines
1.4 KiB
Markdown
# Mode Profile Library Plan
|
|
|
|
## Goal
|
|
|
|
Add a long-term cabin mode configuration layer that can be matched from natural-language requests before normal CAN compilation.
|
|
|
|
## Scope
|
|
|
|
- Add repository-backed mode YAML files under `config/modes/`.
|
|
- Convert matched mode operations into the same model-plan requests already used by seat, climate, roof, and ambient-light adapters.
|
|
- Preserve current behavior for unmatched or extra user goals by letting the AI/local parser generate temporary requests.
|
|
- Allow a recent successful action set to be saved as a long-term mode profile when the user explicitly asks to solidify a mode.
|
|
- Expose available modes to the web console and wire the existing quick-mode/save controls to the new workflow.
|
|
|
|
## Tests First
|
|
|
|
- Unit-test mode profile loading, matching, request conversion, and save-to-YAML behavior.
|
|
- Integration-test zero-gravity matching alone.
|
|
- Integration-test zero-gravity plus a temporary roof request producing a cross-domain `SceneConfig`.
|
|
- Integration-test saving the previous successful action set as a long-term mode file without emitting CAN.
|
|
|
|
## Design Notes
|
|
|
|
- The mode library stores semantic operations, not CAN frames. CAN remains generated by the existing domain compilers.
|
|
- Seat-related operations in modes still pass through vehicle-profile angle/percentage calibration.
|
|
- Save-mode detection is intentionally narrower than seat posture preset saving to avoid changing existing preset behavior.
|