---
title: "tuika 0.8.0"
description: "Release notes for tuika 0.8.0 (2026-08-07). Highlights: Turn-key application shell.; Key-stable collection views.."
image: "https://tuika.dev/social-card.png"
---

> Documentation Index
> Fetch the complete documentation index at: https://tuika.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# tuika 0.8.0

Released 2026-08-07. [crates.io](https://crates.io/crates/tuika/0.8.0) · [docs.rs](https://docs.rs/tuika/0.8.0/tuika/) · [GitHub release](https://github.com/everruns/tuika/releases/tag/v0.8.0)

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](https://raw.githubusercontent.com/everruns/tuika/v0.8.0/docs/demos/app_shell.png)

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

![selection screen demo](https://raw.githubusercontent.com/everruns/tuika/v0.8.0/docs/demos/selection_screen.png)

## 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.

Source: https://tuika.dev/releases/0.8.0/index.mdx
