Обновить UI каналов, логаут DM и документацию

- Исправлена вкладка Каналы: стабильные режимы Все/Мои, корректные кнопки и навигация назад.

- Зафиксирована доработка по личным сообщениям: при logout очищается локальная база/кеш DM на устройстве.

- Обновлены AGENTS/CLAUDE и документация Personal_Messages.

- Обновлены версии в VERSION.properties (client 1.2.106, server 1.2.99).
This commit is contained in:
AidarKC
2026-05-31 20:30:31 +04:00
parent 5899bd2f77
commit e3c1cbf1c0
9 changed files with 79 additions and 43 deletions
@@ -182,7 +182,7 @@ public final class SignedMessagesV2DAO {
}
}
public List<SignedMessageV2Entry> listPendingForSession(String login, String sessionId, int limit) throws Exception {
public List<SignedMessageV2Entry> listPendingForSession(String login, String sessionId) throws Exception {
try (Connection c = db.getConnection()) {
String fillSql = """
INSERT OR IGNORE INTO signed_message_session_delivery (
@@ -210,12 +210,10 @@ public final class SignedMessagesV2DAO {
ON d.message_key = m.message_key
WHERE d.session_id = ? AND d.delivered = 0
ORDER BY m.time_ms ASC, m.created_at_ms ASC
LIMIT ?
""";
List<SignedMessageV2Entry> out = new ArrayList<>();
try (PreparedStatement ps = c.prepareStatement(sql)) {
ps.setString(1, sessionId);
ps.setInt(2, Math.max(1, limit));
try (ResultSet rs = ps.executeQuery()) {
while (rs.next()) out.add(mapRow(rs));
}
@@ -19,8 +19,6 @@ import java.util.List;
public final class SignedMessagesRealtime {
private static final Logger log = LoggerFactory.getLogger(SignedMessagesRealtime.class);
private static final ObjectMapper MAPPER = new ObjectMapper();
private static final int LOGIN_BACKLOG_LIMIT = 500;
private SignedMessagesRealtime() {}
static DeliveryCounters deliverToTargetSessions(
@@ -57,7 +55,7 @@ public final class SignedMessagesRealtime {
try {
List<SignedMessageV2Entry> pending = SignedMessagesV2DAO.getInstance()
.listPendingForSession(login, sessionId, LOGIN_BACKLOG_LIMIT);
.listPendingForSession(login, sessionId);
for (SignedMessageV2Entry e : pending) {
sendEventToSessionIfOnline(sessionId, e, true);
}