Fix stale conversation sync labels on mobile

This commit is contained in:
kris
2026-04-07 13:35:52 +08:00
parent a43bb92f3c
commit 6153e94000
7 changed files with 76 additions and 4 deletions

View File

@@ -667,6 +667,10 @@ public class BossApiClient {
connection.setDoInput(true);
connection.setRequestProperty("Accept", "application/json");
connection.setRequestProperty("x-boss-native-app", "1");
if ("GET".equals(method)) {
connection.setRequestProperty("Cache-Control", "no-cache, no-store, max-age=0");
connection.setRequestProperty("Pragma", "no-cache");
}
String cookie = getSessionCookie();
if (!cookie.isEmpty()) {

View File

@@ -51,6 +51,8 @@ public class BossApiClientDispatchPlansTest {
assertEquals("GET", connection.requestMethodValue);
assertEquals(12000, connection.connectTimeoutValue);
assertEquals(30000, connection.readTimeoutValue);
assertEquals("no-cache, no-store, max-age=0", connection.getRequestProperty("Cache-Control"));
assertEquals("no-cache", connection.getRequestProperty("Pragma"));
}
@Test
@@ -67,6 +69,18 @@ public class BossApiClientDispatchPlansTest {
assertEquals(30000, connection.readTimeoutValue);
}
@Test
public void getConversationHomeSendsNoCacheHeadersToAvoidStaleMobileFeed() throws Exception {
RecordingConnection connection = new RecordingConnection(new URL("https://boss.hyzq.net/api/v1/conversations/home"));
RecordingBossApiClient apiClient = new RecordingBossApiClient(connection);
BossApiClient.ApiResponse response = apiClient.getConversationHome();
assertEquals(200, response.statusCode);
assertEquals("no-cache, no-store, max-age=0", connection.getRequestProperty("Cache-Control"));
assertEquals("no-cache", connection.getRequestProperty("Pragma"));
}
@Test
public void confirmDispatchPlanWritesApprovedTargetProjectIds() throws Exception {
RecordingConnection connection = new RecordingConnection(new URL("https://boss.hyzq.net/api/v1/projects/p1/dispatch-plans/plan-1/confirm"));