frankensearch-tui 0.1.0

Shared TUI framework for frankensearch products (fsfs, ops TUI)
Documentation

Shared TUI framework for frankensearch products.

This crate provides reusable terminal UI primitives shared by both the fsfs deluxe TUI and the ops observability TUI. It ensures consistent UX, keyboard shortcuts, theming, and accessibility across all frankensearch TUI products.

Architecture

┌─────────────────────────────────────────────────┐
│  Product crates (fsfs, ops)                     │
│  └─ product-specific screens + data sources     │
├─────────────────────────────────────────────────┤
│  frankensearch-tui (this crate)                 │
│  ├─ screen: Screen trait, ScreenId, registry    │
│  ├─ shell: App shell, status bar, breadcrumbs   │
│  ├─ palette: Command palette, action routing    │
│  ├─ input: Keymap, bindings, mouse model        │
│  ├─ theme: Color schemes, dark/light presets    │
│  ├─ overlay: Help, alerts, confirmation dialogs │
│  ├─ accessibility: Focus, semantic annotations  │
│  ├─ frame: Budget enforcement, jank detection   │
│  ├─ replay: Input recording, deterministic play │
│  ├─ determinism: Clock trait, seeds, replay ctx  │
│  ├─ evidence: JSONL evidence hooks + redaction   │
│  └─ terminal: Mode detection, reconnect handler │
├─────────────────────────────────────────────────┤
│  FrankenTUI (ftui-*)                             │
└─────────────────────────────────────────────────┘

Usage

Product crates implement the [Screen] trait for their views, register them in a [ScreenRegistry], and hand control to the [AppShell] which manages navigation, overlays, input dispatch, and frame timing.