Trae 强制伪造 git committer 身份,破坏用户 GPG 签名,且无任何开关与说明

一、行为

Trae 在执行 Agent 的每条终端命令前都会注入:
export GIT_COMMITTER_NAME=‘trae-solo-agent’
export GIT_COMMITTER_EMAIL=‘solo-agent@trae.ai’

由于 git 的优先级是「环境变量 > user.name/user.email」,Agent 产生的每个 commit 的
committer 都被替换为 trae-solo-agent solo-agent@trae.ai,而 author 仍是用户本人。

二、后果

  1. GPG 签名失效。GitHub 验签要求 committer(或 tagger)邮箱属于签名 key 的身份且是
    账号已验证邮箱(GitHub 文档:Using a verified email address in your GPG key)。
    committer 被改成非 key 身份后,提交一律被判 bad_email,线上显示 Unverified。
  2. 用户无法自行修复。该邮箱不属于用户,无法加入 key;git 的 committer.name /
    committer.email 配置也压不过环境变量;注入是逐条命令进行的,写进 shell rc 的
    unset 会被紧随其后的 export 覆盖。
  3. git 历史被写入不实信息。"谁执行了这次提交"是版本库的元数据,committer 被替换
    后,git log / blame / 签名审计看到的都不是真实操作者。

三、对设计与态度的意见

这不是功能缺失,而是把一个产品偏好强加给用户,且刻意不留出口:

  • 未征得同意:用户从未选择让第三方改写自己仓库的身份元数据。
  • 未提供开关:设置里没有相关项,文档(源代码管理、Rules)里也完全没有提及这个行为,
    用户无法预期,也无法关闭,只能被动接受并自行在命令前 unset 来抵消。
  • 与行业惯例相悖:Copilot、Claude Code 等工具标记 AI 参与时,用的是 commit message
    尾注(如 Co-authored-by),既表达归属又不篡改提交身份,更不会破坏签名。Trae 选择
    直接覆写 committer,代价全部由用户承担。
  • 归因手段与用户利益冲突:想标记 AI 产出,完全可以不牺牲用户的签名可信度。

一个 IDE 不应在用户不知情、不可关闭的情况下改动版本库的身份字段。这不是"智能",
是越权。

四、诉求

  1. 立即停止注入 GIT_COMMITTER_NAME / GIT_COMMITTER_EMAIL,尊重仓库的 user.name /
    user.email;
  2. 若需归属 AI 参与,改用 Co-authored-by 尾注;
  3. 如坚持保留该行为,至少提供显式开关,并在文档中明确告知其对 GPG 签名的影响;
  4. 请在更新日志中说明,并对已受影响的用户给出修复建议。

这个是真的嘛…如果真的在终端前这样注入确实有些过分了

还真是真的。

搞得挺恶心的,所以现在如果让TRAE提交代码,得他每次操作前要加上环境变量清理操作再提交才是干净的。

同类问题我Google搜索到不止一个反馈,但是貌似TRAE团队都没有回应是否要解决。

Trae 在提交时会把trae-solo-agent添加为实际创建提交对象的人,个人仓库里一堆trae-solo-agent committed - 互动交流 - TRAE 官方中文社区

trae你别这么恶心行不行?提交个代码 你还动手脚 Committed by trae-solo-agent - 互动交流 - TRAE 官方中文社区

甚至没有提前检查git是否已有提交人信息嘛…这…

还真是…这问题挺严重了…还好我从来不让agent提交git…

image

  1. 我认为用户(至少在特定情境下)需要agents自行开发 测试 提交。这在需求上是完全没有问题的。
    如果说 "这个agent"不该这么用 或者 不能这么用,他们又谈何SOLO。
    这已经不是两年前了,vibe coding不是新概念了。对于很多用户来说,想要,也可以这样。

    1. 他们IDE形式的界面,用户就算真的自己查看提交记录。也看不到committer被动手脚了。

  1. 这个情景 这个行为 这个问题,无论怎么样,都不是用户自己review不review的原因。是他们软件产品自己植入了这个行为。

你看下我截图。就算真要检查,无论事先事后 是否知道,根本看不出来。
总不成还要每次检查详细的git log。
那这agent也不要用了。

还是自己手动提交吧, 我始终都是这么做的…允许agent查看仓库, 但不允许修改…

其他人的帖子我看到你曾经回复了,你是看到并知道有人反馈这类问题存在的。但是这个帖子,你回复 “是真的嘛” 我感觉非常奇怪啊。

而且其他人的帖子 你自始至终好像一直都表达是用户的问题 是用户用的不合理,而非软件本身默认这样不对。我实在是不知道怎么说。

客观上就是有人需要这样用的啊,为何顾左右而言他

额…毕竟我不是这个软件的开发者…我只能说怎么用可以解决这个问题而已…主要是我在使用中没有遇到这个问题…

我最终也表达了"这问题很严重"这样的观点…不就是说这问题需要解决嘛…

我也从未否定这样用不合理啊…

不知道你质疑我做什么…搞得好像我是水军似的…:clown_face:

大家来反馈问题,结果都是说“人工来就好了” “不该让AI来” ???
这叫 ‘怎么用可以解决这个问题’?
这算什么用户。

你的攻击性太强了, 已拉黑.

我算什么用户也不由你来定义, 冒昧的家伙.

真解决方案和建议没有。所有threads上来就是问别人 为什么自己不看下 不检查一下 为什么要让AI来 自己人工处理自己是对的。(这还是在用AI coding solution吗? 不会长程任务也是自己全程值守人工审计 人工提交吧?)

回避这是有意植入的有副作用的特性。

说别人攻击性强,你混论坛混一天都在干什么。

hiiii 我来回复一下,这个问题现在已经修掉了哈,不好意思,给你们带来困扰了,很抱歉 :smiling_face_with_tear: