게임·입장 UX와 물리/고지 개선을 반영한다.

비행기(세계여행) 칸 선택 이동, 주사위 무게감, 설정 패널·주사위 초기화,
개인정보 고지·파비콘·탭 제목을 정리하고 런타임 로그는 추적에서 제외한다.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
kimyu
2026-09-21 12:50:22 +09:00
parent 73520f9f06
commit 347dfc1f4a
21 changed files with 316 additions and 148 deletions

View File

@@ -18,9 +18,11 @@ import {
ensureRoomChat,
} from '@/lib/chzzk/chat-session';
import {
clearDiceQueue,
createRoom,
findRoomByChannelId,
getRoom,
notifyRoom,
} from '@/lib/rooms/store';
export const runtime = 'nodejs';
@@ -87,6 +89,12 @@ export async function GET(request: Request) {
}
cancelScheduledDisconnectRoomChat(room.id);
if (decodedState.resetDiceQueue) {
clearDiceQueue(room.id);
notifyRoom(room.id);
}
try {
await ensureRoomChat(room.id);
} catch {

View File

@@ -28,11 +28,13 @@ export async function GET(request: Request) {
const cheesePerDice = Number(url.searchParams.get('cheesePerDice') || 1000);
const multiplyByCheese = url.searchParams.get('multiplyByCheese') !== '0';
const maxMultiplier = Number(url.searchParams.get('maxMultiplier') || 0);
const resetDiceQueue = url.searchParams.get('resetDiceQueue') === '1';
const { state, sealed } = createOAuthState({
cheesePerDice: Number.isFinite(cheesePerDice) ? cheesePerDice : 1000,
multiplyByCheese,
maxMultiplier: Number.isFinite(maxMultiplier) ? maxMultiplier : 0,
resetDiceQueue,
});
const res = NextResponse.redirect(buildChzzkLoginUrl(state));