From 745b8e99b9f093b5ce54efdcfe93882494dc526e Mon Sep 17 00:00:00 2001 From: Eric Wagoner Date: Tue, 20 Oct 2026 13:04:28 -0400 Subject: [PATCH] The host is asked before beginning while a seat is still held for someone on their way, since the seat goes once the game begins; and the gallery says the game began before they arrived, so whoever was called and finds the table under way knows why there is no seat Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_0141G6xqLeNRYEtviLWSB5Up --- src/routes/join/[code]/+page.svelte | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/routes/join/[code]/+page.svelte b/src/routes/join/[code]/+page.svelte index d75e3d2..656cad4 100644 --- a/src/routes/join/[code]/+page.svelte +++ b/src/routes/join/[code]/+page.svelte @@ -13,6 +13,8 @@ let room = $state(null); let name = $state(''); let joining = $state(false); + /** The host asked to begin while a seat is still held for someone on their way. */ + let beginAsked = $state(false); let busy = $state(false); let error = $state(''); let copied = $state(false); @@ -259,7 +261,8 @@ {#if watching && room?.remote?.started && !room.state.over}
{#if seatLost}

{seatLost} Claim it here, or write to the keeper.

- {:else}

Had a seat at this duel? Ask the host for a transfer phrase, or make one on the device that still holds the seat, and claim it here. Or write to the keeper for a link that brings it back.

{/if} + {:else}{#if room.remote.expected.length > 0}

{room.speaker(room.remote.host)} began the duel before {room.remote.expected.join(' and ')} arrived, and the seat held for {room.remote.expected.length === 1 ? 'them' : 'each'} went with it.

{/if} +

Had a seat at this duel? Ask the host for a transfer phrase, or make one on the device that still holds the seat, and claim it here. Or write to the keeper for a link that brings it back.

{/if}
@@ -337,8 +340,12 @@ {#if r.seats.length < r.size && room.isHost} {/if} - {#if room.isHost} - + {#if room.isHost && beginAsked && r.expected.length > 0} + A seat is held for {r.expected.join(' and ')}, who {r.expected.length === 1 ? 'has' : 'have'} not arrived. The seat goes once the duel begins. + + + {:else if room.isHost} + {r.seats.length < 2 ? 'once a second wizard is seated' : `with ${r.seats.length} wizards`} {:else} {hostName} will begin the duel when the table is ready.