Stale Feature Notifications
Long-lived flags accumulate. RedPennon surfaces two independent advisory signals to help you find flags that are safe to remove. Neither ever deletes or disables anything — they only flag candidates for you to review.
The Filter by Staleness control on the feature list is available on all plans. The code-reference "absent from code" signal and the combined "safe to remove" advisory on the feature detail page require source-control integration, available on the Business and Enterprise plans.
The two signals
1. Absent from code (stale_in_code)
Derived from code references. A flag is stale in code when, across all connected repositories:
- at least one of its variables was referenced in an earlier snapshot, and
- none of its variables appear in the latest snapshot.
In other words, the flag used to be in your codebase and no longer is. This depends on your CI pushing code references.
2. Not evaluated recently (usage staleness)
Derived from runtime evaluation metrics — independent of code references. A flag is stale by usage when it has not been evaluated within the last 14 days (the default advisory window). A flag that has never been evaluated counts as stale.
This catches flags that still appear in code but are effectively dead at runtime — for example, behind a branch that's never taken.
"Safe to remove" advisory
When a flag is both absent from code and not evaluated recently, its detail page shows a Safe to remove advisory. This is the strongest signal: the flag is gone from your code and nothing is asking for it at runtime.
It remains advisory only — confirm before removing, especially for flags used on branches you haven't connected or evaluated from clients you don't track.
Finding stale flags
On the feature list, the Filter by Staleness dropdown narrows the list to in-progress features (Complete and Archived features are never flagged). It is available on every plan and reads its value from the ?staleness= query parameter:
- Not Stale — features that match none of the reasons below.
- Stale - Any Reason — features matching any reason below.
- Stale - Unused — no variable evaluations in the last 14 days (or never evaluated).
- Stale - Unmodified — not modified for more than 14 days (Release and Experiment features) or 30 days (Permission and Ops features).
- Stale - Released — a Release or Experiment feature that has been serving a single variation to 100% of users in a production environment, unchanged for 14 days or more.
Each flag's detail page shows its last-evaluated date and, where applicable, the absent-from-code and "safe to remove" notices.