Z.ai said on September 18, 2026 that it had fixed ZCode’s repository-indexing uploads. But public reports from that day recorded repository snapshots being accepted even when the relevant setting appeared switched off, and no independent retest has shown that the affected client stopped creating or sending them.
The feature could package a developer’s project and send it to the cloud for ZCode’s Repo Wiki system. In one reported case, the package included the project’s Git history, and was encrypted with a key that only Z.ai’s backend held.
ZCode is Z.ai’s desktop coding-agent product, used to work with local programming projects. Its Repo Wiki documentation says a user can generate an AI-written guide to a codebase by clicking “Generate wiki.” Z.ai’s September 18 explanation said repository indexing supported Wiki generation, version rollback, and session recovery, and that the feature had been enabled by default after launch.
That makes this more than an accidentally exposed checkbox. A commercial project was prepared for cloud upload in a form its owner could not inspect, while the company receiving it controlled the means of inspection.
The 313MB encrypted repository archive
Developer Ferstar found a 313MB encrypted archive queued for Alibaba cloud storage on September 18. It was a snapshot of a commercial project, including Git history. The archive had failed to upload 564 times, while a smaller file had already been transmitted.
Git history is not just a backup of the current folder. A .git directory can retain prior commits, deleted code, abandoned branches, commit messages, local paths, and credentials that were once committed and later revoked. A current working tree tells an assistant what a project is; its history can tell it what the project used to contain. That is why historic credentials can still create security costs, even after a team believes it has removed them.

Ferstar said he could not decrypt the archive himself, and neither could the ZCode client. The private key sat on Z.ai’s backend. Encryption protected the archive from casual access on disk, but it also left its owner unable to determine exactly what had been packed or what happened after transmission.
Z.ai apologized in its Feishu community and said the issue had been resolved. Its account described cloud Repo Wiki generation as a route by which a repository could be uploaded, and said the data was destroyed immediately once Wiki generation finished. That is the company’s account; the source record contains no independent forensic audit of Z.ai’s storage or an independent repeat of Ferstar’s test against the fixed client.
“.git directories never reach the Wiki model context.”
, ZCode Repo Wiki documentation
That statement is narrower than it first sounds. It addresses what the Wiki model reads, not what ZCode packages into a repository snapshot or transmits before the model sees anything. The June 15 privacy policy describes text, files, and code users submit in conversations; it does not explicitly describe default uploads of packaged repository history.
Z.ai’s statement calls the episode a fixed indexing problem. The evidence makes the more important question harder to avoid: why was a feature capable of uploading a project’s past turned on by default at all?
Snapshot evidence after the claimed fix
The Ferstar case was not the only local observation. A September 18 issue in Z.ai’s public feedback repository reported that ordinary prompts and completed tasks created snapshots containing the full .git directory, including objects and reflog data. The reporter said Alibaba OSS, Alibaba’s cloud-object-storage service, had accepted uploads even though repoSnapshotIndexingEnabled was set to false.
That issue is a user report, not a completed third-party audit of Z.ai’s servers. It nevertheless conflicts with a clean story in which the switch reliably prevented uploads.
A separate record from the maintainer of community project ZCode WebUI found snapshot artifacts across 12 workspaces running ZCode renderer 3.12.3 and server runtime 3.11.2. The maintainer recorded:
- 10 uploads confirmed by the server.
- Two unacknowledged encrypted files totaling 177MiB.
- Three plaintext manifests listing Git pack files of 57.6MiB, 63.9MiB, and 21.5MiB.
A current working tree tells an assistant what a project is; its history can tell it what the project used to contain.
The reports also put this incident in a pattern that developers should recognize. GitLost’s private-repository exposure through public GitHub issues and the VS Code extension incident that exposed 3,800 repositories involved different systems and mechanisms, but the same practical failure: development tools are trusted with source trees before users have a clear picture of where those trees travel.
What Z.ai alone can verify about deletion
The core problem is not whether Z.ai said it destroyed uploaded archives. It is that the system described by Ferstar meant the user could not check.
Z.ai’s backend held the private key needed to decrypt the archive. Z.ai also made the claim that uploaded data was immediately destroyed after Wiki generation. Only Z.ai could inspect the contents of the archive and only Z.ai could substantiate its deletion.
That is an accountability design problem, not merely a privacy-policy wording dispute. A company can make a legitimate case for encrypting cloud-bound developer data. But if its implementation prevents the developer from reading the archive, retrieving it, auditing it, or verifying its removal, then “we deleted it” becomes a statement the customer must accept on faith.
The record does not establish that Z.ai retained Ferstar’s archive. It establishes something more concrete: the archive was made unreadable to its owner, and Z.ai alone possessed the key and the server-side record that could settle what happened to it.
The fix worth measuring is therefore not a community post or a setting label. It is whether a clean client installation can still create a repository-history snapshot, whether it can transmit one without an explicit user action, and whether the person whose code was packaged can independently see what left their machine.
Key Takeaways
- Z.ai said on September 18, 2026 that it had resolved ZCode’s repository-indexing upload issue.
- Ferstar found a 313MB encrypted archive of a commercial project and its Git history queued for Alibaba cloud storage.
- The archive had failed to upload 564 times, while a smaller file had already been sent.
- Public reports recorded accepted repository snapshots even when
repoSnapshotIndexingEnabledappeared set to false. - Z.ai’s backend held the private key needed to inspect Ferstar’s archive, leaving Z.ai alone able to verify its deletion claim.
Further Reading
- Z.ai encrypted the workspace it uploaded so that only Z.ai could open it. Now only Z.ai can say it was deleted., Independent report on Ferstar’s encrypted archive, failed upload attempts, and Z.ai’s deletion claim.
- [Bug] 登录态下静默上传工作区完整 .git 历史到云端(含 objects/reflog),设置项无法关闭 · Issue #707 · zai-org/feedback · GitHub, User report alleging full Git-history snapshots and uploads despite a disabled setting.
- GitHub – windviki/zcode-webui: Run the official ZCode (GLM coding agent) desktop UI fully in the browser, with seamless code-server integration, deploy once, manage and dispatch ZCode tasks from any device. 浏览器里完整运行官方 ZCode 桌面端界面,与 code-server 无缝协同,任何终端设备都能随时管理和派发任务。, Community-maintainer observations of snapshot artifacts across 12 workspaces.
- Wiki | ZCode Docs, ZCode’s documentation for Repo Wiki generation and model context.
- ZCode隐私政策, ZCode privacy policy updated June 15, 2026.
