Show connected user's latest update time on umbral contacts

Override updated_at on PersonResponse with max(Person, User, Settings)
so the panel reflects when the connected user last changed their profile.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Kyle 2026-03-04 08:44:54 +08:00
parent 73cef1df55
commit 568a78e64b

View File

@ -102,13 +102,21 @@ async def get_people(
) )
# umbral_name is always visible (public identity), not a shareable field # umbral_name is always visible (public identity), not a shareable field
shared_profiles[uid]["umbral_name"] = user.umbral_name shared_profiles[uid]["umbral_name"] = user.umbral_name
shared_profiles[uid]["_updated_at"] = max(
user.updated_at, user_settings.updated_at
)
# Attach to response # Attach to response
responses = [] responses = []
for p in people: for p in people:
resp = PersonResponse.model_validate(p) resp = PersonResponse.model_validate(p)
if p.linked_user_id and p.linked_user_id in shared_profiles: if p.linked_user_id and p.linked_user_id in shared_profiles:
resp.shared_fields = shared_profiles[p.linked_user_id] profile = shared_profiles[p.linked_user_id]
resp.shared_fields = profile
# Show the latest update time across local record and connected user's profile
remote_updated = profile.pop("_updated_at", None)
if remote_updated and remote_updated > p.updated_at:
resp.updated_at = remote_updated
responses.append(resp) responses.append(resp)
return responses return responses
@ -179,6 +187,10 @@ async def get_person(
linked_user, linked_settings, conn.sharing_overrides if conn else None linked_user, linked_settings, conn.sharing_overrides if conn else None
) )
resp.shared_fields["umbral_name"] = linked_user.umbral_name resp.shared_fields["umbral_name"] = linked_user.umbral_name
# Show the latest update time across local record and connected user's profile
remote_updated = max(linked_user.updated_at, linked_settings.updated_at)
if remote_updated > person.updated_at:
resp.updated_at = remote_updated
return resp return resp