GramSieve paper plane icon

GramSieve

面向 Telegram 官方 Play 与官网 Android 客户端(org.telegram.messenger / org.telegram.messenger.web)的增强 LSPosed/Xposed 模块
An enhancement LSPosed/Xposed module for the official Telegram Play and website Android clients

GitHub Stars Telegram Official Group Telegram Release Channel

如果 GramSieve 对你有帮助,欢迎点一个 Star 支持项目 ⭐
If GramSieve helps you, please consider leaving a Star.

安装与启动 / Setup

当前版本适配官方 Telegram 13.0.2:Play 版 71751 与官网版 71759,需要支持 libxposed API 102 的 LSPosed。 The current release targets official Telegram 13.0.2: Play build 71751 and website build 71759, with an LSPosed version supporting libxposed API 102.

同时提供 Plus Messenger 12.10.5.0(22571)的精确适配;使用 Plus 时请将其加入模块作用域。首条消息、手动标记、翻译等重复功能由 Plus 原生提供,原有模块设置保留。 Exact compatibility is also provided for Plus Messenger 12.10.5.0 (22571); add Plus to the module scope when using it. Overlapping features such as first-message navigation, manual marks, and translation use Plus native implementations while saved module settings are preserved.

安装模块后,在 LSPosed 中启用 GramSieve,并勾选使用的官方 Telegram 客户端,然后重新打开 Telegram。 After installing the module, enable GramSieve in LSPosed, select the official Telegram client you use, and reopen Telegram.

模块随 Telegram 运行,无需允许 GramSieve 自启动,也无需为本模块勾选“系统框架”作用域。 The module runs within Telegram; GramSieve autostart and the System Framework scope are not required.

“日志”页面提供性能记录,支持导出或通过系统分享发送日志文件;预览、复制、导出和分享均自动脱敏,分享前仍可检查文件。 The Logs page provides performance records and lets you export files or open the system share sheet. Previews, copies, exports, and shared files are automatically redacted; you can still review files before sharing.

功能

  • 仅本地过滤 — 所有过滤在设备上完成,无网络请求,数据不离开手机

  • 全局 + 单聊规则 — 全局设置宽泛规则,再针对特定聊天覆盖或排除

  • 丰富的匹配目标 — 消息文字、媒体说明、内联按钮文字/链接、发送者名称/ID、聊天名称/ID

  • 白名单优先 — 排除规则始终优先于过滤规则,适合管理员、公告或信任联系人

  • 一键重置规则 — 可一次清空全局与所有聊天的过滤规则,同时保留防撤回、编辑历史、消息标记、日志和功能设置

  • 三种过滤动作 — 本地隐藏、本地折叠、调试标记(测试用)

  • 完全宿主化设置 — 不提供独立应用界面;全局配置和聊天配置都在 Telegram 内完成,界面跟随宿主主题,修改后自动保存并立即生效

  • 分类设置与规则列表 — 按功能分类导航,屏蔽规则和保留例外分别管理,支持逐条启停、搜索、编辑和批量添加

  • 消息翻译 — 使用 Telegram 原生翻译服务,优先处理屏幕内消息;支持单条翻译、自动翻译及全局/群组/频道设置,原文在上、译文在下,目标语言可跟随界面或手动指定;翻译会向 Telegram 服务提交待翻译文本

  • 搜索去杂 — 独立搜索页提供关键词包含/排除和按账号保存的群组/频道黑白名单,合并云端与本地原文结果,支持继续加载、指定聊天历史扫描及消息跳转;界面显示扫描范围,搜索条件不改变聊天屏蔽规则

  • 配置迁移 — 设置页导出/导入 JSON,迁移规则、功能和当前账号策略;不包含登录凭据、缓存消息或媒体文件

  • 受限内容保存与复制 — 使用 Telegram 原生媒体保存流程,提供受限内容的保存与文字复制能力

  • 发送副本(可选,默认关闭) — 开启后,可从转发入口将受限文字或完整下载的普通视频作为新消息发送;视频会重新上传,不保留原转发来源,不解除服务器的原生转发限制

  • 消息标记与跳转 — 单击消息可标记位置,从右上角菜单一键跳回,每个聊天独立标记

  • 浏览位置记忆 — 自动记录滚动位置,可一键跳转到上次浏览处

  • 可选下载按钮常驻 — 默认关闭;开启后始终保留 Telegram 原生下载入口,点击、动画和进度仍由客户端处理

  • 下载页全选 — Telegram 下载管理页面多选模式下支持一键全选

  • 主动加载与防撤回防修改 — 后台和推送到达时主动加载消息,结合删除链路拦截和本地存储标记,尽量保留被撤回或修改的原始内容

  • 多版本编辑历史 — 编辑历史按版本保存,并会从 Telegram 本地历史同步写入中补齐离线期间发生的编辑

  • 回复后已读(可选,默认关闭) — 浏览普通聊天时暂缓上报已读,消息实际发送成功后补报该会话此前的已读;后续新消息继续暂缓,失败、编辑和仅创建定时发送不触发

  • 保留阅后即焚图片(可选,默认关闭) — 普通私聊中真实打开图片后正常上报查看,发送方按原生流程过期;接收方到期后显示“已销毁”并保留本地图片,不恢复未下载或已销毁的内容,不适用于秘密聊天

  • 编辑历史媒体查看 — 点击消息弹窗可查看编辑前内容,原始图片优先使用 Telegram 官方 PhotoViewer 并支持官方保存入口

  • 持久化诊断日志 — 运行日志写入 app-specific 外部目录,避免依赖容易溢出的 logcat 缓冲区

  • 双语界面 — 英文和简体中文,支持跟随系统

  • 旧版登录验证码流程(可选,默认关闭) — 首次未登录也可通过欢迎页或登录页的 GramSieve 图标开启;重启官方 Telegram 后,以 11.5.5 / API layer 195 初始化未登录账号连接,尝试旧版验证码流程;不影响已登录账号,不保证跳过邮箱或短信付费页面,关闭后重启恢复

  • Local-only filtering — all filtering happens on-device; no network requests, no data leaves your phone

  • Global + per-chat rules — set broad filters globally, then override or exclude specific chats

  • Rich match targets — message text, media captions, inline button labels/URLs, sender names/IDs, chat names/IDs

  • Whitelist wins first — exclusion rules always override filter rules; use them for admins, notices, or trusted contacts

  • One-tap rule reset — clear global and per-chat filter rules at once while preserving anti-recall, edit history, message marks, logs, and feature settings

  • Three filter actions — hide locally, collapse locally, or debug-mark (for testing)

  • Fully host-native settings — provides no standalone app UI; global and per-chat settings live inside Telegram, follow the host theme, and save and apply changes automatically

  • Categorized settings and rule lists — navigate by feature and manage block rules and keep exceptions separately, with individual toggles, search, editing and batch input

  • Message translation — uses Telegram's native translation service and prioritizes visible messages; supports single-message and automatic translation with global, group and channel settings, original text above the translation, and an interface-based or manually selected target language; text is submitted to Telegram's translation service

  • Search filters — a dedicated page combines cloud and local-text results with keyword include/exclude filters and per-account group/channel allowlists and blocklists; supports paging, scoped history scans and message navigation, shows scan coverage, and leaves chat-blocking rules unchanged

  • Settings migration — export/import JSON from settings to transfer rules, features and current-account policies, excluding login credentials, cached messages and media files

  • Save and copy restricted content — save media through Telegram’s native media flow and copy restricted text

  • Send copies (optional, off by default) — when enabled, send protected text or fully downloaded regular videos as new messages from the forward action; videos are re-uploaded without original forwarding attribution, and server-side native forwarding restrictions remain

  • Mark & jump — tap a message to mark its position, jump back anytime from the menu; marks are per-chat

  • Browse position memory — automatically tracks scroll position, one-tap jump to last viewed message

  • Optional persistent download button — off by default; when enabled, Telegram's native download entry stays available while clicks, animation, and progress remain client-controlled

  • Download page select all — select all loaded download items at once in Telegram's download manager

  • Anti-recall & anti-edit — proactively loads messages in the background and when push updates arrive, combining delete-path interception and local-storage marking to preserve recalled or edited content where possible

  • Multi-version edit history — stores edit history by version and recovers edits that arrive through Telegram local history-sync writes while the device was offline

  • Read after reply (optional, off by default) — hold ordinary chat read receipts until a message is successfully sent to that conversation; later arrivals remain held, and failures, edits or merely scheduling a send do not release receipts

  • Keep self-destruct photos (optional, off by default) — opening an incoming photo in a normal private chat reports viewing and lets it expire normally for the sender, while keeping a local photo marked Expired for the recipient; cannot recover undownloaded or already destroyed content and does not cover secret chats

  • Edit-history media viewer — open original pre-edit content from the message popup; original images prefer Telegram's official PhotoViewer and official save flow

  • Persistent diagnostics — runtime logs are written to app-specific external storage instead of relying on overflow-prone logcat buffers

  • Bilingual UI — English and Simplified Chinese, with system-follow option

  • Legacy login verification flow (optional, off by default) — use the GramSieve icon on the welcome or login page even before your first sign-in, then restart official Telegram to initialize signed-out accounts with 11.5.5 / API layer 195; signed-in accounts remain unchanged, skipping email or SMS payment pages is not guaranteed, and disabling then restarting restores native initialization

编辑历史只能展示实际记录并缓存的内容;连续编辑图片时,中间图片版本可能未独立保存,不能保证完整恢复。新版各渠道的具体功能仍需按场景验证,适配声明不表示所有功能均已实测。

Edit history can only show content that was recorded and cached; intermediate images in consecutive edits may not be stored independently, so complete recovery is not guaranteed. Features require scenario-specific verification on each client build; adaptation does not mean every feature has been tested.

