Skip to content

feat(agnocastlib): add set_parameters_callback impl#890

Merged
Koichi98 merged 24 commits intomainfrom
feat/parameter_callback
Jan 6, 2026
Merged

feat(agnocastlib): add set_parameters_callback impl#890
Koichi98 merged 24 commits intomainfrom
feat/parameter_callback

Conversation

@Koichi98
Copy link
Copy Markdown
Collaborator

@Koichi98 Koichi98 commented Jan 2, 2026

Description

Implement add_on_set_parameters_callback() and remove_on_set_parameters_callback() for agnocast::Node.

Notes

The rclcpp implementation includes an additional single-callback path in call_on_parameters_set_callbacks:

  if (callback) {
    result = callback(parameters);
  }

This was used by the deprecated set_on_parameters_set_callback(), which was removed in ROS 2 Humble (ros2/rclcpp#1199). Since Agnocast does not support this deprecated API, we only implement the container-based multiple callback mechanism.

Related links

add_on_set_parameters_callback
https://github.com/ros2/rclcpp/blob/c42bb23a524059208304ada51055c0c88b838b46/rclcpp/src/rclcpp/node_interfaces/node_parameters.cpp#L987

remove_on_set_parameters_callback
https://github.com/ros2/rclcpp/blob/c42bb23a524059208304ada51055c0c88b838b46/rclcpp/src/rclcpp/node_interfaces/node_parameters.cpp#L967

call_on_parameters_set_callbacks
https://github.com/ros2/rclcpp/blob/c42bb23a524059208304ada51055c0c88b838b46/rclcpp/src/rclcpp/node_interfaces/node_parameters.cpp#L269

How was this PR tested?

  • Autoware (required)
  • bash scripts/e2e_test_1to1_with_ros2sub (required)
  • bash scripts/e2e_test_2to2 (required)
  • kunit tests (required when modifying the kernel module)
  • sample application

Notes for reviewers

Version Update Label (Required)

Please add exactly one of the following labels to this PR:

  • need-major-update: User API breaking changes
  • need-minor-update: Internal API breaking changes (heaphook/kmod/agnocastlib compatibility)
  • need-patch-update: Bug fixes and other changes

Important notes:

  • If you need need-major-update or need-minor-update, please include this in the PR title as well.
    • Example: fix(foo)[needs major version update]: bar or feat(baz)[needs minor version update]: qux
  • After receiving approval from reviewers, add the run-build-test label. The PR can only be merged after the build tests pass.

See CONTRIBUTING.md for detailed versioning rules.

Koichi98 and others added 17 commits December 30, 2025 21:35
Signed-off-by: Koichi <koichi.imai.2@tier4.jp>
Signed-off-by: Koichi <koichi.imai.2@tier4.jp>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Koichi <koichi.imai.2@tier4.jp>
Signed-off-by: Koichi <koichi.imai.2@tier4.jp>
Signed-off-by: Koichi <koichi.imai.2@tier4.jp>
Signed-off-by: Koichi <koichi.imai.2@tier4.jp>
Signed-off-by: Koichi <koichi.imai.2@tier4.jp>
Signed-off-by: Koichi <koichi.imai.2@tier4.jp>
Signed-off-by: Koichi <koichi.imai.2@tier4.jp>
Signed-off-by: Koichi <koichi.imai.2@tier4.jp>
Signed-off-by: Koichi <koichi.imai.2@tier4.jp>
Signed-off-by: Koichi <koichi.imai.2@tier4.jp>
Signed-off-by: Koichi <koichi.imai.2@tier4.jp>
Base automatically changed from feat/set_parameter to main January 5, 2026 06:21
@Koichi98 Koichi98 added need-patch-update Bug fixes and other changes - requires PATCH version update run-build-test Run build-test in CI labels Jan 5, 2026
@github-actions
Copy link
Copy Markdown

github-actions Bot commented Jan 5, 2026

------------------------------------------------------------------------------
                           GCC Code Coverage Report
Directory: .
------------------------------------------------------------------------------
File                                       Lines    Exec  Cover   Missing
------------------------------------------------------------------------------
src/agnocastlib/include/agnocast/agnocast.hpp
                                               2       2   100%   
src/agnocastlib/include/agnocast/agnocast_callback_info.hpp
                                              49      44    89%   140,148-150,154
src/agnocastlib/include/agnocast/agnocast_multi_threaded_executor.hpp
                                               1       0     0%   32
src/agnocastlib/include/agnocast/agnocast_publisher.hpp
                                              33      28    84%   90-92,133-134
src/agnocastlib/include/agnocast/agnocast_smart_pointer.hpp
                                              49      49   100%   
src/agnocastlib/include/agnocast/agnocast_subscription.hpp
                                              31       9    29%   79,85,88-91,102,107,109-110,112,114-116,118,125,128,130,133,136-137,160
src/agnocastlib/include/agnocast/bridge/agnocast_bridge_node.hpp
                                              96      30    31%   61,76,83-84,86,89-92,97,99-103,123,131-133,136-138,143-149,151,153,158,161-163,165,167,169-171,173-175,178,180-182,184,186,189-192,196,199,201,205,208,210,230-231,258,261,265,269-270
src/agnocastlib/include/agnocast/node/agnocast_arguments.hpp
                                               3       1    33%   30,32
src/agnocastlib/include/agnocast/node/agnocast_context.hpp
                                               3       1    33%   24,26
src/agnocastlib/include/agnocast/node/agnocast_node.hpp
                                               2       2   100%   
src/agnocastlib/include/agnocast/node/node_interfaces/node_base.hpp
                                               1       1   100%   
src/agnocastlib/include/agnocast/node/node_interfaces/node_parameters.hpp
                                               1       1   100%   
src/agnocastlib/include/agnocast/node/node_interfaces/node_topics.hpp
                                               1       1   100%   
src/agnocastlib/src/agnocast.cpp             197       5     2%   41,44,46-52,56-57,60-64,67-71,75-76,80-83,86,89,91,94,96-97,104,106-110,114,116-121,124,126-127,131,133-135,139,141-142,147-148,151,153-156,160,162,164-168,171-173,175,177-178,182,185,187-190,194-200,202,212,214-215,218-220,222-223,225-227,229-230,233-234,237-238,241-244,248-249,252-254,256,259,261-262,265,268,270-271,274,277,281-282,285,288,292,294-295,297-298,300,302-304,307-308,314,317-318,323,326,330,332-336,338-340,345,348-350,353-356,358,360,363-367,370-372,375-379,383-384,387-388,391-394,397-400,407-408
src/agnocastlib/src/agnocast_callback_info.cpp
                                              69      44    63%   28-30,35-38,80-83,102-104,117-119,130,133,136-139,144,146
src/agnocastlib/src/agnocast_callback_isolated_executor.cpp
                                             163      79    48%   16,18-21,23,26,28,31,34,36-39,42-44,47,50-53,56-59,61,63,65-67,69-71,73,75-79,81-83,86-89,92-94,97-98,101-103,122,124-125,128-129,131-132,134,141-143,145,204,229-231,233,250,254,257-258,266,268-269,271,294,296-297,299
src/agnocastlib/src/agnocast_client.cpp       34       0     0%   14,16,18-24,27,30,32,34-35,38-39,42,45,48-50,52,54,58,60-61,63-66,68-69,72-73
src/agnocastlib/src/agnocast_component_container.cpp
                                              21       0     0%   5,8,10-12,15,17,20,22-24,26-34,37
src/agnocastlib/src/agnocast_component_container_cie.cpp
                                             101       0     0%   22-23,27,47,49,51-53,77,79-80,83-84,86-87,91,94,97-100,102,104-107,109,111,113-114,116,118-119,121,123-124,126,128,130,133,135,137-139,141-142,144-145,148,151,153-157,159-161,164-166,169-170,173-175,178-181,184,186-188,191-192,195,198,200-201,203-204,208-209,214,217,219-221,224,226,228-229,231-237,239
src/agnocastlib/src/agnocast_component_container_mt.cpp
                                              28       0     0%   7,12,14-16,19,21,23-25,27-28,30,33-34,36-38,40-48,51
src/agnocastlib/src/agnocast_executor.cpp
                                              44      41    93%   15-16,69
src/agnocastlib/src/agnocast_multi_threaded_executor.cpp
                                              87      61    70%   18,32-34,43-45,47-49,51-53,55-57,59-61,65,72-73,82-84,151
src/agnocastlib/src/agnocast_publisher.cpp
                                              69      10    14%   33,36-37,42,45,47-55,58,61,66-73,76,78-83,87,89-91,95-96,98,103,107-108,114-119,121,124-125,129,132,134-139,142
src/agnocastlib/src/agnocast_single_threaded_executor.cpp
                                              42      26    61%   20,31-33,37,46-48,71,75-78,81-82,84
src/agnocastlib/src/agnocast_smart_pointer.cpp
                                              18       0     0%   6,9-16,20,23-30
src/agnocastlib/src/agnocast_subscription.cpp
                                              42       0     0%   6-7,9,12-14,16,19,23-35,38,41,45-50,52-57,59,61,64,67-68,70-71
src/agnocastlib/src/agnocast_tracepoint_wrapper.c
                                              13      10    76%   40,63,105
src/agnocastlib/src/agnocast_utils.cpp        59      36    61%   12,14-16,19-20,22-23,25-26,28-29,32-33,104,106,109,111,114,117,120,122-123
src/agnocastlib/src/bridge/agnocast_bridge_ipc_event_loop.cpp
                                             118       0     0%   26-27,30-35,39,41,44,46-47,49,51-55,57-58,60-64,66-68,70-71,74-77,82,85,87,90,92,95,97,100,102-104,106,109-112,116,120,122,125-127,129-131,136,139-141,144-145,148,151,153-156,159,161-162,164-166,170,172-174,177-179,182,184-186,189,191-192,195,198,200-202,204-205,209,211-213,215,218-220,222,225,227-229,231,234-237,240
src/agnocastlib/src/bridge/agnocast_bridge_loader.cpp
                                              85       0     0%   17,21,23,26,30,32-34,37,40,43,48-50,53,56-57,60-61,63-65,69,72,74-75,77,80-81,84-87,89,92,95,97,103-106,108-110,112,116-118,120,123-124,126-127,129,132,136-139,141-142,144-145,147,150,153-154,156,159,161-163,166-168,170-173,175-177,179-180,184
src/agnocastlib/src/bridge/agnocast_bridge_manager.cpp
                                             204       0     0%   15-19,23-24,27-28,31-33,36,38-39,41,43-47,51-53,55-56,60,62,64-65,67,69-71,73-75,78-81,85,87-88,90-91,93,95-98,100,103,105-108,110,114,116-118,122,126-128,131-133,136,139,142-144,146,148,150-151,154,157,160-161,164,166-169,172,175,177,179-181,184,187-188,191-192,195,198,201-202,205-206,209-210,212-215,217-219,221,223-225,229,231-232,234-237,241,243-244,246-248,251-253,255-257,261-262,264-266,268,271-273,276,280-281,285,287-289,292-293,295-296,300,302-305,310,312-316,318,321,323-327,329,332,334-335,338-339,342-344,346,348,351-353,355-356,361,363-364,366-368,370,373-374,379,382,384-385,387
src/agnocastlib/src/node/agnocast_arguments.cpp
                                              76      37    48%   29,31,36,38,41,43-46,48,51-52,54-58,63,65-72,76,88,94-95,124,126-127,131,133-135,139,145
src/agnocastlib/src/node/agnocast_context.cpp
                                              12       0     0%   9,11-12,16-19,22-23,26,28-29
src/agnocastlib/src/node/agnocast_node.cpp
                                              13      11    84%   9-10
src/agnocastlib/src/node/agnocast_only_executor.cpp
                                              32       0     0%   11-12,14-16,20,22,25,28-29,32-33,36,39,42,44-49,52-53,55,58,62,64,66-67,69-70,75
src/agnocastlib/src/node/agnocast_only_multi_threaded_executor.cpp
                                              34       0     0%   8-13,18,20-23,26,28,30-32,35,37-38,42,44-48,50,54,56-57,63-66,69
src/agnocastlib/src/node/agnocast_only_single_threaded_executor.cpp
                                              20       0     0%   8-9,11-13,22,24-27,30,32-36,38,42-44
src/agnocastlib/src/node/node_interfaces/node_base.cpp
                                             156      71    45%   31,33,42,56-58,61-62,74-76,79-80,100,102,110,112,115,117,119,122,124,126,129,131,133,136,138,140,143,147,149-151,154,156,159,161,163-166,169,172,174-178,183,185,188,190,193,197,202,205,209,224-227,229,238-239,241,254-256,259-260,263-264,276-280,294-298,300,308
src/agnocastlib/src/node/node_interfaces/node_parameters.cpp
                                             323      10     3%   22,25-33,35,37,40,43,46,49,53-58,60,62-63,65,68,75-76,80-82,85-87,89-91,93,96-98,101-103,105,108,115,119,121,124,126-128,131,134-140,142-145,147-148,150-151,153-155,158-162,164-167,169-170,172-174,176-178,180,183,186,190-191,195,199-207,210,213,215-216,218-221,223-224,226-228,231,234,241-243,247-249,253-257,260,263,269-270,273-276,280,282-284,286,288-291,295,300,302,304-305,309,313,317,319-321,336,345,349,353,355,358,362,366-368,371-372,374,377-379,382,384,388-391,394-396,398-400,403,406,408,410,413,416-417,419-421,424,427,430,434,440-442,445-446,450-451,453,455,458,461-462,466-469,477,480-482,485,487-489,492,502-508,511,513,516-521,523,529-537,539,545,549,551-552,555-556,560,562,564,567,571-572,574-575,577,586,589,592-593,595-597,599,602,604,606,609,611,613-618,620,623,629-630,633,638-639,642,647-648,651,657,661,663,665-666,668-669,672,675,677,679-681,683,687,690
src/agnocastlib/src/node/node_interfaces/node_topics.cpp
                                              21       4    19%   18,20,23,30,32,35,40,42,45,52,54,57,62,64,67,69,71
------------------------------------------------------------------------------
TOTAL                                       2353     614    26%
------------------------------------------------------------------------------

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>
@Koichi98 Koichi98 marked this pull request as ready for review January 5, 2026 08:15
@Koichi98 Koichi98 requested a review from sykwer as a code owner January 5, 2026 08:15
@Koichi98 Koichi98 requested a review from atsushi421 as a code owner January 5, 2026 08:15
Copilot AI review requested due to automatic review settings January 5, 2026 08:15
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR implements the add_on_set_parameters_callback() and remove_on_set_parameters_callback() methods for agnocast::Node, enabling parameter validation callbacks. The implementation follows rclcpp's multiple callback mechanism while omitting the deprecated single-callback path.

Key changes:

  • Added callback container and helper function to invoke registered parameter callbacks
  • Integrated callback invocation into the parameter setting flow
  • Updated documentation to reflect newly supported methods

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
src/agnocastlib/src/node/node_interfaces/node_parameters.cpp Implements callback registration/removal, adds callback invocation to parameter setting logic
src/agnocastlib/include/agnocast/node/node_interfaces/node_parameters.hpp Adds callback container type definition and storage member
src/agnocastlib/include/agnocast/node/agnocast_node.hpp Exposes callback registration/removal methods in Node API
src/agnocast_sample_application/src/no_rclcpp_subscriber.cpp Demonstrates callback usage in sample application
docs/agnocast_node_interface_comparison.md Updates documentation to mark callback methods as fully supported

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/agnocastlib/src/node/node_interfaces/node_parameters.cpp
Comment thread src/agnocastlib/src/node/node_interfaces/node_parameters.cpp
Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>
@sykwer sykwer added run-build-test Run build-test in CI and removed run-build-test Run build-test in CI labels Jan 6, 2026
@github-actions
Copy link
Copy Markdown

github-actions Bot commented Jan 6, 2026

------------------------------------------------------------------------------
                           GCC Code Coverage Report
Directory: .
------------------------------------------------------------------------------
File                                       Lines    Exec  Cover   Missing
------------------------------------------------------------------------------
src/agnocastlib/include/agnocast/agnocast.hpp
                                               2       2   100%   
src/agnocastlib/include/agnocast/agnocast_callback_info.hpp
                                              49      44    89%   140,148-150,154
src/agnocastlib/include/agnocast/agnocast_multi_threaded_executor.hpp
                                               1       0     0%   32
src/agnocastlib/include/agnocast/agnocast_publisher.hpp
                                              33      28    84%   90-92,133-134
src/agnocastlib/include/agnocast/agnocast_smart_pointer.hpp
                                              49      49   100%   
src/agnocastlib/include/agnocast/agnocast_subscription.hpp
                                              31       9    29%   79,85,88-91,102,107,109-110,112,114-116,118,125,128,130,133,136-137,160
src/agnocastlib/include/agnocast/bridge/agnocast_bridge_node.hpp
                                              96      30    31%   61,76,83-84,86,89-92,97,99-103,123,131-133,136-138,143-149,151,153,158,161-163,165,167,169-171,173-175,178,180-182,184,186,189-192,196,199,201,205,208,210,230-231,258,261,265,269-270
src/agnocastlib/include/agnocast/node/agnocast_arguments.hpp
                                               3       1    33%   30,32
src/agnocastlib/include/agnocast/node/agnocast_context.hpp
                                               3       1    33%   24,26
src/agnocastlib/include/agnocast/node/agnocast_node.hpp
                                               2       2   100%   
src/agnocastlib/include/agnocast/node/node_interfaces/node_base.hpp
                                               1       1   100%   
src/agnocastlib/include/agnocast/node/node_interfaces/node_parameters.hpp
                                               1       1   100%   
src/agnocastlib/include/agnocast/node/node_interfaces/node_topics.hpp
                                               1       1   100%   
src/agnocastlib/src/agnocast.cpp             197       5     2%   41,44,46-52,56-57,60-64,67-71,75-76,80-83,86,89,91,94,96-97,104,106-110,114,116-121,124,126-127,131,133-135,139,141-142,147-148,151,153-156,160,162,164-168,171-173,175,177-178,182,185,187-190,194-200,202,212,214-215,218-220,222-223,225-227,229-230,233-234,237-238,241-244,248-249,252-254,256,259,261-262,265,268,270-271,274,277,281-282,285,288,292,294-295,297-298,300,302-304,307-308,314,317-318,323,326,330,332-336,338-340,345,348-350,353-356,358,360,363-367,370-372,375-379,383-384,387-388,391-394,397-400,407-408
src/agnocastlib/src/agnocast_callback_info.cpp
                                              69      44    63%   28-30,35-38,80-83,102-104,117-119,130,133,136-139,144,146
src/agnocastlib/src/agnocast_callback_isolated_executor.cpp
                                             163      79    48%   16,18-21,23,26,28,31,34,36-39,42-44,47,50-53,56-59,61,63,65-67,69-71,73,75-79,81-83,86-89,92-94,97-98,101-103,122,124-125,128-129,131-132,134,141-143,145,204,229-231,233,250,254,257-258,266,268-269,271,294,296-297,299
src/agnocastlib/src/agnocast_client.cpp       34       0     0%   14,16,18-24,27,30,32,34-35,38-39,42,45,48-50,52,54,58,60-61,63-66,68-69,72-73
src/agnocastlib/src/agnocast_component_container.cpp
                                              21       0     0%   5,8,10-12,15,17,20,22-24,26-34,37
src/agnocastlib/src/agnocast_component_container_cie.cpp
                                             101       0     0%   22-23,27,47,49,51-53,77,79-80,83-84,86-87,91,94,97-100,102,104-107,109,111,113-114,116,118-119,121,123-124,126,128,130,133,135,137-139,141-142,144-145,148,151,153-157,159-161,164-166,169-170,173-175,178-181,184,186-188,191-192,195,198,200-201,203-204,208-209,214,217,219-221,224,226,228-229,231-237,239
src/agnocastlib/src/agnocast_component_container_mt.cpp
                                              28       0     0%   7,12,14-16,19,21,23-25,27-28,30,33-34,36-38,40-48,51
src/agnocastlib/src/agnocast_executor.cpp
                                              44      41    93%   15-16,69
src/agnocastlib/src/agnocast_multi_threaded_executor.cpp
                                              87      61    70%   18,32-34,43-45,47-49,51-53,55-57,59-61,65,72-73,82-84,151
src/agnocastlib/src/agnocast_publisher.cpp
                                              69      10    14%   33,36-37,42,45,47-55,58,61,66-73,76,78-83,87,89-91,95-96,98,103,107-108,114-119,121,124-125,129,132,134-139,142
src/agnocastlib/src/agnocast_single_threaded_executor.cpp
                                              42      26    61%   20,31-33,37,46-48,71,75-78,81-82,84
src/agnocastlib/src/agnocast_smart_pointer.cpp
                                              18       0     0%   6,9-16,20,23-30
src/agnocastlib/src/agnocast_subscription.cpp
                                              42       0     0%   6-7,9,12-14,16,19,23-35,38,41,45-50,52-57,59,61,64,67-68,70-71
src/agnocastlib/src/agnocast_tracepoint_wrapper.c
                                              13      10    76%   40,63,105
src/agnocastlib/src/agnocast_utils.cpp        59      36    61%   12,14-16,19-20,22-23,25-26,28-29,32-33,104,106,109,111,114,117,120,122-123
src/agnocastlib/src/bridge/agnocast_bridge_ipc_event_loop.cpp
                                             118       0     0%   26-27,30-35,39,41,44,46-47,49,51-55,57-58,60-64,66-68,70-71,74-77,82,85,87,90,92,95,97,100,102-104,106,109-112,116,120,122,125-127,129-131,136,139-141,144-145,148,151,153-156,159,161-162,164-166,170,172-174,177-179,182,184-186,189,191-192,195,198,200-202,204-205,209,211-213,215,218-220,222,225,227-229,231,234-237,240
src/agnocastlib/src/bridge/agnocast_bridge_loader.cpp
                                              85       0     0%   17,21,23,26,30,32-34,37,40,43,48-50,53,56-57,60-61,63-65,69,72,74-75,77,80-81,84-87,89,92,95,97,103-106,108-110,112,116-118,120,123-124,126-127,129,132,136-139,141-142,144-145,147,150,153-154,156,159,161-163,166-168,170-173,175-177,179-180,184
src/agnocastlib/src/bridge/agnocast_bridge_manager.cpp
                                             204       0     0%   15-19,23-24,27-28,31-33,36,38-39,41,43-47,51-53,55-56,60,62,64-65,67,69-71,73-75,78-81,85,87-88,90-91,93,95-98,100,103,105-108,110,114,116-118,122,126-128,131-133,136,139,142-144,146,148,150-151,154,157,160-161,164,166-169,172,175,177,179-181,184,187-188,191-192,195,198,201-202,205-206,209-210,212-215,217-219,221,223-225,229,231-232,234-237,241,243-244,246-248,251-253,255-257,261-262,264-266,268,271-273,276,280-281,285,287-289,292-293,295-296,300,302-305,310,312-316,318,321,323-327,329,332,334-335,338-339,342-344,346,348,351-353,355-356,361,363-364,366-368,370,373-374,379,382,384-385,387
src/agnocastlib/src/node/agnocast_arguments.cpp
                                              76      37    48%   29,31,36,38,41,43-46,48,51-52,54-58,63,65-72,76,88,94-95,124,126-127,131,133-135,139,145
src/agnocastlib/src/node/agnocast_context.cpp
                                              12       0     0%   9,11-12,16-19,22-23,26,28-29
src/agnocastlib/src/node/agnocast_node.cpp
                                              13      11    84%   9-10
src/agnocastlib/src/node/agnocast_only_executor.cpp
                                              32       0     0%   11-12,14-16,20,22,25,28-29,32-33,36,39,42,44-49,52-53,55,58,62,64,66-67,69-70,75
src/agnocastlib/src/node/agnocast_only_multi_threaded_executor.cpp
                                              34       0     0%   8-13,18,20-23,26,28,30-32,35,37-38,42,44-48,50,54,56-57,63-66,69
src/agnocastlib/src/node/agnocast_only_single_threaded_executor.cpp
                                              20       0     0%   8-9,11-13,22,24-27,30,32-36,38,42-44
src/agnocastlib/src/node/node_interfaces/node_base.cpp
                                             156      71    45%   31,33,42,56-58,61-62,74-76,79-80,100,102,110,112,115,117,119,122,124,126,129,131,133,136,138,140,143,147,149-151,154,156,159,161,163-166,169,172,174-178,183,185,188,190,193,197,202,205,209,224-227,229,238-239,241,254-256,259-260,263-264,276-280,294-298,300,308
src/agnocastlib/src/node/node_interfaces/node_parameters.cpp
                                             323      10     3%   22,25-33,35,37,40,43,46,49,53-58,60,62-63,65,68,75-76,80-82,85-87,89-91,93,96-98,101-103,105,108,115,119,121,124,126-128,131,134-140,142-145,147-148,150-151,153-155,158-162,164-167,169-170,172-174,176-178,180,183,186,190-191,195,199-207,210,213,215-216,218-221,223-224,226-228,231,234,241-243,247-249,253-257,260,263,270-271,274-277,281,283-285,287,289-292,296,299,301-302,306,310,314,316-318,333,342,346,350,352,355,359,363-365,368-369,371,374-376,379,381,385-388,391-393,395-397,400,403,405,407,410,413-414,416-418,421,424,427,431,437-439,442-443,447-448,450,452,455,458-459,463-466,474-475,478-480,483,485,487-488,491,498-504,507,509,512-517,519,525-533,535,541,545,547-548,551-552,556,558,560,563,567-568,570-571,573,582,585,588-589,591-593,595,598,600,602,605,607,609-614,616,619,625-626,629,634-635,638,643-644,647,653,657,659,663-664,666-667,670,673,677,679-681,683,687,690
src/agnocastlib/src/node/node_interfaces/node_topics.cpp
                                              21       4    19%   18,20,23,30,32,35,40,42,45,52,54,57,62,64,67,69,71
------------------------------------------------------------------------------
TOTAL                                       2353     614    26%
------------------------------------------------------------------------------

@Koichi98 Koichi98 merged commit 902ca17 into main Jan 6, 2026
9 of 10 checks passed
@Koichi98 Koichi98 deleted the feat/parameter_callback branch January 6, 2026 05:20
bdm-k pushed a commit that referenced this pull request Mar 23, 2026
* type checking helper functions

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* Update src/agnocastlib/src/node/node_interfaces/node_parameters.cpp

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* add parameter_range_validation

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix clang-tidy

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* add set_parameters_atomically implementation

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix comments

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix clang-tidy

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* add set_parameter impl and sample app

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix sample app

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* update agnocast_node_interface_comparison.d

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* update doc

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* add set_parameters_callback impl

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* delete unnecessary comments

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* Update src/agnocastlib/src/node/node_interfaces/node_parameters.cpp

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* align with rclcpp for empty_callback_container

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix comments

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

---------

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>
Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>
bdm-k pushed a commit that referenced this pull request Mar 23, 2026
* type checking helper functions

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* Update src/agnocastlib/src/node/node_interfaces/node_parameters.cpp

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* add parameter_range_validation

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix clang-tidy

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* add set_parameters_atomically implementation

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix comments

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix clang-tidy

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* add set_parameter impl and sample app

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix sample app

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* update agnocast_node_interface_comparison.d

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* update doc

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* add set_parameters_callback impl

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* delete unnecessary comments

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* Update src/agnocastlib/src/node/node_interfaces/node_parameters.cpp

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* align with rclcpp for empty_callback_container

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix comments

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

---------

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>
Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>
Koichi98 added a commit that referenced this pull request Apr 4, 2026
…unication (#862)

* fix(agnocastlib): align with rclcpp::Node for callback_group related API (#881)

* add document for agnocast::Node API

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix doc location and update README

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix to align with rclcpp

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* delete unneeded oveload functions and delete get_default_callback_group

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix doc

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* markdown lint

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

---------

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>
Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* fix(cie_thread_configurator): dep missing (#883)

Signed-off-by: sykwer <sykwer@gmail.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* fix(ci): add --return-code-on-test-failure to colcon test commands (#888)

Colcon test returns exit code 0 even when tests fail, causing test
failures to be silently ignored in CI. Adding the --return-code-on-test-failure
flag ensures that the workflow fails when tests fail, improving CI reliability
and test accountability.

Modified colcon test commands in:
- agnocastlib unit and integration tests
- heaphook integration tests

Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(agnocastlib): Add type checking helper functions for set_parameter (#884)

* type checking helper functions

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* Update src/agnocastlib/src/node/node_interfaces/node_parameters.cpp

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix clang-tidy

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix clang-tidy

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* feat(agnocastlib): Add parameter range validation (#885)

* add parameter_range_validation

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix clang-tidy

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

---------

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

---------

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Takahiro Ishikawa-Aso <sykwer@gmail.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* fix(test): fix test failures in cie and heaphook test (#887)

* fix test_and_create_report

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* delete copyright

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix comment spell error

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

---------

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(agnocastlib): add implmentation for resolve_topic_or_service_name (#879)

* add implmentation for resolve_topic_or_service_name

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix test_and_create_report

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* delete copyright

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* align with rclcpp rcl_node_resolve_name

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix comment spell error

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix to align with rcl impl

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix test

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* update docs and fix based on copilot

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix clang-tidy

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix clang-tidy

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

---------

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>
Signed-off-by: Koichi <koichi.imai.2@tier4.jp>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(agnocastlib):  add set_parameters_atomically implementation (#886)

* type checking helper functions

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* Update src/agnocastlib/src/node/node_interfaces/node_parameters.cpp

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* add parameter_range_validation

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix clang-tidy

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* add set_parameters_atomically implementation

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix comments

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix clang-tidy

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix clang-tidy

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* feat(agnocastlib): Add parameter range validation (#885)

* add parameter_range_validation

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix clang-tidy

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

---------

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* add comments

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* Update src/agnocastlib/src/node/node_interfaces/node_parameters.cpp

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update src/agnocastlib/src/node/node_interfaces/node_parameters.cpp

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix clang-tidy

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

---------

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(agnocastlib):add set_parameter implementation and sample app (#889)

* type checking helper functions

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* Update src/agnocastlib/src/node/node_interfaces/node_parameters.cpp

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* add parameter_range_validation

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix clang-tidy

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* add set_parameters_atomically implementation

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix comments

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix clang-tidy

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* add set_parameter impl and sample app

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix sample app

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* update agnocast_node_interface_comparison.d

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* update doc

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* Update src/agnocastlib/src/node/node_interfaces/node_parameters.cpp

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(agnocastlib): add set_parameters_callback impl (#890)

* type checking helper functions

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* Update src/agnocastlib/src/node/node_interfaces/node_parameters.cpp

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* add parameter_range_validation

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix clang-tidy

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* add set_parameters_atomically implementation

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix comments

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix clang-tidy

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* add set_parameter impl and sample app

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix sample app

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* update agnocast_node_interface_comparison.d

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* update doc

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* add set_parameters_callback impl

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* delete unnecessary comments

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* Update src/agnocastlib/src/node/node_interfaces/node_parameters.cpp

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* align with rclcpp for empty_callback_container

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix comments

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

---------

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>
Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(agnocastlib): run parameter callback when declare (#892)

* run parameter callback when declare

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix clang-tidy

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix copilot review

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix error

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

---------

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>
Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(agnocastlib): add get_parameters_by_prefix implementation (#895)

* feat(agnocastlib): add get_parameters_by_prefix implementation

* Leave a TODO comment

* Add a note

Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(agnocastlib): add get_parameters overload (#896)

Signed-off-by: bdm-k <kokusyunn@gmail.com>

* docs: add explanation for agnocast::Node loading into a component container (#897)

add explanation for agnocast::Node loading into a component container

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* refactor(agnocastlib): unify mq naming and refactor unlink mq (#893)

* refactor: integration two mq

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: unlink mq

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* feat: unique mq

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: rename

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: reviews

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: cppcheck

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

---------

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(agnocastlib): add parameter recursive mutation guard (#894)

* run parameter callback when declare

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix clang-tidy

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix copilot review

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix error

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* add guard for recursive parameter mutation

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* use recuresive mutex and reuse rclcpp ParameterMutationRecursionGuard

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix error after merge with main

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* add rclcpp dependency to the documentation

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

---------

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>
Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(agnocastlib): skeleton of performance bridge  (#898)

* feat: performance_bridge_skelton

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refator: remove todo fn

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refator: clang-tidy

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refator: add comment

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

---------

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* refator(agnocastlib): revert pub options (#899)

refator: revert_pub_options

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(agnocastlib): application bridge mode for request_policy (#900)

* feat: application mode for send

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* feat: application mode for send

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

---------

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(agnocastlib): performance eventloop (#901)

* feat: performance_event_loop

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: minor

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: unification_event_loop

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: remove cpp

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: minor

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: minor

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: handler

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: remove

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

---------

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(kmod)[needs minor version update]: get process num (#902)

* feat: shutdown of performance bridge

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* test: add get_active_proc_num

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refacor: rename

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refacor: add brank line

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refacor: remove exit check

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refacor: comment

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: unify check_daemon_necessity

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

---------

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* move PublisherOptions error message constructor_impl (#903)

* move PublisherOptions error message constructor_impl

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix error message

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

---------

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>
Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(agnocastlib): add describe_parameters impl (#907)

* feat(agnocastlib): add describe_parameters impl

* Add TODO comments

Signed-off-by: bdm-k <kokusyunn@gmail.com>

* docs(agnocastlib): add clarification comments to Executor API (#908)

* docs(agnocastlib): add clarification comments to Executor API

Add comments to explain that add_node() method in AgnocastOnlyExecutor
is implemented solely to unify the API with rclcpp::Executor, improving
code clarity for future maintainers.

* fix

Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(agnocastlib): send performance request (#906)

* feat: send performance request

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: unify

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: rename

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: logger name

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: clang-tidy

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

---------

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(agnocastlib): generate_plugin (#904)

* feat: generate_plugin

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: EmPy

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: add comment

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: remove comment

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: unify plugin.py

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: remove py

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

---------

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>
Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(agnocastlib): add get_parameter_types impl (#909)

Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(agnocastlib): use qos parameter overrides (#905)

* use qos_parameter_overrides

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* add sample_ap

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* update doc and sample app

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* Update src/agnocastlib/include/agnocast/agnocast_subscription.hpp

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* update doc

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

---------

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>
Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(agnocastlib): add list_parameters impl (#910)

* feat(agnocastlib): add list_parameters impl

* Fix clang-tidy errors

---------

Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(agnocastlib): performance loader (#911)

* feat: performance loader

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: unify create_fn

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: copilot

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: add todo comment

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: clang-tidy

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* fix: build

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* fix: build

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: clang-tidy

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

---------

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(agnocastlib): implement cancel() for CallbackIsolatedAgnocastExecutor (#914)

* feat(agnocastlib): implement cancel() for CallbackIsolatedAgnocastExecutor

Add cancel() public method to CallbackIsolatedAgnocastExecutor that propagates
cancellation to all child executors. Track child executors created during spin()
and ensure proper cleanup through the cancel mechanism. This enables graceful
shutdown of isolated callback group execution threads.

* Update src/agnocastlib/src/agnocast_callback_isolated_executor.cpp

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix

* fix

* fix

* Add spinning store in cancel method

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* test(agnocastlib): add integration test for CallbackIsolatedAgnocastExecutor   (#915)

* feat(agnocastlib): implement cancel() for CallbackIsolatedAgnocastExecutor

Add cancel() public method to CallbackIsolatedAgnocastExecutor that propagates
cancellation to all child executors. Track child executors created during spin()
and ensure proper cleanup through the cancel mechanism. This enables graceful
shutdown of isolated callback group execution threads.

* Update src/agnocastlib/src/agnocast_callback_isolated_executor.cpp

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix

* fix

* fix

* test(agnocastlib): add integration test for CallbackIsolatedAgnocastExecutor

This test verifies that the CallbackIsolatedAgnocastExecutor correctly
publishes callback group information when spinning nodes with multiple
callback groups, and that the cancel() method properly stops execution.

* fix

* fix

* fix: rename

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* test: integration test for agnocast_component_container_cie (#916)

* test: integration test for agnocast_component_container_cie

* Update src/agnocastlib/test/integration/test_agnocast_component_container_cie_launch.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix: clang-format

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(agnocastlib): auto remove bridge  (#918)

* feat: remove bridge

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* feat: unify logic

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: no use lambda

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: error handling

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

---------

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(agncastlib): add declare_parameter overload definitions (#913)

* add declare_parameter overload definitions that doesn't need default param

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix comment and update doc

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* Update src/agnocastlib/include/agnocast/node/agnocast_node.hpp

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(kmod): add set_ros2_subscriber_num ioctl command (#920)

* add set_ros2_subscriber_num ioctl

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* delete adding bool flag to get_subscriber_num

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix get_subscriber_num

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* delete unnecessary comments

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* delete unnecessary comments

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* delete unnecessary comments

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* add to agnocast_ioctl.hpp

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

---------

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* refactor(agnocastlib): remove reload (#921)

refactor: remove reload

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>
Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* fix(kmod)[needs major version update]: get_publisher/subscriber_num to return whether bridge exist (#922)

* fix get_publisher/subscriber_num to return whether bridge exist

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix comments

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix comments

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix kunit test

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix compilation error

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

---------

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(agnocastlib): add NodeClock (#912)

* feat(agnocastlib): implement NodeClock

* Update API reference

---------

Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(agnocastlib): get subscription count including ros2 subscriber (#919)

* add implementation for get_subscription_count

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* add flag to get only agnocast subscriber

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* add kunit test and rename to set_ros2_subscriber_num

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix kunit tests

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* add set_ros2_subscriber_num ioctl

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* delete adding bool flag to get_subscriber_num

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix get_subscriber_num

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* delete unnecessary comments

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* delete unnecessary comments

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* delete unnecessary comments

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix error

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix error

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* clang-format

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* add to agnocast_ioctl.hpp

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix error handling

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix get_subscriber_num comand

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix get_subscription_count

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* delete unnecessary comments

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* update comment

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* delete unnecessary changes

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* add comment

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* improve comment

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

---------

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>
Signed-off-by: Koichi <koichi.imai.2@tier4.jp>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* fix(agnocastlib): dynamic entity discovery (#923)

* refactor: wakeup timer

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: add comment

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: use default callback group

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: revert

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: use reentrant

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: revert

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: use mutually

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: use struct

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

---------

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(agnocastlib): check ros2 demand (#925)

* feat: check ros2 demand

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: cpp_check

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: clang-tidy

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

---------

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(agnocastlib): simple NodeTimeSource implementation (#924)

* add implementation for simple NodeTimeSource

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* add TODO comments

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix comments

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* align with rclcpp

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix sample app

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* add sample app

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix bug

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* delete unnecessary files

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* update doc

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* Update src/agnocastlib/src/node/node_interfaces/node_time_source.cpp

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix clang-tidy

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

---------

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>
Signed-off-by: Koichi <koichi.imai.2@tier4.jp>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(agnocastlib): add type aliases to agnocast::Node (#927)

add type aliases

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* fix(agnocastlib): fix build dependencies (#932)

* fix(agnocastlib): fix build dependencies

Signed-off-by: sykwer <sykwer@gmail.com>

* fix

Signed-off-by: sykwer <sykwer@gmail.com>

---------

Signed-off-by: sykwer <sykwer@gmail.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* fix(ci): use sequential build to fix package dependency resolution (#933)

* fix(ci): use staged build to fix package dependency resolution

colcon's parallel build may start configuring packages before their
dependencies are fully installed. This causes find_package() to fail
for packages like cie_config_msgs and agnocastlib.

Fix by building in three stages:
1. Build cie_config_msgs and cie_thread_configurator
2. Source workspace, then build agnocastlib
3. Source workspace, then build remaining packages

This ensures each dependency is installed and available via
CMAKE_PREFIX_PATH before dependent packages start building.

* fix(ci): use sequential build instead of staged build

Simplify the workaround for colcon parallel build dependency issues
by using --parallel-workers 1 instead of the three-stage build approach.

Signed-off-by: bdm-k <kokusyunn@gmail.com>

* add get_topic_name interface (#929)

* add get_topic_name interface

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* add TODO comments

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

---------

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>
Signed-off-by: Koichi <koichi.imai.2@tier4.jp>
Co-authored-by: Takahiro Ishikawa-Aso <sykwer@gmail.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(kmod): add is_bridge in info (#930)

* feat: add is_bridge in info

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* feat: get_topic_bridge_exist

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: cppcheck

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: add test

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* Revert to commit 914a331

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: check exist logic

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: revert

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: find is_bridge logic

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: remove option

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* test: CI

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* revert

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* delete initialize_internal

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* delete override and add is_bridge arg to constructor

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* delete debug log

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix signiture for teset

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

---------

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>
Signed-off-by: Koichi <koichi.imai.2@tier4.jp>
Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com>
Co-authored-by: Koichi <koichi.imai.2@tier4.jp>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(agnocastlib): check demand and create bridge (#928)

* feat: check_and_create_bridges

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor:clang-tidy

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: cppcheck

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* fix clang-tidy

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

---------

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>
Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>
Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com>
Co-authored-by: Koichi Imai <koichi.imai.2@tier4.jp>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* fix(agnocastlib): skip callback groups not automatically added to executor (#931)

* fix(ci): use staged build to fix package dependency resolution

colcon's parallel build may start configuring packages before their
dependencies are fully installed. This causes find_package() to fail
for packages like cie_config_msgs and agnocastlib.

Fix by building in three stages:
1. Build cie_config_msgs and cie_thread_configurator
2. Source workspace, then build agnocastlib
3. Source workspace, then build remaining packages

This ensures each dependency is installed and available via
CMAKE_PREFIX_PATH before dependent packages start building.

* fix(agnocastlib): skip callback groups not automatically added to executor

Add check for automatically_add_to_executor_with_node() to avoid adding
callback groups that the user explicitly marked as not for automatic
executor addition.

Also update test to verify this behavior and add source install/setup.bash
to CI test steps.

* fix(ci): use sequential build instead of staged build

Simplify the workaround for colcon parallel build dependency issues
by using --parallel-workers 1 instead of the three-stage build approach.

* fix

* fix

* fix

---------

Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* fix(ci): fix install path to align with `--merge-install` (#936)

fix install path

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* refactor(agnocastlib): remove config  (#938)

refactor: remove config

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* refactor(agnocastlib): simplify signal handling logic (#939)

refactor: remove signo

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat[needs minor version update]: remove QoS depth limit (#937)

* feat: support qos depth > 10

* clang-format

* cppcheck

* Update agnocast_kmod/agnocast_kunit/agnocast_kunit_receive_msg.c

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix

* fix: remove MAX_QOS_DEPTH

* fix: move mutex

* clang-format

* fix: clang-tidy

* refactor

* fix

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* fix(agnocastlib): self-executable detection logic  (#940)

fix: send to symbol

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(agnocastlib): add NodeServices (#944)

* feat(agnocastlib): add NodeServices

* Fix clang-tidy error

* Add get_node_time_source_interface()

Signed-off-by: bdm-k <kokusyunn@gmail.com>

* refactor(agnocastlib): separate epoll and callback_info (#941)

* separate epoll and callback logic

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* delete unnecessary changes

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* delete unncessary

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix for agnocast_only_executor

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

---------

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* fix(agnocastlib): add error handling for non supported qos (#948)

* add error handling for keepall and add qos overriding for take subscription

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* validation for other qos

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

---------

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(agnocastlib): add NodeLoggingInterface implementation (#945)

* add NodeLoggingInterface imple

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* update doc

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix clang-tidy

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

---------

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>
Signed-off-by: Koichi <koichi.imai.2@tier4.jp>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(cie_thread_configurator): support multiple ROS domain (#951)

* feat: support multiple ROS domain

* fix

Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(agnocastlib)[need-minor-update]: add get_intra_subscription_count api (#934)

* add get_intra_subscription_count api

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix kunit tests

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix kunit test

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* delete unnecessary comments

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix test_publisher

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix kunit tests

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* ret_pub/sub_bridge_exist

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* delete include_ros2 and fix get_subscription_count_core

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* add TODO comments

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* Update src/agnocastlib/include/agnocast/agnocast_publisher.hpp

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* add comments

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* clang-format

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* rename variable

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix bridge manager

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

---------

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* refactor(agnocastlib): mq size (#952)

* refactor: mq size

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: mq size

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: README

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

---------

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>
Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* fix(README.md): shell command typo error in For User part (#956)

Signed-off-by: bdm-k <kokusyunn@gmail.com>

* fix(agnocastlib): declare parameter return type (#958)

fix declare parameter return type

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat: support jazzy (#961)

* jazzy support in agnocastlib

Signed-off-by: sykwer <sykwer@gmail.com>

* support jazzy in ci

Signed-off-by: sykwer <sykwer@gmail.com>

* fix

Signed-off-by: sykwer <sykwer@gmail.com>

* fix

Signed-off-by: sykwer <sykwer@gmail.com>

* fix

Signed-off-by: sykwer <sykwer@gmail.com>

* fix

Signed-off-by: sykwer <sykwer@gmail.com>

* fix

Signed-off-by: sykwer <sykwer@gmail.com>

* fix

Signed-off-by: sykwer <sykwer@gmail.com>

* fix

Signed-off-by: sykwer <sykwer@gmail.com>

* fix

Signed-off-by: sykwer <sykwer@gmail.com>

* fix

Signed-off-by: sykwer <sykwer@gmail.com>

* fix

Signed-off-by: sykwer <sykwer@gmail.com>

* fix

Signed-off-by: sykwer <sykwer@gmail.com>

* add readme

Signed-off-by: sykwer <sykwer@gmail.com>

* add comment

Signed-off-by: sykwer <sykwer@gmail.com>

---------

Signed-off-by: sykwer <sykwer@gmail.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(agnocastlib): add agnocast timer implementation (#942)

* separate epoll and callback logic

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* delete unnecessary changes

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* add agnocast timer implemenatation

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix sample app publisher

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* restore epoll related

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix next_call_time update

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* update docs and add scripts/run_no_rclcpp_talker

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* Update src/agnocastlib/include/agnocast/agnocast_epoll.hpp

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update src/agnocastlib/src/agnocast_timer_info.cpp

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix copilot review

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* delete static_assert

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* restore static_assert

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* Update src/agnocastlib/src/agnocast_timer_info.cpp

Co-authored-by: atsushi yano <55824710+atsushi421@users.noreply.github.com>

* fix to align with rclcpp for period==0

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* add error message and delete unnecessary declaration

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* lockless data structure and timercallbackinfo aligned with rclcpp

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* add TODO comment

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* workaround for timer period zero

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* delete TimercallbackInfo

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix compilation error

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix clang-tidy

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

---------

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>
Signed-off-by: Koichi <koichi.imai.2@tier4.jp>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: atsushi yano <55824710+atsushi421@users.noreply.github.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* docs: add callback isolated executor documentation for Agnocast (#960)

* docs: add callback isolated executor documentation for Agnocast

Add documentation explaining the Agnocast version of Callback Isolated
Executor, including differences from the original and multiple ROS
domain support feature.

* Update docs/callback_isolated_executor_for_agnocast.md

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(cie_thread_configurator): add spawn_non_ros2_thread for non-ROS thread scheduling management (#959)

* feat(cie_thread_configurator): add spawn_non_ros2_thread for non-ROS thread scheduling management

Add functionality to manage scheduling policies for non-ROS2 threads through
cie_thread_configurator. This enables users to configure CPU affinity and
scheduling policies for threads that are not part of the ROS2 callback system.

Changes:
- Add NonRosThreadInfo.msg for publishing thread information
- Add spawn_non_ros2_thread template function that publishes thread info
  before executing the user's function
- Update PrerunNode to collect non-ROS thread names and output them in
  template.yaml
- Update ThreadConfiguratorNode to apply scheduling configurations to
  non-ROS threads
- Add integration test for spawn_non_ros2_thread functionality
- Rename topic_callback to callback_group_callback for clarity
- Rename CallbackGroupConfig to ThreadConfig for unified handling

* Update src/cie_thread_configurator/include/cie_thread_configurator/cie_thread_configurator.hpp

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix

* clang-format

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* fix(agnocast_e2e_test): verification logic (#957)

* fix: test logic

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: copilot

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: verification logic

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: get_next_timeout_ms

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: pubish period

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: remove white space

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: remove log

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: ros sub num

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: add note

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: equal

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: use class

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

---------

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* fix(cie_thread_configurator): wait for subscriber before publishing thread info (#967)

* fix(cie_thread_configurator): wait for subscriber before publishing thread info

- Add subscriber discovery wait loop in spawn_non_ros2_thread with 1 second
  timeout to prevent message loss when publishing NonRosThreadInfo
- Add warning when no subscriber is connected for CallbackGroupInfo to guide
  users to start thread_configurator_node
- Fixes flaky test_thread_configurator_receives_non_ros_thread_info test
  caused by DDS discovery race condition

* refactor: remove code duplication in spawn_non_ros2_thread timeout handling

Address review comment by refactoring the timeout logic to have a single
execution path for context shutdown and user function execution.

* fix: add guidance to start thread_configurator_node in NonRosThreadInfo warning

Signed-off-by: bdm-k <kokusyunn@gmail.com>

* fix(agnocastlib): race condition in BridgeManager (#965)

* refactor: get qos timing

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* fix: rece condition

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: if

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

---------

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>
Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* fix(agnocastlib): fix create_wall_timer api to align with rclcpp (#950)

* fix create_wall_timer api

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix clang-tidy

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

---------

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>
Signed-off-by: Koichi <koichi.imai.2@tier4.jp>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* refactor(agnocastlib)[needs minor version update]: add debug mode for bridge (#963)

* refactor: add debug mode for bridge

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: remove comment

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: is_bridge logic

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: copilot

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: copilot

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

---------

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>
Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* doc(ros2agnocast): add explain for debug mode (#972)

* docs: add explain for debug mode

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* docs: add explain for debug mode

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

---------

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* refactor(agnocastlib): consolidate bridge functions (#971)

* refactor: move manager_pid

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: move suffix

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: move bridge_mode

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: remove debug log

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: remove unused variable

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: variable name

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* fix: clang-tidy

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

---------

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>
Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* refactor(agnocastlib): rename standard bridge (#976)

* refactor: rename standard

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: rename standard

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

---------

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* fix(cie_thread_configurator): ensure NonRosThreadInfo message delivery before shutdown (#979)

* fix(cie_thread_configurator): ensure NonRosThreadInfo message delivery before shutdown

Use reliable QoS and wait_for_all_acked() to ensure the message is
delivered to subscribers before shutting down the context, fixing
flaky test failures in CI environments.

* fix

Signed-off-by: bdm-k <kokusyunn@gmail.com>

* fix(agnocastlib): reduce mutex scop of id2_timer_info_mtx (#974)

reduce mutex scop of id2_timer_info_mtx

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* refactor(agnocastlib): bridge folder structure (#980)

refactor: folder structure

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* refactor(agnocastlib)[need-minor-update]: reduce lock scope of global mutex in kmod (#985)

* reduce lock scope of global mutex

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* Update agnocast_kmod/agnocast_main.c

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* docs: bridge docs (#977)

* docs: add bridge explain for readme

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* docs: add bridge explain for mq

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* comment: add bridge md

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* comment: add bridge md

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* comment: add bridge md

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: add link

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: explain

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: fig

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* Update docs/agnocast_ros2_bridge.md

---------

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>
Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(agnocastlib): add update_ros2_subscriber_num to performance manager (#984)

* feat: update ros2

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: move update_fn

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: move update fn

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

---------

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>
Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* fix(github): CODEOWNERS (#988)

fix CODEOWNERS

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* fix(cie_thread_configurator): remove unnecessary sleep after publishing callback group info (#989)

Signed-off-by: bdm-k <kokusyunn@gmail.com>

* fix(agnocastlib): return actual_qos to use in TRACE_POINT (#973)

* return actual_qos to use in TRACE_POINT

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

---------

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>
Co-authored-by: Yutaro Kobayashi <129580202+kobayu858@users.noreply.github.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(agnocastlib): add agnocast::Node support for PollingSubscriber   (#926)

* fix create_wall_timer api

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* feat polling subscription for agnocast::Node

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* add sample_app

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix sample app

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* add qos_overriding_options handling in constructor_impl

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* Update src/agnocastlib/include/agnocast/agnocast_subscription.hpp

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Yutaro Kobayashi <129580202+kobayu858@users.noreply.github.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* refactor(agnocastlib): rename BUILD_BRIDGE environment variable (#991)

rename BUILD_BRIDGE enviroment variable

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* refactor(agnocastlib): add initializer to qos_overriding_options (#954)

Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(agnocastlib): signal handler for agnocast::Node (#964)

* add signal_handler

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* delete unnecessary comments

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* Apply suggestion from @atsushi421

Co-authored-by: atsushi yano <55824710+atsushi421@users.noreply.github.com>

* Update src/agnocastlib/src/node/agnocast_only_multi_threaded_executor.cpp

Co-authored-by: atsushi yano <55824710+atsushi421@users.noreply.github.com>

* fix

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

---------

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>
Co-authored-by: atsushi yano <55824710+atsushi421@users.noreply.github.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(agnocastlib): support ipc_shared_ptr<const T> callback in create_subscription (#993)

* feat(agnocastlib): support ipc_shared_ptr<const T> callback in create_subscription

Add converting constructors and assignment operators to ipc_shared_ptr
to enable implicit conversion from ipc_shared_ptr<T> to ipc_shared_ptr<const T>,
similar to std::shared_ptr semantics.

This allows create_subscription to accept callbacks that take
ipc_shared_ptr<const MessageT> as argument while maintaining backward
compatibility with existing callbacks.

* feat(agnocastlib): support ipc_shared_ptr<const T> callback in create_subscription

Add converting constructors and assignment operators to ipc_shared_ptr
to enable implicit conversion from ipc_shared_ptr<T> to ipc_shared_ptr<const T>,
similar to std::shared_ptr semantics.

This allows create_subscription to accept callbacks that take
ipc_shared_ptr<const MessageT> as argument while maintaining backward
compatibility with existing callbacks.

Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(agnocast_e2e_test): add r2a bridge test (#970)

* feat: R2A test

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* remove: result log

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: check incompatible QoS

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: add comment

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: copilot

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: unity

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: remove log file

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* fix: e2e_2to2

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: revert comment

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

---------

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>
Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* fix(agnocastlib): clean up callback info on subscription destruction (#994)

* fix(agnocastlib): clean up callback info on subscription destruction

When a BasicSubscription was destroyed, its entry in id2_callback_info
was never removed. This caused epoll_ctl(EPOLL_CTL_ADD) to fail with
EEXIST when re-subscribing, because the OS reuses the same fd number
after mq_close() and the stale entry prevented proper re-registration.

* fix

* Update src/agnocastlib/include/agnocast/agnocast_subscription.hpp

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(agnocastlib): add message_filters base components (MessageEvent, SimpleFilter) (#996)

* feat(agnocastlib): add message_filters base components (MessageEvent, SimpleFilter)

Add foundational message_filters components adapted from ROS 2 message_filters
for agnocast's const-only shared memory IPC model (ipc_shared_ptr<const M>):

- MessageEvent: wraps ipc_shared_ptr<M const> with receipt-time metadata
- ParameterAdapter: converts MessageEvent to user callback parameter types
- Signal1: thread-safe single-message signal dispatcher
- SimpleFilter: base class for single-output filters

Includes unit tests with ioctl mock.

* Update src/agnocastlib/test/unit/message_filters/ioctl_mock_for_mf.cpp

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update src/agnocastlib/include/agnocast/message_filters/simple_filter.hpp

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update src/agnocastlib/test/unit/message_filters/test_simple.cpp

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix(agnocastlib): remove unused MsgPtr alias in test_simple.cpp

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(agnocast_ioctl_wrapper, ros2agnocast): mode print feature topic list (#992)

* feat: move print feature

Signed-off-by: TetsuKawa <kawaguchitnon@icloud.com>

* fix: avoid unnecessary copy

Signed-off-by: TetsuKawa <kawaguchitnon@icloud.com>

* feat: remove service topic

Signed-off-by: TetsuKawa <kawaguchitnon@icloud.com>

* fix: for index type

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix: return zero value

* fix: null check agnocast_topic_buffer

---------

Signed-off-by: TetsuKawa <kawaguchitnon@icloud.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(agnocastlib): add Synchronizer and ExactTime sync policy (#997)

* feat(agnocastlib): add message_filters base components (MessageEvent, SimpleFilter)

Add foundational message_filters components adapted from ROS 2 message_filters
for agnocast's const-only shared memory IPC model (ipc_shared_ptr<const M>):

- MessageEvent: wraps ipc_shared_ptr<M const> with receipt-time metadata
- ParameterAdapter: converts MessageEvent to user callback parameter types
- Signal1: thread-safe single-message signal dispatcher
- SimpleFilter: base class for single-output filters

Includes unit tests with ioctl mock.

* Update src/agnocastlib/test/unit/message_filters/ioctl_mock_for_mf.cpp

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update src/agnocastlib/include/agnocast/message_filters/simple_filter.hpp

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update src/agnocastlib/test/unit/message_filters/test_simple.cpp

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix(agnocastlib): remove unused MsgPtr alias in test_simple.cpp

* feat(agnocastlib): add Synchronizer and ExactTime sync policy

Add multi-message synchronization components:

- Signal9: thread-safe 9-message signal dispatcher
- Synchronizer: policy-based multi-message synchronizer (2-9 inputs)
- PolicyBase: common type aliases for sync policies
- ExactTime: groups messages by exact timestamp match

Includes unit tests for ExactTime (timestamp matching, queue size, drop
callback) and Synchronizer (compile tests for 2-9 inputs, callback
signatures, add routing).

* Update src/agnocastlib/test/unit/message_filters/test_exact_time.cpp

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update src/agnocastlib/test/unit/message_filters/test_synchronizer.cpp

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update src/agnocastlib/include/agnocast/message_filters/signal9.hpp

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(agnocastlib): add message_filters Subscriber and integration tests (#998)

* feat(agnocastlib): add message_filters Subscriber and integration tests

Add Subscriber filter connecting agnocast subscriptions to the
message_filters chain, and integration tests requiring kernel module:

- Subscriber: wraps agnocast::create_subscription() and signals received
  messages as MessageEvent<M const> through SimpleFilter
- Integration tests: full Publisher -> Subscriber pipeline, 9-channel
  ExactTime synchronization, partial arrival, timestamp mismatch/match

* fix

Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(agnocast_ioctl_wrapper, ros2agnocast): enhance topic list agnocast command (#1002)

* feat: update topic list display

Signed-off-by: TetsuKawa <kawaguchitnon@icloud.com>

* fix: bridge display condition

Signed-off-by: TetsuKawa <kawaguchitnon@icloud.com>

* feat: move feature that remove srv topic

Signed-off-by: TetsuKawa <kawaguchitnon@icloud.com>

* fix: rm debug msg

Signed-off-by: TetsuKawa <kawaguchitnon@icloud.com>

* fix: typo

Signed-off-by: TetsuKawa <kawaguchitnon@icloud.com>

* feat: rename bridge status

Signed-off-by: TetsuKawa <kawaguchitnon@icloud.com>

* fix: update suffix on starange situations

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Signed-off-by: TetsuKawa <kawaguchitnon@icloud.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(agnocast_ioctl_wrapper, ros2agnocast): add node list agnocast command (#1003)

* feat: add node list command

Signed-off-by: TetsuKawa <kawaguchitnon@icloud.com>

* fix: comment

Signed-off-by: TetsuKawa <kawaguchitnon@icloud.com>

* fix: variant name

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* feat: remove unnecesarry comment

Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com>

* fix: remove warning of duplication

Signed-off-by: TetsuKawa <kawaguchitnon@icloud.com>

* feat: debug option

Signed-off-by: TetsuKawa <kawaguchitnon@icloud.com>

---------

Signed-off-by: TetsuKawa <kawaguchitnon@icloud.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat[needs minor version update]: redesign ipc_shared_ptr (#966)

* redesign ipc_shared_ptr in publisher process

Signed-off-by: sykwer <sykwer@gmail.com>

* fix unit tests for publisher process side

Signed-off-by: sykwer <sykwer@gmail.com>

* redesign ipc_shared_ptr in subscriber process

Signed-off-by: sykwer <sykwer@gm…
atsushi421 added a commit to paulsohn/agnocast that referenced this pull request Apr 7, 2026
…unication (autowarefoundation#862)

* fix(agnocastlib): align with rclcpp::Node for callback_group related API (#881)

* add document for agnocast::Node API

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix doc location and update README

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix to align with rclcpp

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* delete unneeded oveload functions and delete get_default_callback_group

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix doc

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* markdown lint

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

---------

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>
Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* fix(cie_thread_configurator): dep missing (#883)

Signed-off-by: sykwer <sykwer@gmail.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* fix(ci): add --return-code-on-test-failure to colcon test commands (#888)

Colcon test returns exit code 0 even when tests fail, causing test
failures to be silently ignored in CI. Adding the --return-code-on-test-failure
flag ensures that the workflow fails when tests fail, improving CI reliability
and test accountability.

Modified colcon test commands in:
- agnocastlib unit and integration tests
- heaphook integration tests

Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(agnocastlib): Add type checking helper functions for set_parameter (#884)

* type checking helper functions

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* Update src/agnocastlib/src/node/node_interfaces/node_parameters.cpp

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix clang-tidy

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix clang-tidy

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* feat(agnocastlib): Add parameter range validation (#885)

* add parameter_range_validation

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix clang-tidy

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

---------

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

---------

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Takahiro Ishikawa-Aso <sykwer@gmail.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* fix(test): fix test failures in cie and heaphook test (#887)

* fix test_and_create_report

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* delete copyright

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix comment spell error

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

---------

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(agnocastlib): add implmentation for resolve_topic_or_service_name (#879)

* add implmentation for resolve_topic_or_service_name

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix test_and_create_report

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* delete copyright

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* align with rclcpp rcl_node_resolve_name

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix comment spell error

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix to align with rcl impl

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix test

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* update docs and fix based on copilot

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix clang-tidy

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix clang-tidy

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

---------

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>
Signed-off-by: Koichi <koichi.imai.2@tier4.jp>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(agnocastlib):  add set_parameters_atomically implementation (#886)

* type checking helper functions

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* Update src/agnocastlib/src/node/node_interfaces/node_parameters.cpp

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* add parameter_range_validation

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix clang-tidy

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* add set_parameters_atomically implementation

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix comments

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix clang-tidy

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix clang-tidy

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* feat(agnocastlib): Add parameter range validation (#885)

* add parameter_range_validation

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix clang-tidy

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

---------

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* add comments

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* Update src/agnocastlib/src/node/node_interfaces/node_parameters.cpp

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update src/agnocastlib/src/node/node_interfaces/node_parameters.cpp

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix clang-tidy

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

---------

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(agnocastlib):add set_parameter implementation and sample app (#889)

* type checking helper functions

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* Update src/agnocastlib/src/node/node_interfaces/node_parameters.cpp

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* add parameter_range_validation

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix clang-tidy

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* add set_parameters_atomically implementation

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix comments

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix clang-tidy

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* add set_parameter impl and sample app

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix sample app

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* update agnocast_node_interface_comparison.d

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* update doc

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* Update src/agnocastlib/src/node/node_interfaces/node_parameters.cpp

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(agnocastlib): add set_parameters_callback impl (#890)

* type checking helper functions

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* Update src/agnocastlib/src/node/node_interfaces/node_parameters.cpp

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* add parameter_range_validation

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix clang-tidy

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* add set_parameters_atomically implementation

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix comments

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix clang-tidy

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* add set_parameter impl and sample app

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix sample app

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* update agnocast_node_interface_comparison.d

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* update doc

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* add set_parameters_callback impl

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* delete unnecessary comments

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* Update src/agnocastlib/src/node/node_interfaces/node_parameters.cpp

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* align with rclcpp for empty_callback_container

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix comments

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

---------

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>
Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(agnocastlib): run parameter callback when declare (#892)

* run parameter callback when declare

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix clang-tidy

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix copilot review

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix error

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

---------

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>
Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(agnocastlib): add get_parameters_by_prefix implementation (#895)

* feat(agnocastlib): add get_parameters_by_prefix implementation

* Leave a TODO comment

* Add a note

Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(agnocastlib): add get_parameters overload (#896)

Signed-off-by: bdm-k <kokusyunn@gmail.com>

* docs: add explanation for agnocast::Node loading into a component container (#897)

add explanation for agnocast::Node loading into a component container

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* refactor(agnocastlib): unify mq naming and refactor unlink mq (#893)

* refactor: integration two mq

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: unlink mq

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* feat: unique mq

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: rename

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: reviews

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: cppcheck

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

---------

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(agnocastlib): add parameter recursive mutation guard (#894)

* run parameter callback when declare

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix clang-tidy

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix copilot review

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix error

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* add guard for recursive parameter mutation

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* use recuresive mutex and reuse rclcpp ParameterMutationRecursionGuard

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix error after merge with main

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* add rclcpp dependency to the documentation

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

---------

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>
Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(agnocastlib): skeleton of performance bridge  (#898)

* feat: performance_bridge_skelton

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refator: remove todo fn

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refator: clang-tidy

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refator: add comment

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

---------

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* refator(agnocastlib): revert pub options (#899)

refator: revert_pub_options

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(agnocastlib): application bridge mode for request_policy (#900)

* feat: application mode for send

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* feat: application mode for send

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

---------

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(agnocastlib): performance eventloop (#901)

* feat: performance_event_loop

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: minor

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: unification_event_loop

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: remove cpp

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: minor

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: minor

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: handler

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: remove

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

---------

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(kmod)[needs minor version update]: get process num (#902)

* feat: shutdown of performance bridge

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* test: add get_active_proc_num

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refacor: rename

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refacor: add brank line

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refacor: remove exit check

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refacor: comment

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: unify check_daemon_necessity

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

---------

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* move PublisherOptions error message constructor_impl (#903)

* move PublisherOptions error message constructor_impl

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix error message

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

---------

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>
Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(agnocastlib): add describe_parameters impl (#907)

* feat(agnocastlib): add describe_parameters impl

* Add TODO comments

Signed-off-by: bdm-k <kokusyunn@gmail.com>

* docs(agnocastlib): add clarification comments to Executor API (#908)

* docs(agnocastlib): add clarification comments to Executor API

Add comments to explain that add_node() method in AgnocastOnlyExecutor
is implemented solely to unify the API with rclcpp::Executor, improving
code clarity for future maintainers.

* fix

Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(agnocastlib): send performance request (#906)

* feat: send performance request

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: unify

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: rename

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: logger name

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: clang-tidy

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

---------

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(agnocastlib): generate_plugin (#904)

* feat: generate_plugin

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: EmPy

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: add comment

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: remove comment

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: unify plugin.py

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: remove py

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

---------

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>
Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(agnocastlib): add get_parameter_types impl (#909)

Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(agnocastlib): use qos parameter overrides (#905)

* use qos_parameter_overrides

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* add sample_ap

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* update doc and sample app

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* Update src/agnocastlib/include/agnocast/agnocast_subscription.hpp

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* update doc

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

---------

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>
Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(agnocastlib): add list_parameters impl (#910)

* feat(agnocastlib): add list_parameters impl

* Fix clang-tidy errors

---------

Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(agnocastlib): performance loader (#911)

* feat: performance loader

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: unify create_fn

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: copilot

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: add todo comment

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: clang-tidy

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* fix: build

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* fix: build

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: clang-tidy

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

---------

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(agnocastlib): implement cancel() for CallbackIsolatedAgnocastExecutor (#914)

* feat(agnocastlib): implement cancel() for CallbackIsolatedAgnocastExecutor

Add cancel() public method to CallbackIsolatedAgnocastExecutor that propagates
cancellation to all child executors. Track child executors created during spin()
and ensure proper cleanup through the cancel mechanism. This enables graceful
shutdown of isolated callback group execution threads.

* Update src/agnocastlib/src/agnocast_callback_isolated_executor.cpp

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix

* fix

* fix

* Add spinning store in cancel method

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* test(agnocastlib): add integration test for CallbackIsolatedAgnocastExecutor   (#915)

* feat(agnocastlib): implement cancel() for CallbackIsolatedAgnocastExecutor

Add cancel() public method to CallbackIsolatedAgnocastExecutor that propagates
cancellation to all child executors. Track child executors created during spin()
and ensure proper cleanup through the cancel mechanism. This enables graceful
shutdown of isolated callback group execution threads.

* Update src/agnocastlib/src/agnocast_callback_isolated_executor.cpp

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix

* fix

* fix

* test(agnocastlib): add integration test for CallbackIsolatedAgnocastExecutor

This test verifies that the CallbackIsolatedAgnocastExecutor correctly
publishes callback group information when spinning nodes with multiple
callback groups, and that the cancel() method properly stops execution.

* fix

* fix

* fix: rename

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* test: integration test for agnocast_component_container_cie (#916)

* test: integration test for agnocast_component_container_cie

* Update src/agnocastlib/test/integration/test_agnocast_component_container_cie_launch.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix: clang-format

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(agnocastlib): auto remove bridge  (#918)

* feat: remove bridge

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* feat: unify logic

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: no use lambda

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: error handling

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

---------

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(agncastlib): add declare_parameter overload definitions (#913)

* add declare_parameter overload definitions that doesn't need default param

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix comment and update doc

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* Update src/agnocastlib/include/agnocast/node/agnocast_node.hpp

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(kmod): add set_ros2_subscriber_num ioctl command (#920)

* add set_ros2_subscriber_num ioctl

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* delete adding bool flag to get_subscriber_num

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix get_subscriber_num

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* delete unnecessary comments

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* delete unnecessary comments

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* delete unnecessary comments

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* add to agnocast_ioctl.hpp

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

---------

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* refactor(agnocastlib): remove reload (#921)

refactor: remove reload

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>
Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* fix(kmod)[needs major version update]: get_publisher/subscriber_num to return whether bridge exist (#922)

* fix get_publisher/subscriber_num to return whether bridge exist

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix comments

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix comments

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix kunit test

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix compilation error

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

---------

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(agnocastlib): add NodeClock (#912)

* feat(agnocastlib): implement NodeClock

* Update API reference

---------

Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(agnocastlib): get subscription count including ros2 subscriber (#919)

* add implementation for get_subscription_count

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* add flag to get only agnocast subscriber

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* add kunit test and rename to set_ros2_subscriber_num

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix kunit tests

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* add set_ros2_subscriber_num ioctl

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* delete adding bool flag to get_subscriber_num

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix get_subscriber_num

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* delete unnecessary comments

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* delete unnecessary comments

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* delete unnecessary comments

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix error

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix error

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* clang-format

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* add to agnocast_ioctl.hpp

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix error handling

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix get_subscriber_num comand

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix get_subscription_count

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* delete unnecessary comments

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* update comment

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* delete unnecessary changes

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* add comment

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* improve comment

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

---------

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>
Signed-off-by: Koichi <koichi.imai.2@tier4.jp>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* fix(agnocastlib): dynamic entity discovery (#923)

* refactor: wakeup timer

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: add comment

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: use default callback group

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: revert

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: use reentrant

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: revert

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: use mutually

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: use struct

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

---------

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(agnocastlib): check ros2 demand (#925)

* feat: check ros2 demand

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: cpp_check

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: clang-tidy

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

---------

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(agnocastlib): simple NodeTimeSource implementation (#924)

* add implementation for simple NodeTimeSource

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* add TODO comments

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix comments

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* align with rclcpp

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix sample app

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* add sample app

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix bug

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* delete unnecessary files

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* update doc

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* Update src/agnocastlib/src/node/node_interfaces/node_time_source.cpp

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix clang-tidy

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

---------

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>
Signed-off-by: Koichi <koichi.imai.2@tier4.jp>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(agnocastlib): add type aliases to agnocast::Node (#927)

add type aliases

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* fix(agnocastlib): fix build dependencies (#932)

* fix(agnocastlib): fix build dependencies

Signed-off-by: sykwer <sykwer@gmail.com>

* fix

Signed-off-by: sykwer <sykwer@gmail.com>

---------

Signed-off-by: sykwer <sykwer@gmail.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* fix(ci): use sequential build to fix package dependency resolution (#933)

* fix(ci): use staged build to fix package dependency resolution

colcon's parallel build may start configuring packages before their
dependencies are fully installed. This causes find_package() to fail
for packages like cie_config_msgs and agnocastlib.

Fix by building in three stages:
1. Build cie_config_msgs and cie_thread_configurator
2. Source workspace, then build agnocastlib
3. Source workspace, then build remaining packages

This ensures each dependency is installed and available via
CMAKE_PREFIX_PATH before dependent packages start building.

* fix(ci): use sequential build instead of staged build

Simplify the workaround for colcon parallel build dependency issues
by using --parallel-workers 1 instead of the three-stage build approach.

Signed-off-by: bdm-k <kokusyunn@gmail.com>

* add get_topic_name interface (#929)

* add get_topic_name interface

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* add TODO comments

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

---------

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>
Signed-off-by: Koichi <koichi.imai.2@tier4.jp>
Co-authored-by: Takahiro Ishikawa-Aso <sykwer@gmail.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(kmod): add is_bridge in info (#930)

* feat: add is_bridge in info

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* feat: get_topic_bridge_exist

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: cppcheck

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: add test

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* Revert to commit 914a331

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: check exist logic

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: revert

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: find is_bridge logic

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: remove option

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* test: CI

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* revert

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* delete initialize_internal

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* delete override and add is_bridge arg to constructor

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* delete debug log

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix signiture for teset

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

---------

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>
Signed-off-by: Koichi <koichi.imai.2@tier4.jp>
Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com>
Co-authored-by: Koichi <koichi.imai.2@tier4.jp>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(agnocastlib): check demand and create bridge (#928)

* feat: check_and_create_bridges

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor:clang-tidy

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: cppcheck

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* fix clang-tidy

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

---------

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>
Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>
Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com>
Co-authored-by: Koichi Imai <koichi.imai.2@tier4.jp>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* fix(agnocastlib): skip callback groups not automatically added to executor (#931)

* fix(ci): use staged build to fix package dependency resolution

colcon's parallel build may start configuring packages before their
dependencies are fully installed. This causes find_package() to fail
for packages like cie_config_msgs and agnocastlib.

Fix by building in three stages:
1. Build cie_config_msgs and cie_thread_configurator
2. Source workspace, then build agnocastlib
3. Source workspace, then build remaining packages

This ensures each dependency is installed and available via
CMAKE_PREFIX_PATH before dependent packages start building.

* fix(agnocastlib): skip callback groups not automatically added to executor

Add check for automatically_add_to_executor_with_node() to avoid adding
callback groups that the user explicitly marked as not for automatic
executor addition.

Also update test to verify this behavior and add source install/setup.bash
to CI test steps.

* fix(ci): use sequential build instead of staged build

Simplify the workaround for colcon parallel build dependency issues
by using --parallel-workers 1 instead of the three-stage build approach.

* fix

* fix

* fix

---------

Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* fix(ci): fix install path to align with `--merge-install` (#936)

fix install path

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* refactor(agnocastlib): remove config  (#938)

refactor: remove config

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* refactor(agnocastlib): simplify signal handling logic (#939)

refactor: remove signo

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat[needs minor version update]: remove QoS depth limit (#937)

* feat: support qos depth > 10

* clang-format

* cppcheck

* Update agnocast_kmod/agnocast_kunit/agnocast_kunit_receive_msg.c

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix

* fix: remove MAX_QOS_DEPTH

* fix: move mutex

* clang-format

* fix: clang-tidy

* refactor

* fix

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* fix(agnocastlib): self-executable detection logic  (#940)

fix: send to symbol

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(agnocastlib): add NodeServices (#944)

* feat(agnocastlib): add NodeServices

* Fix clang-tidy error

* Add get_node_time_source_interface()

Signed-off-by: bdm-k <kokusyunn@gmail.com>

* refactor(agnocastlib): separate epoll and callback_info (#941)

* separate epoll and callback logic

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* delete unnecessary changes

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* delete unncessary

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix for agnocast_only_executor

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

---------

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* fix(agnocastlib): add error handling for non supported qos (#948)

* add error handling for keepall and add qos overriding for take subscription

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* validation for other qos

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

---------

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(agnocastlib): add NodeLoggingInterface implementation (#945)

* add NodeLoggingInterface imple

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* update doc

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix clang-tidy

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

---------

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>
Signed-off-by: Koichi <koichi.imai.2@tier4.jp>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(cie_thread_configurator): support multiple ROS domain (#951)

* feat: support multiple ROS domain

* fix

Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(agnocastlib)[need-minor-update]: add get_intra_subscription_count api (#934)

* add get_intra_subscription_count api

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix kunit tests

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix kunit test

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* delete unnecessary comments

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix test_publisher

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix kunit tests

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* ret_pub/sub_bridge_exist

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* delete include_ros2 and fix get_subscription_count_core

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* add TODO comments

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* Update src/agnocastlib/include/agnocast/agnocast_publisher.hpp

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* add comments

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* clang-format

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* rename variable

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix bridge manager

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

---------

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* refactor(agnocastlib): mq size (#952)

* refactor: mq size

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: mq size

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: README

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

---------

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>
Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* fix(README.md): shell command typo error in For User part (#956)

Signed-off-by: bdm-k <kokusyunn@gmail.com>

* fix(agnocastlib): declare parameter return type (#958)

fix declare parameter return type

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat: support jazzy (#961)

* jazzy support in agnocastlib

Signed-off-by: sykwer <sykwer@gmail.com>

* support jazzy in ci

Signed-off-by: sykwer <sykwer@gmail.com>

* fix

Signed-off-by: sykwer <sykwer@gmail.com>

* fix

Signed-off-by: sykwer <sykwer@gmail.com>

* fix

Signed-off-by: sykwer <sykwer@gmail.com>

* fix

Signed-off-by: sykwer <sykwer@gmail.com>

* fix

Signed-off-by: sykwer <sykwer@gmail.com>

* fix

Signed-off-by: sykwer <sykwer@gmail.com>

* fix

Signed-off-by: sykwer <sykwer@gmail.com>

* fix

Signed-off-by: sykwer <sykwer@gmail.com>

* fix

Signed-off-by: sykwer <sykwer@gmail.com>

* fix

Signed-off-by: sykwer <sykwer@gmail.com>

* fix

Signed-off-by: sykwer <sykwer@gmail.com>

* add readme

Signed-off-by: sykwer <sykwer@gmail.com>

* add comment

Signed-off-by: sykwer <sykwer@gmail.com>

---------

Signed-off-by: sykwer <sykwer@gmail.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(agnocastlib): add agnocast timer implementation (#942)

* separate epoll and callback logic

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* delete unnecessary changes

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* add agnocast timer implemenatation

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix sample app publisher

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* restore epoll related

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix next_call_time update

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* update docs and add scripts/run_no_rclcpp_talker

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* Update src/agnocastlib/include/agnocast/agnocast_epoll.hpp

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update src/agnocastlib/src/agnocast_timer_info.cpp

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix copilot review

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* delete static_assert

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* restore static_assert

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* Update src/agnocastlib/src/agnocast_timer_info.cpp

Co-authored-by: atsushi yano <55824710+atsushi421@users.noreply.github.com>

* fix to align with rclcpp for period==0

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* add error message and delete unnecessary declaration

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* lockless data structure and timercallbackinfo aligned with rclcpp

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* add TODO comment

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* workaround for timer period zero

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* delete TimercallbackInfo

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix compilation error

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

* fix clang-tidy

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

---------

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>
Signed-off-by: Koichi <koichi.imai.2@tier4.jp>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: atsushi yano <55824710+atsushi421@users.noreply.github.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* docs: add callback isolated executor documentation for Agnocast (#960)

* docs: add callback isolated executor documentation for Agnocast

Add documentation explaining the Agnocast version of Callback Isolated
Executor, including differences from the original and multiple ROS
domain support feature.

* Update docs/callback_isolated_executor_for_agnocast.md

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(cie_thread_configurator): add spawn_non_ros2_thread for non-ROS thread scheduling management (#959)

* feat(cie_thread_configurator): add spawn_non_ros2_thread for non-ROS thread scheduling management

Add functionality to manage scheduling policies for non-ROS2 threads through
cie_thread_configurator. This enables users to configure CPU affinity and
scheduling policies for threads that are not part of the ROS2 callback system.

Changes:
- Add NonRosThreadInfo.msg for publishing thread information
- Add spawn_non_ros2_thread template function that publishes thread info
  before executing the user's function
- Update PrerunNode to collect non-ROS thread names and output them in
  template.yaml
- Update ThreadConfiguratorNode to apply scheduling configurations to
  non-ROS threads
- Add integration test for spawn_non_ros2_thread functionality
- Rename topic_callback to callback_group_callback for clarity
- Rename CallbackGroupConfig to ThreadConfig for unified handling

* Update src/cie_thread_configurator/include/cie_thread_configurator/cie_thread_configurator.hpp

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix

* clang-format

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* fix(agnocast_e2e_test): verification logic (#957)

* fix: test logic

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: copilot

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: verification logic

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: get_next_timeout_ms

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: pubish period

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: remove white space

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: remove log

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: ros sub num

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: add note

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: equal

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: use class

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

---------

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* fix(cie_thread_configurator): wait for subscriber before publishing thread info (#967)

* fix(cie_thread_configurator): wait for subscriber before publishing thread info

- Add subscriber discovery wait loop in spawn_non_ros2_thread with 1 second
  timeout to prevent message loss when publishing NonRosThreadInfo
- Add warning when no subscriber is connected for CallbackGroupInfo to guide
  users to start thread_configurator_node
- Fixes flaky test_thread_configurator_receives_non_ros_thread_info test
  caused by DDS discovery race condition

* refactor: remove code duplication in spawn_non_ros2_thread timeout handling

Address review comment by refactoring the timeout logic to have a single
execution path for context shutdown and user function execution.

* fix: add guidance to start thread_configurator_node in NonRosThreadInfo warning

Signed-off-by: bdm-k <kokusyunn@gmail.com>

* fix(agnocastlib): race condition in BridgeManager (#965)

* refactor: get qos timing

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* fix: rece condition

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: if

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

---------

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>
Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* fix(agnocastlib): fix create_wall_timer api to align with rclcpp (#950)

* fix create_wall_timer api

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix clang-tidy

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>

---------

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>
Signed-off-by: Koichi <koichi.imai.2@tier4.jp>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* refactor(agnocastlib)[needs minor version update]: add debug mode for bridge (#963)

* refactor: add debug mode for bridge

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: remove comment

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: is_bridge logic

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: copilot

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: copilot

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

---------

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>
Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* doc(ros2agnocast): add explain for debug mode (#972)

* docs: add explain for debug mode

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* docs: add explain for debug mode

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

---------

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* refactor(agnocastlib): consolidate bridge functions (#971)

* refactor: move manager_pid

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: move suffix

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: move bridge_mode

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: remove debug log

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: remove unused variable

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: variable name

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* fix: clang-tidy

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

---------

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>
Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* refactor(agnocastlib): rename standard bridge (#976)

* refactor: rename standard

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: rename standard

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

---------

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* fix(cie_thread_configurator): ensure NonRosThreadInfo message delivery before shutdown (#979)

* fix(cie_thread_configurator): ensure NonRosThreadInfo message delivery before shutdown

Use reliable QoS and wait_for_all_acked() to ensure the message is
delivered to subscribers before shutting down the context, fixing
flaky test failures in CI environments.

* fix

Signed-off-by: bdm-k <kokusyunn@gmail.com>

* fix(agnocastlib): reduce mutex scop of id2_timer_info_mtx (#974)

reduce mutex scop of id2_timer_info_mtx

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* refactor(agnocastlib): bridge folder structure (#980)

refactor: folder structure

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* refactor(agnocastlib)[need-minor-update]: reduce lock scope of global mutex in kmod (#985)

* reduce lock scope of global mutex

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* Update agnocast_kmod/agnocast_main.c

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* docs: bridge docs (#977)

* docs: add bridge explain for readme

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* docs: add bridge explain for mq

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* comment: add bridge md

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* comment: add bridge md

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* comment: add bridge md

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: add link

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: explain

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: fig

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* Update docs/agnocast_ros2_bridge.md

---------

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>
Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(agnocastlib): add update_ros2_subscriber_num to performance manager (#984)

* feat: update ros2

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: move update_fn

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: move update fn

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

---------

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>
Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* fix(github): CODEOWNERS (#988)

fix CODEOWNERS

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* fix(cie_thread_configurator): remove unnecessary sleep after publishing callback group info (#989)

Signed-off-by: bdm-k <kokusyunn@gmail.com>

* fix(agnocastlib): return actual_qos to use in TRACE_POINT (#973)

* return actual_qos to use in TRACE_POINT

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

---------

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>
Co-authored-by: Yutaro Kobayashi <129580202+kobayu858@users.noreply.github.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(agnocastlib): add agnocast::Node support for PollingSubscriber   (#926)

* fix create_wall_timer api

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* feat polling subscription for agnocast::Node

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* add sample_app

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix sample app

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* add qos_overriding_options handling in constructor_impl

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* fix

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* Update src/agnocastlib/include/agnocast/agnocast_subscription.hpp

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Yutaro Kobayashi <129580202+kobayu858@users.noreply.github.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* refactor(agnocastlib): rename BUILD_BRIDGE environment variable (#991)

rename BUILD_BRIDGE enviroment variable

Signed-off-by: Koichi <koichi.imai.2@tier4.jp>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* refactor(agnocastlib): add initializer to qos_overriding_options (#954)

Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(agnocastlib): signal handler for agnocast::Node (#964)

* add signal_handler

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* delete unnecessary comments

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

* Apply suggestion from @atsushi421

Co-authored-by: atsushi yano <55824710+atsushi421@users.noreply.github.com>

* Update src/agnocastlib/src/node/agnocast_only_multi_threaded_executor.cpp

Co-authored-by: atsushi yano <55824710+atsushi421@users.noreply.github.com>

* fix

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>

---------

Signed-off-by: Koichi Imai <koichi.imai.2@tier4.jp>
Co-authored-by: atsushi yano <55824710+atsushi421@users.noreply.github.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(agnocastlib): support ipc_shared_ptr<const T> callback in create_subscription (#993)

* feat(agnocastlib): support ipc_shared_ptr<const T> callback in create_subscription

Add converting constructors and assignment operators to ipc_shared_ptr
to enable implicit conversion from ipc_shared_ptr<T> to ipc_shared_ptr<const T>,
similar to std::shared_ptr semantics.

This allows create_subscription to accept callbacks that take
ipc_shared_ptr<const MessageT> as argument while maintaining backward
compatibility with existing callbacks.

* feat(agnocastlib): support ipc_shared_ptr<const T> callback in create_subscription

Add converting constructors and assignment operators to ipc_shared_ptr
to enable implicit conversion from ipc_shared_ptr<T> to ipc_shared_ptr<const T>,
similar to std::shared_ptr semantics.

This allows create_subscription to accept callbacks that take
ipc_shared_ptr<const MessageT> as argument while maintaining backward
compatibility with existing callbacks.

Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(agnocast_e2e_test): add r2a bridge test (#970)

* feat: R2A test

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* remove: result log

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: check incompatible QoS

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: add comment

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: copilot

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: unity

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: remove log file

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* fix: e2e_2to2

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: revert comment

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

---------

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>
Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* fix(agnocastlib): clean up callback info on subscription destruction (#994)

* fix(agnocastlib): clean up callback info on subscription destruction

When a BasicSubscription was destroyed, its entry in id2_callback_info
was never removed. This caused epoll_ctl(EPOLL_CTL_ADD) to fail with
EEXIST when re-subscribing, because the OS reuses the same fd number
after mq_close() and the stale entry prevented proper re-registration.

* fix

* Update src/agnocastlib/include/agnocast/agnocast_subscription.hpp

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(agnocastlib): add message_filters base components (MessageEvent, SimpleFilter) (#996)

* feat(agnocastlib): add message_filters base components (MessageEvent, SimpleFilter)

Add foundational message_filters components adapted from ROS 2 message_filters
for agnocast's const-only shared memory IPC model (ipc_shared_ptr<const M>):

- MessageEvent: wraps ipc_shared_ptr<M const> with receipt-time metadata
- ParameterAdapter: converts MessageEvent to user callback parameter types
- Signal1: thread-safe single-message signal dispatcher
- SimpleFilter: base class for single-output filters

Includes unit tests with ioctl mock.

* Update src/agnocastlib/test/unit/message_filters/ioctl_mock_for_mf.cpp

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update src/agnocastlib/include/agnocast/message_filters/simple_filter.hpp

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update src/agnocastlib/test/unit/message_filters/test_simple.cpp

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix(agnocastlib): remove unused MsgPtr alias in test_simple.cpp

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(agnocast_ioctl_wrapper, ros2agnocast): mode print feature topic list (#992)

* feat: move print feature

Signed-off-by: TetsuKawa <kawaguchitnon@icloud.com>

* fix: avoid unnecessary copy

Signed-off-by: TetsuKawa <kawaguchitnon@icloud.com>

* feat: remove service topic

Signed-off-by: TetsuKawa <kawaguchitnon@icloud.com>

* fix: for index type

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix: return zero value

* fix: null check agnocast_topic_buffer

---------

Signed-off-by: TetsuKawa <kawaguchitnon@icloud.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(agnocastlib): add Synchronizer and ExactTime sync policy (#997)

* feat(agnocastlib): add message_filters base components (MessageEvent, SimpleFilter)

Add foundational message_filters components adapted from ROS 2 message_filters
for agnocast's const-only shared memory IPC model (ipc_shared_ptr<const M>):

- MessageEvent: wraps ipc_shared_ptr<M const> with receipt-time metadata
- ParameterAdapter: converts MessageEvent to user callback parameter types
- Signal1: thread-safe single-message signal dispatcher
- SimpleFilter: base class for single-output filters

Includes unit tests with ioctl mock.

* Update src/agnocastlib/test/unit/message_filters/ioctl_mock_for_mf.cpp

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update src/agnocastlib/include/agnocast/message_filters/simple_filter.hpp

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update src/agnocastlib/test/unit/message_filters/test_simple.cpp

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix(agnocastlib): remove unused MsgPtr alias in test_simple.cpp

* feat(agnocastlib): add Synchronizer and ExactTime sync policy

Add multi-message synchronization components:

- Signal9: thread-safe 9-message signal dispatcher
- Synchronizer: policy-based multi-message synchronizer (2-9 inputs)
- PolicyBase: common type aliases for sync policies
- ExactTime: groups messages by exact timestamp match

Includes unit tests for ExactTime (timestamp matching, queue size, drop
callback) and Synchronizer (compile tests for 2-9 inputs, callback
signatures, add routing).

* Update src/agnocastlib/test/unit/message_filters/test_exact_time.cpp

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update src/agnocastlib/test/unit/message_filters/test_synchronizer.cpp

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update src/agnocastlib/include/agnocast/message_filters/signal9.hpp

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(agnocastlib): add message_filters Subscriber and integration tests (#998)

* feat(agnocastlib): add message_filters Subscriber and integration tests

Add Subscriber filter connecting agnocast subscriptions to the
message_filters chain, and integration tests requiring kernel module:

- Subscriber: wraps agnocast::create_subscription() and signals received
  messages as MessageEvent<M const> through SimpleFilter
- Integration tests: full Publisher -> Subscriber pipeline, 9-channel
  ExactTime synchronization, partial arrival, timestamp mismatch/match

* fix

Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(agnocast_ioctl_wrapper, ros2agnocast): enhance topic list agnocast command (#1002)

* feat: update topic list display

Signed-off-by: TetsuKawa <kawaguchitnon@icloud.com>

* fix: bridge display condition

Signed-off-by: TetsuKawa <kawaguchitnon@icloud.com>

* feat: move feature that remove srv topic

Signed-off-by: TetsuKawa <kawaguchitnon@icloud.com>

* fix: rm debug msg

Signed-off-by: TetsuKawa <kawaguchitnon@icloud.com>

* fix: typo

Signed-off-by: TetsuKawa <kawaguchitnon@icloud.com>

* feat: rename bridge status

Signed-off-by: TetsuKawa <kawaguchitnon@icloud.com>

* fix: update suffix on starange situations

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Signed-off-by: TetsuKawa <kawaguchitnon@icloud.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat(agnocast_ioctl_wrapper, ros2agnocast): add node list agnocast command (#1003)

* feat: add node list command

Signed-off-by: TetsuKawa <kawaguchitnon@icloud.com>

* fix: comment

Signed-off-by: TetsuKawa <kawaguchitnon@icloud.com>

* fix: variant name

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* feat: remove unnecesarry comment

Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com>

* fix: remove warning of duplication

Signed-off-by: TetsuKawa <kawaguchitnon@icloud.com>

* feat: debug option

Signed-off-by: TetsuKawa <kawaguchitnon@icloud.com>

---------

Signed-off-by: TetsuKawa <kawaguchitnon@icloud.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Koichi Imai <45482193+Koichi98@users.noreply.github.com>
Signed-off-by: bdm-k <kokusyunn@gmail.com>

* feat[needs minor version update]: redesign ipc_shared_ptr (#966)

* redesign ipc_shared_ptr in publisher process

Signed-off-by: sykwer <sykwer@gmail.com>

* fix unit tests for publisher process side

Signed-off-by: sykwer <sykwer@gmail.com>

* redesign ipc_shared_ptr in subscriber process

Signed-off-by: sykwer <sykwer@gm…
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

need-patch-update Bug fixes and other changes - requires PATCH version update run-build-test Run build-test in CI

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants