Skip to content

Commit ea5a45f

Browse files
committed
pass in logger to websocket actions
1 parent d01700a commit ea5a45f

File tree

4 files changed

+45
-28
lines changed

4 files changed

+45
-28
lines changed

backend/src/api/usage.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,7 @@ async function usageHandler(
9696
fingerprintId,
9797
userId,
9898
clientSessionId,
99+
logger,
99100
})
100101

101102
return res.status(200).json(usageResponse)

backend/src/websockets/middleware.ts

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -105,11 +105,12 @@ export class WebSocketMiddleware {
105105
}
106106

107107
run<T extends ClientAction['type']>(params: {
108-
baseAction: (
109-
action: ClientAction<T>,
110-
clientSessionId: string,
111-
ws: WebSocket,
112-
) => void
108+
baseAction: (params: {
109+
action: ClientAction<T>
110+
clientSessionId: string
111+
ws: WebSocket
112+
logger: Logger
113+
}) => void
113114
silent?: boolean
114115
logger: Logger
115116
}) {
@@ -143,7 +144,7 @@ export class WebSocketMiddleware {
143144
logger,
144145
})
145146
if (shouldContinue) {
146-
baseAction(action, clientSessionId, ws)
147+
baseAction({ action, clientSessionId, ws, logger })
147148
}
148149
},
149150
)

backend/src/websockets/server.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ async function processMessage(params: {
6565
break
6666
}
6767
case 'action': {
68-
onWebsocketAction(ws, clientSessionId, msg)
68+
onWebsocketAction({ ws, clientSessionId, msg, logger })
6969
break
7070
}
7171
default:

backend/src/websockets/websocket-action.ts

Lines changed: 36 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -80,8 +80,9 @@ export async function genUsageResponse(params: {
8080
fingerprintId: string
8181
userId: string
8282
clientSessionId?: string
83+
logger: Logger
8384
}): Promise<UsageResponse> {
84-
const { fingerprintId, userId, clientSessionId } = params
85+
const { fingerprintId, userId, clientSessionId, logger } = params
8586
const logContext = { fingerprintId, userId, sessionId: clientSessionId }
8687
const defaultResp = {
8788
type: 'usage-response' as const,
@@ -135,11 +136,13 @@ export async function genUsageResponse(params: {
135136
* @param clientSessionId - The client's session ID
136137
* @param ws - The WebSocket connection
137138
*/
138-
const onPrompt = async (
139-
action: ClientAction<'prompt'>,
140-
clientSessionId: string,
141-
ws: WebSocket,
142-
) => {
139+
const onPrompt = async (params: {
140+
action: ClientAction<'prompt'>
141+
clientSessionId: string
142+
ws: WebSocket
143+
logger: Logger
144+
}) => {
145+
const { action, clientSessionId, ws, logger } = params
143146
const { fingerprintId, authToken, promptId, prompt, costMode } = action
144147

145148
await withLoggerContext(
@@ -192,6 +195,7 @@ const onPrompt = async (
192195
const usageResponse = await genUsageResponse({
193196
fingerprintId,
194197
userId,
198+
logger,
195199
})
196200
sendAction(ws, usageResponse)
197201
}
@@ -207,7 +211,7 @@ export const callMainPrompt = async (params: {
207211
clientSessionId: string
208212
logger: Logger
209213
}) => {
210-
const { ws, action, userId, promptId, clientSessionId } = params
214+
const { ws, action, userId, promptId, clientSessionId, logger } = params
211215
const { fileContext } = action.sessionState
212216

213217
// Enforce server-side state authority: reset creditsUsed to 0
@@ -287,11 +291,15 @@ export const callMainPrompt = async (params: {
287291
* @param clientSessionId - The client's session ID
288292
* @param ws - The WebSocket connection
289293
*/
290-
const onInit = async (
291-
{ fileContext, fingerprintId, authToken }: ClientAction<'init'>,
292-
clientSessionId: string,
293-
ws: WebSocket,
294-
) => {
294+
const onInit = async (params: {
295+
action: ClientAction<'init'>
296+
clientSessionId: string
297+
ws: WebSocket
298+
logger: Logger
299+
}) => {
300+
const { action, clientSessionId, ws, logger } = params
301+
const { fileContext, fingerprintId, authToken } = action
302+
295303
await withLoggerContext({ fingerprintId }, async () => {
296304
const userId = await getUserIdFromAuthToken({ authToken })
297305

@@ -310,6 +318,7 @@ const onInit = async (
310318
fingerprintId,
311319
userId,
312320
clientSessionId,
321+
logger,
313322
})
314323
sendAction(ws, {
315324
...usageResponse,
@@ -318,10 +327,13 @@ const onInit = async (
318327
})
319328
}
320329

321-
const onCancelUserInput = async ({
322-
authToken,
323-
promptId,
324-
}: ClientAction<'cancel-user-input'>) => {
330+
const onCancelUserInput = async (params: {
331+
action: ClientAction<'cancel-user-input'>
332+
logger: Logger
333+
}) => {
334+
const { action, logger } = params
335+
const { authToken, promptId } = action
336+
325337
const userId = await getUserIdFromAuthToken({ authToken })
326338
if (!userId) {
327339
logger.error({ authToken }, 'User id not found for authToken')
@@ -372,11 +384,14 @@ export const subscribeToAction = <T extends ClientAction['type']>(
372384
* @param clientSessionId - The client's session ID
373385
* @param msg - The action message from the client
374386
*/
375-
export const onWebsocketAction = async (
376-
ws: WebSocket,
377-
clientSessionId: string,
378-
msg: ClientMessage & { type: 'action' },
379-
) => {
387+
export const onWebsocketAction = async (params: {
388+
ws: WebSocket
389+
clientSessionId: string
390+
msg: ClientMessage & { type: 'action' }
391+
logger: Logger
392+
}) => {
393+
const { ws, clientSessionId, msg, logger } = params
394+
380395
await withLoggerContext({ clientSessionId }, async () => {
381396
const callbacks = callbacksByAction[msg.data.type] ?? []
382397
try {

0 commit comments

Comments
 (0)