e2570104a5
Activates the v1.29-deferred cursor-navigation future-use. The
Process tab is now fully interactive: j/k and arrow keys move
the cursor, PageUp/PageDown scroll by 8 rows, the visible row
is bolded as the cursor, Enter and Space operate on the
cursor's PID.
- move_selection is now tab-aware:
PerCpu -> move_cpu_selection (old behavior)
Process -> move_process_selection (new)
other -> no-op
- move_process_selection clamps process_cursor to
[0, visible.len()-1] (saturating_add for big deltas)
- page_selection is also tab-aware (8 rows per page for Process)
- j/k hotkeys (vim-style) call move_selection
- visible_processes() helper extracted (deduplicates the
filter+collect logic that move_process_selection and
selected_pid both needed)
- selected_pid() now uses process_cursor directly (was using
table_state.selected() which was the Per-CPU widget's
selection — wrong tab indirection)
- theme::CURSOR: bold style for the cursor row (no background
color; background flickers on rapid style changes on some
terminals; bold is stable)
- Render layer applies theme::CURSOR when current_tab==Process
AND the visible_index matches process_cursor AND focused
Test count 111 -> 117 (+6 in new app::tests mod):
- move_process_selection_down_clamps_to_last
- move_process_selection_up_clamps_to_zero
- move_process_selection_empty_list_is_noop
- move_process_selection_respects_filter
- selected_pid_returns_none_when_empty
- selected_pid_returns_none_when_filter_excludes
make_app_with_processes(n) helper clears App::new()'s /proc
read first so the test fixtures don't mix with real procs.
Redox stripped binary: 4,197,224 bytes (+16 KiB from v1.29).
Compile warnings: 55 (unchanged).
Docs: local/docs/redbear-power-improvement-plan.md \xC2\xA754