Keep track of published topics and expose them through an API
## Problem There is currently not an easy way to get an overview of all events that are sent over pub/sub in a Juice instance. This is important to know, for example for configuring the parameter monitor (which monitors events). ## Proposed solution We should keep track of all unique topics that are sent in the task manager, together with a last seen timestamp. We can then expose a task on the task manager that allows use to receive that list for manual inspection. ```python >>> result = client.execute("task_manager", GetEventTopicList()) { "{topic}": "{last_timestamp}", ... } ``` ### Acceptance Criteria #### Core Functionality - [ ] Task manager tracks **all unique pub/sub topics** that are published - [ ] Each topic is stored with its **last seen timestamp** - [ ] Topics are deduplicated (no duplicate entries) - [ ] Data needs to be retained for the lifetime of the `task-manager` process. --- #### API / Task Exposure - [ ] Task `GetEventTopicList` is implemented and callable via: ```python client.execute("task_manager", GetEventTopicList()) ```
issue