What this page shows
This page is the operational inventory for all saved activity tag rules. Operators use it to find an existing rule, confirm which activity it listens to, see which tags it adds or removes, and open the appropriate detail or edit flow.
How to read the list
IDis the primary stored rule identifier used for navigation and audit lookups.Rule Nameis the visible grouped rule name after the page removes the(Add)and(Remove)suffixes when possible.Activityshows which activity event must happen before the rule can apply.Tagsshows the visible+ tagand- tagchips for grouped rows.Prioritycontrols execution order. Higher values are processed first.Statusis the storedisActivestate rendered as a badge.
Main actions
Create Ruleopens the create flow.Apply Filtersapplies Search, Activity, and Status filters and resets pagination.Editopens the grouped editor with the add/remove IDs currently retained by the visible row. It does not recover any colliding source rules hidden by grouping.Clone Ruleopens the create page with one existing rule preloaded.Runcalls the saved-rule manual-run endpoint for the ID or two IDs retained by the visible row. In the traced backend this endpoint returns placeholder zero counters and does not process users or tags.
Important caveats
- The row grouping is a page convenience. Operators should not assume one visible row means one stored source row.
- There is no proven uniqueness rule for normalized name, activity, priority, and action. If more than one add or remove rule collides in the same group, the visible row overwrites the earlier retained ID; Edit and Run can then omit hidden stored rules.
Runis rendered for inactive rows as well as active rows. The backend rejects an inactive rule; unlike the detail page, the list does not disable the button fromisActive.- Manual Run currently validates the saved active rule and returns zeroed
processed,added,removed,skipped, anderrorscounters. It does not enumerate users, mutate tags, or create application rows. - Search is applied after the source returns the current page, so it is not verified as full-dataset search.
- Running a grouped row calls only its retained add/remove IDs sequentially. If one call succeeds and a later call fails, the page does not roll back the earlier call.
- When the list hook has no
rulesvalue, the component returnsnull; it has no dedicated loading or read-error state. An empty array can render the grid's empty behavior, but a failed read is not separately explained on this surface. - The list does not provide a durable operator-action history for Run. Recent Applications records live tag outcomes only.
List grouping, filter, action, list-read, and placeholder manual-run behavior have been traced.