Problem
Cargo.toml pins quadraui at 42e0f8fa55bd2f9f94bb77f612d70355a88c9356 (2026-09-03). The authoritative remote develop is 4ff2a645023637bba7229e0aeee5968a9c6f3652 — 42 commits ahead (gh api repos/JDonaghy/quadraui/compare/42e0f8f...4ff2a64 → ahead_by: 42, behind_by: 0).
The next pin bump will not compile. quadraui#704 removed modal_stack_mut and drag_and_modal_mut from the Backend trait. At the true HEAD, quadraui/src/backend.rs has only:
726: fn modal_stack_handle(&self) -> Rc<RefCell<ModalStack>>;
731: fn drag_state_handle(&self) -> Rc<RefCell<DragState>>;
vimcode calls the removed method at four live sites:
src/tui_main/shell_app.rs:1258 — let (_, modal_stack) = backend.drag_and_modal_mut();
src/tui_main/shell_app.rs:1541 — let (drag_state, modal_stack) = backend.drag_and_modal_mut();
src/tui_main/shell_app.rs:8105 — let (_, modal_stack) = backend.drag_and_modal_mut();
src/tui_main/shell_app.rs:8181 — let (_, modal_stack) = backend.drag_and_modal_mut();
Stale doc references to fix while here: src/tui_main/shell_app.rs:171, :174, :1209, :2470.
Fix
- Rewrite the four call sites against the handle API.
drag_state_handle() / modal_stack_handle() return Rc<RefCell<_>>, so the two-at-once borrow that drag_and_modal_mut existed to provide is no longer needed — take two handles and borrow_mut() each.
- Bump both
rev entries in Cargo.toml (the quadraui dependency at :90 and the [patch.crates-io] vt100 entry at :152 — they must match) to 4ff2a645023637bba7229e0aeee5968a9c6f3652.
- Run
cargo test to relock Cargo.lock and re-run snapshots against the new rev.
Why this is first in the chain
The bump delivers infrastructure that several queued issues depend on:
Acceptance
cargo build, cargo test, cargo clippy -- -D warnings, cargo fmt all pass on the new rev.
vimcode --version reports the new rev.
- Pure-refactor + dependency bump: no user-visible behaviour change, so no new black-box test is required — say so explicitly in the PR per CLAUDE.md's acceptance bar.
Problem
Cargo.tomlpins quadraui at42e0f8fa55bd2f9f94bb77f612d70355a88c9356(2026-09-03). The authoritative remotedevelopis4ff2a645023637bba7229e0aeee5968a9c6f3652— 42 commits ahead (gh api repos/JDonaghy/quadraui/compare/42e0f8f...4ff2a64→ahead_by: 42, behind_by: 0).The next pin bump will not compile. quadraui#704 removed
modal_stack_mutanddrag_and_modal_mutfrom theBackendtrait. At the true HEAD,quadraui/src/backend.rshas only:vimcode calls the removed method at four live sites:
src/tui_main/shell_app.rs:1258—let (_, modal_stack) = backend.drag_and_modal_mut();src/tui_main/shell_app.rs:1541—let (drag_state, modal_stack) = backend.drag_and_modal_mut();src/tui_main/shell_app.rs:8105—let (_, modal_stack) = backend.drag_and_modal_mut();src/tui_main/shell_app.rs:8181—let (_, modal_stack) = backend.drag_and_modal_mut();Stale doc references to fix while here:
src/tui_main/shell_app.rs:171,:174,:1209,:2470.Fix
drag_state_handle()/modal_stack_handle()returnRc<RefCell<_>>, so the two-at-once borrow thatdrag_and_modal_mutexisted to provide is no longer needed — take two handles andborrow_mut()each.reventries inCargo.toml(thequadrauidependency at:90and the[patch.crates-io] vt100entry at:152— they must match) to4ff2a645023637bba7229e0aeee5968a9c6f3652.cargo testto relockCargo.lockand re-run snapshots against the new rev.Why this is first in the chain
The bump delivers infrastructure that several queued issues depend on:
CommandLineLayout::hit_test/selection_bounds(596d8c8). Required by the GTK half of Status-bar / command-line messages aren't mouse-selectable (GTK can't; TUI has offset bug) #194.wide_glyph_x_scalefor macos/win (d23bea5).887436e).effective_offsetguard lifted into the primitive (0f1a958); vimcode has its own copy atsrc/render.rs:2410-2450.Acceptance
cargo build,cargo test,cargo clippy -- -D warnings,cargo fmtall pass on the new rev.vimcode --versionreports the new rev.