Lifecycle interface

Core lifecycle for modular robotics systems

Configure · Activate · Run · Transition · Shutdown

Sprint 13 - Parameters and runtime configuration

Objective. Add lifecycle-aware parameter management when a concrete use case requires it.

Deliverable. Parameters can be managed as lifecycle-aware component concerns without turning the library into a config system.

Decisions already made

  • Parameter support must remain lifecycle-aware.

  • This sprint does not introduce config-file parsing, schemas, or Pydantic

    models.

  • Parameter ownership and cleanup must follow the component lifecycle contract.

Possible component responsibilities:

  • declare parameters during configure

  • read initial values during configure

  • gate updates according to component lifecycle state

  • clean local tracking during cleanup

Update policy candidates:

  • read-only

  • update any time

  • active-only

  • inactive-only

To decide during sprint planning

  • Whether this is a component base class, helper mixin, or plain utility.

  • Exact validation-hook shape.

  • Parameter namespace convention.

  • Which update policies are needed for the first implementation.

Validation

  • [ ] Parameters are declared during configure.

  • [ ] Values can be retrieved through a documented API.

  • [ ] Validation blocks invalid updates.

  • [ ] Update policy is enforced across lifecycle states.

  • [ ] Cleanup clears component-owned parameter tracking.

Risks and mitigation

Risk: namespace collisions. Scope parameter names by component or document the exact naming contract.

Risk: config-system creep. Do not add schema models, spec loaders, or file parsing in this sprint.

Dependencies

  • Requires: stable component lifecycle semantics.

  • Requires: Sprint 8 concurrency rules for update callbacks.

  • Benefits from: Sprint 9 observability for rejected updates.

Scope boundaries

In scope:

  • lifecycle-aware parameter declaration and validation

  • update policy enforcement

  • focused examples and tests

Out of scope:

  • config file parsing

  • Pydantic specs

  • parameter persistence beyond ROS 2 native behavior

Success signal

  • [ ] Parameter behavior follows component lifecycle state.

  • [ ] The API does not become a general application configuration layer.