Some checks failed
CI Code / Check spelling (pull_request) Failing after 22s
CI Code / Check coding style (pull_request) Successful in 34s
CI Code / Linux (debian) (pull_request) Successful in 5m23s
CI Code / Linux (arch) (pull_request) Successful in 6m1s
CI Code / Linux (ubuntu) (pull_request) Successful in 7m18s
CI Code / Code Coverage (pull_request) Successful in 7m32s
Cursor was set to oldest of read window, not oldest of returned batch — each page-up jumped past entire ranges (F16: 600/2000 msgs). Always bisect now; correct + simpler. Cost: +5-10 ms per page-up at 1M msgs, well below UI threshold. Also guard state->entries NULL when total_lines>0 && n_entries==0 (every line failed _ff_maybe_index_line). Backup would segfault. F16 tightened to received == total_msgs. Catches both stuck-on- entries[0] and cursor-jumping regressions.