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