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

+2 -5
View File
@@ -5,7 +5,6 @@
#include "mainwindow.h"
#include "../db/db_manager.h"
#include "../transport/node_config.h"
#include "debug_ui.h"
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
@@ -55,16 +54,14 @@ int main(int argc, char *argv[]) {
cfg.save();
}
if (!cfg.debugFile().isEmpty())
guiDebugFile(cfg.debugFile().toUtf8().constData());
QString dbPath = cfg.dbPath();
if (dbPath.isEmpty()) dbPath = "chats.db";
if (!QDir::isAbsolutePath(dbPath))
dbPath = QCoreApplication::applicationDirPath() + "/" + dbPath;
DbManager db(dbPath);
MainWindow w(nullptr, &db, cfgPath, cfg.debugFile());
MainWindow w(nullptr, &db, cfgPath, dbPath, cfg.debugFile(),
cfg.debugLevel(), cfg.debugCategories());
w.show();
return app.exec();