feat(ui): complete retail item drop branches

Give retained buttons a reusable item-drop seam, wire the toolbar backpack target, and port retail stack-merge legality, capacity clamping, wire dispatch, destination selection, and immediate shortcut rekey notice. Record the live ACE merge gate and keep split quantity under AP-101.

Co-Authored-By: Codex <codex@openai.com>
This commit is contained in:
Erik 2026-07-11 09:46:32 +02:00
parent 3281e0acb4
commit dc1649c493
19 changed files with 479 additions and 28 deletions

View file

@ -121,11 +121,11 @@ public sealed class ShortcutDropPlannerTests
}
[Fact]
public void FullStackMerge_RekeysAllMatchesAndPreservesRawSpellWord()
public void FullStackMerge_RemovesExistingTargetShortcutThenRekeysSourceSlot()
{
var slots = Empty();
slots[2] = new ShortcutEntry(2, 0xA001u, 0x11223344u);
slots[9] = new ShortcutEntry(9, 0xA001u, 0x55667788u);
slots[9] = new ShortcutEntry(9, 0xB001u, 0x55667788u);
ShortcutMutation[] plan = ShortcutDropPlanner.PlanFullStackMerge(
slots, 0xA001u, 0xB001u);
@ -133,9 +133,8 @@ public sealed class ShortcutDropPlannerTests
Assert.Equal(new[]
{
ShortcutMutation.Remove(2),
ShortcutMutation.Add(new ShortcutEntry(2, 0xB001u, 0x11223344u)),
ShortcutMutation.Remove(9),
ShortcutMutation.Add(new ShortcutEntry(9, 0xB001u, 0x55667788u)),
ShortcutMutation.Add(new ShortcutEntry(2, 0xB001u, 0x11223344u)),
}, plan);
}