- entity.py: decorate the dispatcher target _handle_update with @callback so it
runs on the event loop. Without it, async_dispatcher_send offloaded the plain
sync callback to an executor thread, and async_write_ha_state raised
"calls async_write_ha_state from a thread other than the event loop".
- config_flow.py: replace the free-text Assist agent field with
ConversationAgentSelector (a proper agent dropdown), and use LanguageSelector
for the language field.
- README: clarify that the built-in Assist agent only handles device commands;
an LLM conversation agent is required for free-form chat.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>