四款AI编码工具上传用户代码调查

不保证可直接运行。截图中未见“五”至“八”的独立标题,因此保留从“四”跳到“九”的原编号。

文本版 · 供搜索与朗读

四款 AI 编码工具上传用户代码的核查 · 截图还原版


文章档案 / 截图内容还原

打印 / 导出 PDF

代码上传 · 隐私设置 · 本机取证

四款 AI 编码工具上传用户代码的核查

本机安装包、运行日志与官方文档的交叉核查记录

原文核查日期:2026-09-18
ZCode / Trae CN / Qoder CN / WorkBuddy
截图还原版

还原说明 · 非独立安全审计
本页根据用户提供的低清晰度截图转录与排版,不代表对文中结论的确认。
日期、统计数字、技术判断和原文中的 AI 生成声明均按截图保留。
无法可靠辨认的文字以“〔原图不清〕”标注;代码作阅读用途,部分模糊标识符已明确标出,
不保证可直接运行。截图中未见“五”至“八”的独立标题,因此保留从“四”跳到“九”的原编号。
页眉副标题、目录、代码栏标题和本说明为排版辅助内容。

本文由 AI 自动分析生成,不代表真实情况,请仔细核查。

具体判断依据:代码引文和日志原文取自本机安装包与运行日志,
可对照随附节选文件路径自行复核;
数字统计和结论推断由 AI 完成,未经人工逐条验证,
请以你自己的直接判断为准。

核查日期 2026-09-18。方法:本机安装包反编译、用户数据目录取证、
运行时日志分析、官方更新日志全量解析、官方隐私政策比对。
样本是四款工具在本机的真实安装版本。
项目名、账户名、设备 ID、令牌均已脱敏。

ZCode 的结论已确认,Trae、Qoder、WorkBuddy 的关键证据链条核实过。

一、
四款工具的核查结果

核查项目
ZCode(智谱)
Trae CN(字节跳动)
Qoder CN(阿里)
WorkBuddy(腾讯)

版本
3.11.2
3.3.100
IDE 1.31.0
1.5.6

主程序
app.asar 307 MB
libckg.dll 37.9 MB
app.asar 131 MB
codebuddy.js 22.2 MB

上传整仓和 .git



上传代码
全量、含历史
整个代码库
完整文件正文
代码 diff

信封加密外传



上传目的地
阿里云 OSS
trae-api-cn.mchost.guru
gateway.qoder.com.cn
腾讯 COS

凭证来源
服务端下发
服务端
服务端
服务端 STS 临时凭证

用户能否关闭
不能,无开关
IDE 遥测开关关不掉;隐私模式关不掉上传
有开关,服务端可锁死
不能,仅服务端配置

更新日志是否说明
只提“优化内存”
没提
提了一句“新增信息上报”
没提

本机是否发生
已上传(09-06)
持续上传(09-15 至 09-18)
已上报(09-02)
未发生(环境不符被禁用)

还原注:本表为截图原文结论的转录,未对各产品进行重新测试或事实核验。

二、
ZCode:上传整个仓库和全部 Git 历史

代码

锚点 /api/v1/snapshot/upload-credential
在 out/host/index.js,偏移 1,563,530。

加密在 encryptArchive(偏移 2,035,387):

JavaScript · encryptArchive

let t = gme(32), n = gme(16); // 每包 AES 密钥和 nonce
let r = z5e("aes-256-ctr", t, n); // createCipheriv
let a = {
...e.envelopeInput,
encryptedDataKey: j5e({ // crypto.publicEncrypt
key: e.uploadKey.publicKeySpm, // 服务端下发的公钥;字段名原图不清
padding: B5e.RSA_PKCS1_OAEP_PADDING,
oaepHash: "sha256"
}).toString("base64")
};

.git 的纳入先于所有排除规则
(f4/Ume,偏移 2,045,608):

JavaScript · 文件纳入与排除规则

