게임·입장 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));

View File

@@ -11,9 +11,11 @@ import {
ensureRoomChat,
} from '@/lib/chzzk/chat-session';
import {
clearDiceQueue,
createRoom,
findRoomByChannelId,
getRoom,
notifyRoom,
toPublicRoom,
} from '@/lib/rooms/store';
@@ -30,6 +32,7 @@ export async function POST(request: Request) {
cheesePerDice?: number;
multiplyByCheese?: boolean;
maxMultiplier?: number;
resetDiceQueue?: boolean;
};
const session = await getRequestAuthSession(request);
@@ -92,6 +95,11 @@ export async function POST(request: Request) {
cancelScheduledDisconnectRoomChat(room.id);
if (body.resetDiceQueue) {
clearDiceQueue(room.id);
notifyRoom(room.id);
}
if (room.settings.chzzkEnabled) {
try {
await ensureRoomChat(room.id);