- expose email in user search/contact responses
- add add-contact-by-email API endpoint
- show email in contacts/search and add contact form by email in Contacts tab
- add chats.public_id random identifier with migration 0011
- expose public_id in chat API payloads
- use chat public_id in message search UI label
- fix users router order so /users/blocked no longer conflicts with /users/{user_id}
backend:
- add required user name and optional bio fields
- extend auth/register and user schemas/services with name/bio
- add alembic migration 0006 with safe backfill name=username
- compute per-user chat display_title for private chats
- keep Saved Messages delete-for-all protections
web:
- registration now includes name
- add profile edit modal (name/username/bio/avatar url)
- show private chat names via display_title
- fix context menus to open near cursor with viewport clamping
- stabilize +/close floating button to remove visual jump
Backend user search:
- Added users search endpoint for @username lookup.
- Implemented repository/service/router support with bounded result limits.
Web chat creation:
- Added API client for /users/search.
- Added NewChatPanel for creating private chats via @username search.
- Added group/channel creation flow from sidebar.
UX refinement:
- Hide message composer when no chat is selected.
- Show explicit placeholder: 'Выберите чат, чтобы начать переписку'.
- Added tsbuildinfo ignore rule.