fix(state, server): consolidate duplicate status fields and fix server state response #91
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This pull request improves the accuracy and responsiveness of the server's internal state transitions and health reporting. The main focus is on ensuring the pipeline state automatically updates based on client and stream activity, and on cleaning up the health status payload for clarity and consistency.
State transition improvements:
The internal pipeline state now automatically transitions to
OKwhen there are active streams or an active client, and toIDLEwhen there is no activity, provided the system is not in an error state. This logic is applied in both theset_active_clientandupdate_active_streamsmethods for consistency. [1] [2]The test for state transitions in
test_state_integration.pyis updated to expect the state to auto-transition toOKwhen a stream starts, reflecting the new behavior.Health status reporting changes:
The health summary in
server.pynow consistently reports thestatusfield instead of the legacystatefield.The
get_pipeline_statemethod's returned dictionary is simplified: it now omits the redundantstate,pipeline_state, andadditional_infofields, and only includes thestatusand other essential pipeline indicators.Before:
GET
/stream/statusAfter:
GET
/stream/statusWhile streaming: