Context
Sprint 9 adds structured logging for lifecycle transitions. During sprint planning, a bounded read-only transition history surface was identified as a potential future feature but deferred — logging alone covers the diagnostic need for Sprint 9.
Feature candidate
A bounded, read-only history of lifecycle transitions, accessible per component or per node.
Possible shape (to decide at sprint planning time):
component.transition_history -> tuple[TransitionRecord, ...]
- Each record: transition name, result, timestamp, optional duration
- Bounded size (e.g. last N transitions, to be decided)
Activation condition
Do not implement until a concrete consumer exists. Likely candidates:
- a watchdog that needs to correlate repeated transitions
- a test assertion that needs to verify exact transition sequences
- a diagnostics surface that needs structured history (not just logs)
Dependencies
- Requires Sprint 9 structured logging (foundation)
- Relates to Sprint 10
HealthStatus API — transition history may be exposed through health or as a sibling surface
Non-goals
- This is not a replacement for structured logs (Sprint 9 covers that)
- No write access to history
- No distributed history across nodes
Context
Sprint 9 adds structured logging for lifecycle transitions. During sprint planning, a bounded read-only transition history surface was identified as a potential future feature but deferred — logging alone covers the diagnostic need for Sprint 9.
Feature candidate
A bounded, read-only history of lifecycle transitions, accessible per component or per node.
Possible shape (to decide at sprint planning time):
component.transition_history -> tuple[TransitionRecord, ...]Activation condition
Do not implement until a concrete consumer exists. Likely candidates:
Dependencies
HealthStatusAPI — transition history may be exposed through health or as a sibling surfaceNon-goals