{ "publishedAt": "2026-09-01T18:22:49.9522026+08:00", "issue": "connected users were reported offline", "rootCauses": [ "online state expired after 15 minutes even while WebSocket stayed connected", "demonstration accounts were seeded with online_visible=0", "mounted pages did not consume realtime presence changes" ], "backendRelease": "/www/server/xingyu-im/releases/presence-20260901-182015", "backendBackup": "/www/backup/xingyu-presence-20260901-182015", "backendSha256": "61eccfe663d8fc42428e8b9ed4ac22a713ffe0d4627b0c264ab071703092492a", "backendArchiveSha256": "a60317f93211f4b7ddb93dd85d4fbd5d04b8cf05669fea4763e0fa72320dce82", "changedBackendFiles": [ "backend/internal/app/auth.go", "backend/internal/app/im.go", "backend/internal/app/presence_test.go", "backend/internal/app/public_auth.go", "backend/internal/app/social.go", "backend/internal/testusers/seed.go" ], "demonstrationPrivacyRowsMatched": 100, "productionPresenceCheck": { "targetUserId": 41, "connected": true, "viewerUserId": 100, "disconnected": true }, "h5Release": "/www/wwwroot/xingyu-h5/releases/20260901-182139", "h5Backup": "/www/backup/xingyu-h5-publish-20260901-182139", "h5ArchiveSha256": "2607991f33f36708b21c09616e2864a2830b2992c94dfdfdd73b6c3f2d9163a2", "h5IndexSha256": "8a7c4684ed8a2b2bf79e6d2afe75a3009f3b430ca3fb2fcc47dc3a6f9b728476", "h5Asset": "/app/assets/index-CVmK2p2s.js", "h5AssetSha256": "b85043db566bbd61152af59a8d921be6997f824048a9d3a3a739f93148b12857", "remoteMatchesLocal": true, "healthStatus": 200, "backendTests": "passed", "realtimeIntegration": "passed (33.41s)", "mobileIMTests": "25 passed", "mobileNavigationTests": "6 passed", "typeCheck": "passed", "appBuild": "passed", "h5Build": "passed", "nativeOutput": "D:\\web\\age\\im\\mobile\\dist\\build\\app" }