db_sync: fix si_send_data_batch column bug (author→node_id), add cascade_from to PUSH, add divergence+cascade test phases

- si_send_data_batch: неправильный SQL SELECT с несуществующей колонкой author
  вместо node_id → ломал всю передачу данных в REFINE/SEND_DATA
- Добавлена проверка si_prep и возврат int с кодом ошибки
- Все вызовы si_send_data_batch проверяют возврат, при ошибке сброс sync_state
- db_handle_push: добавлен db_cascade_from после вставки (раньше chain_hash
  не пересчитывался после PUSH)
- db_handle_refine: DEBUG_WARN при scnt==0 (fm за пределами диапазона)
- Добавлена публичная db_sync_chain_verify() для верификации цепочек
- test_db_sync: фаза 4 (divergence через разныe hashes + REFINE/SEND_DATA),
  фаза 5 (PUSH без хвоста + cascade verification)
- Убран мёртвый код db_sync_on_new_conn
- chatgui: адаптивная раскраска пузырей исходящих сообщений
This commit is contained in:
Evgeny committed 2026-07-24 16:55:08 +03:00
1 parent df8d910efa
commit c46cb9a979
4 files changed
+157 -29

No files matched your search

+5 -1
View File
@@ -582,7 +582,11 @@ void MessageDelegate::drawBubble(QPainter *p, const Layout &L, const QStyleOptio
QColor base = opt.palette.window().color();
bubbleFill = base.lighter(135);
} else {
bubbleFill = QColor(0xE1, 0xF5, 0xE1);
QColor base = opt.palette.window().color();
bubbleFill = base.lighter(135);
bubbleFill.setRed(qMax(0, bubbleFill.red() - 10));
bubbleFill.setGreen(qMin(255, bubbleFill.green() + 5));
bubbleFill.setBlue(qMax(0, bubbleFill.blue() - 10));
}
p->setPen(Qt::NoPen);
p->setBrush(bubbleFill);