feat: integrate cabin CAN and verified dynamic seat modes

This commit is contained in:
vee
2026-08-04 17:51:38 +08:00
parent 155fbb59ba
commit dc7c91800e
99 changed files with 51897 additions and 3618 deletions
@@ -32,6 +32,41 @@ class SeatServiceIntegrationTests(unittest.TestCase):
for event in result["trace_events"]:
self.assertEqual(self.service.contracts.validate(event), [])
def test_dynamic_mode_runs_until_explicit_natural_language_stop(self) -> None:
conversation_id = "conv-dynamic-stop"
started = self.service.process(
"\u5f00\u542f\u52a8\u6001\u6447\u7bee\u6a21\u5f0f",
provider="local",
conversation_id=conversation_id,
vehicle_id="denza_n7",
)
stopped = self.service.process(
"\u5173\u95ed\u52a8\u6001\u6447\u7bee\u6a21\u5f0f",
provider="local",
conversation_id=conversation_id,
vehicle_id="denza_n7",
)
self.assertEqual(started["status"], "succeeded")
self.assertEqual(
started["actuator_state"]["passenger"]["dynamic_mode"],
{
"mode_id": 2,
"name": "\u52a8\u6001\u6447\u7bee\u6a21\u5f0f",
"state": "running",
"repeat": "until_stopped_or_timeout",
"max_runtime_ms": 600_000,
},
)
self.assertEqual(stopped["status"], "succeeded")
operation = stopped["function_config"]["spec"]["operations"][0]
self.assertEqual(operation["capability"], "seat.stop_dynamic_mode")
self.assertEqual(operation["parameters"], {})
self.assertEqual(
stopped["actuator_state"]["passenger"]["dynamic_mode"]["state"],
"idle",
)
def test_gear_request_is_preserved_and_simulated(self) -> None:
result = self.service.process("副驾座椅加热开到三档", provider="local")