规则写法 How Rules Work

在 GramSieve 设置首页进入“屏蔽与保留”,分别管理屏蔽规则和保留例外。点击“添加规则”选择匹配内容、范围和方式,修改即时保存;已有规则可以单独启停、编辑或删除,多条内容可使用“批量添加”。保留例外始终优先。过滤后的隐藏、折叠或调试标记可在“过滤方式与规则管理”中选择。

Open “Block & keep rules” from GramSieve Settings to manage block rules and keep exceptions separately. Add a rule with its text, scope and matching method; edits save automatically. Existing rules can be enabled, edited or deleted individually, and “Add multiple” supports batch input. Keep exceptions take priority. Choose hide, collapse or debug mark under “Filtering action & rule management”.

GramSieve 会对消息文字、媒体说明、内联按钮文字/链接、发送者名称/ID、聊天名称/ID 进行标准化处理,然后逐行匹配规则。

GramSieve normalizes message text, media captions, inline button labels/URLs, sender names/IDs, and chat names/IDs, then matches rules line by line.

关键词规则 Keyword rules:

t.me/
buy now
sender:promo_bot
chat:airdrops
button:https://
caption:airdrop

正则规则 Regex rules:

https?://
sender:^(promo|deal)_bot$
button:https?://[^ ]+

支持的前缀 Supported prefixes:

前缀 Prefix 检查目标 Checks
text: 消息文字 Message text
caption: 媒体说明 Media captions
button: 按钮文字或链接 Button labels or URLs
sender: 发送者名称或 ID Sender name or ID
chat: 聊天名称或 ID Chat name or ID
(无/none) 以上所有字段 All fields above

在当前界面中,每个输入框已固定检查目标,通常不需要写前缀。

In the current UI, each input box is already target-specific, so prefixes are usually unnecessary.

入口 Entry Points

  • Telegram 设置列表 → GramSieve(唯一全局配置入口)

  • 聊天右上角三点菜单 → 聊天过滤规则 · 防撤回 · 主动加载 · 编辑历史 · 跳转到上次浏览 · 跳转到标记位置;启用翻译后提供翻译及自动翻译入口,菜单项可在设置中分别隐藏

  • 单击某条消息 → 屏蔽此消息 · 标记此消息 · 编辑历史;启用翻译后可翻译有文字的消息

  • 下载页面多选模式 → 全选 按钮(一键选中所有已加载的下载项)

  • Telegram settings list → GramSieve (the only global settings entry)

  • Chat top-right overflow menu → Chat filters · Anti-recall · Proactive loading · Edit history · Jump to last viewed · Jump to marked position; translation controls appear when enabled, and individual menu entries can be hidden in settings

  • Click a message → Block this message · Mark this message · Edit history; messages containing text can also be translated when translation is enabled

  • Download page action mode → Select All button (select all loaded download items at once)

规则直接从 Telegram 内的寄生设置页保存到 LSPosed 远程配置,并同步持久化到模块进程;无需再打开模块应用确认。

Rules are saved from the host panel directly to LSPosed remote preferences and mirrored to the module process; opening a separate module app is no longer required.

持久化日志 Persistent Logs

调试防撤回、主动加载或媒体缓存时,优先读取持久化日志。公共 /sdcard/GramSieve 路径已放弃,日志写入 app-specific 外部目录:

When debugging anti-recall, proactive loading, or media caching, read persistent logs first. The public /sdcard/GramSieve path is no longer used; logs are written to app-specific external storage:

adb -s <device> shell tail -n 300 /sdcard/Android/data/org.telegram.messenger/files/GramSieve/gramsieve.log
adb -s <device> shell tail -n 300 /sdcard/Android/data/com.tianqianguai.gramsieve/files/GramSieve/gramsieve.log

示例规则 Sample Rules

许可证 License

GramSieve 以 GNU General Public License v3.0 or later(GPL-3.0-or-later)发布。你可以复制、修改和分发本项目,但分发修改版或二进制版本时,需要遵守 GPL-3.0-or-later 的源码提供、许可证保留和同许可证分发要求。完整许可证文本见 LICENSE。

GramSieve is released under the GNU General Public License v3.0 or later (GPL-3.0-or-later). You may copy, modify, and distribute this project, but modified versions and binary distributions must follow the GPL-3.0-or-later requirements for source availability, license preservation, and same-license distribution. See LICENSE for the full license text.

参考与致谢 Acknowledgements

GramSieve 的部分反撤回和编辑历史设计参考了 TeleVip-LSPosed 对 Telegram 本地消息存储、删除标记和编辑历史捕获路径的公开研究。GramSieve 没有引入 TeleVip-LSPosed 源码;相关功能基于 GramSieve 自身的 hook、缓存、数据库和 UI 结构独立实现。

Parts of GramSieve's anti-recall and edit-history design were informed by the public research in TeleVip-LSPosed around Telegram local message storage, deletion flags, and edit-history capture paths. GramSieve does not include TeleVip-LSPosed source code; the related functionality is implemented independently using GramSieve's own hooks, cache, database, and UI structure.

Releases

10/13/2026, 8:47:57 AM

更新日志 / Changelog

适配官方 Telegram 13.0.2:Play 版 71751 与官网版 71759。
Support official Telegram 13.0.2: Play build 71751 and website build 71759.

新增 Plus Messenger 12.10.5.0(22571)适配,修正聊天菜单、编辑历史入口和平板冷启动恢复;首条消息、手动标记、翻译等重复功能由 Plus 原生提供,保留原有模块设置。
Add support for Plus Messenger 12.10.5.0 (22571), including chat menus, edit-history access, and tablet cold-start restoration. First-message navigation, manual marks, translation, and other overlapping features use Plus native implementations while preserving saved module settings.

修复首条消息跳转,支持查找群组升级前的历史,并跳过原生界面不显示的起始服务消息。
Fix first-message navigation, including pre-migration group history and skipping initial service messages hidden by the native interface.

日志页新增系统分享,支持分享全部或指定范围的脱敏日志文件。
Share redacted log files through the system share sheet, covering all logs or a selected range.

减少界面刷新时对系统方法的重复符号查找与反射筛选开销。
Reduce repeated symbol lookups and reflection filtering for platform methods during UI refreshes.

需要支持 libxposed API 102 的 LSPosed。
Requires an LSPosed version supporting libxposed API 102.

这次适配花了数小时反复排查兼容问题、修复代码和真机验证,才把菜单、编辑历史和媒体保存逐项跑通。
This update took hours of compatibility investigation, repeated fixes, and testing on real devices to get menus, edit history, and media saving working correctly.

如果这些投入帮到了你,请点个 Star 支持,让后续适配和维护更有动力。
If this work helps you, please leave a Star to encourage continued adaptation and maintenance.
https://github.com/Xposed-Modules-Repo/com.tianqianguai.gramsieve

Assets

1

10/11/2026, 6:27:54 AM

更新日志 / Changelog

适配官方 Telegram 13.0.1:Play 版 71671 与官网版 71679。
Support official Telegram 13.0.1: Play build 71671 and website build 71679.

需要支持 libxposed API 102 的 LSPosed。
Requires an LSPosed version supporting libxposed API 102.

喜欢 GramSieve?欢迎给项目点个 Star!
Enjoy GramSieve? Give the project a Star!
https://github.com/Xposed-Modules-Repo/com.tianqianguai.gramsieve

Assets

1

10/10/2026, 6:28:30 AM

更新日志 / Changelog

适配官方 Telegram 13.0.0:Play 版 71581 与官网版 71589。
Support official Telegram 13.0.0: Play build 71581 and website build 71589.

新增“搜索去杂”:支持关键词包含/排除、按账号保存的群组和频道黑白名单,合并云端与本地原文结果,并提供分页、指定聊天历史扫描及消息跳转。
Add Search Filters with keyword include/exclude rules, per-account group and channel allowlists and blocklists, merged cloud and local-text results, paging, scoped history scans and message navigation.

搜索界面跟随宿主主题,优化搜索按钮、名单选择和范围窗口;修复从全局设置打开搜索后无法跳转到消息的问题。
Match the search interface to the host theme, improve search controls and scope/list pickers, and fix message navigation when search is opened from global settings.

“关于”页新增项目主页、官方群组和发布频道入口。
Add project, official group and release channel links to the About page.

修复“屏蔽此消息”额外提取正文关键词而扩大屏蔽范围的问题,保留手动关键词规则。
Fix Block this message extracting extra keywords and blocking too broadly while preserving manual keyword rules.

连续替换图片时独立保存各版本,重启后继续记录;修复本地更新与服务端通知造成的重复历史,历史图片支持原生查看与保存。
Keep separate image versions across consecutive replacements and restarts, prevent duplicate history from local updates and server notifications, and support native viewing and saving of historical images.

修复视频标记被误识别为媒体对象的问题,恢复视频缓存,并根据已有原始消息快照修复旧缓存的媒体标识。
Fix video flags being mistaken for media objects, restore video caching, and repair old media identifiers from stored original-message snapshots.

将消息绑定的存储工作移至后台,改善打开聊天和滚动时的响应;修复本地删除会话留下空白行及恢复状态异常的问题。
Move message-binding storage work off the main thread to improve chat opening and scrolling, and fix empty rows and recovery state after local conversation deletion.

已删除消息的视频下载不再反复重试,保留本地缓存和之后手动重试的能力。
Stop repeated video-download retries for deleted messages while preserving local cached media and later manual retries.

需要支持 libxposed API 102 的 LSPosed。
Requires an LSPosed version supporting libxposed API 102.

