Validate state values in WebSocket message handler

This commit is contained in:
Jared Miller 2026-01-28 13:59:38 -05:00
parent 5df3392ad9
commit d30a092df5
Signed by: shmup
GPG key ID: 22B5C6D66A38B06C

View file

@ -447,8 +447,9 @@ const server = Bun.serve<SessionData>({
// Handle state message // Handle state message
if (msg.type === "state") { if (msg.type === "state") {
const sessionState = sessionStates.get(ws.data.sessionId); const sessionState = sessionStates.get(ws.data.sessionId);
if (sessionState && msg.state) { const validStates = ["ready", "thinking", "permission", "question", "complete", "interrupted"];
sessionState.state = msg.state; if (sessionState && msg.state && validStates.includes(msg.state)) {
sessionState.state = msg.state as SessionState["state"];
sessionState.dirty = true; sessionState.dirty = true;
// Broadcast SSE state event // Broadcast SSE state event
broadcastSSE({ broadcastSSE({