Documentation
Arbitration
How SpryUI decides which message to show when more than one message matches.
How winners are picked
Snippettext
Comparator order (highest precedence first):
1) priority (descending numeric)
2) banner position group
3) message id (lexicographic)
4) stable sort fallback preserves original order for exact tiesSpryUI uses the same ordering each time, so a refresh does not randomly change which message wins.
Arbitration matrix
- Matching banners are ordered by priority, then message id.
- Fixed banners compete within the same top or bottom rail.
- Relative banners render in page flow when their targeting matches.
Banner rail ownership
A fixed rail should stay predictable. When multiple fixed banners match the same rail, the highest priority banner wins and suppressed competitors are recorded with explicit reasons.
Debug suppression metadata
Snippettext
Suppression reason keys:
- arbitration.banner.lower_priority
- arbitration.banner.same_positionDebug overlay receives suppressed message IDs plus reason keys to make winner selection traceable.