Prevent unnecessary rsc reloads on navigation (#68049)
In larger apps, when compilation can take time and endpoints are often
build concurrently, `endpoint_server_changed_subscribe`’s subscription
to turbotasks can result in unnecessary calls of the JS callback even
when turbotasks input has not changed.
This wraps subscribing to issues and diagnostics in
`endpoint_server_changed_subscribe` within a turbotasks function that
ensures that inputs are properly consistent (e.g. diagnostics have been
sorted and are value-equal) so this callback is not called unnecessary.
Test Plan: Navigate within a large app and verify
`serverComponentChanges` messages are not sent through the web socket
connection and the browser does not perform unnecessary fetch requests
to rsc endpoints.
### Turbopack Changes
* https://github.com/vercel/turbo/pull/8777 <!-- Tobias Koppers - merge
InProgressDirty into InProgress -->
* https://github.com/vercel/turbo/pull/8785 <!-- Tobias Koppers - fix
watcher bug with file creation -->
* https://github.com/vercel/turbo/pull/8793 <!-- Tobias Koppers - get
rid of notify-debouncer in favor of our own debouncing -->
* https://github.com/vercel/turbo/pull/8805 <!-- Tobias Koppers - impl
Ord for Diagnostics and Issue so they are sorted correctly -->
---------
Co-authored-by: Tobias Koppers <tobias.koppers@googlemail.com>