Files
logos-protocol/cpp
Dario LipicarandClaude Opus 5 0d2a3c06bf feat(abi): 0.5 — advertise the module teardown surface (#63)
#62 added logos_module_about_to_unload() and
logos_module_set_unload_done_callback() to the module ABI and left the MINOR at
4. That was my oversight, and it is not cosmetic: this header's whole
versioning convention is that each additive surface bumps the MINOR so a
CONSUMER can detect it, and 0.3 exists for exactly this shape -- the
logos_module_grant_host_services export, guarded downstream on
LOGOS_PROTOCOL_VERSION_MINOR >= 3.

Without the bump a code generator emitting calls to the new pair has nothing to
guard on, so its output requires protocol >= #62 unconditionally and fails to
compile against any older header with "logos_module_unload_done_cb was not
declared". That is what logos-cpp-sdk#143 hit: new generator, older protocol
pin, and no way to tell them apart.

With 0.5 the emitters guard the same way 0.3's grant surface is guarded, and new
codegen compiles against an older protocol header -- emitting no teardown calls,
which is exactly right for a module whose ABI cannot carry them.

nix/default.nix tracks the header string by its own comment, so it moves too.

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
2026-08-20 20:16:28 -03:00
..