16b96478c2
GitHubUploader and CodebergUploader read the file SHA via GET before issuing the PUT, but the GET went through URLSession's default cache. On the next save the cached body would be replayed and the PUT would target the previous commit's SHA, returning HTTP 409 conflict. The fetchCurrentSHA calls now set .reloadIgnoringLocalAndRemoteCacheData and a no-cache header, matching the pattern in RelayClient and ThreadClient.