This is self-hosted WP on nginx+php-fpm 8.3 with nginx fast-cgi caching for dynamic content and Redis object caching (with the object cache drop-in active). There are no other layers (no CDN, no CF, no on-box Varnish or other local cache beyond nginx’s fast-cgi cache). Dumping the nginx fast cgi cache (aggressively, by going rm -rf /etc/nginx/cache/*) has no effect on the problem behavior — stale results are served even after nuking the cache directory and restarting both nginx and php-fpm.
I do indeed have the Ajax comment loading enabled right now, yes, but again, toggling it off (and dumping nginx’s cache plus restarting nginx and php-fpm just in case) had no effect on the problem behavior. Browsers still got stale comments.
Option toggled, transient-killer removed. No change in problem behavior.
The effect it applies appears to be supplying a no-cache cache-control header instead of one with a cache time specified. WIthout it in place, my browser seems to very much want to serve a stale cached version of the wp-json/wp-discourse/v1/discourse-comments endpoint from its disk cache; as noted, i have to shift-ctrl-f5 (or the equivalent) to force a no-cache refresh.
The problem behavior seems to be on the browser end, rather than in a persistent server cache. It’s just every browser on every OS that I have access to that’s doing it.