I noticed in my debug log
[ActionFactory] history is being set in configuration rather than CORE_ACTIONS
The issue appears to date to 2014 gerrit 131043 which had
// Register URL actions foreach( $wgFlowActions as $action => $options ) { if ( is_array( $options ) && isset( $options['handler-class'] ) ) { $wgActions[$action] = true; } }
Similar code persists now in Hooks.php. The intention was apparently to avoid an "action does not exist" error for Flow's own actions, but it also inadvertently sets $wgActions['history'] and $wgActions['view'] to true. It's harmless for now since the default is true, but it's tech debt which will break any attempt to inject services into core's ViewAction and HistoryAction.
I think core can be changed to not require $wgActions to be set when a ContentHandler override for an action exists.
Then this hack will not be necessary.