Replaced fragile _removeFromTree() + displayTree spread (which had Alpine reactivity issues) with a clean _reloadAfterAction() call that reloads the tree from the API. This is the same approach used by doDelete() and doRename(), which work reliably. _reloadAfterAction also triggers the sidebar refresh via window.appState.refreshSidebarTree().