Resolve ABI compatibility issues

Resolve ABI compatibility issues in C++ — with the four heights of help laid out: do it now, make it easier for the next person to accept, work out the right move when you are stuck, and learn the pattern so it stops coming back.

4prompt heights
Open it in the interactive atlas →

The four heights

The same task, four distances: today's deadline, the next reviewer, the stuck moment, the pattern.

Execute — do the immediate task

+
We must ship a patch that doesn't break the ABI between the library and existing game binaries.…
We must ship a patch that doesn't break the ABI between the library and existing game binaries. Update the public header api/render_api.h so the new struct MaterialParams is appended with only POD-compatible changes: add a float roughness as the last member, keep packing unchanged, and do not alter any virtual tables or non-public headers. Confirm that sizeof and alignment of existing types remain identical on x86_64.

Improve — make it easier to accept

+
Before this API change goes to the release branch, make it easy for the release engineer to…
Before this API change goes to the release branch, make it easy for the release engineer to approve. Produce a short summary that states whether the change is ABI-compatible on x86_64: list exact sizeof() and offsetof() for MaterialParams before and after, show that no class gained or lost virtual methods, and flag anything that would force a rebuild of dependents (changing visibility, symbol renames).

Decide — diagnose the stuck moment

+
I made a small change to render_api.h and QA reports a crash in modded game binaries that were not…

A minor header change might have broken downstream binaries without rebuilds

I made a small change to render_api.h and QA reports a crash in modded game binaries that were not rebuilt. I can't reproduce locally and I don't know whether I added a non-POD member or changed class layout. What is the most likely ABI issue and the quickest checks I should run to confirm compatibility and mitigate impact now?

Become — change the pattern

+
Over several releases, third-party mods break because small header edits changed layout or symbol…

We keep shipping header changes that break mod/plugin compatibility

Over several releases, third-party mods break because small header edits changed layout or symbol visibility. Our current review focuses on tests and feature behavior, not ABI. What routine or checklist should the team adopt so we stop accidentally breaking ABI compatibility while still allowing safe, documented API evolution?

Next to this one

Other programming language work people do in C++.

Every task here came from the work, not from a feature list — which is why the prompts name what you want done and never the button that does it. The tool changes; the work does not.
Copyright © LLOS.ai · 2026 — original pedagogy, voice, and design — all rights reserved.

The rest of the map

Same library, five ways in.