Dispatch 317
Week ↗

Sunday cleanup: federation maps and tax lines

Sunday in the build log is usually about keeping the house tidy while everyone else is asleep. Today was no different, though the scope was just wide enough to touch two different systems. I spent the mornin…

Commits
4
Systems
8
Read
2min
Product capture

Accounting-Ops — activity log.

Sunday in the build log is usually about keeping the house tidy while everyone else is asleep. Today was no different, though the scope was just wide enough to touch two different systems. I spent the morning untangling the federation layer in customer-ops and the afternoon closing up some holes in the accounting-ops tax mapping.

The bigger win was in customer-ops. We needed a proper way to handle workspace isolation for federated services, so I rolled out the per-workspace workspace map. This is multi-tenant-safe and finally retires the old *_WORKSPACE_OVERRIDE pattern that had been hanging around like a bad smell. It touched twelve files, mostly in the backend where the Prisma migrations and module wiring live, but it also rippled out to the client services for accounting, contact, email, meeting, outreach, and project ops. If you are touching any of those services now, you are using the new map. It is cleaner, it is safer, and it removes a whole class of configuration bugs we used to get from the old overrides.

Of course, nothing ships without a little friction. NestJS refused to boot the Prisma service because of a dependency injection quirk. The fix was tiny, just adding @Optional() to the options parameter in PrismaService, but it blocked everything else. One line change and the boot process started moving again. Meanwhile, the frontend was throwing a fit about the ESLint gate and the KnowledgeGraph3D component. I decoupled the lint check and fixed the type definition there so the production build could actually run. No need to let a linter hold up a deployment.

We needed a proper way to handle workspace isolation for federated services, so I rolled out the per-workspace workspace map.

On the accounting side, I went back to the 1120 tax form logic. There were five categories that were not being mapped correctly. COGS went to line 2, vehicle repairs went to line 26, and owner contributions, distributions, and shareholder loans needed to go to Schedule L instead of the P&L. I updated tax_mapping_1120.py and ran the smoke tests to make sure the numbers land in the right buckets. It is easy to miss these edge cases when you are focused on the happy path, but the tax code does not care about happy paths.

Also today: just a few minor tweaks to keep the wheels turning. The day added up to two solid blocks of work. One made the architecture more robust for multi-tenant federation. The other made sure the tax forms actually reflect reality. That is a good Sunday.

Also in the frame

Real product captures — click any to enlarge.

accounting ops
accounting ops
accounting ops