Repository navigation
feat(bar): the mouse wheel walks the rows; move the zellij pin to 0.45.1 - #275
Merged
Merged
Conversation
A trackpad swipe over the bar panicked it: "<NO PAYLOAD>" at the register_plugin! line of main.rs. The host runs zellij 0.45.1, which added horizontal scroll (MouseScrollLeft/Right, zellij-utils-0.45.1 src/plugin_api/event.proto:328-338). The bar was built on the 0.44.3 tile crate, whose decoder refuses those events, and register_plugin! unwraps the decode (zellij-tile-0.44.3 src/lib.rs:130-141). A swipe is almost never exactly vertical, so nearly every swipe hit it. The pin moves to 0.45.1 for zellij-tile and zellij-utils, with the tripwire const. unicode-width moves to 0.2, the line zellij-utils 0.45.1 lays out its own grid with. The frame-slice guardrail now asserts that pane_frame_style is carried, which the 0.45 parser reads. The wheel moves the selection one row per event, like Alt+j/Alt+k, through the same walk. It differs in two ways, both for trackpad momentum: it stops at the ends of its block instead of wrapping, and a step that goes nowhere emits nothing. It walks from the bar's own tab, not the beacon, because only the bar under the pointer gets the event (the same reason click is not executor-gated). Verified: just gates green; five model tests pin the wheel (step, stop at both ends, own tab over a stale beacon, dormant block, incoherent frames); just mutants over the diff, 41 of 41 caught or unviable. Ollie drove it in the clave-test-wheel sandbox over ssh from the Mac trackpad: scroll walks the rows, and no panic. Claude-Session: https://claude.ai/code/session_01Ux1k31S1gRHVRWyCwzbwq7
Agreed with Ollie in the wheel session. The pin moved in the previous commit; the index still sent agents to the 0.44.3 source. Claude-Session: https://claude.ai/code/session_01Ux1k31S1gRHVRWyCwzbwq7
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configurationConfiguration used: Repository: olliegilbey/clave/.coderabbit.yaml Review profile: ASSERTIVE Plan: Advanced Run ID: Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
… names 0.45.1 Three independent reviews ran on #275 (wheel logic, the zellij bump, the repo's standards). Fixes for what they found: - A trackpad flick opened every standby row it crossed. Standby rows sit in the live block and open on arrival, so after a quit one flick would start the whole old fleet. A wheel landing on a standby row now only selects it; a click or Alt+Enter opens it. The new test failed on the old code (10 wheel steps emitted two OpenAgent) and passes now. - `clave doctor` still named 0.44.3 as the tested zellij, so it told every 0.45.1 user to downgrade. TESTED_ZELLIJ is 0.45.1, and the healthy-case fixtures read the const instead of a literal. - Stale comments that argued for the old pin: the unicode-width note ("held at 0.1") above a 0.2 line, the tripwire header, the guardrail header and expect messages, TESTING.md's vendored-path recipe, the FOOTGUNS zellij preamble. The tripwire's kdl note claimed zellij-utils pins kdl 4.7.1; it declares ^4.5.0, and 4.7.1 is ours. - The dormant-block wheel test now asserts a step past the end emits nothing. README says a scroll stops at the ends and opens nothing. Verified: just gates green, 829 passed, 0 failed. Claude-Session: https://claude.ai/code/session_01Ux1k31S1gRHVRWyCwzbwq7
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changed
A trackpad swipe over the bar panicked it ("" at the
register_plugin!line ofmain.rs). The host runs zellij 0.45.1, which added horizontal scroll events (zellij-utils-0.45.1/src/plugin_api/event.proto:328-338). The bar was built on the 0.44.3 tile crate, whose decoder refuses them, andregister_plugin!unwraps the decode (zellij-tile-0.44.3/src/lib.rs:130-141).Alt+j/Alt+k. For trackpad momentum it stops at the ends of its block instead of wrapping, and a step that goes nowhere emits nothing. It walks from the bar's own tab, not the beacon, because only the bar under the pointer gets the event.Closes n/a (no issue; found and asked for in session).
Risk class(es)
config.kdl/layout.kdl/launch.kdl)PATH, doctor) → labelneeds-live-validationhost-untestableVerified automatically
just gateson ollie-xps (Linux), exit 0:cargo test --workspacecargo build -p clave-bar --target wasm32-wasip1cargo clippy --workspace --all-targets -- -D warningsthe_wheel_selects_standby_rows_and_opens_none(red-first, from review),the_wheel_steps_one_live_row_per_event,the_wheel_stops_at_the_ends_of_its_block_and_emits_nothing_there,the_wheel_walks_from_its_own_tab_not_the_beacon,the_wheel_walks_the_dormant_block_after_a_dormant_pick,a_wheel_on_a_bar_with_incoherent_frames_does_nothing. Written after the code, not red-first;just mutantsstands in: 41 of 41 mutants over the diff caught or unviable.config_with_the_frame_slice_parses_and_carries_pane_framesnow assertspane_frame_styleis carried, as its own comment asked for at the 0.45 bump.navrefactor (walk and landing split out for reuse) kept all 314 existing bar tests green.Stopedge the unit tests pin.SwitchTab/FocusPane+AnnounceVisitpair a click emits, so the beacon hand-off is unchanged. A burst that reaches the old bar before the switch lands re-targets the same next tab: idempotent.Review lanes run
coderabbit review --committed --base main -c AGENTS.md, v0.8.1)Fixed (b5e916b):
the_wheel_selects_standby_rows_and_opens_none, red on the old code.clave doctorstill named 0.44.3 as tested and told 0.45.1 users to downgrade. Stale pin comments (unicode-width "held at 0.1", tripwire and guardrail headers, TESTING.md recipe, FOOTGUNS preamble). The tripwire's kdl note was wrong: zellij-utils declares ^4.5.0.Findings DECLINED:
wasm_bridge.rs:913-938). Not observed; the old bar drains in well under a millisecond against 8-16 ms between trackpad events. Left as is.Could NOT be verified, and why
Live steps for the maintainer
Done by Ollie on 2026-09-28, sandbox
clave-test-wheelon the devbox, driven over ssh from the Mac trackpad: "looks like it works flawlessly". Sandbox killed after.ssh -t devbox 'cd ~/code/clave/.claude-worktrees/wheel && just launch'from a Mac terminal outside zellij. Expect thetallscenario fleet.Handoff and links
docs/status/2026-09-22-1214-devbox-width-flap.mdlisted this panic as open and unmeasured.https://claude.ai/code/session_01Ux1k31S1gRHVRWyCwzbwq7