CHANGELOG
Changelog for package agnocastlib
2.3.3 (2026-04-02)
2.3.2 (2026-03-24)
feat: exposed API reference (#1195)
refactor(bridge): use CallbackIsolatedAgnocastExecutor for bridge callback scheduling (#1170)
feat(agnocastlib): include message_filters headers in agnocast.hpp without circular dependency (#1189)
fix: correct internal dependency declarations in package.xml (#1188)
2.3.1 (2026-03-17)
2.3.0 (2026-03-09)
fix(agnocastlib): fix tracepoint bugs introduced in PR #1093 (#1161)
fix(bridge): create bridge with checking ros2 pub/sub (#1164)
fix [need-minor-update]: unlink subscription MQs on abnormal process exit (#1155)
refactor(agnocastlib): use node_base address as node handle in tracepoints (#1156)
fix(agnocastlib): fix flaky executor no-starvation tests with polling and increased buffer (#1160)
feat(kmod): bump capacity constants and default mempool size (#1151)
fix(bridge)[need-minor-update]: fix bridge shutdown contention (#1149)
fix(agnocastlib): fix CIE deadlock on join by releasing mutex before thread join (#1147)
fix(agnocastlib): unlink message queue in IpcEventLoopBase cleanup (#1150)
fix(agnocastlib): use wait_for in CIE spin loop for signal handling (#1148)
Revert “fix(bridge)[need-minor-update]: fix bridge shutdown contention” (#1146)
fix(agnocastlib): conditionally redirect daemon output to /dev/null (#1142)
fix(bridge)[need-minor-update]: fix bridge shutdown contention (#1140)
refactor(agnocastlib): move setsid call into spawn_daemon_process (#1141)
feat(agnocastlib): align with rclcpp for Timer api. (#1127)
feat(agnocastlib): add count_publishers/subscribers API (#1103)
fix(bridge): load bridge_node without checking ros2 (#1132)
fix(components): move tests for component container in agnocast_components (#1126)
fix(agnocastlib): fix race condition in cancel_executor (#1134)
fix(agnocastlib): make cancel() virtual to fix hidden override in CIE (#1135)
fix(agnocastlib): remove rclcpp::ok() dependency from AgnocastOnlyCallbackIsolatedExecutor (#1137)
fix: prevent signed integer overflow in ms-to-ns conversion (#1136)
feat[need-minor-update]: implement get_publisher_count API (#1102)
feat(agnocastlib): feat tracepoints agnocast node (#1093)
refactor(kmod)[need-minor-update]: to use tgid inside kmod for bridge related ioctl commands (#1114)
fix(kmod)[need-minor-update]: add topic_name_buffer_size field for get_agnocast_pub/sub_topics (#1113)
fix(agnocastlib): set shutdown_requested_ on executor thread crash (#1117)
fix(agnocastlib): add overflow guard to callback info ID (#1123)
fix(agnocastlib): close shm_fd and unlink shm on failure paths in map_area (#1116)
fix(executors): replace trigger_entity_recollect with targeted interr… (#1119)
fix(agnocastlib): fix TOCTOU race in need_epoll_updates flag clearing (#1122)
fix(agnocastlib): prevent unsigned integer underflow in thread count computation (#1115)
feat(AgnocastOnlyCallbackIsolatedExecutor): support callback group created after spin() (#1100)
fix(test): fixes for test_and_create_report (#1105)
feat(agnocastlib): Support ROS_TIME for create_timer (#990)
feat(CallbackIsolatedAgnocastExecutor): support callback group created after spin() (#1098)
feat(agnocast_component_container_cie): support callback group created after spin() (#1095)
fix(agnocastlib): use dedicated executor thread for clock (#1054)
docs: update GitHub links from tier4 to autowarefoundation (#1097)
refactor(agnocastlib): read timerfd immediately after epoll event (#1096)
refactor(agnocastlib): use ament_target_dependencies for rclcpp instead of manual linking (#1091)
fix(agnocastlib): use Wself-move only when using clang (#1088)
fix(agnocastlib): prevent duplicate node name by setting use_global_arguments(false) (#1082)
2.2.0 (2026-02-19)
Fix/resend mq message and test fix (#1078)
fix(agnocastlib): prevent bridge counting (#1076)
fix(bridge): unify r2a and a2r plugin into one to improve build time (#1064)
feat(components): move component container to agnocast_components package (#1074)
fix: change package names from cie_* to agnocast_cie* (#1071)
fix: delete deprecated agnocast mempool size (#1068)
feat(kmod)[need-minor-update]: increase MAX_PUBLISHER_NUM (#1060)
fix(agnocastlib): remove dummy comment (#1067)
fix(ci): add –skip-keys glog to rosdep install (#1066)
fix(agnocastlib): use workspace glog package to avoid version conflict (#1065)
refactor(agnocastlib): use debug level when mq_open failed in publisher (#1062)
fix(agnocastlib): use shared CIE client publisher in ComponentManagerCallbackIsolated (#1059)
refactor(agnocastlib): add warning for service not officially supported yet (#1055)
feat(agnocastlib): add notify_guard_condition for component container loading (#878)
fix(agnocastlib): prevent infinite process generation caused by caret (#1035)
feat(agnocastlib): get gid API for publisher (#1022)
fix(agnocastlib): use transient_local QoS for CIE callback group info (#1049)
feat(kmod): Increase MAX_SUBSCRIBER_NUM by using bitmap (#1015)
fix(agnocastlib): receive message entry when executing callback (#1011)
feat(agnocastlib): add AgnocastOnlyCallbackIsolatedExecutor (#1031)
fix(agnocastlib): avoid use_after_free bug for allow_same_message=true (#1045)
fix(cie_thread_configurator): improve CIE publisher reliability and logging (#1043)
feat: migrate cie_client_utils from cie_thread_configurator to agnocastlib (#1040)
feat(agnocastlib): add callback group and node management to AgnocastOnlyExecutor (#1034)
fix(agnocastlib): additional information for mq related operations failed (#1033)
feat(agnocastlib): add PassThrough message filter (#1028)
feat(agnocastlib, agnocast_components): add glog initialization to component containers and node templates (#1026)
feat(sample_app): implement service/client for agnocast::Node (#1012)
fix(agnocastlib): context semantics to align with rclcpp (#1020)
test(agnocastlib): add integration test for message_filters Subscriber with agnocast::Node (#1014)
feat(agnocastlib): update Client and Server to support agnocast::Node (#953)
feat(agnocastlib): template definition for create_pub/sub in agnocast.hpp (#1016)
feat(agnocastlib): add ApproximateTime sync policy for message_filters (#1013)
feat(agnocastlib): add generic_timer (#978)
feat: redesign plugin generation process of performance bridge (#1006)
feat[needs minor version update]: redesign ipc_shared_ptr (#966)
feat(agnocastlib): add message_filters Subscriber and integration tests (#998)
feat(agnocastlib): add Synchronizer and ExactTime sync policy (#997)
feat(agnocastlib): add message_filters base components (MessageEvent, SimpleFilter) (#996)
fix(agnocastlib): clean up callback info on subscription destruction (#994)
feat(agnocastlib): support ipc_shared_ptr<const T> callback in create_subscription (#993)
feat(agnocastlib): signal handler for agnocast::Node (#964)
refactor(agnocastlib): add initializer to qos_overriding_options (#954)
refactor(agnocastlib): rename BUILD_BRIDGE environment variable (#991)
feat(agnocastlib): add agnocast::Node support for PollingSubscriber (#926)
fix(agnocastlib): return actual_qos to use in TRACE_POINT (#973)
feat(agnocastlib): add update_ros2_subscriber_num to performance manager (#984)
refactor(agnocastlib): bridge folder structure (#980)
fix(agnocastlib): reduce mutex scop of id2_timer_info_mtx (#974)
refactor(agnocastlib): rename standard bridge (#976)
refactor(agnocastlib): consolidate bridge functions (#971)
refactor(agnocastlib)[needs minor version update]: add debug mode for bridge (#963)
fix(agnocastlib): fix create_wall_timer api to align with rclcpp (#950)
fix(agnocastlib): race condition in BridgeManager (#965)
feat(cie_thread_configurator): add spawn_non_ros2_thread for non-ROS thread scheduling management (#959)
feat(agnocastlib): add agnocast timer implementation (#942)
feat: support jazzy (#961)
fix(agnocastlib): declare parameter return type (#958)
refactor(agnocastlib): mq size (#952)
feat(agnocastlib)[need-minor-update]: add get_intra_subscription_count api (#934)
feat(agnocastlib): add NodeLoggingInterface implementation (#945)
fix(agnocastlib): add error handling for non supported qos (#948)
refactor(agnocastlib): separate epoll and callback_info (#941)
feat(agnocastlib): add NodeServices (#944)
fix(agnocastlib): self-executable detection logic (#940)
feat[needs minor version update]: remove QoS depth limit (#937)
refactor(agnocastlib): simplify signal handling logic (#939)
refactor(agnocastlib): remove config (#938)
fix(agnocastlib): skip callback groups not automatically added to executor (#931)
feat(agnocastlib): check demand and create bridge (#928)
feat(kmod): add is_bridge in info (#930)
add get_topic_name interface (#929)
fix(agnocastlib): fix build dependencies (#932)
feat(agnocastlib): add type aliases to agnocast::Node (#927)
feat(agnocastlib): simple NodeTimeSource implementation (#924)
feat(agnocastlib): check ros2 demand (#925)
fix(agnocastlib): dynamic entity discovery (#923)
feat(agnocastlib): get subscription count including ros2 subscriber (#919)
feat(agnocastlib): add NodeClock (#912)
fix(kmod)[needs major version update]: get_publisher/subscriber_num to return whether bridge exist (#922)
refactor(agnocastlib): remove reload (#921)
feat(kmod): add set_ros2_subscriber_num ioctl command (#920)
feat(agncastlib): add declare_parameter overload definitions (#913)
feat(agnocastlib): auto remove bridge (#918)
test: integration test for agnocast_component_container_cie (#916)
test(agnocastlib): add integration test for CallbackIsolatedAgnocastExecutor (#915)
feat(agnocastlib): implement cancel() for CallbackIsolatedAgnocastExecutor (#914)
feat(agnocastlib): performance loader (#911)
feat(agnocastlib): add list_parameters impl (#910)
feat(agnocastlib): use qos parameter overrides (#905)
feat(agnocastlib): add get_parameter_types impl (#909)
feat(agnocastlib): generate_plugin (#904)
feat(agnocastlib): send performance request (#906)
docs(agnocastlib): add clarification comments to Executor API (#908)
feat(agnocastlib): add describe_parameters impl (#907)
move PublisherOptions error message constructor_impl (#903)
feat(kmod)[needs minor version update]: get process num (#902)
feat(agnocastlib): performance eventloop (#901)
feat(agnocastlib): application bridge mode for request_policy (#900)
refator(agnocastlib): revert pub options (#899)
feat(agnocastlib): skeleton of performance bridge (#898)
feat(agnocastlib): add parameter recursive mutation guard (#894)
refactor(agnocastlib): unify mq naming and refactor unlink mq (#893)
feat(agnocastlib): add get_parameters overload (#896)
feat(agnocastlib): add get_parameters_by_prefix implementation (#895)
feat(agnocastlib): run parameter callback when declare (#892)
feat(agnocastlib): add set_parameters_callback impl (#890)
feat(agnocastlib):add set_parameter implementation and sample app (#889)
feat(agnocastlib): add set_parameters_atomically implementation (#886)
feat(agnocastlib): add implmentation for resolve_topic_or_service_name (#879)
fix(test): fix test failures in cie and heaphook test (#887)
feat(agnocastlib): Add type checking helper functions for set_parameter (#884)
fix(agnocastlib): align with rclcpp::Node for callback_group related API (#881)
feat(agnocastlib): support agnocast::Node publisher (#873)
refactor(agnocastlib): add sub directory for bridge and agnocast::Node functionality (#876)
fix(agnocastlib): delete resolve_topic_name from agnocast::Node (#875)
refactor(agnocastlib): delete create_publisher/subscription overload by using default value (#874)
feat(agnocastlib): enable bridge function (#872)
fix(agnocastlib): apply resolve_topic_name (#871)
refactor(agnocastlib): remove comment (#870)
feat(agnocastlib): add check_managed_bridges (#860)
refactor(agnocastlib): restore resolve_topic_name impl (#868)
refactor(agnocastlib): restore ParsedArguments::parse impl (#867)
refactor(agnocastlib): restore nodename/namespace remapping (#866)
refactor(agnocastlib): use rcl_parse_arguments (#865)
feat(agnocastlib): add undeclare_parameter implementation (#847)
feat(agnocastlib): remap nodename/nodespace from NodeOptions (#863)
feat(agnocastlib): declare/has/get_parameter functions support for agnocast::Node (#853)
feat(agnocastlib): add resolve_parameter_overrides implementation (#861)
feat(agnocastlib): add remap_name implementation (#845)
feat(agnocastlib): add param file parsing (#856)
fix(agnocastlib): align async_send_request return type with ROS 2 (#797)
fix(agnocastlib): revert memory mapping (#859)
feat(agnocastlib): add handle_delegate_request (#857)
feat(heaphook)[need-minor-update] :add init_child_allocator (#798)
feat(agnocastlib): try send delegation (#851)
refactor(agnocastlib): use local logger (#855)
refactor(agnocastlib): add peer fd to epoll (#854)
feat(agnocastlib): add get_parameter implementation (#848)
feat(agnocastlib): add remove cmd in pub destructor (#850)
refactor(agnocastlib): create parent mq for bridge (#842)
feat(agnocastlib): add declare_parameter implementation (#846)
feat(agnocastlib): define has_parameter and get_parameter_overrides (#849)
feat(kmod)[needs minor version update]: remove publisher cmd (#844)
feat(agnocast): add SubscriptionBase destructor (#843)
feat(agnocastlib): terminate the process for failed bridge creation (#841)
feat(agnocastlib): add resolve_parameter_overrides (#839)
feat(kmod)[needs minor version update]: remove subscriber cmd (#838)
feat(agnocastlib): define get_agnocast_publisher/subscriber_count (#840)
feat(agnocastlib): add remove active bridge function (#832)
feat(agnocastlib): add comments and warning output for get_use_intra_process_default (#833)
refactor(agnocastlib): define parse_arguments (#828)
feat(kmod)[needs minor version update]: get publisher num cmd (#831)
feat(agnocastlib): implement offset-based bridge factory loading (#829)
feat(agnocastlib): add check active bridges (#821)
feat(agnocastlib): resolve factory function (#822)
feat(agnocastlib): add mq_child and handler (#820)
refactor(agnocastlib): agnocast Node constructor (#826)
feat(kmod)[needs minor version update]: remove bridge ioctl (#824)
feat(agnocastlib): add NodeParametersInterface (#825)
feat(agnocastlib): add skeleton create (#788)
feat(agnocastlib): add setup signal (#815)
feat(agnocastlib): add expand_topic_name of NodeTopicsInterface (#803)
feat(kmod)[needs minor version update]: add bridge ioctl (#812)
refactor(agnocastlib): remove unused parameter (#814)
feat(agnocastlib): add close_parent_mq (#813)
feat(agnocastlib): support handling parent IPC requests in BridgeManager (#810)
feat(agnocastlib): add send_bridge_request (#811)
feat(agnocastlib): add get_subscriber/publisher_qos (#809)
feat(agnocastlib): setup parent_mq (#789)
feat(kmod) [needs minor version update]: add get publisher qos ioctl (#807)
feat(agnocastlib): implement safe epoll event loop with timeout (#805)
test(agnocastlib): add unit tests for parse_param_rule (#782)
add comments for todo and impl for enable_topic_statistics_default (#800)
feat(kmod) [needs minor version update]: add get subscription qos ioctl (#804)
feat(agnocastlib): implement skeleton of BridgeManager main loop and lifecycle checks (#802)
feat(agnocastlib): implement factory functions for bridge node instantiation (#801)
feat(agnocastlib): add start_ros_execution (#799)
feat(agnocastlib): add AgnocastToRosBridge class (#794)
feat(agnocastlib): add node_name/namespace remapping (#777)
feat(agnocastlib): apply BridgeRequestPolicy to Take/PollingSubscription (#795)
feat(agnocastlib): introduce bridge_manager (#790)
feat(agnocastlib): introduce NodeTopicsInterface (#780)
feat(agnocastlib): add CallbackGroup related NodeBaseInterface function implementations (#779)
feat(agnocastlib): setup structural for BridgeManager (#793)
feat(agnocastlib): add RosToAgnocastBridge class (#787)
feat(agnocastlib): add node base interface (#773)
feat(agnocastlib): introduce bridge_loader (#784)
feat(agnocastlib): introduce bridge_ipc_event_loop (#785)
feat(kmod)[needs minor version update]: add_ignore_local_publications_for_agnocast_sub (#783)
refactor(agnocastlib): splits the create_mq_name_for_bridge function (#776)
feat(kmod) [needs minor version update]: add reliability field to subscriber_info (#775)
feat(agnocastlib): add parse_remap_rule (#772)
feat(agnocastlib): add parse param rule (#771)
fix(agnocastlib): use rcl/arguments.h for argument parsing (#766)
perf: use rclcpp executor when there are no agnocast callback (#765)
feat: AgnocastOnlyMultiThreadedExecutor (#768)
refactor(agnocastlib): separate bridge request policies by direction (#769)
feat(agnocastlib): add ipc message definitions for bridge (#751)
perf: change default values of next_exec in MultiThreadedAgnocastExecutor (#767)
feat(agnocastlib): parse –ros-args following the rcl way (#763)
refactor(agnocastlib): move context to agnocast_context.cpp (#762)
feat(agnocastlib): add agnocast-only executor (#760)
feat(agnocastlib): agnocast::Node create_subscription (#758)
fix(agnocastlib): prevent circular include dependency (#757)
feat(agnocastlib): add agnocast::Node (#756)
fix(agnocastlib): adopt policy-based design for pub/sub (#750)
fix(agnocastlib): generalize subscription constructor (#753)
feat(agnocastlib): add create_mq_name_for_bridge (#752)
fix(agnocastlib): generalize get_valid_callback_group as template function (#748)
fix(agnocastlib): extract wait_and_handle_epoll_event as independent … (#747)
feat(agnocastlib): add agnocast::init as public API (#745)
fix(cie_thread_configurator): add agnocast callback info to callback_group_id (#749)
fix(agnocastlib): extract prepare_epoll as independent function (#746)
feat(agnocastlib): add bridge mode (#741)
fix(agnocastlib): extract receive_message as independent function (#738)
fix(kmod) [needs minor version update]: Remove AGNOCAST_MEMPOOL_SIZE (#719)
fix(smart_pointer): not calling decrement_rc when entry_id is -1 (#702)
fix(agnocastlib): error output when opening agnocast driver failed (#732)
fix(agnocastlib): consistent locking semantics (#729)
style: rename ciid (#730)
fix(agnocastlib): elaborating a comment (#727)
feat:: port component_container for callback_isolated_executor (#721)
feat: add next_exec_timeout_ms_ param into CallbackIsolatedAgnocastExecutor (#723)
feat: port thread configurator from callback_isolated_executor repo (#720)
refactor: remove TID logging (#717)
fix(ros2agnocast): account for topic names used by Agnocast services (#712)
feat(agnocastlib): implement client (#707)
fix(agnocastlib): close opened mqs in destructor (#706)
refactor(agnocastlib): use sequence number instead of entry ID to identify requests (#708)
feat(agnocastlib): implement service (#696)
fix: arguments of TRACEPOINT for CARET (#698)
fix(agnocastlib): fix cie to use linux tid (#682)
2.1.2 (2025-08-18)
fix: remove unnecessary TRACETOOLS_LTTNG_ENABLED (#678)
test(integration): Add integration test investigate malloc region differences after fork (#675)
feat(agnocastlib): template the callback type for greater flexibility (#665)
build: set C++ standard explicitly to support Clang builds (#677)
test(integration): Add integration test for malloc allocator switching based on publisher_num (#661)
feat(agnocastlib): impl get_all_callback_groups method in cie (#674)
feat(agnocastlib): cie spin (#669)
feat(agnocastlib): add/remove node in cie (#668)
feat(agnocastlib): add/remove callback group in cie (#667)
feat(agnocastlib): add cie skelton (#666)
fix(agnocastlib): stop possessing shared pointer to nodes in agnocast executor (#664)
feat(agnocastlib) change epoll updates behavior for cie (#663)
feat(agnocastlib): single threaded executor for cie (#660)
fix(agnocastlib): use override keyword (#662)
feat: tracepoint definition for CARET (#659)
refactor(agnocastlib): lower the log level when mq_open fails (#650)
style: add a trailing underscore to the data member of Subscriber (#645)
2.1.1 (2025-05-13)
fix(agnocastlib): forbit the reader processes from resizing shmem (#632)
fix: add validation for add_node() (#638)
fix: lock for atomically obtain shmem info via ioctl and do mmap (#639)
Change to use topic_local_id_t as the key for opened_mqs (#634)
fix(agnocastlib): add error handling for map_writable_area (#622)
2.1.0 (2025-04-15)
fix(agnocastlib): add O_EXCL for shm_open flag (#595)
refactor(kmod): reorder ioctl command (#615)
refactor(kmod): change command name to add_publisher/subscriber (#614)
refactor(kmod): change command name from new_shm to add_process (#613)
fix: do shm_unlink with daemon process for each ipc_ns (#602)
fix(agnocastlib): close agnocast fd when exit (#610)
fix(Publisher): workaround for only calling borrow_loaned_message() (#605)
feat(TakeSubscription): add take_data (#598)
2.0.1 (2025-04-03)
2.0.0 (2025-04-02)
refactor(test): not to use gmock-global (#592)
feat(kmod): allow local pid namespace (#540)
fix(agnocastlib): tidy up error messages (#590)
Revert “fix(agnocastlib): unify the target name with the project name… (#587)
fix(agnocastlib): unify the target name with the project name (#585)
feat: add agnocast_construct_executor tracepoints (#586)
fix(agnocastlib): fix validate_ld_preload (#581)
fix: use AGNOCAST prefix for MEMPOOL_SIZE (#580)
refactor(kmod): unified magic number for ioctl (#569)
fix(test): suppress warning for unused variable (#571)
feat: check version consistency (#557)
test: infrastructure for agnocast-heaphook tests (#554)
fix(agnocastlib): update the take function type to match the original (#561)
fix: do shm_unlink in kernel module (#536)
feat: handle transient local callbacks in executor (#520)
fix: pass string length along with its pointer (#534)
refactor: rename symbols related to integration tests (#543)
test: add callback group validation into integration test (#542)
fix(component container): enable parameter passing (#538)
test: fix error & fail workflow when git diff is failed (#541)
fix(agnocastlib): close mqs that are no longer needed (#476)
1.0.2 (2025-03-14)
improve(MultiThreadedAgnocastExecutor): remove unnecessary check (#530)
fix(MultiThreadedAgnocastExecutor): restore starvation tests (#529)
improve: remove old comment (#527)
feat: add validation if agnocast cb and ros2 cb belong to same MutuallyExclusive cbg in MultiThreadedAgnocastExecutor (#515)
fix(kmod): skip transient_local procedures on take subscriber addition (#512)
fix(MultiThreadedAgnocastExecutor): add ready_agnocast_executables & safey lock (#505)
1.0.1 (2025-03-10)
1.0.0 (2024-03-03)
First release.