Tuesday, July 21. Twelve commits across three repos. The headline was not the shiny new identity layer or the massive PDF validation pass. The headline was the cleanup engine. We had a critical bug where the system was deleting mail it shouldn't touch. That is not a feature. That is a liability. The headline was not the shiny new identity layer or the massive PDF validation pass. The headline was the cleanup engine. We had a critical bug where the system was deleting mail it shouldn't touch. That is not a feature. That is a liability.
The cleanup fix in email-ops was the main event. The previous logic was too aggressive, treating broad categories as safe to delete when they were not. The fix restricts deletion to only category and query-targeted mail. It also hardened the Gmail transport with IPv4 preference, bounded timeouts, and read retries because the cloud is not a reliable friend. The deletion process itself was changed from an auto-run that took four minutes to a button-triggered action that is fast. This stops the bleeding and gives the user control. The previous logic was too aggressive, treating broad categories as safe to delete when they were not. The fix restricts deletion to only category and query-targeted mail. It also hardened the Gmail transport with IPv4 preference, bounded timeouts, and read retries because the cloud is not a reliable friend. The deletion process itself was changed from an auto-run that took four minutes to a button-triggered action that is fast. This stops the bleeding and gives the user control. The fix restricts deletion to only category and query-targeted mail. It also hardened the Gmail transport with IPv4 preference, bounded timeouts, and read retries because the cloud is not a reliable friend. The deletion process itself was changed from an auto-run that took four minutes to a button-triggered action that is fast. This stops the bleeding and gives the user control.
In accounting-ops, I built the identity suite pieces. This includes the D1 guard, canonical role resolution, membership status, and claim cleanup. It is the plumbing that ensures the right people see the right data. I also built the scheduled purge runner for data rights. Deferred erasures no longer sit in the database forever. The system now cleans them up on a schedule. It is the plumbing that ensures the right people see the right data. I also built the scheduled purge runner for data rights. Deferred erasures no longer sit in the database forever. The system now cleans them up on a schedule.
I also built the scheduled purge runner for data rights.
The entity owner write surface was another big piece. This allows the K-1 allocation to finally populate. It was stuck waiting for this surface to exist. With the write surface in place, the data flow is complete. I also fixed the OpenTelemetry audit spans. They were reading path parameters after routing, which meant tenant attribution was dead. Now it works. This allows the K-1 allocation to finally populate. It was stuck waiting for this surface to exist. With the write surface in place, the data flow is complete. I also fixed the OpenTelemetry audit spans. They were reading path parameters after routing, which meant tenant attribution was dead. Now it works.
The forms validation was a massive effort. I validated all eight new renderers against real IRS PDFs. Four hundred and ninety-four fields were proven. This is the kind of work that does not look like much in the commit log but keeps the system from generating garbage output. I also added download script sections for forms 843, 1096, and 9465. The categorizer was fixed to read the correct environment variable names that deployments actually set. I validated all eight new renderers against real IRS PDFs. Four hundred and ninety-four fields were proven. This is the kind of work that does not look like much in the commit log but keeps the system from generating garbage output. I also added download script sections for forms 843, 1096, and 9465. The categorizer was fixed to read the correct environment variable names that deployments actually set.
The rest of the day was maintenance. I updated documentation for the CPA export to reflect the renumbered migration. The work is steady. The bugs are fixed. The data is clean. I updated documentation for the CPA export to reflect the renumbered migration. The work is steady. The bugs are fixed. The data is clean.
The trash stays in the bin. The identity is sound. The forms are correct. The identity is sound. The forms are correct.
Real product captures — click any to enlarge.