feat: merge pipeline, per-user credentials, unified picker, group contacts

- Enable merge UI for linking channel contacts to tenant_users
- Contact → tenant_user resolution with cached lookup (60s TTL)
- MCP per-user credentials via user-keyed connection pool
- Secure CLI per-user credentials with AES-256-GCM encryption
- Unified UserPickerCombobox searching contacts + tenant_users
- Group contact collection with chat title in all channels
- Group permission inheritance via wildcard user_id="*"
- Fix heartbeat using wrong userID in group chats
- Filter internal senders from contact collection
- Add contact_type column (user/group) to channel_contacts
- SQLite schema v2 migration for desktop edition
This commit is contained in:
viettranx committed 2026-03-29 22:33:17 +07:00
1 parent 4cb6991fc6
commit 21b6c454ca
81 files changed
+2015 -632

No files matched your search

+1
View File
@@ -1036,6 +1036,7 @@ CREATE TABLE IF NOT EXISTS channel_contacts (
username VARCHAR(255),
avatar_url TEXT,
peer_kind VARCHAR(20),
contact_type VARCHAR(20) NOT NULL DEFAULT 'user',
metadata TEXT DEFAULT '{}',
merged_id TEXT,
tenant_id TEXT NOT NULL REFERENCES tenants(id),