喜欢 GramSieve?欢迎给项目点个 Star!
Enjoy GramSieve? Give the project a Star!
https://github.com/Xposed-Modules-Repo/com.tianqianguai.gramsieve

Assets

1

10/1/2026, 4:03:44 PM

更新日志 / Changelog

更新官方 Telegram 12.10.6 Play 与官网版适配,并改进消息底栏附加信息的宽度分配。
Update support for official Telegram 12.10.6 Play and website builds and improve width allocation for additional message-footer text.

设置语言遵循所选偏好,切换后立即刷新并保留当前页面。
Settings follow the selected language and refresh immediately while preserving the current page.

新增“回复后已读”选项,默认关闭;普通聊天中暂缓上报已读,消息实际发送成功后再补报该会话此前的已读。
Add an optional Read after reply setting, off by default, that holds read receipts in ordinary chats until a message is successfully sent to that conversation.

新增“保留阅后即焚图片”选项,默认关闭;普通私聊中已打开并下载的图片过期后可保留本地副本,不适用于秘密聊天,也不能恢复未下载或已销毁的图片。
Add an optional Keep self-destruct photos setting, off by default, that retains local copies of opened and downloaded photos in ordinary private chats after expiry; it does not cover secret chats or recover undownloaded or already destroyed photos.

未登录时可从欢迎页或登录页进入旧版登录验证码设置;该选项默认关闭,不保证跳过邮箱或付费验证。
Access legacy login verification settings from the welcome or login screen before sign-in; this option is off by default and does not guarantee bypassing email or paid verification.

修复消息消散动画遇到零尺寸视图时可能导致客户端崩溃的问题。
Fix a possible client crash when the message disappearance animation encounters a zero-size view.

修复启动等待造成的卡顿,不再需要允许 GramSieve 自启动或勾选“系统框架”作用域。
Fix stalls caused by startup waits; GramSieve autostart and the System Framework scope are no longer required.

减少打开聊天、滚动和消息刷新时的重复查询。
Reduce repeated lookups when opening chats, scrolling, and refreshing messages.

增加启动和聊天性能日志,便于反馈卡顿问题。
Add startup and chat performance logs to help report lag.

日志预览、复制和导出统一自动脱敏,日志页面明确说明保留与隐藏的信息。
Automatically redact log previews, copies, and exports, with clear explanations of retained and hidden information on the Logs page.

需要支持 libxposed API 102 的 LSPosed。
Requires an LSPosed version supporting libxposed API 102.

喜欢 GramSieve?欢迎给项目点个 Star!
Enjoy GramSieve? Give the project a Star!
https://github.com/Xposed-Modules-Repo/com.tianqianguai.gramsieve

Assets

1

9/27/2026, 7:46:57 AM

更新日志 / Changelog

修复防撤回处理缺少聊天来源的删除事件时反复查库造成的主线程阻塞,改用来源上下文、批量索引查询和短期缓存。
Fix main-thread blocking caused by repeated anti-recall lookups for deletion events without a chat source, using source context, indexed batch queries and short-lived caching.

减少相同消息的重复写入、重复撤回处理和界面刷新,并将界面触发的媒体缓存复制移到后台;保留防撤回、编辑历史与主动加载。
Reduce duplicate message writes, repeated recall processing and UI refreshes, and move UI-triggered media cache copies to the background while preserving anti-recall, edit history and proactive loading.

新增低频性能日志,记录模块与 Telegram 版本、设备信息、主线程延迟、处理耗时及队列情况,便于继续定位卡顿。
Add low-frequency performance logs covering module and Telegram versions, device details, main-thread delays, operation timings and queue activity to help diagnose remaining lag.

新增可选副本发送,默认关闭,升级后不继承旧版开启值;需在设置中重新开启,并同时开启“受限内容保存与复制”。
Add optional copy sending, off by default without inheriting the old enabled preference; enable it again in settings together with Save and copy restricted content.

副本支持受限文字与完整下载的普通视频,视频会重新上传且不保留原转发来源;更新相关说明,不再宣称解除服务器的原生转发保护。
Copies support protected text and fully downloaded regular videos, which are re-uploaded without original forwarding attribution; update the descriptions without claiming to remove server-side native forwarding protection.

自动翻译跳过源语言与目标语言一致的消息,避免相同原文与译文重复显示。
Auto-translation skips messages whose source and target languages match and avoids displaying identical original and translated text twice.

日志导出提示显示 Download/GramSieve 文件夹路径。
Log export notices now show the Download/GramSieve folder path.

需要支持 libxposed API 102 的 LSPosed。
Requires an LSPosed version supporting libxposed API 102.

喜欢 GramSieve?欢迎给项目点个 Star!
Enjoy GramSieve? Give the project a Star!
https://github.com/Xposed-Modules-Repo/com.tianqianguai.gramsieve

Assets

1

9/26/2026, 11:15:06 AM

更新日志 / Changelog

  • 适配 Telegram 12.10.5 Play 版与官网 Android 版,更新媒体查看器、Story 菜单和输入框相关适配。
    Add support for Telegram 12.10.5 Play and website Android builds, updating media-viewer, Story-menu and composer compatibility.

  • 防撤回和主动加载新增独立的私聊、群组及频道全局默认,保留单聊例外,并支持配置迁移。
    Add independent global defaults for anti-recall and proactive loading in private chats and groups/channels, preserving per-chat exceptions and supporting settings migration.

  • 增强大文件下载并发与分块处理,实际速度取决于网络和服务器条件。
    Improve large-file download concurrency and chunk handling; actual speed depends on network and server conditions.

  • 设置内新增使用教程,将待验证功能集中展示;临时清理模式移入聊天设置,右上角入口默认隐藏且可重新开启。
    Add an in-settings usage guide and group unverified features; move temporary cleanup controls into chat settings and hide their overflow entry by default, with an option to restore it.

  • 修复资料页 ID 与状态文字重叠,以及即时相机禁用、保持视频静音和翻译切回原文时的参数传递问题。
    Fix profile IDs overlapping status text and argument handling for disabling instant video, keeping videos muted and switching translations back to the original text.

需要支持 libxposed API 102 的 LSPosed。
Requires an LSPosed version supporting libxposed API 102.

如果 GramSieve 对你有帮助,欢迎给项目点个 Star!
If GramSieve helps you, please give the project a Star!

https://github.com/Xposed-Modules-Repo/com.tianqianguai.gramsieve

Assets

1

9/24/2026, 2:51:38 AM

更新日志 / Changelog

  • 更新 Telegram 12.10.4 Play 版与官网 Android 版适配,修正媒体查看器和 Story 保存入口的调用适配。
    Update support for Telegram 12.10.4 Play and website Android builds, including media-viewer and Story-save entry compatibility.

  • 重构设置页与弹窗,按功能分类导航,将屏蔽规则与保留例外分开管理,支持搜索、逐条编辑和批量添加。
    Redesign settings and dialogs with feature-based navigation and separate block rules and keep exceptions, including search, individual editing and batch input.

  • 新增消息翻译与自动翻译,支持全局及单独群组、频道配置,目标语言可跟随界面或手动指定。
    Add message and automatic translation with global, group and channel settings, using the interface language or a manually selected target language.

  • 翻译优先处理屏幕内消息,单条消息可从菜单发起翻译,直接显示为原文在上、译文在下。
    Prioritize visible messages for translation and translate individual messages from their menu, displaying the original text above the translation.

  • 新增设置页配置导出与导入,方便迁移规则、功能开关及当前账号策略。
    Add settings export and import to transfer rules, feature switches and current-account policies.

  • 修复受限媒体保存入口,将保存、复制和转发限制相关增强统一到“解除内容限制”开关。
    Fix restricted-media saving entries and consolidate saving, copying and forwarding enhancements under one content-restrictions switch.

需要支持 libxposed API 102 的 LSPosed。
Requires an LSPosed version supporting libxposed API 102.

如果 GramSieve 对你有帮助,欢迎给项目点个 Star!
If GramSieve helps you, please give the project a Star!

https://github.com/Xposed-Modules-Repo/com.tianqianguai.gramsieve

Assets

1

9/21/2026, 1:39:10 AM

更新日志

  • 修复启用“隐藏 Story 浏览状态”时,频道帖子进入讨论组持续加载的问题;讨论页导航请求不再被隐私策略误拦截。

兼容说明

  • 本版本适配 Telegram 12.10.3,需要支持 libxposed API 102 的 LSPosed。

⭐ 如果 GramSieve 对你有帮助,欢迎给项目点个 Star!你的支持会让它继续更新。

Changelog

  • Fixes the discussion-group page getting stuck loading when “Hide Story view status” is enabled; discussion navigation requests are no longer blocked by the privacy policy.

Compatibility

  • This release targets Telegram 12.10.3 and requires an LSPosed version that supports libxposed API 102.

⭐ If GramSieve helps you, please give the project a Star! Your support helps keep it moving forward.

Assets

1

9/20/2026, 8:53:19 AM

更新日志

  • 修复大量因混淆导致模块特色功能失效的问题,强烈建议更新。
  • 新增支持 Plus Messenger(org.telegram.plus 12.10.3.0):过滤、防撤回与增强能力与官方版一致;Plus 需在 LSPosed 作用域中手动勾选该应用。
  • 新增本地 Premium 显示开关:仅改变客户端展示,不触碰账号的服务端权益。
  • 新增隐藏赞助消息,可随时恢复。
  • 防撤回与主动加载拆分为两个独立的按聊开关,互不影响。
  • 撤回标记持久化并以红色标签显示;编辑历史恢复(按聊录制开关、多图记录选择、原生图片查看器保存)。
  • 修复回到顶部导航与历史记录的账号路由。

