Make behavior of conversation_id configurable

From:

CONVERSATION_TIMEOUT = timedelta(minutes=5)

if session.last_updated + CONVERSATION_TIMEOUT < now:
                LOGGER.debug("Cleaning up session %s", conversation_id)
                del all_sessions[conversation_id]
                session.async_cleanup()

I don’t want my conversations to timeout.

if conversation_id is None:
        conversation_id = ulid_now()

I want voice assist to have a conversation_id that I set, not a random set of characters that changes every 5 minutes.

What I want to do …
I have a few automations that announce stuff with conversation.process → assist_satelite.announce. If I could set the voice assist conversation_id to something like “voice” I could insert these announcements into the history and ask something like “please repeat that”.

I also want to be able to go on vacation, come back and ask “what’s the latest update on ”

I run everything locally and the realization that “context window size” and “max history messages” do not work as expected was a bit irritating.