Privacy
What changed on 7 September
Network drives that finally mount, a workspace in your phone's Files app, a website builder with five thousand looks instead of a hundred and seventy-six.
Mounting a workspace as a network drive is meant to be one line you paste into a terminal. It was not. "System error 67" turned out to be four separate faults stacked on each other, all producing the same unhelpful number. Shares are now created where the service can write them, the same folder has the same name everywhere it appears, and WebDAV over HTTPS works from anywhere without a VPN.
Two findings from that hunt are worth naming because both were silent. The checker that verified your shares was deleting them. And the service could never write Samba's configuration at all; it reported success because it was measuring from a place where the write appeared to work.
On a phone the workspace now shows up in the Files app. On Android that is a real folder you can open and save into. On iOS it is not, and the page says so: Apple's Files app speaks SMB and not WebDAV.
The website builder
It advertised 352 distinct looks and had 176, because the count multiplied two lists that were not independent. It now has 5008. Six new section types, twenty-one in total, thirty-eight variants, and five axes that vary within a style rather than between styles. Font choice used to be a database column that nothing read. It reaches the page now.
Elsewhere
Nobody could change their own password: the server had supported it for months and the form was missing, while five of six accounts were told to change one they could not. And a chat that was streaming a reply lost the stream when you reloaded, because the client asked its own empty memory instead of the server.
The installation was still called modelhub internally, in service names, paths, image tags and
environment variables. All of that says zerolog now, in eight stages. Old MH_ variables
still work.
A page for what changed
Until today, the way to find out that something about ZeroLog had changed was to notice that a document read differently than the last time you looked at it. The terms carry their own changelog, the privacy policy carries its own version line, and both live behind a page that search engines are told to leave alone. That is the right place for the text. It is the wrong place for the news.
So this page. Everything that changes what you pay, what we promise, or where your prompts go gets an entry here, with a date, in the order it happened.
Corrections belong here as much as launches do, and probably more. Four of the first five entries are us withdrawing something we had claimed and could not back up. That is not a comfortable way to open a newsroom. It is the honest one, because those are the changes a reader actually needed to be told about and the hardest to find.
What will not appear: a feature announced before it works, a number without the measurement behind it, or a policy summarised in a way its own document does not support. Every entry that touches the terms or the privacy policy links to the clause it changed, so you can check the summary against the source.
The documentation describes how things work today and carries no history on purpose. The terms and privacy policy carry the full text and the version numbers. This page carries the dates.
Why you cannot sign up yet
ZeroLog is in preview. Accounts exist and work, but you cannot make one yourself. The reason is a contract question, and it decides which models this platform can offer and to whom.
The obvious guess is that we may not resell API keys. True, and not the issue: ZeroLog never hands a key to anyone. Your prompt goes to our server, our server talks to the provider with our credential, and the credential never leaves that process. The question that matters is whether a provider's contract recognises the category "customer builds an application and serves its own end users" at all. If it has no word for it, you are not in a grey area. You are outside the agreement.
We read twenty-five sets of terms in September 2026, from the published agreements rather than from summaries. The pattern is sharp enough to state as a rule: aggregators forbid re-aggregation, and providers who run their own hardware invite applications. Groq, OpenAI, Anthropic, Mistral and Cerebras allow it in words. DeepInfra, OpenRouter and Fireworks do not.
That is not a complaint about anyone. A contract that does not cover a use is a contract for a different customer. Sixteen of the twenty-five permit it, and between them they cover well over fifty thousand models.
What happens next
Registration stays closed until the provider underneath a public account is one whose terms cover it. Featherless.ai is the move; their terms address resale in so many words, on the right plan. Then we ask DeepInfra, which leaves a defined route to a yes in its own prohibition. OpenRouter is harder, because a model router asking a model router for permission runs into its competing-service clause.
The order is deliberate: asking first, getting a no and continuing anyway turns a defensible position into a knowing breach. Nothing changes for an existing account. Which provider serves which model is in the documentation.
A signing key sat in the repository
Moving the Android sources into version control took the app's signing key with them. There was
a .gitignore rule meant to prevent exactly that, and it did not match the path the key
actually sat at. A rule that does not match is the same as no rule, except that it reads like
protection.
What the key can do: sign an update that Android accepts as coming from us. It reads nothing and it is not a credential for any service. No signed build was ever published from this repository, and the repository is not public.
The key is out of the history, the ignore rule matches, and a test now fails the build if a key file of that shape turns up in the tree again. The built .apk is gone too. A build artefact does not belong in source control, and the one that was there was two versions behind what the download page served.
The same sweep found two more of the same family. The security scanner was reading one workspace and hardening a different one. And three places reported "it is empty" where the honest answer was "I could not read it", which is a failure that looks like a fact.
Unrelated, same day: the application is now excluded from search engines. The public pages stay indexed. The workspace behind the login is not, and never should have been.