About
Diffport exists because a question that used to have an obvious answer stopped having one, and nothing in the toolchain noticed.
Why it exists
For thirty years, who committed this and who wrote this were the same question, so version control only ever needed to record one of them. That has quietly stopped being true, and the record has not caught up.
A commit authored by a person, generated by an agent under their account, or written half by each are three different things arriving through the same pipe. Your repository stores all three identically. Every tool downstream — review, audit, incident response — is reasoning about authorship it does not actually have.
Not because they are careless. Because nothing records it. The information is genuinely there — in trailers, in bot actors, in the shape of the diffs — and no one was collecting it, because until recently there was no reason to.
That is the whole of it. Diffport is not an opinion about AI. It is a record of something that is already happening in your repository and is not being written down.
How it is written down
Diffport asks you to believe a number about your own codebase. That is a lot to ask, and it cannot be earned with a marketing page. It can only be earned by being visibly unwilling to round anything in our own favour — including when the thing being rounded is our own mistake.
So the changelog says what broke, in public, in the same voice as what shipped. Three recent entries, unedited:
1.33
A switch that liedTwo-factor showed itself turned on. There had never been a second factor on any account. A control claiming your account is protected when it is not is worse than an empty row.
1.34
Filters that filtered nothingFour screens where the pickers opened, took a selection, showed a tick — and were wired to nothing at all.
1.36
Code that never arrivedSeveral shipped features were not reaching anyone who had visited before, because the scripts had no version on them and browsers had no reason to ask again.
The same instinct runs through the product. Where something is not built, the screen says so by name instead of hiding the control. Where a number cannot be trusted, it is not shown. Where a signal is missing, the answer is untraced rather than a guess that would look better.
What we will not do
A promise that is free to keep is not worth reading. These are the ones with a price attached, which is the only reason to believe them.
Treating unattributed code as human-written would make every dashboard look complete and every coverage number look better. It is the single easiest way to make this product feel more finished than it is, and we will not do it. No signal means untraced, permanently.
Confidence is the floor of the chain rather than its ceiling. It makes our numbers look less impressive than a competitor quoting their best guess. It is also the only version that stays true when someone checks.
No credentials, no queries, no copy of your data — which means the schema view has to be rebuilt from your migration files and is harder to build than reading the real thing. It is true by construction rather than by policy, and that distinction is the point.
The catalog is data. Adding a tool to it is a fact about detection, never an endorsement, and we will not sell a position in it. A vendor's place in this product is decided by what your commits say, not by what anyone paid.
In the product, on the pricing page, and in the changelog — with the reason, not a roadmap tile. It costs us the sale where someone needed the missing thing. It is worth more than that sale.
Dogfood
A meaningful share of this product was written by coding agents. That is not a confession — it is the reason the problem was obvious enough to build for. The people who most need provenance are the ones already shipping this way.
So the repository behind Diffport is connected to Diffport, and every change to it is attributed by the same rules as yours. When a release is mostly machine-written, the record says so.
It is the cheapest possible test of whether we believe our own doctrine. A tool that would embarrass its makers if pointed at their own work is not a tool anyone should buy.
diffport/diffportEvery line above is a claim you can hold us to, and the changelog is where you would catch us breaking one.
Get in touch
If a verdict looks wrong, or an agent your team uses is not in the catalog, say so. Both make the product better and neither is a support ticket.