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
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:
35
CHANGELOG.md
35
CHANGELOG.md
@@ -2,6 +2,41 @@
|
||||
|
||||
All notable changes to Armature are documented here.
|
||||
|
||||
## v0.6.15 — User Display Audit
|
||||
|
||||
Every user-facing identity surface now shows human-readable names instead of
|
||||
UUIDs, with the canonical fallback chain: `display_name → username → "Unknown"`.
|
||||
|
||||
### Added
|
||||
|
||||
- **`GET /api/v1/users/resolve?ids=...`** — batch endpoint returns identity
|
||||
records (username, display_name, handle, avatar_url) for up to 100 user IDs.
|
||||
Response keyed by ID for O(1) client lookups.
|
||||
- **`sw.users` SDK module** — `resolve(id)`, `resolveMany(ids)`,
|
||||
`displayName(user)` with 60-second local cache. Surfaces use this instead
|
||||
of ad-hoc lookups or stale snapshots.
|
||||
- **5 handler tests** for the resolve endpoint (single, multiple, missing,
|
||||
empty, no-param).
|
||||
|
||||
### Changed
|
||||
|
||||
- **Admin users list** — shows `display_name || username` as primary
|
||||
identifier, with username shown as secondary when display_name is set.
|
||||
- **Admin teams/groups member lists** — replaced `username || user_id`
|
||||
with `display_name || username || 'Unknown'`.
|
||||
- **Team-admin members** — dropdown and list now show display_name.
|
||||
- **Chat participants** — resolved from users table via `sw.users.resolveMany()`
|
||||
instead of relying on creation-time snapshot. Message sender names, typing
|
||||
indicators, and participant sidebar all use resolved names.
|
||||
- **Dashboard greeting** — added `|| 'Unknown'` terminal fallback.
|
||||
- **Team activity log** — capitalized fallback to `'Unknown'`.
|
||||
|
||||
### Deprecated
|
||||
|
||||
- **`participants.display_name` column** in chat-core — column retained for
|
||||
backward compatibility but UI no longer relies on snapshot values. Comments
|
||||
added to `packages/chat-core/script.star` noting deprecation.
|
||||
|
||||
## v0.6.14 — Visual Polish
|
||||
|
||||
Systematic cleanup of stale values, self-hosted fonts, and rendering fixes.
|
||||
|
||||
Reference in New Issue
Block a user