Server now checks that transcript .jsonl files exist before creating terminals, preventing dead sessions from --resume errors. Frontend shows error banner in modal when resume fails. Fixed race condition where init() would overwrite FAB terminal selection after page refresh by guarding with pendingSwitchTarget flag.