Description
Implement the Poison-Pill Register within the RolloutStateMachine. Wrap the user's onChange callback execution in an error boundary. If the application-level callback throws an error while attempting to reconcile state with the new configuration, the SDK must permanently cache that specific ETag in memory. The state machine must update its internal tracking pointer to this failed ETag so that the continuous polling loop resumes but never attempts to apply that specific faulty configuration version again.
Acceptance criteria
Blocked by: #125
User stories covered: 6
Description
Implement the Poison-Pill Register within the RolloutStateMachine. Wrap the user's onChange callback execution in an error boundary. If the application-level callback throws an error while attempting to reconcile state with the new configuration, the SDK must permanently cache that specific ETag in memory. The state machine must update its internal tracking pointer to this failed ETag so that the continuous polling loop resumes but never attempts to apply that specific faulty configuration version again.
Acceptance criteria
Throwing an error inside the provided onChange callback adds the incoming ETag to the internal Poison-Pill Register.
The SDK does not enter a rapid-fire crash-loop if onChange fails.
Subsequent polling intervals correctly ignore the quarantined ETag.
Blocked by: #125
User stories covered: 6