Keep fetch+open+swap inline at both call sites (initial load in main, background tick in the serve branch). No helper.