Skip to content
Updated View as Markdown

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.

app shell demo

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

selection screen demo

Added

  • view_fn(measure, render) defines one-off borrowed views inline with explicit intrinsic measurement and allocation-free Fn rendering, and composes anywhere a normal View is accepted.
  • SelectionScreen composes responsive action, agent, permission, and resume pickers from AppShell, borrowed selectable rows, semantic heading/rule styles, and optional custom chrome while keeping short-height selections visible.
  • Application and Runner::{run_app, run_app_with_backend} provide a data-driven synchronous runtime whose frame tree can borrow application state through ScopedElement<'_>; TestHarness::{render_app, step_app} exercises the same contract without a terminal, and the existing owned-element closure API remains.
  • KeyedTable, KeyedColumn, KeyedSelectState, and KeyedMultiSelectState adapt 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.
  • KeyedRowSource and NavigableKeyedRowSource let KeyedTable borrow 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. Indexed KeyedColumn constructors project parallel row metadata such as fuzzy-match spans without cached wrapper rows.
  • AppShell composes 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, and CompletionPalette provide reusable fuzzy-ranked command and token completion with host-owned query/selection state and explicit replacement text.
  • ConfirmDialog, ChoiceDialog, MultiChoiceDialog, and InputDialog, with paired host-owned state types, provide higher-level modal flows that convert into the general Dialog builder.
  • ActivityItem, ActivityStatus, and ActivityList render multi-step task lifecycle state, including optional determinate progress for individual steps, without owning scheduling or workflow state.

Changed

  • SelectList now 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.
Navigation

Type to search…

↑↓ navigate↵ selectEsc close