auto-connect + GUI per-channel indicators

- chat_core_connect_auto: direct ETCP connect from SQLite (no BGP)
- auto_connect: parallel connect to peers with 3s timeout, retry 10s
- RTT saved to node_addresses on disconnect
- vertical status bar + circle badge with online count per channel
- ChannelListView prevents deselection
This commit is contained in:
Evgeny committed 2026-07-15 06:00:43 +03:00
1 parent 1a0229fd4f
commit dccf54b30b
22 files changed
+909 -10

No files matched your search

+16
View File
@@ -72,6 +72,10 @@ static const QSet<QString> NETWORK_KEYS = {
"id", "pubkey", "signing_key"
};
static const QSet<QString> NTP_KEYS = {
"enabled", "server", "interval"
};
static const QStringList VALID_DEBUG_LEVELS = {
"none", "error", "warn", "info", "debug", "trace"
};
@@ -92,6 +96,7 @@ static bool isSectionValid(const QString& section) {
if (section == "tcp_proxy_client") return true;
if (section == "tcp_proxy_server") return true;
if (section == "msg_transport") return true;
if (section == "ntp") return true;
return false;
}
@@ -109,6 +114,7 @@ static const QSet<QString>* keysForSection(const QString& section) {
if (section == "tcp_proxy_client") return &TCP_PROXY_CLIENT_KEYS;
if (section == "tcp_proxy_server") return &TCP_PROXY_SERVER_KEYS;
if (section == "msg_transport") return &MSG_TRANSPORT_KEYS;
if (section == "ntp") return &NTP_KEYS;
return nullptr; // [debug] — free-form, no key validation
}
@@ -339,6 +345,16 @@ bool NodeConfig::save() {
out << "debug_level=" << (m_debugLevel.isEmpty() ? "info" : m_debugLevel) << "\n";
out << "debug_categories=" << m_debugCategories << "\n\n";
out << "[ntp]\n";
out << "enabled=yes\n";
out << "server=pool.ntp.org\n";
out << "server=time.google.com\n";
out << "server=time.cloudflare.com\n";
out << "server=time.windows.com\n";
out << "server=ntp1.vniiftri.ru\n";
out << "server=ntp2.vniiftri.ru\n";
out << "interval=3600\n\n";
f.close();
return true;
}