fix(settings): record the persisted shell before the fallible refresh
Second half of the same coupling, found in Codex review. `persistTerminalShell` writes the row first, then re-fetches the shell options to refresh their `exists` flags — and only updated `storedDefaultShell` after that refresh returned. A failure there (the options endpoint is a separate backend call) left the remembered shell one revision behind the persisted one while the switch went live again, so the next color toggle faithfully resent the superseded value and undid a save the user had watched succeed. The save response is the persisted truth the moment it returns, so it is recorded there; everything after it in the block is presentation and can fail harmlessly.
X
xintaofei committed
52e30cfac2de9941b4244bd66f9a90e75ca612da
Parent: 883f196