← 返回信息流
Agent SkillLINUX DO · AI·1 小时前

基于GitHub Action编译Forkgram并对接Mimo大模型

原标题:从forkgram/tdesktop github action编译 win10 amd64 二进制文件 by Herems 对接 mimo-v2.5-pro

速览

本文记录了将Telegram客户端Forkgram编译为Windows 10 amd64二进制文件的过程。作者旨在移植屏蔽用户消息功能,并对接Mimo-v2.5-pro模型。文中分享了GitHub Action配置、API密钥管理及编译耗时等实践经验。

AI 深度解读

背景

Telegram 客户端 Ayugram 提供了一项名为“完全屏蔽被屏蔽用户的消息”(Fully Hide Messages from Blocked Users)的功能。然而,该功能对 Telegram 原版客户端(TDesktop)进行了大量修改,部分行为甚至与原版逻辑相悖,这引发了作者对于账号安全性的担忧,特别是担心因客户端行为异常而被平台封禁。

为了在保留原版客户端稳定性的同时获得特定屏蔽功能,作者决定将这一功能移植到 Forkgram 上。Forkgram 是基于 TDesktop 的一个分支项目。由于需要针对 Windows 10 AMD64 环境进行编译,作者尝试使用 GitHub Actions 自动化构建流程,但遇到了构建失败及耗时过长的问题。为此,作者记录了从 GitHub 仓库 forkgram/tdesktop 及其 Fork 版本 crazypeace/forkgram-tdesktop 中通过 Action 编译二进制文件的完整过程,并引入了 AI 助手 mimo-v2.5-pro 协助解决构建中的报错问题。

核心内容

1. 项目源与 Fork 关系

  • 原始仓库forkgram/tdesktop(GitHub)。
  • 修改版仓库crazypeace/forkgram-tdesktop。这是对上述原始仓库的一个 Fork,作者在此仓库基础上进行配置和修改。

2. 构建环境与目标

  • 目标平台:Windows 10 AMD64。
  • 兼容性策略:不考虑 Windows 7 兼容性,仅专注于 Win10 环境。
  • 构建方式:利用 GitHub Actions 自动化编译流程。

3. 关键配置与安全实践

在配置 GitHub Actions 时,敏感信息必须严格保密。作者强调以下数据只能写入 GitHub Secrets,严禁暴露在代码仓库中:

  • App api_id:用于 Telegram API 调用的应用 ID。
  • App api_hash:用于 Telegram API 调用的应用哈希密钥。

4. AI 辅助调试与修正

  • 工具:使用 AI 模型 mimo-v2.5-pro 对接构建过程。
  • 工作流:当编译过程中出现报错时,作者将错误信息反馈给 AI,由 mimo-v2.5-pro 自动分析报错原因并生成修正代码。
  • 其他修正:除了 AI 自动修正外,过程中还存在其他手动或自动的代码修正,以确保构建成功。

5. 最终配置文件

作者分享了最终成功的 GitHub Actions 工作流文件位置:

  • 文件路径:crazypeace/forkgram-tdesktop/blob/dev/.github/workflows/win.yml

关键要点

  • 安全红线:Telegram API 的 api_idapi_hash 属于敏感凭证,必须配置在 GitHub Secrets 中,任何硬编码在代码中的行为都可能导致密钥泄露。
  • AI 自动化调试:利用 mimo-v2.5-pro 等 AI 工具处理编译报错,可以显著降低排查复杂构建错误(如 C++ 编译链问题)的人力成本,实现“报错-反馈-修正”的闭环。
  • 构建耗时异常
    • 全新编译耗时:4 小时 19 分 33 秒
    • 代码微调后重新编译(利用 Action Cache)耗时:2 小时 3 分 11 秒
    • 作者指出,理论上小改动后的增量编译不应如此耗时,且在 VPS 本地编译速度更快,暗示 GitHub Actions 的缓存机制或环境配置可能存在优化空间。
  • 技术局限性:作者尝试咨询多款免费国内 AI 助手以优化 GitHub Actions 配置,但未获得有效解决方案,表明该特定构建场景下的性能瓶颈可能涉及较深层的 CI/CD 配置或平台限制。

意义与影响

  1. 平衡功能与安全:该实践展示了一种在不使用高度修改版客户端(如 Ayugram)的前提下,通过自行移植功能到轻量级 Fork 版本(Forkgram)来兼顾功能需求与账号安全的思路。
  2. 开源协作与 AI 赋能:通过 Fork 现有项目并利用 AI 辅助解决构建难题,降低了普通开发者参与大型 C++ 项目(如 TDesktop 分支)编译和维护的门槛。
  3. CI/CD 优化启示:GitHub Actions 在编译大型 C++ 项目时的高耗时问题具有普遍性。作者记录的耗时数据和未解之谜,为其他开发者提供了参考,提示在配置 CI/CD 时需关注缓存策略、构建环境选择及并行化优化,同时也指出了当前 AI 在解决特定平台配置问题上的局限性。
查看原文 →linux.do