tuika 0.8.0
Released 2026-08-07. crates.io · docs.rs · GitHub release
Released alongside tuika-codeformatters 0.4.1, tuika-mermaid 0.2.1, and
tuika-html 0.1.1. Their tuika dependency requirements now track 0.8.
Highlights
Turn-key application shell. AppShell, a borrowed Application runtime,
completion palettes, dialog presets, and activity lists give hosts a coherent
foundation for responsive tool-style applications without retained view state.

Key-stable collection views. SelectionScreen and KeyedTable render
borrowed data while preserving application-key selection across reordering,
filtering, and streaming updates.

Added
view_fn(measure, render)defines one-off borrowed views inline with explicit intrinsic measurement and allocation-freeFnrendering, and composes anywhere a normalViewis accepted.SelectionScreencomposes responsive action, agent, permission, and resume pickers fromAppShell, borrowed selectable rows, semantic heading/rule styles, and optional custom chrome while keeping short-height selections visible.ApplicationandRunner::{run_app, run_app_with_backend}provide a data-driven synchronous runtime whose frame tree can borrow application state throughScopedElement<'_>;TestHarness::{render_app, step_app}exercises the same contract without a terminal, and the existing owned-element closure API remains.KeyedTable,KeyedColumn,KeyedSelectState, andKeyedMultiSelectStateadapt and render only visible borrowed rows while preserving application-key selection across reorder, filtering, and streaming updates, with scrolling margins, keyboard/mouse navigation, responsive columns, aligned styled cells, and leading cursor/check indicators.KeyedRowSourceandNavigableKeyedRowSourceletKeyedTableborrow an indirect visible order from authoritative storage, compare computed composite identity without per-frame key clones, and materialize a key only when input changes selection. IndexedKeyedColumnconstructors project parallel row metadata such as fuzzy-match spans without cached wrapper rows.AppShellcomposes a responsive tool-style application frame from borrowed or owned header, main, status, and footer views, with optional theme-aware rules and short-terminal chrome collapse.CompletionItem,CompletionState, andCompletionPaletteprovide reusable fuzzy-ranked command and token completion with host-owned query/selection state and explicit replacement text.ConfirmDialog,ChoiceDialog,MultiChoiceDialog, andInputDialog, with paired host-owned state types, provide higher-level modal flows that convert into the generalDialogbuilder.ActivityItem,ActivityStatus, andActivityListrender multi-step task lifecycle state, including optional determinate progress for individual steps, without owning scheduling or workflow state.
Changed
SelectListnow further clamps its configured viewport to the height it is actually rendered into, keeping a selected row visible after parent chrome or a terminal resize reduces the allocation.- Runner resize signals now force a frame even when application updates return
UpdateResult::Clean; headless harness resize signals also apply their new viewport dimensions automatically.