Ensure we update metadata when session ID changes

This commit is contained in:
Eric Bailey
2026-01-20 17:56:37 -06:00
parent af8fada3c1
commit 93c02b56d0
3 changed files with 10 additions and 3 deletions
+4 -3
View File
@@ -41,12 +41,13 @@ let baseMetadata: BaseMetadata = {
country: device.get(['mergedGeolocation'])?.countryCode || 'unknown',
}
export function updateBaseMetadata(
metadata: Omit<BaseMetadata, 'deviceId' | 'sessionId'>,
metadata: Partial<Omit<BaseMetadata, 'deviceId'>>,
) {
baseMetadata = {
deviceId: getDeviceId() || 'unknown',
sessionId: getSessionId(),
...baseMetadata,
...metadata,
sessionId: metadata.sessionId || getSessionId(),
deviceId: getDeviceId() || 'unknown',
}
__onMetadataChange()
}
+3
View File
@@ -1,6 +1,7 @@
import uuid from 'react-native-uuid'
import {onAppStateChange} from '#/lib/appState'
import {updateBaseMetadata} from '#/logger/metadata'
import {device} from '#/storage'
const TTL = 5 * 60 * 1e3 // 5 min on native
@@ -14,6 +15,7 @@ let sessionId = (() => {
const lastEvent = device.get(['nativeSessionIdLastEventAt'])
const id = existing && !expired(lastEvent) ? existing : uuid.v4()
device.set(['nativeSessionId'], id)
updateBaseMetadata({sessionId: id})
return id
})()
@@ -23,6 +25,7 @@ onAppStateChange(state => {
if (expired(lastEvent)) {
sessionId = uuid.v4()
device.set(['nativeSessionId'], sessionId)
updateBaseMetadata({sessionId})
}
} else {
device.set(['nativeSessionIdLastEventAt'], Date.now())
+3
View File
@@ -1,6 +1,7 @@
import uuid from 'react-native-uuid'
import {onAppStateChange} from '#/lib/appState'
import {updateBaseMetadata} from '#/logger/metadata'
const TTL = 30 * 60 * 1e3 // 30 min on web
const SESSION_ID_KEY = 'bsky_session_id'
@@ -17,6 +18,7 @@ let sessionId = (() => {
const lastEvent = lastEventStr ? Number(lastEventStr) : undefined
const id = existing && !expired(lastEvent) ? existing : uuid.v4()
window.sessionStorage.setItem(SESSION_ID_KEY, id)
updateBaseMetadata({sessionId: id})
return id
})()
@@ -27,6 +29,7 @@ onAppStateChange(state => {
if (expired(lastEvent)) {
sessionId = uuid.v4()
window.sessionStorage.setItem(SESSION_ID_KEY, sessionId)
updateBaseMetadata({sessionId})
}
} else {
window.sessionStorage.setItem(LAST_EVENT_KEY, String(Date.now()))