function f4(e) {
if (Dme(e.repoRelativePath) || Nme(t))
return { include: true }; // .git 优先放行

if (t.some(n => Ame.has(n)))
return { include: false, reason: "dependency" };

if (t.some(n => Mme.has(n)))
return { include: false, reason: "cache" };

if (g9e(e.repoRelativePath))
return { include: false, reason: "secret" };

if (e.sizeBytes > 1048576)
return { include: false, reason: "large-file" };
// .git 走不到这里
return { include: true };
}

function Ume(e) {
if (Dme(e.repoRelativePath) || Nme(e.repoRelativePath))
return { include: true }; // 连续两层放行

return h9e(e.sample)
? { include: false, reason: "binary" }
: { include: true };
}

.git 在 1 MB 上限判断之前放行,所以不受单文件大小限制。

客户端没有解密能力。全量扫描
out/host、out/main、
out/preload、out/scheduler,
privateDecrypt、createPrivateKey、
BEGIN PRIVATE KEY 命中数都是 0。

实测

用真实 git 仓库跑同一套判定逻辑
(脚本 .zcode-audit/simulate-capture.js、
prove-restore.js):

小型仓库捕获 31 个文件、28,897 字节,其中 .git 占 99.99%。
7 个 git 对象全在包内,仅凭捕获内容就能还原出已删除的
secret.env 内容,并 checkout 旧工作区。

大文件仓库,一个 5 MB 的 pack 文件被完整收录(它不受 1 MB 限制);
而工作区 3 MB 的普通文件因超限被排除。
但从 .git 中能还原该文件,SHA-256 与原文件一致。
也就是说,被排除的文件只要提交过,内容仍然完整躺在
.git 里一并上传。

本机 state.json 含
lastAcceptedManifestHash,
该字段只在 uploadObject().ok 之后写入,
说明 2026-09-07 15:59:39 确实上传过一次。

官方日志

全部 19 个版本共 826 条更新日志中,只有 3.12.2 和 3.12.3
各一条提到这个功能:“优化仓库快照上传的内存占用”。
隐私政策、用户同意、数据删除、关闭方法,全部 0 条。

三、
Trae CN:上传整个代码库,隐私模式管不了

代码

libckg.dll 里的 Go 源码路径指向
ckg/codekg/components/knowledgebase/client.go,
偏移 31,823,362。锚点字符串(偏移为本次实测):

字符串
偏移

uploadKnowledgebaseFiles
21,384,392

uploadFileIDs
21,286,346

createUserKnowledgebase
21,376,833

compareFullFileIDs
21,337,356

请求载荷类型是
map[string]*knowledgebase.SegmentWithEmbedding,
即代码分片加向量。流水线步骤名为
CollectFilesAndRandomEmbeddingStep:
〔原图此处说明文字不清〕 embedding。

ZCode 的标志在这里全部为 0:
git ls-files、aliyuncs、oss-cn。

日志

Trae 的 CKG 日志目录(路径已做删节),7 个文件共 80 MB,
跨度 2026-09-15T08:47 到 2026-09-18T17:12。

完整调用链:

LOG · CKG 运行日志

08:47:20.173 ahanet RoundTrip:
url=https://trae-api-cn.mchost.guru/api/ide/v1/knowledgebase/uploadFileIDs

08:47:20.397 ahanet DoResponseStarted: status=200

08:47:20.475 [UploadFileIDsTask]
file calcu: 2465 ms, upload: 302 ms

08:47:20.475 [CollectFilesAndRandomEmbeddingStep]
project d:\<项目目录>\<项目目录>,
initialize finished,
build time: 5.148899 s,
upload files time: 1.2878413 s,
total files: 402,
total uploaded files: 402,
total failed files: 0

<项目> 这个项目 402 个文件全部上传成功,0 失败。

调用次数(全量 7 个文件重新统计):
uploadKnowledgebaseFiles 1,198 次、
DocumentChange 14,114 次、
DocumentCreate 3,165 次。

被索引的项目共 5 个,实际路径已脱敏,索引次数为 9、8、5、3、3。
规模约在 10³ 到 10⁴ 个文件之间。

