chat: права админа + member tags (verified/deleted) + ncd revive

- chat_admin: передача канальных privkey другому узлу (encrypted+signed,
  ETCP_RT_ID_ADMIN_KEY), событие ADMIN_KEY_RECEIVED
- member_sync/bridge: tags verified/deleted, is_channel_owner, transfer_admin
  (android JNI + chatgui memberpropsdialog)
- node_conn_direct: оживление timed_out entry — обновление линков в существующем
  conn (убрать старые, добавить новые) + немедленная очистка не поднявшегося
  conn без fin_wait — фикс invite/reconnect
This commit is contained in:
evgeny committed 2026-09-07 00:53:41 +03:00
1 parent 6163f34ce1
commit 631a176944
21 files changed
+618 -163

No files matched your search

+14
View File
@@ -334,6 +334,20 @@ void MainWindow::setupBridgeCallbacks() {
QString chId = QString::fromUtf8(ch_id, ch_id_len);
s_mainWindow->m_messageList->updateMessageProgress(chId, msg_id, blocks_done, num_blocks);
});
gui_bridge_set_admin_key_received_cb([](const uint8_t* data, int len) {
if (!s_mainWindow || len < 2) return;
uint8_t chLen = data[0];
if (len < 1 + chLen + 8) return;
QString chId = QString::fromUtf8((const char*)data + 1, chLen);
uint64_t from; memcpy(&from, data + 1 + chLen, 8);
s_mainWindow->m_trayIcon->showMessage(
"vibechat",
QStringLiteral("You are now a channel co-owner.\nReceived admin key for channel %1 from 0x%2")
.arg(chId).arg(QString::number(from, 16)),
QSystemTrayIcon::Information, 5000);
if (s_mainWindow->m_currentChannelId == chId)
s_mainWindow->m_accountList->setChannel(chId);
});
}
void MainWindow::setupConnects() {