fix(ui): port source-aware toolbar drops

Plan retail shortcut drops from a complete post-lift snapshot so fresh inventory items use cyclic-right displacement while toolbar aliases restore to their vacated slot. Apply local mutations atomically, preserve raw shortcut fields, emit exact Remove/Add ordering, and retire AP-102 after the live ACE gate.

Co-Authored-By: Codex <codex@openai.com>
This commit is contained in:
Erik 2026-07-11 09:26:57 +02:00
parent b5b230c860
commit 3281e0acb4
8 changed files with 462 additions and 23 deletions

View file

@ -30,6 +30,9 @@ public sealed class ShortcutStore
public ShortcutEntry? GetEntry(int slot)
=> (uint)slot < SlotCount ? _entries[slot] : null;
/// <summary>Detached raw snapshot for planning a complete mutation before applying it.</summary>
public ShortcutEntry?[] Snapshot() => (ShortcutEntry?[])_entries.Clone();
/// <summary>Visible object id at <paramref name="slot"/>, or zero.</summary>
public uint Get(int slot) => GetEntry(slot)?.ObjectId ?? 0u;