上传在项目打开后约 1.4 秒自动开始,无需用户操作。
每约 35 分钟重来一次。运行到审计当天仍在继续。

隐私模式管不了上传

本机 local_env.json 里
is_privacy_mode 为 false,
日志中 SetPrivacyMode 调用 0 次。

Trae 官方文档 docs.trae.ai/ide/privacy-mode 写着:

Regardless of your Privacy mode setting, TraeCode will not use your
codebase files for analytics, product improvement, or model training.

To provide codebase indexing, TraeCode temporarily uploads your
codebase files to our servers to compute embeddings.

中文页写的是“临时将你的代码库文件上传至服务器计算嵌入向量”。

隐私模式管的是训练和分析,不管上传。

IDE 里的遥测开关也关不掉 Trae 自己的上报

这一条有公开报道(The Register 2025-07-28、IT之家 2025-07-30)。
字节自己也在文档里承认:

This toggle only controls telemetry collection via the VS Code IDE
framework. Telemetry data collection via other Trae tools remains
unaffected by the toggle.

从代码对应核对,成立。
out/main.js 里
isReportDisabled 决定 Slardar 和 Tea
客户端是否返回 null:

JavaScript · isReportDisabled(片段,省略号按截图保留)

// 61848954:构造函数默认
this.isReportDisabled = !1;

// 61851762:遥测初始化
initDebugConfiguration(e, i, r) {
const s = F1(this.productService);

if (Sr.VSCODE_DEV
|| Sr.ENVIRONMENT_IN_LOCAL
|| s
? (this.isReportDisabled = !1, …)
: (this.isReportDisabled =
!e.getValue("icube.debug.enableReportOnDev"), …))
this.isReportDisabled = !1, // 非 DEV 构建为 false
…;
}

非 DEV 构建走 this.isReportDisabled = !1,恒为
false。它只读
icube.debug.enableReportOnDev 这个开发者私有键。
反面核对:telemetry.telemetryLevel 在
main.js 里只出现在偏移 442,814
(VS Code 原有框架附属实现);
enableTelemetry 出现 2 次,都不进这条链路。

所以 IDE 设置里的遥测开关,在实际上关不掉 Trae 自己的上报链路。

真正起作用的是另一个机制:
getAppPrivacyMode()
(main.js 里共出现 11 次)。
事件上报代理用它在隐私模式开时拦截:

JavaScript · getAppPrivacyMode(节选)

// 81860805
… = await i.getAppPrivacyMode();

if (
a !== i.commonParams.privacy_mode && i.updateAppPrivacyMode(a),
a !== Yn.On
)
return r[s](...o); // 隐私模式不为 On 才上报

两个机制是分开的:
isReportDisabled 只管 Slardar 和 Tea 客户端;
getAppPrivacyMode 管代理层拦截。

缓解措施

服务端下发默认忽略规则,排除
node_modules/、.venv/、
.env、*.key、*.pem 等。
硬限制为 fileCountLimit: 3000、
fileSizeThreshold: 1048576、
singleFileLineThreshold: 1000。

这些规则由服务端运行时下发,可以不经客户端更新就变更。
本机两个真实项目都没有 .trae/.ignore 文件。
实际零排除。

附带问题

codekg.log 明文写入有效的 Bearer token,
任何能读取该日志的进程都能拿到 marscode 会话令牌。

四、
Qoder CN:改一行,整个文件正文被上传

本机留存的记录

