chore(deps): bump logos-cpp-sdk to 9d50829 (deferred generated event subscriptions) - #191
Merged
Merged
Conversation
…subscriptions)
Without this, logos-cpp-sdk#134 reaches nothing. Every module built through
mkLogosModule gets its generated dependency wrappers from THIS pin, and it was
still dfd4628 -- so real modules kept emitting the old shape:
LogosObject* origin = ensureReplica(); // blocking requestObject
if (!origin) return false; // PERMANENT, never retried
which asks "is this module reachable right now" at the one moment the answer is
no: every C++ consumer subscribes from init(), onContextReady() or a backend
constructor, all of which run while the dependency's host has been spawned and
has not called listen(). That guard was dead code for years because
isConnected() returned an always-true latch; logos-protocol#47 made it truthful,
which turns the same code into an instant, permanent, silent failure. Pinning
the protocol without the generator is therefore the WORST of the two orders, and
that is the state this repo has been in since #190.
Pairs with the protocol already pinned here: 0183e8c has onEventWhenAvailable,
which the new emission calls, and the tryAcquireNow use-after-free fix, which
matters because generated Qt consumers subscribe in exactly the shape that
triggered it -- one on<Event> per declared event, from init().
This exact combination is already green: logos-cpp-sdk#134's doc-tests built
their modules with module-builder master (protocol 0183e8c) and cpp-sdk
overridden to 9d50829, which is what this lock now produces. The Qt spec's
assertions passed there -- subscription accepted at onInit() while the dependency
was unreachable, event delivered decoded, exactly once.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
There was a problem hiding this comment.
Copilot wasn't able to review any files in this pull request.
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
📊 Doc-test reportsThe four ways to wrap a C library plus the two cross-language composition tours — each scaffolded into real modules, built against this commit, loaded in logoscore, and driven — rendered alongside the commands actually run and their output (updated each run, commit Pages can take a minute to update after the run finishes. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Without this, logos-co/logos-cpp-sdk#134 reaches nothing. Every module built through
mkLogosModuletakes its generated dependency wrappers from this repo'slogos-cpp-sdkpin, which was stilldfd4628— predating both #134 and #135.So real modules kept emitting the old shape:
which asks "is this module reachable right now" at the one moment the answer is no — every C++ consumer subscribes from
init(),onContextReady()or a backend constructor, all of which run while the dependency's host has been spawned and has not yet calledlisten().Why the current state is the worst of the two orders
That guard was dead code for years, because
isConnected()returned an always-true latch and the call fell through to a blocking wait that usually succeeded, slowly. logos-co/logos-protocol#47 madeisConnected()truthful — which turns the same code into an instant, permanent, silent failure.#190 pinned the new protocol here. This PR pins the generator that copes with it. Having the first without the second is strictly worse than having neither, and that is the state this repo has been in since #190 merged.
Already proven green in this exact combination
logos-co/logos-cpp-sdk#134's doc-tests built their modules against module-builder master (protocol
0183e8c) withlogos-cpp-sdkoverridden to9d50829— which is precisely what this lock now produces. The Qt spec passed there:flake.lockonly; no source change. Resulting pins:🤖 Generated with Claude Code