兼容说明

  • 本版本需要支持 libxposed API 102 的 LSPosed。
  • 如需 API 102 之前的兼容版本,请在历史 Releases 中获取 0.1.5;它是最后一个 API 102 之前版本。

⭐ 如果 GramSieve 对你有帮助,欢迎给项目点个 Star!你的支持会让它继续更新。

Changelog

  • Fixes many module features broken by obfuscation; updating is strongly recommended.
  • Adds support for Plus Messenger (org.telegram.plus 12.10.3.0) with the same filtering, anti-recall, and enhancement capabilities; Plus must be checked manually in the LSPosed scope.
  • Adds a local Premium display toggle: client-side presentation only, server entitlements untouched.
  • Adds hiding of sponsored message rows, reversible at any time.
  • Splits anti-recall and proactive loading into two independent per-chat switches.
  • Persists recalled-message markers with a red label; restores edit history (per-chat recording toggle, multi-image record picker, native photo viewer save).
  • Fixes scroll-to-top navigation and history account routing.

Compatibility

  • This release requires an LSPosed version that supports libxposed API 102.
  • For a pre-API-102 environment, use 0.1.5 from the historical Releases; it is the final pre-API-102 version.

⭐ If GramSieve helps you, please give the project a Star! Your support helps keep it moving forward.

Assets

1

9/19/2026, 3:13:41 PM

更新日志

  • 修复 Web 发行版(org.telegram.messenger.web)上每次保存设置都提示“保存失败:NullPointerException”的问题:Web 版的页面指针方法已正确映射回静态目标,保存不再误报失败,热重载后的页面重绑恢复正常。
  • 设置保存失败、热重载与页面解析现在会在日志中留下可定位的诊断记录(解析来源、符号版本、异常类型),方便以后排查问题。

兼容说明

  • 本版本需要支持 libxposed API 102 的 LSPosed。
  • 如需 API 102 之前的兼容版本,请在历史 Releases 中获取 0.1.5;它是最后一个 API 102 之前版本。

⭐ 如果 GramSieve 对你有帮助,欢迎给项目点个 Star!你的支持会让它继续更新。

Changelog

  • Fixes every settings save on the Web distribution (org.telegram.messenger.web) wrongly reporting "Save failed: NullPointerException": the Web build's fragment getters are mapped back to their real static targets, so saves no longer fail spuriously and hot-reload UI rebind works again.
  • Save failures, hot reloads, and fragment resolution now leave diagnosable records in the log (resolution source, symbol build, exception type) to make future troubleshooting easier.

Compatibility

  • This release requires an LSPosed version that supports libxposed API 102.
  • For a pre-API-102 environment, use 0.1.5 from the historical Releases; it is the final pre-API-102 version.

⭐ If GramSieve helps you, please give the project a Star! Your support helps keep it moving forward.

Assets

1

9/19/2026, 12:00:17 PM

更新日志

  • 适配 Telegram Web 发行版 org.telegram.messenger.web(12.10.3),提供与 Play 版一致的过滤、防撤回与增强能力。
  • 作用域改为推荐模式:可在 LSPosed 中把作用域扩展到其他 Telegram 分支,非 Telegram 应用会被自动跳过。
  • 修复 Web 发行版上隐藏 Story 横栏、隐藏联系人页不生效的问题。

兼容说明

  • 本版本需要支持 libxposed API 102 的 LSPosed。
  • 如需 API 102 之前的兼容版本,请在历史 Releases 中获取 0.1.5;它是最后一个 API 102 之前版本。

⭐ 如果 GramSieve 对你有帮助,欢迎给项目点个 Star!你的支持会让它继续更新。

Changelog

  • Adds support for the Telegram Web distribution org.telegram.messenger.web (12.10.3) with the same filtering, anti-recall, and enhancement capabilities as the Play build.
  • The Xposed scope becomes a recommendation: it can be extended to other Telegram forks in LSPosed, while non-Telegram apps are skipped automatically.
  • Fixes Hide Story bar and Hide contacts tab not taking effect on the Web distribution.

Compatibility

  • This release requires an LSPosed version that supports libxposed API 102.
  • For a pre-API-102 environment, use 0.1.5 from the historical Releases; it is the final pre-API-102 version.

⭐ If GramSieve helps you, please give the project a Star! Your support helps keep it moving forward.

Assets

1

9/18/2026, 9:32:02 AM

更新日志

  • 适配 Telegram 12.10.3(70892),更新混淆后的类、字段及方法映射。
  • 按 Telegram APK 构建加载对应映射,保留 12.10.2(70862)的适配及已有配置。

兼容说明

  • 本版本需要支持 libxposed API 102 的 LSPosed。
  • 如需 API 102 之前的兼容版本,请在历史 Releases 中获取 0.1.5;它是最后一个 API 102 之前版本。

⭐ 如果 GramSieve 对你有帮助,欢迎给项目点个 Star!你的支持会让它继续更新。

Changelog

  • Adds support for Telegram 12.10.3 (70892) with updated obfuscated class, field, and method mappings.
  • Selects mappings for the exact Telegram APK build while retaining support for 12.10.2 (70862) and preserving existing settings.

Compatibility

  • This release requires an LSPosed version that supports libxposed API 102.
  • For a pre-API-102 environment, use 0.1.5 from the historical Releases; it is the final pre-API-102 version.

⭐ If GramSieve helps you, please give the project a Star! Your support helps keep it moving forward.

Assets

1

9/17/2026, 4:59:13 AM

更新日志

  • 适配 Telegram 12.10.2(70862),更新混淆后的类、字段和方法映射,以及消息列表、下载按钮、设置入口和 Story 保存等接口。
  • 修复开启“隐藏联系人页”后,冷启动未按已保存设置隐藏入口的问题。
  • 兼容新版动态副标题和雪花动画接口,关闭雪花动画开关时恢复原生状态。
  • 模块版本号从本版起与适配的 Telegram 版本一致;同一 Telegram 版本的后续修订继续递增内部版本码。

兼容说明

  • 本版本需要支持 libxposed API 102 的 LSPosed。
  • 如需 API 102 之前的兼容版本,请在历史 Releases 中获取 0.1.5;它是最后一个 API 102 之前版本。

支持项目

⭐ 如果 GramSieve 对你有帮助,欢迎给项目点个 Star!你的支持会让它继续更新。

Changelog

  • Updates integration for Telegram 12.10.2 (70862), including obfuscated class, field, and method mappings and changed interfaces for message lists, download buttons, settings entries, and Story saving.
  • Fixes the saved Hide Contacts setting not taking effect on a cold start.
  • Supports the updated animated subtitle and snow-animation interfaces, restoring native animation state when the switch is disabled.
  • Module version names now match the supported Telegram version. Further module revisions for the same Telegram version continue incrementing the internal version code.

Compatibility

  • This release requires an LSPosed version that supports libxposed API 102.
  • For a pre-API-102 environment, use 0.1.5 from the historical Releases; it is the final pre-API-102 version.

Support the project

⭐ If GramSieve helps you, please give the project a Star! Your support helps keep it moving forward.

Assets

1

9/12/2026, 6:14:03 AM

更新日志

  • 设置修改后自动保存并立即生效,覆盖开关、选项和输入内容;移除全局与聊天设置页的“保存”按钮,保留返回操作。
  • 修复更新或热重载后,Telegram 内保存的配置可能被模块侧旧配置覆盖的问题,保留已有规则与功能开关。
  • 新增独立的“隐藏 Story 横栏”开关,隐藏时同步收起空白占位,关闭后恢复原生入口;与 Story 浏览状态隐私开关分别控制。
  • 修复私密媒体保存策略在新版 Telegram 中未生效的问题。
  • 适配 Telegram 12.10.1,更新 Story 浏览状态相关挂载,并修复隐藏手机号、受限内容复制、语音与 Story 保存、高级贴纸页、联系人页、首页悬浮按钮、即时相机、资料页 ID 和名称复制的接口或字段失配。
  • 将已有实机验证记录的 7 项增强移入“已测试功能”:消息 ID、隐藏手机号、隐藏联系人页、隐藏首页悬浮按钮、关闭即时相机、资料页 ID、复制资料名称。其余 31 项继续保留“未测试”标记与原有开关。
  • 扩展 ADB 诊断,可读取真实配置、Hook 注册与调用计数、界面状态和设置控件,支持通过实际开关验证即时保存。

兼容说明

  • 本版本需要支持 libxposed API 102 的 LSPosed。
  • 如需 API 102 之前的兼容版本,请在历史 Releases 中获取 0.1.5;它是最后一个 API 102 之前版本。

支持项目

⭐ 如果 GramSieve 对你有帮助,欢迎给项目点个 Star!你的支持会让它继续更新。

Changelog

  • Settings now save and apply automatically when switches, options, or text change. Removes the Save button from global and chat settings while keeping Back navigation.
  • Fixes older module-side settings overwriting settings saved inside Telegram after an update or hot reload. Existing rules and feature switches are preserved.
  • Adds a separate Hide Story Bar switch that removes the bar and its empty space, and restores the native entry when disabled. Story-view privacy remains independently controlled.
  • Fixes the secret-media saving policy not taking effect in newer Telegram versions.
  • Updates Telegram 12.10.1 integration, including Story-view hooks and mismatched methods or fields for phone-number hiding, restricted-content copying, voice and Story saving, the premium sticker tab, contacts, home action buttons, instant camera, profile IDs, and profile-name copying.
  • Moves seven enhancements with device-verification records into Tested Features: message IDs, hidden phone numbers, hidden contacts, hidden home action buttons, disabled instant camera, profile IDs, and profile-name copying. The remaining 31 retain their Untested label and existing switches.
  • Expands ADB diagnostics with actual configuration, hook registration and invocation counts, UI state, and settings controls, including verification of immediate saving through real switches.

