From 5e421db5af7f7671135a4497b131548fb4176058 Mon Sep 17 00:00:00 2001 From: Lorenzo Corallo Date: Sat, 11 Apr 2026 16:02:56 +0200 Subject: [PATCH 1/4] hotfix: check if the group is in the backend db --- package.json | 2 +- pnpm-lock.yaml | 10 +++++----- src/middlewares/bot-membership-handler.ts | 8 +++++++- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index 5cc2772..8a3b0e2 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,7 @@ "@grammyjs/parse-mode": "^1.11.1", "@grammyjs/runner": "^2.0.3", "@influxdata/influxdb-client": "^1.35.0", - "@polinetwork/backend": "^0.15.5", + "@polinetwork/backend": "^0.15.7", "@t3-oss/env-core": "^0.13.4", "@trpc/client": "^11.5.1", "@types/ssdeep.js": "^0.0.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c2609b1..2ea3d08 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -30,8 +30,8 @@ importers: specifier: ^1.35.0 version: 1.35.0 '@polinetwork/backend': - specifier: ^0.15.5 - version: 0.15.5 + specifier: ^0.15.7 + version: 0.15.7 '@t3-oss/env-core': specifier: ^0.13.4 version: 0.13.4(arktype@2.1.20)(typescript@5.7.3)(zod@4.1.11) @@ -431,8 +431,8 @@ packages: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} - '@polinetwork/backend@0.15.5': - resolution: {integrity: sha512-+60RfYsbPUnqpjbCeAMmhjdnBmKuSBQXEGF+YLQOAt7oRWBeW5woN8fA5dj+Ec1fEQjXOxlvDY6dOPiwyzSGMA==} + '@polinetwork/backend@0.15.7': + resolution: {integrity: sha512-8RYjl8u8PCvFxf8FrApPDI1Kv5G3IS88Fr5Vo+nybwftq7MqNJ/Rv8LKZk+AlvwD1waBBe5bm5RjwiP2A19TgA==} '@redis/bloom@1.2.0': resolution: {integrity: sha512-HG2DFjYKbpNmVXsa0keLHp/3leGJz1mjh09f2RLGGLQZzSHpkmZWuwJbAvo3QcRY8p80m5+ZdXZdYOSBLlp7Cg==} @@ -1793,7 +1793,7 @@ snapshots: '@pkgjs/parseargs@0.11.0': optional: true - '@polinetwork/backend@0.15.5': {} + '@polinetwork/backend@0.15.7': {} '@redis/bloom@1.2.0(@redis/client@1.6.0)': dependencies: diff --git a/src/middlewares/bot-membership-handler.ts b/src/middlewares/bot-membership-handler.ts index b6ca4c9..8c42f09 100644 --- a/src/middlewares/bot-membership-handler.ts +++ b/src/middlewares/bot-membership-handler.ts @@ -1,5 +1,6 @@ import type { Filter } from "grammy" import type { Chat } from "grammy/types" +import { api } from "@/backend" import { GroupManagement } from "@/lib/group-management" import { RedisFallbackAdapter } from "@/lib/redis-fallback-adapter" import { logger } from "@/logger" @@ -49,7 +50,12 @@ export class BotMembershipHandler> ext // TEMP: this is for initial migration from previous bot this.composer.filter(predicate, async (ctx, next) => { if (ctx.chat.type === "private") return next() - if (await this.TEMP_redis.has(ctx.chat.id.toString())) return next() + + const redisCheck = await this.TEMP_redis.has(ctx.chat.id.toString()) + if (redisCheck) { + const backendGroup = await api.tg.groups.getById.query({ telegramId: ctx.chat.id }) + if (backendGroup !== null) return next() + } const me = await ctx.getChatMember(ctx.me.id).catch(() => ({ status: "undefined" })) if (me.status !== "administrator") { From 1b8f44a069a0222f791ef6c43cd4b015957dd594 Mon Sep 17 00:00:00 2001 From: Lorenzo Corallo Date: Sat, 11 Apr 2026 16:06:21 +0200 Subject: [PATCH 2/4] fix: use new API group query signature in message-link --- src/middlewares/message-link.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/middlewares/message-link.ts b/src/middlewares/message-link.ts index 2413af5..c676d2d 100644 --- a/src/middlewares/message-link.ts +++ b/src/middlewares/message-link.ts @@ -99,8 +99,9 @@ async function makeResponse( ), } } - const inviteLink = - chat.invite_link ?? (await api.tg.groups.getById.query({ telegramId: chat.id }))[0].link ?? undefined + + const dbGroup = await api.tg.groups.getById.query({ telegramId: chat.id }) + const inviteLink = chat.invite_link ?? dbGroup?.link ?? undefined const message = await MessageUserStorage.getInstance().get(chatId, messageId) if (message === null) { From 1c008019e4177b0f1b1aa8a0b10d9c95ac245d52 Mon Sep 17 00:00:00 2001 From: Lorenzo Corallo Date: Sat, 11 Apr 2026 16:10:03 +0200 Subject: [PATCH 3/4] fix: add catch to backend call --- src/middlewares/bot-membership-handler.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/middlewares/bot-membership-handler.ts b/src/middlewares/bot-membership-handler.ts index 8c42f09..e06e845 100644 --- a/src/middlewares/bot-membership-handler.ts +++ b/src/middlewares/bot-membership-handler.ts @@ -53,7 +53,7 @@ export class BotMembershipHandler> ext const redisCheck = await this.TEMP_redis.has(ctx.chat.id.toString()) if (redisCheck) { - const backendGroup = await api.tg.groups.getById.query({ telegramId: ctx.chat.id }) + const backendGroup = await api.tg.groups.getById.query({ telegramId: ctx.chat.id }).catch(() => null) if (backendGroup !== null) return next() } From e48d0c7ad10531f6054a617d2cb72d7a4762e886 Mon Sep 17 00:00:00 2001 From: Lorenzo Corallo Date: Sat, 11 Apr 2026 16:12:07 +0200 Subject: [PATCH 4/4] fix: add fork --- src/middlewares/bot-membership-handler.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/middlewares/bot-membership-handler.ts b/src/middlewares/bot-membership-handler.ts index e06e845..59ad4cf 100644 --- a/src/middlewares/bot-membership-handler.ts +++ b/src/middlewares/bot-membership-handler.ts @@ -48,7 +48,7 @@ export class BotMembershipHandler> ext super("bot_membership_handler") // TEMP: this is for initial migration from previous bot - this.composer.filter(predicate, async (ctx, next) => { + this.composer.fork().filter(predicate, async (ctx, next) => { if (ctx.chat.type === "private") return next() const redisCheck = await this.TEMP_redis.has(ctx.chat.id.toString())