Feat v0.6.15 user display audit
Some checks failed
CI/CD / detect-changes (pull_request) Successful in 3s
CI/CD / test-frontend (pull_request) Successful in 6s
CI/CD / build-and-deploy (pull_request) Has been cancelled
CI/CD / test-go-pg (pull_request) Has been cancelled
CI/CD / test-sqlite (pull_request) Has been cancelled

Add batch user resolve endpoint, sw.users SDK module, and migrate all
surfaces to show display_name instead of UUIDs. Canonical fallback chain:
display_name → username → "Unknown".

- GET /api/v1/users/resolve?ids=... (max 100, map response)
- sw.users.resolve(), resolveMany(), displayName() with 60s cache
- Chat participants resolved from users table, not snapshot
- Admin users/teams/groups/team-admin show display_name
- Chat-core participants.display_name column deprecated
- 5 new handler tests, OpenAPI spec updated

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-01 14:19:03 +00:00
parent c9b9e68c18
commit a8204859b5
21 changed files with 542 additions and 35 deletions

View File

@@ -1355,6 +1355,42 @@ paths:
items:
type: object
/api/v1/users/resolve:
get:
summary: Resolve user identities by ID
operationId: resolveUsers
tags: [Presence]
parameters:
- name: ids
in: query
required: true
description: Comma-separated user IDs (max 100)
schema:
type: string
responses:
'200':
description: Map of user ID to identity record
content:
application/json:
schema:
type: object
properties:
data:
type: object
additionalProperties:
type: object
properties:
id:
type: string
username:
type: string
display_name:
type: string
handle:
type: string
avatar_url:
type: string
# ──────────────────────────────────────────────
# Notifications
# ──────────────────────────────────────────────