chatgui: create group, unified logging, fix uasync_post epoll bug

- Add CreateGroupDialog with group name input
- Generate X25519+Ed25519 keypairs, random uint64 channel_id,
  Ed25519 signature, write to DB via uasync thread
- chat_core_create_channel(): create msg table, topo_node_sqlite_channel_put()
- GUI_EVT_CHANNEL_UPDATED notification to reload channel list
- Per-category debug config: debug_level= + debug_categories= in [gui]
- Unified logging via debug_config: all threads write to same file/console
- debug_enable_console(1) to mirror file output to stderr
- DEBUG_LEVEL_DISABLED=-1: truly disable category, NONE=0 fallback to global
- Fix uasync_post under epoll: process_posted_tasks was never called
- Fix MainWindow constructor parameter ordering (dbPath vs debugFile)
- debug_ui.h: append mode ('a' instead of 'w')
This commit is contained in:
Evgeny committed 2026-07-12 17:39:20 +03:00
1 parent a9a6b6bb10
commit de7841f33a
26 files changed
+761 -265

No files matched your search

+5 -1
View File
@@ -125,6 +125,8 @@ bool NodeConfig::load() {
} else if (section == "gui") {
if (key == "db_path") m_dbPath = val;
else if (key == "debug_file") m_debugFile = val;
else if (key == "debug_level") m_debugLevel = val;
else if (key == "debug_categories") m_debugCategories = val;
}
}
f.close();
@@ -169,7 +171,9 @@ bool NodeConfig::save() {
out << "[gui]\n";
out << "db_path=" << (m_dbPath.isEmpty() ? "chats.db" : m_dbPath) << "\n";
out << "debug_file=" << m_debugFile << "\n\n";
out << "debug_file=" << m_debugFile << "\n";
out << "debug_level=" << (m_debugLevel.isEmpty() ? "info" : m_debugLevel) << "\n";
out << "debug_categories=" << m_debugCategories << "\n\n";
f.close();
return true;