"Make Flags" appears to predate much of the current architecture in more places and do more things.
Current implementation is as stand-alone ob- Search objects based on "Projects that refer to other objects by phidI flagged", etc.
The downside of current approach is that fetching the information requires a separate DB call (We don't allow cross-application table joins).
Reimplementing as Edges would allow integration with modern interfaces, including:
- Filtering objects in all search engines based on having flags
- Showing flags in search results and hovercards.
Caveats:
- Updating flags should not leave a trace in the target object - flags are private to the owner. So no transaction record.
Possible risks:
- This would be our first DB migration, and first time we actually change away from Phabricator's schemas.- Show flags in search results
- Anything else- Show flags in hovercards?