Compatibility

  • This release requires an LSPosed version that supports libxposed API 102.
  • For a pre-API-102 environment, use 0.1.5 from the historical Releases; it is the final pre-API-102 version.

Support the project

⭐ If GramSieve helps you, please give the project a Star! Your support helps keep it moving forward.

Assets

1

9/8/2026, 1:20:35 AM

更新日志

  • 修复媒体组快捷屏蔽未读取完整说明的问题:长按组内任意图片,即可根据同一媒体组的真实正文和说明文字生成屏蔽规则。
  • 修复 Telegram 自动生成的“相册”等媒体标签参与文本匹配、导致无关相册被误屏蔽的问题。
  • 媒体组中的多条说明分别匹配,保留整组过滤和排除规则优先级;无正文、无说明的纯图片不会生成文本屏蔽规则。已有规则与配置继续保留。

兼容说明

  • 本版本需要支持 libxposed API 102 的 LSPosed。
  • 如需 API 102 之前的兼容版本,请在历史 Releases 中获取 0.1.5;它是最后一个 API 102 之前版本。

支持项目

⭐ 如果 GramSieve 对你有帮助,欢迎给项目点个 Star!你的支持会让它继续更新。

Changelog

  • Fixes quick blocking for media groups with captions on another item. Long-pressing any image in the group now creates blocking rules from the group's actual text and captions.
  • Fixes unrelated albums being hidden when Telegram-generated media labels, such as “Album”, are treated as message text.
  • Matches each caption separately while preserving whole-group filtering and exclusion priority. Uncaptioned images without message text do not create text-based blocking rules. Existing rules and settings are retained.

Compatibility

  • This release requires an LSPosed version that supports libxposed API 102.
  • For a pre-API-102 environment, use 0.1.5 from the historical Releases; it is the final pre-API-102 version.

Support the project

⭐ If GramSieve helps you, please give the project a Star! Your support helps keep it moving forward.

Assets

1

9/6/2026, 10:40:26 AM

更新日志

  • 修复聊天消息列表滑动卡顿,减少消息绑定、布局测量和媒体组过滤中的重复处理。
  • 缓存反射成员查找结果,减少重复查找与异常开销,改善连续滑动的流畅度。
  • 减少滑动期间重复的诊断日志,保留主动取消下载等关键事件的详细记录。

兼容说明

  • 本版本需要支持 libxposed API 102 的 LSPosed。
  • 如需 API 102 之前的兼容版本,请在历史 Releases 中获取 0.1.5;它是最后一个 API 102 之前版本。

支持项目

⭐ 如果 GramSieve 对你有帮助,欢迎给项目点个 Star!你的支持会让它继续更新。

Changelog

  • Fixes message-list scrolling stutter in chats by reducing repeated message binding, layout measurement, and media-group filtering work.
  • Caches reflection member lookups to reduce repeated searches and exception overhead, improving continuous scrolling smoothness.
  • Reduces repetitive diagnostics during scrolling while retaining detailed records for key events such as explicit download cancellation.

Compatibility

  • This release requires an LSPosed version that supports libxposed API 102.
  • For a pre-API-102 environment, use 0.1.5 from the historical Releases; it is the final pre-API-102 version.

Support the project

⭐ If GramSieve helps you, please give the project a Star! Your support helps keep it moving forward.

Assets

1

9/3/2026, 2:59:44 AM

更新日志

这次更新

  • 修复自己主动删除消息时可能需要操作两次,以及冷启动后残留“已删除”占位或重复删除动画的问题;本人发起的删除正常生效,其他人的撤回仍按防撤回设置处理。
  • 修复下载管理页“全选”文字在浅色主题或英文界面下不可见的问题;现在会跟随 Telegram 当前主题与应用内语言,切回中文后也会立即恢复“全选”。
  • 新增“一键清空全部过滤规则”,可同时清除全局规则和所有聊天规则,并保留防撤回、编辑历史、消息标记、浏览位置、日志及其他功能设置。
  • 设置页新增“已测试功能”和“未测试功能”分区;已测试功能默认展开,未测试功能默认收起。
  • 统一 Telegram 内注入界面的语言来源,并补齐英文界面检查,避免 Telegram 应用内语言与系统语言不一致时显示错误文案。
  • 项目首页新增软件发布频道入口。

兼容说明

  • 本版本需要支持 libxposed API 102 的 LSPosed。
  • 如需 API 102 之前的兼容版本,请在历史 Releases 中获取 0.1.5;它是最后一个 API 102 之前版本。

支持项目

⭐ 如果 GramSieve 对你有帮助,欢迎给项目点个 Star!你的支持会让它继续更新。

Changelog

What's new

  • Fixes outgoing message deletion sometimes requiring two attempts, or leaving a “Deleted” placeholder or repeated deletion animation after a cold start. Deletions initiated by you now proceed normally, while other users' recalls still follow the anti-recall setting.
  • Fixes the invisible “Select All” label in Telegram's download manager on light themes or in English. The label now follows Telegram's current theme and in-app language, including switching back to Chinese immediately.
  • Adds one-tap clearing of all filter rules. Global and per-chat rules are removed together while anti-recall, edit history, message marks, read positions, logs, and other feature settings are preserved.
  • Adds separate Tested and Untested feature sections. Tested features start expanded; untested features remain collapsed by default.
  • Unifies the language source for UI injected into Telegram and completes the English UI audit, preventing incorrect labels when Telegram's in-app language differs from the system language.
  • Adds the software release channel to the project homepage.

Compatibility

  • This release requires an LSPosed version that supports libxposed API 102.
  • For a pre-API-102 environment, use 0.1.5 from the historical Releases; it is the final pre-API-102 version.

Support the project

⭐ If GramSieve helps you, please give the project a Star! Your support helps keep it moving forward.

Assets

1

9/2/2026, 10:49:21 AM

更新日志

这次更新

  • 修复 telegram.org 官网版 Telegram 在部分群屏蔽消息后,消息卡片被拉长、内容重叠和背景穿透的问题。
  • 修复 API 102 热重载后聊天菜单重复,以及设置页、资料页和下载页已有入口失效的问题。
  • 修复 Telegram 12.10.1 下载管理页长按进入多选后不显示“全选”按钮的问题;现在直接跟随 Telegram 原生多选操作栏。
  • 恢复“跳转到第一条消息”,并保留“跳转到上次浏览”和“跳转到标记位置”。
  • 新增“下载按钮常驻”开关(默认关闭);开启后直接保留 Telegram 原生下载入口,点击、动画和进度仍由 Telegram 处理。
  • 新增终端风格日志控制台,支持自由复制和按时间范围导出。
  • 正式版日志自动脱敏,同时保留状态、数量、错误与堆栈等排障信息。
  • 更新 GramSieve 品牌图标和项目首页展示。
  • 更新模块后无需强制停止 Telegram,API 102 可在原进程完成热重载。

兼容说明

  • 本版本需要支持 libxposed API 102 的 LSPosed。
  • 如需 API 102 之前的兼容版本,请在历史 Releases 中获取 0.1.5;它是最后一个 API 102 之前版本。

支持项目

⭐ 如果 GramSieve 对你有帮助,欢迎给项目点个 Star!你的支持会让它继续更新。

Changelog

What's new

  • Fixes stretched message cards, overlapping content, and background bleed after filtering messages in some groups on the official telegram.org build.
  • Fixes duplicated chat menu items and inactive settings, profile, and download-page entries after an API 102 hot reload.
  • Restores the missing “Select All” action after long-pressing an item in Telegram 12.10.1's download manager by binding directly to Telegram's native selection action bar.
  • Restores “Jump to first message” while preserving jumps to the last-viewed and marked positions.
  • Adds an optional “Keep download button visible” switch (off by default) that retains Telegram's native download entry, including its original click, animation, and progress handling.
  • Adds a terminal-style log console with free text selection and time-range export.
  • Redacts release logs while retaining useful state, counts, errors, and stack traces for diagnostics.
  • Updates the GramSieve brand icon and project homepage presentation.
  • Telegram no longer needs to be force-stopped after updating the module; API 102 can hot-reload it in the existing process.

Compatibility

  • This release requires an LSPosed version that supports libxposed API 102.
  • For a pre-API-102 environment, use 0.1.5 from the historical Releases; it is the final pre-API-102 version.

Support the project

⭐ If GramSieve helps you, please give the project a Star! Your support helps keep it moving forward.

Assets

1

9/1/2026, 1:41:16 PM

更新日志

这次更新

  • 0.2.0 是 GramSieve 首个基于 libxposed API 102 的版本,需要使用支持 API 102 的 LSPosed。
  • 现在同时支持 Google Play 官方 Telegram(org.telegram.messenger)和 telegram.org 官网官方 Telegram(org.telegram.messenger.web)。
  • 修正模块静态作用域、宿主资源和 ADB CLI 的客户端匹配;使用哪一个官方 Telegram,就自动匹配对应包名。
  • 现有的消息过滤、消息标记、防撤回、编辑历史、下载保护,以及 Telegram 内设置入口全部保留。
  • 更新安装后,请先强制停止 Telegram,再重新打开,让新版本模块生效。

兼容说明

  • 若 LSPosed 尚未支持 API 102,或仍需 API 101 兼容版本,请继续使用数小时前发布的上一版本 0.1.5;0.1.5 是最后一个 API 102 之前的版本。

支持项目

⭐ 如果 GramSieve 对你有帮助,欢迎给项目点个 Star!你的支持会让它继续更新。

Changelog

