From 19c85db89a1ef9e4a2e923c90962641cf08e98f6 Mon Sep 17 00:00:00 2001 From: Mikhail Putilovskij Date: Wed, 8 Apr 2026 01:29:02 +0300 Subject: [PATCH] Persist canonical prototype user state --- sdk/prototype_state.py | 4 +++- tests/platform/test_prototype_state.py | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/sdk/prototype_state.py b/sdk/prototype_state.py index 4682bd9..78243e4 100644 --- a/sdk/prototype_state.py +++ b/sdk/prototype_state.py @@ -42,7 +42,9 @@ class PrototypeStateStore: key = f"{platform}:{external_id}" existing = self._users.get(key) if existing is not None: - return existing.model_copy(update={"is_new": False}) + stored = existing.model_copy(update={"is_new": False}) + self._users[key] = stored + return stored user = User( user_id=f"usr-{platform}-{external_id}", diff --git a/tests/platform/test_prototype_state.py b/tests/platform/test_prototype_state.py index 2a49375..3c2c25a 100644 --- a/tests/platform/test_prototype_state.py +++ b/tests/platform/test_prototype_state.py @@ -24,6 +24,7 @@ async def test_get_or_create_user_is_stable_per_surface_identity(): assert second.user_id == first.user_id assert second.is_new is False assert second.display_name == "Alice" + assert store._users["matrix:@alice:example.org"].is_new is False @pytest.mark.asyncio