4.2 KiB
4.2 KiB
ChangeLog
v0.7.5 - 2026-03-12
Enhancements:
- feat(service): add
get_event_registryandget_function_registryservice method inServiceBase
v0.7.4 - 2026-02-25
Enhancements:
- feat(service): add
has_scheduler()andget_scheduler_config()helper methods toServiceBase::Attributes - feat(service): improve resource access protection with mutex in
start_internal()andstop_internal() - feat(service): optimize task scheduler lifecycle management - distinguish between services with own scheduler and shared scheduler
Bug Fixes:
- fix(service): fix race condition in
call_function_async()by adding mutex protection to prevent concurrent execution withon_stop() - fix(service): improve error handling in
call_function_sync()with better error messages and logging - fix(service): move
get_task_scheduler()from public to protected access inServiceBase - fix(service): remove
get_task_scheduler()fromServiceManagerpublic interface
v0.7.3 - 2026-02-02
Breaking Changes:
- break(event):
EventItemchanged fromstd::variantto a derived struct with implicit arithmetic-to-double conversion - break(function):
FunctionValuechanged fromstd::variantto a derived struct with implicit arithmetic-to-double conversion
Enhancements:
- feat(common): template-based
RawBufferconstructor with automatic const detection - feat(event): add
require_schedulerfield toEventSchema - feat(function): add
require_schedulerfield toFunctionSchema - feat(service): add
set_task_scheduler()method toServiceBase - feat(service): add
bindableattribute toServiceBase::Attributes - feat(service): skip event publish if no subscribers found
- feat(Kconfig): reduce default worker priority from
10to5 - feat(Kconfig): add range validation for worker core ID
- feat(Kconfig): change default worker name from
SrvMgrWorkertoSvcMgrWorker
Bug Fixes:
- fix(service): add exception handling for promise
set_value - fix(service): optimize sync call to avoid unnecessary async overhead
v0.7.2 - 2026-01-13
Enhancements:
- feat(event): support
RawBuffertype inEventItem - feat(common): optimize
RawBufferfor seamless conversion between const and non-const pointers - feat(Kconfig): increase default value of
BROOKESIA_SERVICE_MANAGER_WORKER_STACK_SIZEfrom10240to15360
v0.7.1 - 2025-12-24
Enhancements:
- feat(service_base): Add
use_dispatchparameter topublish_event()methods - feat(service_base): Change
register_functions()andregister_events()methods to be protected - feat(event&function): Support
RawBuffertype - feat(Kconfig): Set default value of
BROOKESIA_SERVICE_MANAGER_WORKER_STACK_IN_EXTton - feat(repo): update
brookesia_lib_utilsdependency to>=0.7.2,<0.8.0 - feat(docs): update README and Usage documentation
Bug Fixes
- fix(service_manager): Return invalid binding on dependency failure
- fix(service_base): Skip event notify if no subscriptions found
v0.7.0 - 2025-12-07
Initial Release
- feat(repo): Add service management framework for ESP-Brookesia ecosystem
- feat(lifecycle): Implement unified service lifecycle management (init, start, stop, deinit) through plugin mechanism
- feat(local_calls): Support thread-safe, non-blocking local function calls via
ServiceBasewith high performance - feat(remote_rpc): Support TCP-based client-server RPC communication for cross-device and cross-language scenarios
- feat(event_system): Implement event publish/subscribe mechanism for both local and remote event notifications
- feat(binding): Provide RAII-style
ServiceBindingfor automatic on-demand service state management (start/stop) - feat(plugin): Support plugin mechanism for complete decoupling between project code and service implementations
- feat(function_registry): Implement function registry with support for synchronous and asynchronous function calls
- feat(event_registry): Implement event registry with support for event subscription and dispatch
- feat(decoupling): Enable service usage by adding component dependency without modifying project code
- feat(thread_safety): Built-in thread-safe protection with async scheduling for local calls