Summary
quadraui develop bumped its ratatui dependency from 0.29 to 0.30 at some point between commit ebb4ab7 and the current tip (unrelated to #445 or #452 — discovered as a side effect of validating those). ratatui 0.30 split Frame/Buffer/Rect out into a new ratatui-core crate. quadraui::tui::Backend::enter_frame_scope (and the rest of quadraui's TUI backend surface) now speaks ratatui-core types.
vimcode's own Cargo.toml pins ratatui = "0.29" directly, and src/tui_main/ calls into quadraui's backend using ratatui 0.29 types (e.g. backend.enter_frame_scope(frame, ...) where frame: ratatui::Frame). Cargo resolves both ratatui 0.29 (vimcode's direct dep) and ratatui 0.30 + ratatui-core (quadraui's dep) side by side as distinct crates, so the build fails at type-checking with E0308 everywhere vimcode's ratatui-0.29 types cross the boundary into quadraui's ratatui-core-based API:
error[E0308]: mismatched types
--> src/tui_main/render_impl.rs:1437:31
|
1437 | backend.enter_frame_scope(frame, |b| {
| ----------------- ^^^^^ expected `ratatui_core::terminal::frame::Frame<'_>`, found `ratatui::Frame<'_>`
|
= note: `ratatui::Frame<'_>` and `ratatui_core::terminal::frame::Frame<'_>` have similar names, but are actually distinct types
Scope
46 distinct errors (per binary target — vimcode builds two: vcd and vimcode), spread across:
src/tui_main/panels.rs — 36 call sites
src/tui_main/render_impl.rs — 28 call sites
src/tui_main/quadraui_tui.rs — 6 call sites
src/tui_main/mod.rs — 4 call sites
This is a real migration, not a one-line fix: bump vimcode's ratatui pin to 0.30 (or whatever quadraui currently uses) and update every touched call site to use ratatui-core-sourced Frame/Buffer/Rect (either directly, or via whatever re-export quadraui now expects — worth checking whether quadraui re-exports ratatui_core types for consumers, which would be the cleaner fix than vimcode taking a second direct ratatui-core dependency).
Severity
Currently blocks every vimcode build — GTK and TUI both, since vimcode's Cargo.toml always enables quadraui's tui feature (quadraui = { path = "...", features = ["tui", "terminal"] }, unconditional, not gated behind vimcode's own gui/tui top-level features). This was masked until now by two prior blockers in the same dependency-resolution path (#445's accelerator-dispatch gap needed quadraui changes first, then #452's unicode-width conflict prevented cargo from even reaching type-checking). With #452 fixed and vimcode's companion [patch.crates-io] entry added (see vimcode commit 8f47955 on branch issue-587-command-palette-fails-to-open-silently-b), dependency resolution now succeeds and this is the next and only remaining blocker.
Repro
cd vimcode # with the [patch.crates-io] vt100 entry from commit 8f47955, quadraui path-dep pointing at a quadraui checkout on develop tip
cargo build --features gui --no-default-features
# or
cargo build --features tui --no-default-features
Cross-repo note
Filed while validating vimcode#587 (unrelated bug — command palette). Not attempted as part of that fix: too large a migration to improvise without visual TUI verification available, and clearly out of scope for a targeted bug fix. See coord context show vimcode 587 for the full chain of discoveries (#445 → #452 → this).
Summary
quadrauidevelop bumped itsratatuidependency from0.29to0.30at some point between commitebb4ab7and the current tip (unrelated to #445 or #452 — discovered as a side effect of validating those). ratatui 0.30 splitFrame/Buffer/Rectout into a newratatui-corecrate.quadraui::tui::Backend::enter_frame_scope(and the rest of quadraui's TUI backend surface) now speaksratatui-coretypes.vimcode's own
Cargo.tomlpinsratatui = "0.29"directly, andsrc/tui_main/calls into quadraui's backend usingratatui0.29 types (e.g.backend.enter_frame_scope(frame, ...)whereframe: ratatui::Frame). Cargo resolves bothratatui0.29 (vimcode's direct dep) andratatui0.30 +ratatui-core(quadraui's dep) side by side as distinct crates, so the build fails at type-checking withE0308everywhere vimcode's ratatui-0.29 types cross the boundary into quadraui's ratatui-core-based API:Scope
46 distinct errors (per binary target — vimcode builds two:
vcdandvimcode), spread across:src/tui_main/panels.rs— 36 call sitessrc/tui_main/render_impl.rs— 28 call sitessrc/tui_main/quadraui_tui.rs— 6 call sitessrc/tui_main/mod.rs— 4 call sitesThis is a real migration, not a one-line fix: bump vimcode's
ratatuipin to0.30(or whatever quadraui currently uses) and update every touched call site to useratatui-core-sourcedFrame/Buffer/Rect(either directly, or via whatever re-export quadraui now expects — worth checking whether quadraui re-exportsratatui_coretypes for consumers, which would be the cleaner fix than vimcode taking a second directratatui-coredependency).Severity
Currently blocks every vimcode build — GTK and TUI both, since vimcode's
Cargo.tomlalways enables quadraui'stuifeature (quadraui = { path = "...", features = ["tui", "terminal"] }, unconditional, not gated behind vimcode's owngui/tuitop-level features). This was masked until now by two prior blockers in the same dependency-resolution path (#445's accelerator-dispatch gap needed quadraui changes first, then #452'sunicode-widthconflict preventedcargofrom even reaching type-checking). With #452 fixed and vimcode's companion[patch.crates-io]entry added (see vimcode commit8f47955on branchissue-587-command-palette-fails-to-open-silently-b), dependency resolution now succeeds and this is the next and only remaining blocker.Repro
Cross-repo note
Filed while validating vimcode#587 (unrelated bug — command palette). Not attempted as part of that fix: too large a migration to improvise without visual TUI verification available, and clearly out of scope for a targeted bug fix. See
coord context show vimcode 587for the full chain of discoveries (#445 → #452 → this).