What's new

  • 0.2.0 is GramSieve's first libxposed API 102 release and requires an LSPosed version that supports API 102.
  • GramSieve now supports both official Telegram clients: Google Play (org.telegram.messenger) and the official telegram.org build (org.telegram.messenger.web).
  • Static scope, host resources, and ADB CLI client matching are corrected; the matching package is selected automatically for the Telegram client you use.
  • Existing message filtering, message marks, anti-recall, edit history, download protection, and the in-Telegram settings entry are all preserved.
  • After updating, force-stop Telegram once and reopen it so the new module version can take effect.

Compatibility

  • If LSPosed does not support API 102 yet, or you still need API 101 compatibility, continue using the previous 0.1.5 release published a few hours ago; 0.1.5 is the final pre-API-102 version.

Support the project

⭐ If GramSieve helps you, please give the project a Star! Your support helps keep it moving forward.

Assets

1

9/1/2026, 9:06:43 AM

更新日志

这次更新

  • GramSieve 设置现在直接放在 Telegram 里,打开和调整更方便。
  • 多账号的数据会分别保存,不会再互相混在一起。
  • 如果和其他 Telegram 模块发生冲突,可以针对单个模块切换处理方案;这些开关默认关闭。
  • 支持通过 ADB 查看状态和调整开关,不再依赖截图或模拟点击。
  • 下载与历史记录日志更加完整,发生异常时更容易查出停止或受影响的原因。
  • 现有的消息过滤、消息标记、防撤回和编辑历史功能全部保留。

兼容说明

  • 实验性增强功能仍然默认关闭,需要时再逐项开启。
  • 0.1.5 是最后一个非 libxposed API 102 版本;下一版本将升级到 API 102。

支持项目

⭐ 如果 GramSieve 对你有帮助,欢迎给项目点个 Star!你的支持会让它继续更新。

Changelog

What changed

  • GramSieve settings now live directly inside Telegram for easier access.
  • Multi-account data is stored separately so accounts no longer mix with each other.
  • If another Telegram module conflicts with GramSieve, you can switch the handling method for that module; these switches remain off by default.
  • ADB can inspect status and change switches without screenshots or simulated taps.
  • Download and history logs now provide clearer evidence when something stops or is affected.
  • Existing filtering, message marks, anti-recall, and edit-history features are preserved.

Compatibility notice

  • Experimental enhancements remain disabled by default and can be enabled individually when needed.
  • 0.1.5 is the final pre-libxposed-API-102 release; the next version will migrate to API 102.

Support the project

⭐ If GramSieve helps you, please give the project a Star! Your support helps keep it moving forward.

Assets

1

7/25/2026, 4:42:47 AM

更新日志

新增

  • 新增 Telegram 历史加载适配层,将 GramSieve 主动加载与 Telegram 自身的聊天分页、滚动加载和跳转请求隔离,并按当前版本的重载签名安全构造调用参数。
  • 新增更直观的下载控制,真正做到按你的意图下载和取消下载:取消后不允许 Telegram 自动恢复;点击下载后也不允许 Telegram 擅自取消,若因内部原因中断会自动继续。
  • 新增可靠视频下载管理,覆盖 Telegram 的普通文件加载、流式加载、内部队列创建和下载进度通知;下载中断或长时间无进度时会按退避策略自动恢复。
  • 新增明确取消登记:用户点击下载按钮上的 X 后,该文件会进入硬停止状态,自动重试、播放器清理和后续隐藏加载路径都不能重新拉起下载;只有用户再次主动点击下载才会解除。
  • 设置界面改为完全寄生于 Telegram:全局设置统一从 Telegram 设置页进入,聊天设置从右上角菜单进入,不再提供独立应用界面或“打开完整配置”跳转。
  • 寄生设置页现在读取 Telegram 主题颜色并适配系统栏,支持全局规则、聊天规则和主动加载配置在宿主内直接保存并立即生效。

修复与优化

  • 修复主动加载与 Telegram 正常分页共用请求状态时可能互相覆盖、重复回调或使用错误消息偏移的问题,并增强 Telegram 12.9.x 重载兼容性。
  • 修复用户点击 X 取消视频下载后,播放链路、FileLoader 队列或播放器清理流程仍可能让下载重新出现的问题,同时保留用户手动重新下载能力。
  • 修复配置持久化对新旧规则做并集合并,导致已经删除的规则重新出现的问题;配置现在按更新时间选择完整快照,相同时间以宿主刚保存的快照为准。
  • 空配置广播或持久化请求现在会被忽略,避免异常入口覆盖现有配置。
  • 修复寄生设置页只能点击左上角返回的问题;系统返回按钮和边缘返回手势现在都会优先关闭 GramSieve 面板,并停留在原 Telegram 页面。
  • 修复寄生面板关闭、重新打开或宿主窗口销毁后系统返回回调可能残留的问题。
  • 主动加载和清理模式菜单不再在状态文字后显示聊天 ID,保留原有按聊天独立生效的行为。
  • 移除独立配置 Activity、启动器入口、旧弹窗主题和模块配置页回退路径,避免设置在 Telegram 与模块应用之间割裂。
  • 配置保存提示改为明确显示“已保存并立即生效”,并同步更新中英文 README 的入口与持久化说明。

工程、测试与发布

  • 新增 TelegramHistoryApiAdapter、ReliableVideoDownloadManager、ReliableDownloadState 和 DownloadCancellationRegistry,并将后台加载与下载可靠性逻辑从主 Hook 编排器中拆分。
  • 新增并扩展后台加载、历史 API 适配、下载取消、可靠下载状态和配置快照的 JVM 回归测试。
  • 完成 testDebugUnitTest、assembleDebug、lintDebug 和 Release 构建检查,并在 Telegram 12.9.x 真机验证寄生设置、系统返回及下载 Hook 路径。
  • 版本号更新为 versionName 0.1.4、versionCode 5。

Changelog

Compared with 0.1.3, this 0.1.4 release includes:

Added

  • Added a Telegram history-loading adapter that isolates GramSieve proactive loads from Telegram chat pagination, scrolling, and jump requests while safely constructing arguments for the active overload.
  • Added straightforward download control so downloads follow your intent: after you cancel, Telegram cannot restart the download automatically; after you tap Download, Telegram cannot stop it on its own, and internal interruptions resume automatically.
  • Added reliable video download management across regular file loading, stream loading, internal queue creation, and download-progress notifications; interrupted or stalled downloads recover automatically with backoff.
  • Added explicit cancellation tracking: after the user taps X on a download, automatic retries, player cleanup, and hidden loading paths cannot restart that file. Only a new user-initiated download clears the hard stop.
  • Made configuration fully host-native: global settings now live in Telegram Settings, chat settings live in the top-right chat menu, and the standalone app UI plus Full Settings fallback are removed.
  • The host panel now follows Telegram theme colors, handles system bars, and saves global rules, chat rules, and proactive-loading configuration directly inside Telegram with immediate effect.

Fixed And Improved

  • Fixed proactive loading sharing request state with Telegram pagination, which could overwrite offsets, duplicate callbacks, or select an incompatible overload; Telegram 12.9.x compatibility is improved.
  • Fixed video downloads rebounding after an explicit X through playback, FileLoader queue, or player-cleanup paths while preserving manual restart.
  • Fixed persistence union-merging old and new rules and resurrecting deleted entries; persistence now selects the newest complete snapshot, with the newly saved host snapshot winning equal timestamps.
  • Empty configuration broadcasts and persistence requests are now ignored instead of risking an overwrite.
  • Fixed the host settings panel requiring the top-left Back button; the system Back button and edge-back gesture now close GramSieve first and remain on the underlying Telegram page.
  • Fixed system-back callbacks potentially surviving panel close, replacement, or host-window teardown.
  • Proactive Loading and Cleanup Mode menu labels no longer append chat IDs, while their per-chat behavior is unchanged.
  • Removed the standalone configuration Activity, launcher entry, obsolete dialog themes, and module-activity fallback so configuration no longer crosses between Telegram and a separate app.
  • Updated the save confirmation to state that changes are saved and immediately applied, and refreshed the bilingual README entry-point and persistence documentation.

Engineering, Tests, And Release

  • Added TelegramHistoryApiAdapter, ReliableVideoDownloadManager, ReliableDownloadState, and DownloadCancellationRegistry, separating background-history and download-reliability responsibilities from the main hook orchestrator.
  • Added and expanded JVM regression coverage for background loading, Telegram history API adaptation, explicit cancellation, reliable download state, and complete configuration snapshots.
  • Completed testDebugUnitTest, assembleDebug, lintDebug, and Release build checks, with Telegram 12.9.x device verification for host settings, system Back, and download hook paths.
  • Updated the app to versionName 0.1.4 and versionCode 5.

Assets

1

7/13/2026, 10:15:37 AM

更新日志

