From 5eb5312637f6ec73f61f17a7114b609dde7f0f0c Mon Sep 17 00:00:00 2001 From: Eric Wagoner Date: Thu, 27 Aug 2026 23:22:56 -0400 Subject: [PATCH] The attached number rides every cast path too MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A number attached to SHIFT WAND silently stayed in hand: the two-stage caster paths (shift-wand, teleport-opponent, mental-force) went through withMods, which carried the modifier cards but not the separately-held attached number. withMods now folds the number in wherever the call site did not already carry it, so what the hand shows attached is what the command carries — all of it, on every path. Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_015RCWSTnb1KYTPyL4GmhGnF --- packages/web/src/App.svelte | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/web/src/App.svelte b/packages/web/src/App.svelte index 287b8d6..baf788f 100644 --- a/packages/web/src/App.svelte +++ b/packages/web/src/App.svelte @@ -423,9 +423,13 @@ } } - /** Every targeted cast goes out through here so attachments never drop. */ + /** Every targeted cast goes out through here so attachments never drop — + * the attached NUMBER included, unless the call site already carried it. */ function withMods[0] & { type: "cast" }>(cmd: T): T { applyMods(cmd); + if (attachedNumber && !cmd.numberInstanceIds) { + cmd.numberInstanceIds = [attachedNumber.instanceId]; + } return cmd; }