Update version to 0.1.43 and enhance conversation continuity with stable fallback session IDs

This commit is contained in:
techartdev
2026-02-21 00:40:47 +02:00
parent f070299c26
commit dfb4718e09
8 changed files with 44 additions and 4 deletions
+18
View File
@@ -0,0 +1,18 @@
# Python bytecode and cache
__pycache__/
*.py[cod]
*$py.class
# Common virtual environments
.venv/
venv/
env/
# Tool caches
.pytest_cache/
.mypy_cache/
.ruff_cache/
# OS/editor noise
.DS_Store
Thumbs.db
+6
View File
@@ -2,6 +2,12 @@
All notable changes to the OpenClaw Home Assistant Integration will be documented in this file.
## [0.1.43] - 2026-02-21
### Fixed
- Improved Home Assistant Assist conversation continuity by using stable fallback session IDs when `conversation_id` is missing.
- Assist now falls back to per-user (`assist_user_*`) or per-device (`assist_device_*`) session keys instead of a single generic default.
## [0.1.42] - 2026-02-21
### Added
+1 -1
View File
@@ -92,7 +92,7 @@ _CARD_PATH = Path(__file__).parent / "www" / _CARD_FILENAME
# URL at which the card JS is served (registered via register_static_path)
_CARD_STATIC_URL = f"/openclaw/{_CARD_FILENAME}"
# Versioned URL used for Lovelace resource registration to avoid stale browser cache
_CARD_URL = f"{_CARD_STATIC_URL}?v=0.1.42"
_CARD_URL = f"{_CARD_STATIC_URL}?v=0.1.43"
OpenClawConfigEntry = ConfigEntry
+17 -1
View File
@@ -107,7 +107,7 @@ class OpenClawConversationAgent(conversation.AbstractConversationAgent):
coordinator: OpenClawCoordinator = entry_data["coordinator"]
message = user_input.text
conversation_id = user_input.conversation_id or "default"
conversation_id = self._resolve_conversation_id(user_input)
assistant_id = "conversation"
options = self.entry.options
include_context = options.get(
@@ -189,6 +189,22 @@ class OpenClawConversationAgent(conversation.AbstractConversationAgent):
conversation_id=conversation_id,
)
def _resolve_conversation_id(self, user_input: conversation.ConversationInput) -> str:
"""Return conversation id from HA or a stable Assist fallback session key."""
if user_input.conversation_id:
return user_input.conversation_id
context = getattr(user_input, "context", None)
user_id = getattr(context, "user_id", None)
if user_id:
return f"assist_user_{user_id}"
device_id = getattr(user_input, "device_id", None)
if device_id:
return f"assist_device_{device_id}"
return "assist_default"
async def _get_response(
self,
client: OpenClawApiClient,
+1 -1
View File
@@ -8,7 +8,7 @@
"iot_class": "local_polling",
"issue_tracker": "https://github.com/techartdev/OpenClawHomeAssistant/issues",
"requirements": [],
"version": "0.1.42",
"version": "0.1.43",
"dependencies": ["conversation"],
"after_dependencies": ["hassio", "lovelace"]
}
+1 -1
View File
@@ -1,7 +1,7 @@
(async () => {
try {
if (!customElements.get("openclaw-chat-card")) {
const src = "/openclaw/openclaw-chat-card.js?v=0.1.42";
const src = "/openclaw/openclaw-chat-card.js?v=0.1.43";
console.info("OpenClaw loader importing", src);
await import(src);
}