Repository navigation
Conversation
kVinsom
marked this pull request as ready for review
October 23, 2026 15:11
Author
|
Could a maintainer please re-run the failed Linux/Pixi job in this workflow run? The build was interrupted with exit code 143 and "The runner has received a shutdown signal." The Windows/Pixi job passed. I tried to re-run the failed job, but GitHub rejected the request because I do not have the required repository permissions. Thank you! |
This branch has not been deployed
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.
Input-port consumers currently have to poll during a tick to discover blackboard writes. This draft adds instance-level
TreeNode::subscribeToInputPort()so a node can react before its next tick, without putting instance callbacks into staticprovidedPorts()declarations.Related to #872. Design proposal for BT.CPP 5: this adds storage to
Blackboard, so it changes its binary layout and requires rebuilding clients. The draft targetsmasterfor discussion because there is no public v5 branch. Please advise on the preferred target/API before merging.Behavior
{=}, and blackboard-backed defaults. Constant inputs return an empty handle.set(),setOutput(), script assignments, JSON import, and snapshot restoration. Subscribe-before-first-write does not create or type-lock an entry; subscriptions survive removal and recreation of the key.Signalis unchanged.Contract to review
This observes successful writes, including equal values, rather than comparing arbitrary
Anyvalues. Callbacks read the latest value; concurrent writers can overlap callbacks and do not guarantee delivery order. Resetting a handle does not wait for callbacks already selected for invocation: callers must stop writers before destroying captured targets. Exceptions propagate after the write commits and stop the remaining callbacks in that notification.Raw
Entry/AnyPtrLockedwrites require an explicitnotifyEntryUpdated()after unlocking. Remapping is resolved at registration; changing it requires a new subscription. Subscription records remain associated with keys for the blackboard lifetime.Validation
./run_clang_tidy.sh: passed.tests/test_helper.hpp(member initialization and special members) andtests/gtest_loggers.cpp(reinterpret cast).Tests are run serially because the existing logger tests share and delete
/tmp/bt_logger_test; a parallel trial produced file/database collisions. macOS, Windows and ROS builds have not been run locally.Developed with assistance from OpenAI Codex.