Commit graph

98 commits

Author SHA1 Message Date
f1c24e483c usernames: report reserved names as taken in the check paths too
account.checkUsername / channels.checkUsername / bots.checkUsername said a
reserved name was available and only updateUsername rejected it. Add the
blocklist check to peerUsernameAvailable (covers account + channel, both
backends) and to bots.Service.CheckUsername, so the client shows "username is
taken" immediately.
2026-09-14 12:05:28 +01:00
2bdb1ecf37 usernames: operator reserved-username blocklist
A plain blocklist for names like @support - separate from the collectible
system, so a reservation has no owner, no price and no "bought on Fragment"
badge.

- reserved_usernames table + migration.
- Enforced in replacePeerUsernameTx (the single editable-username write point:
  account.updateUsername, channels.updateUsername, @BotFather /setusername) and
  in the collectible mint path; a reserved name returns USERNAME_OCCUPIED.
- admin.Service: ReserveUsername / UnreserveUsername (journalled commands) and
  the ReservedUsernames listing.
- adminapi: /v1/reserved-usernames{,/reserve,/unreserve}.
- telesrv-admin panel + a "Reserved Usernames" page in the web UI (dist rebuilt).
- Postgres and in-memory store implementations; the memory registry gains an
  optional reserved-name check so tests exercise the same rule.
2026-09-14 12:04:43 +01:00
f474a360d7 Interactive /mybots menu for @BotFather
Button-driven bot management: paginated picker, per-bot API token /
revoke, Edit Bot (name/description/about/commands/botpic), Bot Settings
toggles (inline/groups/privacy), and delete. Navigation edits the menu
message in place via a new editServiceBotMessage helper.

Edit Botpic accepts a photo the user sends to @BotFather and sets it as
the bot's profile photo (new files.SetAvatarFromExistingPhoto, wired
through bots.SetBotUserpic / WithBotAvatarStore); photos.uploadProfilePhoto
does not accept a bot target so this is the only route.
2026-09-14 11:52:52 +01:00
onysd
aeaf3f4596 updates for server files size limits 2026-09-06 07:14:50 +03:00
onysd
ec888d3a26 fix for files purge 2026-09-03 08:42:01 +03:00
onysd
863ae2e990 files for previous commit 2026-09-03 08:33:27 +03:00
onysd
e6bfe2d444 fix for retention logic 2026-09-03 05:00:42 +03:00
onysd
70c0ba44f0 adding more functions to media managament system 2026-09-03 00:54:09 +03:00
onysd
7cd1f64d0d added messages templates 2026-09-01 14:40:06 +03:00
onysd
e8dc967e6a fixes 2026-09-01 12:50:18 +03:00
onysd
21a0856587 merged from gramsrv upstream 2026-09-01 12:06:31 +03:00
onysd
79c64ee916 fix 2026-08-27 13:23:17 +03:00
onysd
66f9c0bc1e fixes and improvements for new server settings menu 2026-08-26 00:37:25 +03:00
onysd
2cfc7a0539 quickfix 2026-08-25 00:51:43 +03:00
onysd
4ac94f00de added gifs scan at start 2026-08-07 11:02:05 +03:00
onysd
354128c106 added full gifts support 2026-08-07 10:13:11 +03:00
onysd
21d8e91756 removed all "paid" features - no more stars, gifts, or grams 2026-08-07 01:50:10 +03:00
onysd
818c9a58a3 disabling marksbot when third-party verifications if turned off 2026-08-06 15:45:32 +03:00
onysd
2491088e81 added ability to broadcast 2026-08-06 15:22:36 +03:00
onysd
36350f83dc added ability to disable third-party verification 2026-08-06 05:27:48 +03:00
onysd
4f0fa895c1 added avatar for verification bot 2026-08-06 04:39:28 +03:00
onysd
40d49d5e97 added ability to change user info 2026-08-05 21:19:50 +03:00
onysd
45f79148c2 added s3 support 2026-08-05 02:34:24 +03:00
onysd
03f10b66ee s3 support 2026-08-04 23:09:11 +03:00
onysd
fa5cfaf14d changed verifier bot to marksbot 2026-08-04 03:22:46 +03:00
onysd
ac6a50c5ff Merge remote-tracking branch 'upstream/main' into merge-gramsrv-9106877 2026-08-03 23:29:20 +03:00
iamxvbaba
c1597696af refactor(mtproto): sync replace result cache with execution ledger 2026-08-02 12:05:00 +08:00
iamxvbaba
141f2f20c4 feat(loadtest): sync add real 500-session capacity harness 2026-08-02 12:05:00 +08:00
iamxvbaba
ac0566f779 refactor(mtproto): sync redesign RPC replay ownership 2026-08-02 01:51:03 +08:00
iamxvbaba
7e0f9d1e62 feat(stars): sync implement unified purchase flow 2026-08-02 01:51:03 +08:00
iamxvbaba
c854fc7b94 feat: sync implement Stars friend gift packages 2026-08-02 01:51:02 +08:00
iamxvbaba
74c9249091 feat: sync expose gramsrv account rating
Follow up PR #22 by projecting its composite rating through userFull while keeping profile reads cache-backed and strictly read-only.

