Ah, let’s see if I get it this time.
The issue is the MainController gets confused when you load another component partial from another component partial. In your case, at the point before the cartBox::updateItem partial is rendered the controller component context is localMenu but changes to cartBox right after it is rendered, so instead of searching for the ::item partial within the localMenu component it searches within the cartBox and fails.
To get around this, you’ll need to explicitly specify the component alias and the partial name
<?= partial('localMenu::item');?>