From 765828700d60a32b82365d0f020b6cc2113986c8 Mon Sep 17 00:00:00 2001 From: Eric Wagoner Date: Sun, 23 Aug 2026 19:11:09 -0400 Subject: [PATCH] Reel captions keep the count, not the cards MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit "You draw Waterbolt" belongs in the chronicle, not on a replay whose canvas gets recorded and passed around — the reel's captions now skip the private-draw events (drawn, dealt, stolen) and say only how many. Co-Authored-By: Claude Fable 5 --- packages/web/src/Replay.svelte | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/web/src/Replay.svelte b/packages/web/src/Replay.svelte index 10fcbce..b2d7787 100644 --- a/packages/web/src/Replay.svelte +++ b/packages/web/src/Replay.svelte @@ -71,8 +71,14 @@ return pov ?? steps[0]!.view.you; }); const step = $derived(steps[Math.min(idx, steps.length - 1)]!); + /** What you drew belongs in the chronicle, not on a reel that may be + * recorded and passed around — captions keep the count, not the cards. */ + const CAPTION_SILENT = new Set(["cardsDrawnPrivate", "cardsDealtPrivate", "cardsStolenPrivate"]); const lines = $derived( - step.events.map(humanize).filter((l): l is string => l !== null), + step.events + .filter((e) => !CAPTION_SILENT.has(e.type)) + .map(humanize) + .filter((l): l is string => l !== null), ); const atEnd = $derived(idx >= steps.length - 1);