fix: count lifecycle more accurately #8816
Merged
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 PR fixes three things that were wrong with the lifecycle summary count query:
When counting the number of flags in each stage, it does not take into account whether a flag has moved out of that stage. So if you have a flag that's gone through initial -> pre-live -> live, it'll be counted for each one of those steps, not just the last one.
Some flags that have been archived don't have the corresponding archived state row in the db. This causes them to count towards their other recorded lifecycle stages, even when they shouldn't. This is related to the previous one, but slightly different. Cross-reference the features table's archived_at to make sure it hasn't been archived
The archived number should probably be all flags ever archived in the project, regardless of whether they were archived before or after feature lifecycles. So we should check the feature table's archived_at flag for the count there instead