400 people are safeguarding their legitimate rights and interests, and Zhipu has swallowed the bitter fruit.
Before September 18, ferstar was still a paying user of Zhipu. Just the night before the incident, he was recommending this product to others in the technical group.
Less than half a day later, he became the person who pushed ZCode to the forefront of public controversy.
Ferstar uses a 256GB MacBook Air. Due to insufficient hard disk space, he found that the ~/.zcode directory had occupied more than 700MB when cleaning up the disk. Further investigation led him to a 313MB encrypted file and a status record: ZCode scanned the commercial project he was working on, packaged 345MB of content into a full snapshot, and attempted to upload it 564 times.
The 313MB file was not uploaded successfully in the end. But ferstar later tested it with a small public repository, and a snapshot containing 538 files, about 15KB after compression and encryption, was successfully received by the server.
He continued to disassemble the ZCode client.
According to the public technical analysis, the snapshot generated by the old version of ZCode is not only several pieces of code that the user is editing, but may also include .git history, LFS cache, reflog and some configurations. In a snapshot list of 42,411 files he inspected, .git related content accounted for 86.6%.
On September 18, ferstar posted the investigation process online. The title is very straightforward: "Exposing ZCode's Shady Operation of Silently Uploading Full Git History".
This is where things got out of control.
Developers began to check their own computers, some captured network packets, some went through logs, and some uninstalled ZCode. Enterprise users also joined in, starting to check what exactly happened to their private repositories.
China News Weekly later reported that nearly 400 developers have joined multiple rights protection groups. Enterprises began to collect evidence and send letters to pursue accountability, while some individual developers requested refunds.
400 People, 400 Unclear Accounts
The people in the rights protection groups do not have exactly the same demands.
Some just want a refund, while others want to know if their code has been uploaded successfully. What enterprise users are worried about is another thing: whether sensitive information such as commercial source code, Git history, server credentials and engineering configurations has ever left the enterprise without their knowledge.
An enterprise user named "Zhang Nan" interviewed by China News Weekly is one of them.
According to his statement, the company has used ZCode for a long time, involving 9 private repositories and 4 launched projects, and the relevant project code and server credentials were once packaged for upload. After the incident, he and the company's legal team began to collect relevant evidence, sent a letter to Zhipu, and considered further pursuing accountability through litigation.
As for a series of subsequent rectifications by Zhipu, Zhang Nan's attitude is very direct: "Of course I don't recognize it."
Another company, Taiyuan Chengming Technology, is also making inquiries.
According to the relevant person in charge of the company, there are 6 workspaces involved in this controversy, and the largest one has a data volume of 410MB. Chengming Technology develops enterprise office systems, whose projects involve both self-developed engines and intellectual property rights.
After the ZCode controversy broke out, the pressure was quickly passed along the business chain — Chengming Technology needs to explain to its own customers whether the data that was supposed to stay inside the enterprise has ever left.
This is why Chengming Technology demanded more than just an apology from Zhipu. The company asked Zhipu to further clarify the subject and method of processing the relevant data, and provide access logs and data deletion certificates.
At present, there are still points that need to be further verified in the statements of all parties regarding the specific scope of data upload and the possible impact.
But the pressure on enterprises will not wait until the final conclusion comes out.
Once commercial source code, engineering configurations and even server credentials are involved in the controversy, the problem will quickly spread from the development department to the security, legal and customer relations teams. Especially for enterprise service companies like Chengming Technology, it also needs to answer a more practical question for its customers: whether the data that was originally entrusted to it for safekeeping has always stayed where it should be.
At this point, refunding a Coding Plan that costs a few hundred yuan no longer makes much sense.
This rights protection campaign therefore presents a detail different from ordinary consumer disputes: it is the users themselves who first looked for evidence.
Image source: Full text of ferstar's original investigation: Exposing ZCode's Shady Operation of Silently Uploading Full Git History
After ferstar found the 313MB encrypted file, he did not stop at suspicion. He continued to check the status files, disassemble the client, found a public repository to retest, and finally wrote the entire investigation process into a public article. After the article was published, more developers began to check their own computers: some went through local directories, some checked logs and network requests, and some retested the new version of the client.
Every response from Zhipu quickly entered the next round of verification.
The company claimed that the relevant upload link had been closed, and some people recaptured network packets; after the new version of the client was released, some people re-ran the previous process; after ZCode announced open sourcing, developers began to check the publicly released code.
This makes Zhipu face no longer a group of complainants waiting for the company's explanation in the traditional sense.
Some of the nearly 400 developers are using their most familiar ways to verify the answers given by Zhipu.
One "Design Omission", Zhipu Used Five Steps to End the Incident
Zhipu's first round of processing came very quickly.
On September 18, after ferstar's article attracted attention, Zhipu publicly apologized on the same day, attributing the problem to a design omission in the "code base indexing" related function.
According to Zhipu's explanation, Repo Wiki needs to generate pages in the cloud, which may trigger repository data upload; the relevant data will be destroyed immediately after the Wiki is generated and will not be saved. What really caused the controversy was that this function was enabled by default in the early stage of its launch.
The new version of the client later removed the relevant upload link.
If the controversy only stayed on whether a product function should be enabled by default, this update would have been enough to solve most of the problems. But as more and more developers began to check their usage records, the problem quickly shifted from "will ZCode upload in the future" to another more difficult question: what has happened in the past.
Zhipu's rectification has also been gradually strengthened.
After repairing the client, the company introduced third-party institutions such as the China Academy of Information and Communications Technology and NSFOCUS to participate in the inspection; then announced the open sourcing of ZCode, handing over the client code to community supervision. After that, Zhipu also announced the launch of measures such as "no retention of data content" on its MaaS platform, and established a vulnerability feedback and reward mechanism.
From September 18 to 21, in three days, Zhipu's response has expanded from a client update to third-party inspection, product open sourcing and company-level data policy adjustment. China News Weekly later summarized this series of actions into five steps: public apology, mechanism repair, third-party audit, ZCode open sourcing, and data policy adjustment.
This growing rectification list also reflects that the incident has gone beyond the scope of an ordinary product bug.
According to the information released by Zhipu, the relevant data objects in the OSS have been cleared, the storage bucket and the objects in it have been deleted, and the new version of the client has also removed the relevant snapshot generation and outgoing path.
When ferstar later retested the new version of the client, he also no longer observed the previous full repository scan, encrypted package generation and upload behaviors.
Judging from the currently public information, the technical link that initially caused the controversy has been cut off. But this can only answer the question of "the present".
For developers and enterprises that have used the old version of ZCode, the more difficult question to answer is "the past": which accounts have triggered uploads, which data has actually reached the server, how long it has been saved, whether there are access records, and whether enterprises can obtain complete processing records corresponding to their own accounts.
This is why after Zhipu kept adding rectification measures, the rights protection did not end immediately.
Repairing a function can be done by updating the version. To make nearly 400 developers re-trust what happened in the past can only rely on evidence.
Another Account for the 400 People
Nearly 400 people is not a large number of users for an Internet company. But for Zhipu, it has another meaning.
Many of them happen to belong to the group of users that large model companies competed most fiercely for in the past year: developers.
As the price of basic models continues to drop, programming is becoming an important entry point for large model companies to find high-frequency paid scenarios. Model vendors are no longer satisfied with providing an API, but have begun to enter IDEs, read code bases, call terminals, and let models gradually participate in the complete software development process.
OpenAI, Anthropic and domestic large model companies have successively increased their investment in AI Coding, and what they are competing for behind this is the several-hour daily workflow of programmers.
Zhipu did not miss this opportunity either. From the coding capability of the GLM model, to the Coding Plan, and then to ZCode, Zhipu has continuously pushed its products into developers' daily work. For it, the value of a developer is not just the subscription revenue of a Coding Plan.
Individual developers may be API users; engineers at startups may influence which model the team chooses; for larger enterprises, technical personnel may also participate in the procurement and technical evaluation of models, cloud services and even Agent products.
This is why large model companies are willing to spend a lot of resources to compete for developers, and it is also where the real trouble of this nearly 400-person rights protection lies.
Some of them have already completed the most difficult step: they are willing to pay, and willing to put real projects into ZCode.
Now Zhipu needs to convince them again. And this is not the first similar developer friction that has occurred this year.
In February this year, after the launch of GLM-5, the Coding Plan once caused controversy due to package rules, model gray release and old user upgrade mechanisms. Zhipu later publicly apologized, admitting that there were problems with the transparency of the rules, the gray release rhythm of GLM-5 and the old user upgrade mechanism, and opened refunds to some users.
That controversy mainly revolved around packages and usage rights. By September, the controversy extended to code and data.
The two incidents are different in nature, but both occurred among the developer users that Zhipu has been trying to operate for a long time. Package disputes can be handled through refunds, product problems can be solved through updates, and security issues can also be checked by introducing third parties; what is more difficult to restore through a single rectification is whether these users will be willing to put their real projects in next time.
This is the commercial background behind Zhipu's continuous strengthening of rectification. What it needs to solve is no longer just that upload link, but also to convince developers that ZCode can still access their code bases.
On the evening of September 17, ferstar was still recommending ZCode to others in the technical group. The next day, he began to inspect the paid software he was using. A few days later, nearly 400 developers joined the rights protection groups, and Zhipu went all the way from repairing the client to third-party inspection, product open sourcing and data policy adjustment.
For Zhipu, the more difficult problem has emerged. In the past, it needed to convince developers to hand over their code to AI.
Now, it also needs to convince them that they can still do so next time.
This article is from the WeChat Official Account "Keyan Research Society", written by Jiajia, edited by Xiao Ba, and published by 36Kr with authorization.