✔ type labels and video capability preserve legacy video while rejecting text and unknown (1.042ms) ✔ rendered real chat template keeps text tools while excluding call controls in text mode (201.7263ms) ✔ text mode hides all live call entries and refuses direct group invocation (52.6597ms) ✔ all SDK outgoing paths stop before touching SDK when current appointment is text (50.1941ms) ✔ video preflight uses actual appointment and prevents a server-side change to text (44.9134ms) ✔ historical phone is audio-only; missing server confirmation never enables video (45.8624ms) ✔ singleton call guard switches to current chat and cancels a pending old context (2.7073ms) ℹ tests 7 ℹ suites 0 ℹ pass 7 ℹ fail 0 ℹ cancelled 0 ℹ skipped 0 ℹ todo 0 ℹ duration_ms 1045.4102