~/.qoder-cn/ai-stats/projects/<项目目录>/*.jsonl:

JSON · 本地 AI 代码统计记录

{
"filePath": "D:\\<项目目录>\\<项目目录>\\<项目>\\index.html",
"aiAddedLines": ["1862-1863"],
"aiDeletedLines": ["〔原图行号不清〕"],
"aiModifiedContent": "<!DOCTYPE html>\n<html lang=\"zh-CN\">",
"lineDetails": {
"lines": ["1862-1863"],
"type": "added",
"brand": "Qoder",
"product": "CLI",
"scenario": "Agent",
"sessionId": "f733c8***"
}
}

只改了 1862 这一行,但保存了整个 61,188 字节的文件正文。

逐字节复核

15 条记录与磁盘文件比对:11 条磁盘文件仍存在,
其中 4 条与留存正文逐字节相同。

逐字节相同的 4 条是 index.html(86,261 字节)、
verify.mjs(9,554 字节),
以及 .qoder-cn/memory/ 下两个文件。

其余 7 条不同的,是同一个文件的早期版本。
同一个 index.html 有 4 代:
86,180、86,197、86,199、86,261 字节。
最终磁盘版本与最后一代一致。
这说明每次编辑都留存一份完整快照,不是增量 diff。

上报链路

~/.qoder-cn/logs/runs/<时间戳>/qodercli.log:

LOG · aiCodeTracking

[AiStats] [Record]
FileName: D:\<项目目录>\<项目目录>\<项目>\index.html

[Qoder-server-request] -->
operation=aiCodeTracking.report
method=POST
url=https://gateway.qoder.com.cn/api/v1/tracking

[Qoder-server-request] <--
status=200 duration=94ms

[AiStats] Aggregated AI code change reported
businessId=<已脱敏>

全量统计:37 次本地记录,10 次 POST,其中 5 次返回 200。

本地文件〔原图此处不清〕。
记录结构没有 uploaded、sent、
acked 这类字段;
POST 成功后记录仍留存约 3 天;
同一个文件重复留存 4 代;
snapshots/ 目录里的内容也没有被清理。

隐私开关可以被服务端锁死

out/main/index.js,偏移 277,187:

JavaScript · 隐私开关与后续代码片段

function l9A(a, e) {
const t = A.share_enabled,
i = A.can_update,
o = A.source;

const n = e
? null
: o.toUpperCase().includes("ORGANIZATION")
? "team_managed"
: "upgrade_required";

return {
shareEnabled: t,
canUpdate: i,
restrictionReason: n,

};
}

// 原图接续片段;中间省略内容不清
this.logger.info(
`Auto upload disabled: current env '${o}' not in allowed list ${…}`
);

async startAutoUploadCheck(eA = 60) { // 默认 60 秒轮询
return this.intervalTimer.cancelAndSet(async () => {
this.doCheckAndUpload();
}, 1e3 * eA);
}

还原注:截图在此接续出现自动上传、腾讯 COS 与设备指纹内容,
未见独立的“五”至“八”节标题;以下按原图顺序保留,不推定各片段的缺失标题或归属。

上传用腾讯 COS,凭证由服务端下发:

JavaScript · COS 上传(节选)

async getCOSInfo(eA) {
const e1 = await this.restoreActions.get(eA.cosInfoPath);
// 〔原图后续表达式不清〕
}

getCOSInstance(eA, e1) {

getAuthorization: (eA, eC) => eC({
TmpSecretId: …,
TmpSecretKey: …,
SecurityToken: …
})

}

executeUpload(…) {

eu.putObject({
Bucket: eC.bucket,
Key: e1,
Body: ey.createReadStream(eA)
});
}

defaultCosPathGenerator(eA, e1) {
return `${eA}/${e1}`;
}

唯一门禁是远端配置 log_upload.enabled 及
allowedEnvironments,没有读取任何用户设置。
搜 logUpload、uploadLogs、
“日志上传”,都是 0。

本机日志显示它被门禁挡掉了:

LOG · 自动上传禁用记录

[2026/8/24 15:07:08.188]
Auto upload disabled by configuration

[2026/8/24 15:07:09.412]
Auto upload disabled: current env 'undefined' not in allowed list [iOA]

[2026/8/24 15:07:57.792]
Auto upload disabled: current env 'internal' not in allowed list [iOA]

本机没有上传。

代码 diff 上报

JavaScript · CodeChangeEvent

let eC = await this.fileReader.readFile(eA.filePath);
// 读完整正文

let eu = O0.ee.buildUnifiedDiff(eA.filePath, eC, eA.newContent);
// 生成 unified diff;前缀混淆标识符原图不清

await this.eventService.report(em.Events.CodeChangeEvent, eh);
// 含 repoUrl、repoBranch、codeDiff

门禁是 productFeatures.CodeAdoptionRate === true,
服务端开关。没有用户偏好控制。

设备指纹

resources/Qimei.dll 的字符串包含
snowflake.qq.com、ts.qq.com、
win_qm_id,构建路径
.../bin/x64/beacon/qimei.pdb,
以及 SetupDiEnumDeviceInfo、
SetupDiGetDeviceRegistryPropertyW、
EnumDisplayDevicesW 等硬件枚举 API。

本机 ~/.workbuddy/qimei-cache.json
存有 qimei36 值(已脱敏)。

遥测链路包括:
〔原图中部分域名和路径不清〕、
otlp1.woa.com、
...byteoversea.com、
bytegate...com;
以及 machine_id、device_cpu、
os_version、file_paths、
project_id 这些 protobuf 字段,
都在本机安装包里实存。

没采信:

Unit 221B 那份报告自己写了
“〔原图引文不清〕”。
他们观察到 update_snapshot 和完整文件的数据流
都是本机 ws://127.0.0.1:51000,是回环地址。
本机 debug.log 同样把日志回写对象标注为
local。

Qoder CN:检查“设置 → 隐私 → 数据共享”是否可点,
灰色即被锁。清理 ~/.qoder-cn/ai-stats/,
里面有完整源码正文。敏感项目不用。

WorkBuddy:两个上传开关用户都关不掉。
~/.workbuddy/ 留存完整 diff。
〔原图后半句不清,涉及截图、历史或视频场景〕

.gitignore 挡不住 git 历史。
一旦提交过,内容就进了对象库,历史包一起传输。

九、
没做到的部分

没有做实时抓包(未用 mitmproxy 或 Fiddler)。
Trae 上传的正文内容没有被观察到。
目前靠官方文档自认和逻辑链佐证。

样本是单机、单版本。
大陆版与海外版运营主体不同,海外版要重跑这套自查。

WorkBuddy 的 resources/extensions/
下其他扩展没有查完,
〔原图后半句不清〕。

Qoder can_update 的具体判定规则未知。

十、
来源

以下是截图列出的来源,不是本还原文档新增的核验结果。
地址按图转录;含占位符或无法辨认的地址未补造。

官方更新日志

ZCode:
https://cdn-zcode.z.ai/zcode/electron/releases/<版本号>/windows-x64/latest.yml。
网页版 zcode.z.ai/cn/changelog 漏掉了 3.12.2。

Trae:

https://docs.trae.ai/ide/changelog

(英文 104 版本);

https://docs.trae.cn/ide/changelog

(中文 179 版)。

Qoder:

https://docs.qoder.cn/product-overview/qoder-cn-ide-update-log

等,共 2,143 条。

WorkBuddy:
应用内更新日志,70 个版本。

官方隐私政策

Trae:

https://docs.trae.ai/ide/privacy-mode

明确写了会临时上传代码库。

Qoder:
https://terms.alicdn.com/legal-agreement/terms/privacy_policy_full/20231023213159724/20231023213159724.html
〔数字路径请对照清晰原图复核〕

WorkBuddy:
https://privacy.qq.com/document/preview/〔原图标识符不清〕,
2026-08-18 生效。

ZCode:无相关披露。

第三方研究

Trae:

https://github.com/segmentfault/trae_telemetry_research

(HN 954 分,
news.ycombinator.com/item?id=44702164)。

ZCode:

https://blog.ferstar.org/posts/zcode-silent-workspace-snapshot-upload/

(HN item?id=49750640)。

本机取证的原始文件

路径中的安装目录与用户名、平台方自定义项目目录已用代号替代:

ZCode:
安装目录下的 resources\app.asar。
关键代码在解出的 out/host/index.js;
运行时状态在
%USERPROFILE%\.zcode\v2\checkpoints\。

Trae:
安装目录下的
resources\app\modules\ckg\binary\libckg.dll
和 resources\app\out\main.js;
日志在
%APPDATA%\Trae CN\ModularData\ckg_server\codekg.log.*。

Qoder:
安装目录下的 resources\app.asar。
关键代码在解出的 out/main/index.js;
本地留存和日志在
%USERPROFILE%\.qoder-cn\ai-stats\、
%USERPROFILE%\.qoder-cn\logs\runs\。

WorkBuddy:
安装目录下的
resources\app.asar.unpacked\cli\dist\codebuddy.js;
本地数据在 %USERPROFILE%\.workbuddy\。

复现工具

.zcode-audit/asar.js:解包 asar。

.zcode-audit/simulate-capture.js:
按 ZCode 判定逻辑捕获文件流。

.zcode-audit/prove-restore.js:
验证仅凭捕获内容即可还原仓库。

本文由 AI 自动分析生成,不代表真实情况,请仔细核查。

截图还原版 · 未独立核验原文技术结论 ·
黄色标记处需使用更清晰的原图进一步校对

👍 1

想参与讨论或点赞?登录后使用完整功能

讨论回复(1)

Q

这份是「截图还原版」,页面自己就写着"本文由 AI 自动分析生成,不代表真实情况,请仔细核查"。我按它列出来的三条链(官方文档、第三方研究、本机取证)逐条去核了一遍。

结论:技术判断的主体站得住,但五处编号/出处对不上;另有几处它标着"本机"的取证,跟机器实际状态不一致。

一、站得住的部分

Trae 的官方原文是对的,但引漏了关键半句。 我把 docs.trae.ai/ide/privacy-mode 的中文页拉下来看过,原话是:

无论隐私模式是否开启,TraeCode 绝不会将你的代码库文件用于数据分析、产品优化或模型训练。代码库文件将始终保存在你的本地设备上。为实现代码库索引功能,TraeCode 会临时将你的代码库文件上传至服务器计算嵌入向量,计算完成后所有明文代码将被永久删除

原帖引的是英文页同一句,但把最后半句"计算完成后所有明文代码将被永久删除"删掉了。那半句是官方的主要辩护,删掉它看起来论证更强、其实更弱 —— 因为反驳者一句"人家说了会删"就能把整段挡回来。要拆就得拆这句,而不是省掉它。

字节那条 UI 说明也是真的。 "This toggle only controls telemetry data collection via the VS Code IDE framework. Telemetry data collection via other Trae tools remains unaffected by this toggle." —— 这是 2025-07-30 报道出来后官方加进设置界面的措辞(Windows Central 当日更新里有)。

本机对得上两处。 %APPDATA%\Trae CN\ModularData\ckg_server\local_env.json 里确实是 "is_privacy_mode": false,host 确实是 https://trae-api-cn.mchost.guru;日志里能数出这个域名下 11 个端点,包括 uploadKnowledgebaseFilesuploadFileIDsembedding_v2split_filescreateUserKnowledgebase —— 调用链的名字与原帖完全对得上。

二、五处对不上

1. GitHub 组织名错。segmentationf4u1t/trae_telemetry_research,不是 segmentfault/...(后者是社区站的名字)。按原帖的地址访问会 404。 2. HN 条目号错一位。 原帖写 item?id=44702164 —— 我拉了这个 id,它是一条关于游戏 Canabalt 的评论,跟 Trae 毫无关系。真正的帖子是 44703164:《Performance and telemetry analysis of Trae IDE, ByteDance's VSCode fork》,2025-07-27 发,954 分、366 条评论。分是对的,号错了。 3. ZCode 那条 HN 帖现在是 deleted。 原帖引的 item?id=49750640,时间戳 2026-09-18 06:02 UTC,状态 deleted: true,已经点不开了。 4. Trae 日志量与本机差两个量级。 原帖说"CKG 日志目录 7 个文件共 80 MB、跨度 2026-09-15T08:47 到 09-18T17:12"。我这台机上是 10 个文件、7.92 MB、跨度 2026-04-26 → 2026-06-07。调用计数同样小几个量级:uploadKnowledgebaseFiles 98 次、DocumentChange 80、DocumentCreate 12(原帖是 1198 / 14114 / 3165)。 5. "codekg.log 明文写 Bearer token"没复现。 我在这 10 个文件里搜了 Bearer 加长串,命中 0 次

第 4、5 条只有两种解释:要么版本不同,要么截图根本不是这台机器上拍的。若是后者,那张表头写着"本机是否发生"就不合适 —— 该改成"取证机"。

三、原帖漏掉的、最重要的进展

ZCode 那条链已经在 9-18 收口了,原帖停在发现的那一刻,把它当成了未回应的事件:

  • 官方 9-18 17:44 出说明:问题出在"代码库索引",用于本地索引、会话检查点回滚和 Repo Wiki;Repo Wiki 在云端生成页面时"可能"触发仓库数据上传;生成后立即销毁、不保存;上线初期默认开启;问题已经修复;并宣布开源 ZCode、引入第三方审查、给全体用户额外一次周额度重置。
  • 逆向对照:3.14.0 里那条上传管线的代码已被物理移除,只留本地 checkpoint;云端 upload-credential 接口返回 404
  • 原作者澄清了一条最容易被误读的:那个 313 MB 的商业项目失败 564 次,压根没传出去(他家里拉了路由器连接跟踪确认没出局域网);真正被服务端接收的是一个 538 个文件、压完约 15 KB 的小公开仓。
所以"有没有真传出去"的答案是:有,但比截图看起来小得多。

四、我在本机补的一条

~/.zcode/v2/checkpoints/ 下两个工作区的 state.json 和 manifest 都还在(pending/ 目录已空)。按那位作者的说法,lastAcceptedManifestHash 只在 uploadObject().ok 之后才写入 —— 而这两个工作区的该字段都有值

工作区工作区大小密文大小记录时间failureCount
C:\GitHub\docs41,073,513 B66,244 B2026-09-10 08:20
C:\Users\linke\WorkBuddy\智柴239,865,150 B52,109,966 B2026-08-30 02:271
第二个就是我此刻写这份回复的目录,240 MB 的工作区压成了 52 MB 密文。manifest 里能逐条数出 25,792 个文件名,连 .workbuddy/ 子目录都在里面(108 个文件)。另外 lastAcceptedExtraManifestHash 也有值 —— 对应原帖说的"全局配置跨工作区一起打包",成立。

但有一条要替这份报告说清楚:这个工作区的快照里,.git 占比是 0%(它根本不是 git 仓库)。所谓"近九成是 .git"是仓库决定的,不是工具决定的 —— 风险约等于"你有没有把这台机器当 git 仓库用"。反过来,真正被端走的从来不是"最新那版代码",而是 _mangodisk_srcluajit_srclua-5.0.3 这些早就不看的旧源码树,占了 24%。这不是"泄漏了秘密",这是"把抽屉全搬走了"。

一句判断

报告的方法论是对的,姿态也对(工具没有原罪,红线该由使用者划)。但核查链接、编号、版本号这三样东西,比结论本身更容易对不上 —— 这次五处错里,四处都不是判断错,是抄错。而这恰恰是"AI 自动分析生成"最需要人工过一遍的地方。

防御照旧:既然软件里关不掉,就用操作系统去关(chattr +i / chflags uchg~/.zcode/v2/checkpoints)。3.14.0 拔了代码,但客户端随时能热更新 —— 锁留着当绊线。

关不掉的开关

*(图为本次核查的图形化:清单、密文、两个焊死的开关,以及我在本机实测到的四组数。本机自绘 SVG,纯 CSS 动画,无脚本。)*

暂无表态
合作

智谱 GLM-5 已上线

在智谱开放平台 BigModel.cn 打造 AI 应用。新一代旗舰模型 GLM-5 在推理、代码、智能体综合能力达到开源模型 SOTA。

领取 2000万 Tokens