新增

  • 新增模块冲突检测,识别 Telegami、TeleVip、Re:Telegram、Killergram、Telegram Speed Hook 和 Telegram Tweaks/SideStories,并按防撤回、编辑历史、下载参数、Secret Media、保存限制、去广告、Stories、隐私与 UI 注入等重叠能力给出分级风险与避让建议。
  • 冲突检测在获得 root 授权后仅以只读方式查询 LSPosed 私有数据库,确认模块总开关和 Telegram 作用域;界面会显示各模块实际状态,查询失败时自动退回已安装包检测,且不会修改 LSPosed 数据库。
  • 新增主动加载与防撤回/防修改能力,可在模块全局设置中开启总开关。
  • Telegram 聊天右上角菜单新增按会话开启/关闭主动加载的入口,并直接显示当前状态。
  • 聊天右上角菜单新增“清理模式”,开启后 5 分钟内放行当前会话的批量删除操作,并可再次点击提前关闭。
  • 后台主动加载器会定期拉取已启用会话的最近消息,并在重启后自动恢复已启用的会话。
  • 收到 Telegram/MiPush 相关推送入口时会立即触发主动加载,减少进入聊天后才开始加载的延迟。
  • 新增媒体预取流程,主动调用 Telegram 文件加载路径并把可用的图片、视频等原始媒体复制到 GramSieve 缓存,降低打开编辑历史时转圈等待的概率。
  • 新增撤回/编辑检测,覆盖 Telegram 更新流、删除消息、编辑消息和已加载消息缓存路径。
  • 对方撤回产生的删除更新仍会在 Telegram 正式处理前清空待删除 ID,尽量阻止官方删除动作继续移除本地消息;用户主动删除则通过短时删除意图识别正常放行,并同步清理 GramSieve 中对应的消息、编辑历史和缓存媒体。
  • 用户确认删除整个对话后,GramSieve 会停止该会话的主动加载,清除模块侧消息、编辑历史和媒体缓存,并按 Telegram 账号隔离持久化本地隐藏状态;重启后的本地清理仅作用于经验证与该对话直接关联的 cache4 白名单表,避免已删对话被旧缓存重新带回列表。
  • 新增消息缓存体系:LRU 内存缓存 + SQLite 持久化,保存原始文本、媒体说明、发送者、媒体类型、媒体 ID、编辑/撤回状态和缓存媒体路径。
  • 新增媒体缓存,将原始图片、视频和其他可解析媒体复制到模块缓存中,供编辑历史和撤回后预览使用。
  • 消息绑定时会缓存普通文本、媒体说明、图片、视频、文档等内容,并用内容 + 媒体类型 + 媒体 ID 指纹区分真实编辑和非内容更新。
  • 点击消息弹窗中在“标记此消息”下方新增“编辑历史”入口;没有可展示编辑历史的消息不再显示该入口。
  • 编辑历史支持显示原始文本/媒体说明与编辑后内容。
  • 编辑前图片优先接入 Telegram 官方 PhotoViewer,保留顶部栏、右上角菜单和官方“保存到图库”入口。
  • 有 Telegram 原始媒体对象的历史图片/视频会优先尝试官方 PhotoViewer;缓存视频提供本地全屏播放器兜底。
  • 对仅有持久化缓存文件的原始图片构造隔离的临时 Telegram 图片消息,避免查看或保存后影响聊天中当前图片。
  • 原始媒体尚未缓存但仍有 Telegram 媒体对象时,会触发媒体预取并提示稍后重试;纯媒体历史缺失时会给出明确提示而不是打开空白页。
  • 被撤回消息会保留原内容提示,并尽量还原缓存媒体预览。
  • 运行日志现在写入 Telegram 进程 app-specific 外部目录,早期尚未拿到宿主 Context 的日志会先排队并在初始化后刷新进文件。
  • 模块进程收到 Provider 持久化日志时也会写入模块自身 app-specific 外部日志文件。
  • README 新增主动加载、防撤回、防修改、编辑历史媒体查看和持久化日志说明,并同步修正消息标记入口文案。
  • 配置入口现在寄生到 Telegram 设置列表中的 GramSieve 行,点击后在宿主设置页内打开模块配置。
  • 聊天页右上角配置入口优先打开宿主内嵌配置面板,不再直接跳出到模块 Activity。
  • 编辑历史改为多版本保存,新增 edit_history 持久化记录,连续编辑会保留多个版本。
  • MessagesStorage.putMessages 写入前会只读 Telegram 本地 messages_v2/messages_topics 旧消息,与新消息比较,补齐离线或历史同步期间发生的编辑。

修复与优化

  • 修复 Telegram 启动早期 ActivityThread.currentApplication 为空导致防撤回初始化失败的问题,改为在宿主或聊天 Context 可用时初始化。
  • 修复当前 Telegram 版本 loadMessages 反射签名不匹配导致主动加载失效的问题,改为按重载参数动态构造调用参数。
  • 修复 TL_updateEditChannelMessage / TL_updateEditMessage 字段识别问题,正确从 message 字段读取编辑后的消息。
  • 修复频道/群组删除更新中的 dialogId 解析,支持 channel_id + messages 的撤回更新。
  • 修复 Telegram 12.8.3 的 deleteMessages 同时携带 messageIds 与 randomIds 时,把随机 ID 误当消息 ID 的问题;现在只解析第一个 Integer 消息 ID 列表。
  • 修复私聊 messagesDeleted 事件使用 dialogId=0 时,用户主动删除仍被防撤回拦截的问题;仅在全部消息 ID 唯一匹配同一条未过期删除意图时放行,歧义场景继续保守保护。
  • 修复删除操作仍处于 Undo 暂存阶段就提前清理缓存并隐藏对话的问题;本地清理现在只在实际删除提交边界触发。
  • 修复单独拉黑联系人被误判为删除对话并清空 GramSieve 历史的问题;blockPeer 不再触发对话清理。
  • 修复已开启主动加载的会话没有持久化、重启后不会自动加载的问题。
  • 修复本地隐藏状态仅按 dialogId 保存,导致多个 Telegram 账号中相同 peer 相互影响的问题;持久化键、旧键迁移、列表过滤和启动清理现在均按账号隔离。
  • 修复消息数据库读取 is_recalled / is_edited、媒体字段和缓存路径不完整的问题,并补齐游标关闭与线程安全处理。
  • 通过数据库迁移和 putFresh 逻辑重置旧的 isEdited / isRecalled 脏状态,避免普通消息被历史标记污染。
  • 修复反应、浏览量等非内容更新被误判为消息编辑的问题。
  • 修复普通消息误出现黄色或红色背景的问题,并移除编辑/撤回消息区域的强背景色显示。
  • 修复被复用的消息 Cell 残留撤回/编辑视觉状态,导致其他正常消息被污染的问题。
  • 修复没有编辑内容的消息仍显示“编辑历史”入口的问题。
  • 修复编辑前图片打开黑屏、被误判为视频、顶部栏缺失、右上角菜单不可用的问题。
  • 修复官方保存原始图片后返回聊天,当前图片区域变透明/空白的问题。
  • 修复部分编辑历史图片点击无反应时缺少可诊断日志的问题,现在会记录媒体类型、媒体 ID、缓存路径和 Telegram 媒体对象状态。
  • 修复 Telegram 菜单项 setText / setTextAndIcon 反射兼容性和点击处理,提升“主动加载”“编辑历史”“标记此消息”等菜单注入稳定性。
  • 提升防撤回、主动加载和媒体缓存相关日志可见性,并改为读取持久化文件而不是易溢出的 logcat 缓冲区。
  • 放弃公共 /sdcard/GramSieve 日志路径,避免 scoped-storage 权限导致文件不存在;诊断路径改为 app-specific 外部目录。
  • 修复 README 中消息标记入口描述,将长按更正为单击。
  • 回退未发布的系统 TranslationManager 翻译实验,本版不包含该隐藏 API 功能。
  • 移除了 Telegram 设置页右上角三点菜单里的“过滤规则”寄生入口,避免入口重复。
  • 宿主内嵌配置页改为固定全黑背景,并修复从该页返回时直接退出 Telegram 设置页或回到桌面的问题。
  • SQLite 持久化写入改为单线程序列化队列,降低 hook 流程阻塞 Telegram UI 的风险。
  • 收紧 Telegram cache4 本地清理白名单,排除并非 dialogId 归属的 download_queue.uid、saved_dialogs.did 和 requested_holes.uid,避免误删下载队列、Saved Messages 分组或秘密聊天重传状态。
  • 反撤回链路增强了对方撤回的本地删除拦截、NotificationCenter 删除通知拦截和 Telegram 本地消息 deleted flag 标记,减少图片/媒体消息在滑动重绑后被 Telegram 自身状态覆盖的问题;同时明确区分用户主动删除,确保对应的本地数据库、通知和 UI 更新能够正常放行。

工程、测试与发布

  • 新增 InstalledModuleScanner、LSPosedModuleStateReader、ModuleConflictDetector 及对应 JVM 测试,并补充 Android 包可见性声明与 app_process 保留规则。
  • 新增 AntiRecallConfigStore、BackgroundMessageLoader、MessageCache、MessageDatabaseHelper、MediaCache、MediaPrefetcher、RecallDetector 等防撤回核心模块,并增加 SelfDeleteTracker、LocalDialogDeleteStore、TelegramDialogDatabasePruner 和 TelegramDialogPrunePlan,承载用户主动删除识别、账号隔离隐藏和白名单本地清理。
  • 新增 AntiRecallConfigStoreTest、BackgroundMessageLoaderTest、MessageCacheTest、RecallDetectorTest、SelfDeleteTrackerTest、LocalDialogDeleteStoreTest、TelegramDialogPrunePlanTest 和 TelegramHookInstallerTest 等 JVM 测试,并补充删除拦截、真实编辑判断、多列表参数解析、私聊全局删除唯一匹配、账号键迁移、Undo 提交边界、blockPeer 隔离和 cache4 白名单回归覆盖。
  • 新增 AntiRecallIntegrationTest 仪器测试,覆盖防撤回集成路径。
  • 新增 Mockito 测试依赖,用于 SharedPreferences 等配置存储测试。
  • 新增防撤回方案与设计文档,记录主动加载、撤回/编辑检测、缓存和 UI 集成方案。
  • AGENTS.md 新增发布说明规范、持久化日志排查流程、Telegram Hook 生命周期和防撤回架构说明,并更新日志读取路径为 app-specific 外部目录。
  • CI 新增 GitHub Release 发布时自动构建并上传 APK 的 release-apk job。
  • 新增 SOURCE_URL 元数据文件。
  • 版本号更新为 versionName 0.1.3、versionCode 4,版本线保持 0.1.x。
  • 增加 Telegram APK 版本化归档脚本,便于复用反编译材料并避免 APK、apktool 输出进入仓库。
  • 补充宿主配置面板、序列化存储、多版本编辑历史和反撤回缓存相关测试。

Changelog

Compared with v0.1.1, this v0.1.3 release includes:

Added

  • Added module conflict detection for Telegami, TeleVip, Re:Telegram, Killergram, Telegram Speed Hook, and Telegram Tweaks/SideStories, with graded risks and avoidance guidance for overlapping anti-recall, edit-history, download, Secret Media, save-restriction, ad-blocking, Stories, privacy, and UI-injection capabilities.
  • After root authorization, conflict detection uses read-only queries against the private LSPosed database to confirm each module's master switch and Telegram scope; the UI shows the confirmed state, falls back to installed-package detection when the query fails, and never modifies the LSPosed database.
  • Added proactive loading with anti-recall and anti-edit support, controlled by a new global module setting.
  • Added a per-chat proactive loading toggle to Telegram's top-right chat menu, with the current state shown directly in the menu text.
  • Added Cleanup Mode to the top-right chat menu; while enabled, bulk deletion in the current chat is allowed for five minutes and can be turned off early with another tap.
  • Added a background loader that periodically loads recent messages for enabled chats and restores enabled chats after restart.
  • Telegram/MiPush-related push entry points now trigger an immediate proactive load, reducing the delay before messages are cached after push delivery.
  • Added media prefetching that asks Telegram's file-loading path for original images/videos and copies available files into GramSieve's cache, reducing spinner time when opening edit history.
  • Added recall/edit detection across Telegram update processing, delete calls, edit calls, and loaded-message caching paths.
  • Delete updates caused by remote recalls still clear message IDs before Telegram handles them, helping prevent official local deletion from removing preserved messages; user-initiated deletes are now recognized through short-lived deletion intents, allowed to proceed, and purge the corresponding GramSieve messages, edit history, and cached media.
  • After a full-dialog deletion is confirmed, GramSieve stops proactive loading for that chat, clears module-side messages, edit history, and media caches, and persists the local hide per Telegram account; restart cleanup is restricted to a verified cache4 allowlist of dialog-owned tables so stale local data does not bring the deleted dialog back into the list.
  • Added a message cache stack: LRU memory cache plus SQLite persistence for original text, captions, sender, media type, media ID, edit/recall flags, and cached media paths.
  • Added media caching for original images, videos, and other resolvable media so edit history and recalled-message previews can use preserved files.
  • Message binding now caches text, captions, photos, videos, documents, and media fingerprints based on content + media type + media ID.
  • Added an Edit History item below Mark this message in the message popup; messages without renderable edit history no longer show that item.
  • Edit history can show the original text/caption together with the edited content.
  • Original pre-edit images now prefer Telegram's official PhotoViewer, preserving the top bar, overflow menu, and official Save to Gallery entry.
  • Historical images/videos with an original Telegram media object try the official PhotoViewer first; cached videos keep a local full-screen player fallback.
  • Cached-only original images use an isolated temporary Telegram photo message, preventing the current chat image from being affected after viewing or saving.
  • If original media is not cached yet but a Telegram media object is still available, GramSieve triggers media prefetch and asks the user to retry shortly; missing media-only history now shows a clear message instead of opening a blank view.
  • Recalled messages retain an original-content hint and try to restore cached media previews.
  • Runtime logs now write to Telegram's app-specific external directory, and early logs emitted before host Context exists are queued and flushed once initialization completes.
  • Logs persisted through the module ContentProvider are also written to the module app's own app-specific external log file.
  • README now documents proactive loading, anti-recall, anti-edit, edit-history media viewing, and persistent log paths, and updates message-marking entry text.
  • The configuration entry is now injected into Telegram's settings list as a GramSieve row and opens inside the host settings page.
  • The chat menu configuration entry now prefers the host-embedded panel instead of launching the module Activity directly.
  • Edit history now stores multiple versions through the new edit_history persistence path.
  • MessagesStorage.putMessages now compares incoming messages with Telegram's existing messages_v2/messages_topics blobs to recover edits that happened during offline or history sync windows.

Fixed And Improved

  • Fixed anti-recall initialization failing when ActivityThread.currentApplication is unavailable early in Telegram startup by initializing once host or chat Context is available.
  • Fixed proactive loading failing on the current Telegram loadMessages signature by dynamically building arguments for compatible overloads.
  • Fixed TL_updateEditChannelMessage / TL_updateEditMessage handling by reading the edited message from the message field.
  • Fixed dialogId resolution for channel/group delete updates using channel_id + messages.
  • Fixed Telegram 12.8.3 deleteMessages parsing when messageIds and randomIds are supplied together; only the first Integer message-ID list is now treated as deletions.
  • Fixed user-initiated private-chat deletions still being blocked when messagesDeleted reports dialogId=0; deletion is allowed only when every ID uniquely matches one unexpired intent, while ambiguous cases remain protected.
  • Fixed GramSieve clearing caches and hiding a dialog while Telegram's delete action was still staged in UndoView; local cleanup now starts only at the committed deletion boundary.
  • Fixed standalone blockPeer calls being treated as dialog deletion and purging GramSieve history.
  • Fixed enabled proactive-loading chats not being persisted or restored after restart.
  • Fixed local hide state being keyed only by dialogId and leaking across Telegram accounts that share the same peer ID; persisted keys, legacy migration, row filtering, and startup cleanup are now account-scoped.
  • Fixed incomplete database reads for is_recalled / is_edited, media fields, and cached paths, and tightened cursor cleanup plus thread safety.
  • Reset stale isEdited / isRecalled state through database migration and putFresh logic so normal messages are not polluted by old flags.
  • Fixed reactions, view updates, and other non-content updates being treated as real message edits.
  • Fixed normal messages showing false yellow or red backgrounds, and removed strong background coloring from edited/recalled message areas.
  • Fixed reused message cells retaining stale recall/edit visual state and contaminating unrelated normal messages.
  • Fixed the Edit History item appearing on messages that have no edit content.
  • Fixed original images opening as a black screen, being misdetected as video, losing the top bar, or having an unusable overflow menu.
  • Fixed the current chat image turning transparent/blank after saving an original image through the official viewer.
  • Added diagnostic logs for edit-history media taps that cannot find a cached file, including media type, media ID, cached path, and Telegram media-object state.
  • Improved Telegram menu item reflection and click handling for Proactive Loading, Edit History, and Mark this message.
  • Improved anti-recall, proactive loading, and media-cache logging, with diagnostics based on persistent files instead of overflow-prone logcat buffers.
  • Dropped the public /sdcard/GramSieve log path to avoid scoped-storage failures; diagnostics now use app-specific external storage paths.
  • Fixed README wording for message marking from long-press to click.
  • Reverted the unreleased system TranslationManager experiment; this release does not include that hidden API feature.
  • Removed the duplicate “Filter rules” entry from Telegram settings' three-dot menu.
  • The host-embedded configuration page now uses a fixed black background and fixes back navigation so returning from GramSieve stays inside Telegram settings.
  • SQLite persistence now uses a single-thread serialized queue to reduce the risk of blocking Telegram UI hooks.
  • Restricted Telegram cache4 cleanup to verified dialog-owned tables, excluding download_queue.uid, saved_dialogs.did, and requested_holes.uid so unrelated downloads, Saved Messages grouping, and secret-chat retry state are preserved.
  • Anti-recall handling now strengthens local interception of remote recalls, NotificationCenter deletion interception, and Telegram local deleted-flag marking to reduce media messages disappearing after rebinding or scrolling; user-initiated deletion is now handled separately so the corresponding database, notification, and UI updates can proceed normally.

Engineering, Tests, And Release

  • Added InstalledModuleScanner, LSPosedModuleStateReader, ModuleConflictDetector, their JVM tests, Android package-visibility declarations, and the app_process keep rule.
  • Added the anti-recall core modules: AntiRecallConfigStore, BackgroundMessageLoader, MessageCache, MessageDatabaseHelper, MediaCache, MediaPrefetcher, and RecallDetector, plus SelfDeleteTracker, LocalDialogDeleteStore, TelegramDialogDatabasePruner, and TelegramDialogPrunePlan for user-deletion intent tracking, per-account local hiding, and allowlisted local cleanup.
  • Added JVM tests for AntiRecallConfigStore, BackgroundMessageLoader, MessageCache, RecallDetector, SelfDeleteTracker, LocalDialogDeleteStore, TelegramDialogPrunePlan, and TelegramHookInstaller, with regression coverage for delete interception, real-edit detection, multi-list parameter parsing, unique matching for private-chat global deletion events, account-key migration, Undo commit boundaries, blockPeer isolation, and cache4 allowlisting.
  • Added AntiRecallIntegrationTest for the instrumented anti-recall integration path.
  • Added Mockito for SharedPreferences and configuration-store tests.
  • Added anti-recall planning and design documentation for proactive loading, recall/edit detection, caching, and UI integration.
  • Updated AGENTS.md with release-note rules, persistent-log diagnostics, Telegram hook lifecycle notes, anti-recall architecture notes, and app-specific log paths.
  • Added a GitHub Release release-apk workflow job to build and upload an APK when a release is published.
  • Added SOURCE_URL metadata.
  • Updated the app to versionName 0.1.3 and versionCode 4, keeping the 0.1.x release line.
  • Added a versioned Telegram APK archive script so reverse-engineering evidence can be reused without committing APK or apktool output.
  • Added and updated tests for the host config panel, serialized storage, multi-version edit history, and anti-recall cache behavior.

Assets

1