AVAILABLE FOR CONTRACT WORK ///TWO MERGED INTO DATAHUB :: AUG 2026 ///ADK HELPER PR OPEN AT A MAINTAINER'S ASK ///THE DOCS AND THE CODE DISAGREE ///PROVE IT OR IT DID NOT HAPPEN ///SETTLE EVERYTHING ///ONENEPT STUDIOS INC ///AVAILABLE FOR CONTRACT WORK ///TWO MERGED INTO DATAHUB :: AUG 2026 ///ADK HELPER PR OPEN AT A MAINTAINER'S ASK ///THE DOCS AND THE CODE DISAGREE ///PROVE IT OR IT DID NOT HAPPEN ///SETTLE EVERYTHING ///ONENEPT STUDIOS INC ///
← ALL CASES

CASE 01 :: DATAHUB, METADATA AND LINEAGE

THE PAGE
WAS WRONG.
SO WAS I.

Anyone can get a typo fix merged. This is the other thing: reading somebody else's codebase until you can tell the team something about their own project they had not written down yet, and having them write it down.

28 JULY TO 24 AUGUST 2026 :: PUBLIC THROUGHOUT :: TWO PULL REQUESTS ON MASTER

01

THE PAGE WAS WRONG

DataHub documents which kinds of things can have an incident raised against them. A table can. A dashboard can. The published list had drifted from the code and had been wrong for a while, quietly, the way documentation goes wrong.

PR #18685

02

SO WAS I

My first correction was also wrong. I wrote that one file was the gate that blocks a write, and that machine learning models get rejected. Neither is true. The maintainer asked for changes and he was right to. I went back and posted the correction myself, twice, once for an input shape I had copied wrong and once for a readback claim I had simply invented.

This is the beat I would keep if I had to delete the rest of the page.

the correction

03

STOP CHECKING BY HAND

Reading six files by eye is how the list went wrong in the first place. So I stopped reading and wrote the check. It parses the write allowlist, the registry, the schema and the resolver wiring, then prints the table. It runs inside the build, so the docs cannot drift again without the build noticing.

10

TYPES ACCEPT AN INCIDENT

7

CARRY THE SUMMARY ASPECT

5

COULD BE READ BACK

THE GAP: FIVE TYPES ACCEPTED AN INCIDENT AND COULD NEVER SHOW IT AGAIN. NOTHING ERRORED. THAT IS WHY NOBODY HAD CAUGHT IT.

04

GAVE HALF OF IT AWAY

Someone else had scoped the machine learning half before I filed anything. I found his thread after mine was open. So I handed him those entities and kept the column level one, which nobody was looking at. He shipped his in two pull requests. Mine was one. All three are on master now.

his RFC, filed first

05

THEY MADE IT THE RULE

The maintainer opened a tracker and made it the single place this work gets planned from. It runs on gates: every layer a thing has to clear before anyone can honestly say it supports incidents. He had named three when we started. The tracker has seven. The truth table inside it is the one my script prints, and the rule at the top of it, do not ship a write path without a read path, is the failure I filed.

GATEWHAT IT CONTROLSSOURCESCHEMAFIELD
1Write allowlistIncidentInfo.pdlALREADY THERE
2Summary aspectentity-registry.ymlMINE
3GraphQL schemaincident.graphqlMINE
4Resolver wiringGmsGraphQLEngine.javaMINE
5Tab badgeentity page queryAGREED, NEXT
6Incident tabweb react fragmentsAGREED, NEXT
7Agent toolingmcp_tools/incidents.pySTILL OPEN

GATES 5 AND 6 WERE OUT OF SCOPE WHEN THIS TABLE WAS WRITTEN. SEE BEAT 07.

the tracker

06

MERGED

Approved, taken out of draft and queued by the maintainer himself, then squashed onto master by a bot while I was asleep.

ON MASTER

feat(incidents): add incident support for schemaField (#19115)

COMMIT8c823661e6
REPOdatahub-project/datahub
LANDED20 AUGUST 2026

07

THEN THEY HANDED BACK THE REST

Gates 5 and 6, the tab you would actually click, were out of scope on purpose. After the merge the maintainer agreed a plan on the tracker: the permission check first, with tests, then the tab. That first half is now on master too, four days after the other one.

The check was asking the wrong question. Editing an incident on a column was authorized against the column, and nobody holds permissions on a column, so a dataset policy never matched and only platform admins got through. Ship the tab on top of that and it renders for everybody, the count is right, and the button is dead for everyone who is not an admin. That is worse than no tab.

It now asks about the parent instead, which is where permissions already live and what the frontend had been assuming all along. Fixing it turned up two private copies of the same check sitting in two different resolvers, byte for byte identical. Patch the shared one and the button would still have disagreed with the mutation behind it. Both go through one check now.

ON MASTER

fix(incidents): authorize field incidents against the parent entity (#19405)

COMMIT1eeb440e65
REPOdatahub-project/datahub
LANDED24 AUGUST 2026

THE REST

Two pull requests of mine are on master. The other threads here are still open, and one of them is being held shut on purpose until somebody else's work lands.

I am leaving that here because it was true before either merge and it is the reason they happened. The finding stood on a script anyone could run, months before a busy maintainer got to it.

CASE 02 :: GOOGLE ADK