Source-Commit: 00eea44c

Co-authored-by: Egor Egorov <business.egor.sg@gmail.com>
2026-07-28 02:09:40 +08:00
Egor Egorov
fff8de783a
feat: add NFT usernames and bot verification (#22)
Implements collectible usernames, official verification workflows, and third-party bot verification after maintainer protocol and migration review.

The composite activity/moderation rating remains an admin-only read model; Telegram Stars Rating wire fields stay unset pending a dedicated official-semantics implementation.

Reviewed-Head: 2796345775ea0f908fb7734601e5e1dee4b653b9
Original-Head: fa082b892fd5180c9c9bc53c81c21cf5d250a75b

Co-authored-by: Egor Egorov <business.egor.sg@gmail.com>
2026-07-28 01:18:00 +08:00
iamxvbaba
4cd055144d feat(config): sync make default country configurable 2026-07-27 20:54:04 +08:00
iamxvbaba
3369d0bd5c feat(premium): sync promo video catalog seed 2026-07-26 15:59:25 +08:00
iamxvbaba
c3c079edf3 fix(phone): sync confirmed call timeout handling 2026-07-26 15:59:20 +08:00
onysd
0e5da4c8aa translated all logs to english 2026-07-25 07:31:27 +03:00
onysd
b2e84a187d fixes 2026-07-25 01:24:36 +03:00
yialdd
5dcdb57e4c
Merge pull request #17 from iamxvbaba/dev
fix: sync lenient DC-ID validation for key exchange
2026-07-24 23:08:57 +08:00
onysd
e7eb07b9eb fix: sync lenient DC-ID validation for key exchange 2026-07-24 17:36:13 +03:00
onysd
b443ff0c73 Merge remote-tracking branch 'upstream/main' into merge-gramsrv-0e2fcdf9 2026-07-24 17:15:53 +03:00
iamxvbaba
70e57b4d07 fix: sync non-PTS moderation updates 2026-07-24 11:57:00 +08:00
iamxvbaba
5d5883a3d1 feat: sync privacy read-model rules 2026-07-24 11:56:59 +08:00
iamxvbaba
9f467f4be7 feat: sync durable moderation and appeals 2026-07-24 11:56:59 +08:00
onysd
0a6c05404a changed botfather avatar and fixed import 2026-07-24 00:54:19 +03:00
onysd
c436c7c773 added default gifts import back 2026-07-23 23:03:51 +03:00
epilepticseizureee
313624eab2 admin: gift granting, collectible attribute/number control, and Layer 228 moderation tools
Admin console additions (Layer 228):
- Give Gifts: dedicated tab with sorted Lottie/TGS gift picker + inline form; grant any catalog gift to a user/channel from 777000 (no charge)
- Upgraded/collectible delivery: mint a unique gift with admin-selected model/pattern/backdrop and custom number, or random/auto (DB FK + UNIQUE(gift_id,num) enforce invariants)
- SCAM/FAKE flags for users/channels (migration 0136) with configurable profile warning (TELESRV_SCAM_WARNING/TELESRV_FAKE_WARNING)
- Support toggle, force channel settings incl. gigagroup (migration 0137), username management, cosmetic color/emoji-status
- Emoji admin tab (custom emoji list + document IDs + Lottie/TGS preview)
- Bot management; soft UI / dark theme
Wired through Router -> admin.Service -> adminapi -> BFF -> React panel (en/zh/ru).
2026-07-23 04:00:29 +03:00
epilepticseizureee
9e45da69ef feat(admin): bot management (list, verify, create, delete)
- Add a Bots admin tab: list/search bots with a dedicated read query
  (users.is_bot, excluded from the accounts list), showing owner and
  system-vs-user type
- Create system bots from the admin via a new bot.create command that
  reuses the existing bot provisioning flow; the token is shown once
- Delete user-created bots via a new bot.delete command backed by a
  dedicated Postgres DeleteBotAccount (revokes sessions, purges private
  state, releases username, drops the bots row, tombstones the user);
  system service bots are rejected
- Verified badge toggling reuses the existing set-verified command
- All write paths go through the dry-run/confirm + audit command pipeline
- Rebuild dist bundle
2026-07-23 00:34:05 +03:00
onysd
b1836c78e8 removed default telegram gifts 2026-07-22 20:20:16 +03:00
A
8cfb6f74c1 feat: sync host-based public app links 2026-07-22 21:43:56 +08:00