tui: Generate screen — LoRA picker overlay #87

Closed
opened 2026-04-12 13:23:36 +00:00 by claude-desktop · 0 comments
Collaborator

User Story

As a loom-tui user, I want to press a in the LoRA panel to open a searchable overlay listing all available LoRAs from the backend, so that I can browse, search, and add LoRAs to my generation without memorizing filenames.

Context

The Generate screen LoRA panel (#21) supports add/remove/adjust operations, but a currently has no backend data source. This overlay connects to PluginBridge to fetch the available LoRA list and renders a picker with preview images.

Acceptance Criteria

Overlay

  • a in the LoRA panel opens a floating overlay listing all LoRAs from the active backend
  • Fuzzy search filters the list in real-time (reuse nucleo_matcher from command palette)
  • Each LoRA entry shows: name, base model compatibility, file size
  • Preview images rendered via ImageRenderer (if available from backend)
  • Enter adds the selected LoRA to the Generate screen's LoRA list with default weight 1.0
  • Esc closes without adding
  • Already-added LoRAs are visually marked (dimmed or tagged)

Data

  • LoRA list fetched from PluginBridge (cached per session, refreshable with Ctrl+R)
  • Loading spinner shown while fetching

Tests

  • Unit test: fuzzy filter on LoRA names
  • Unit test: adding a LoRA from overlay updates Generate screen state

Out of Scope

  • LoRA downloading/installation (that's Model browser territory)
  • LoRA weight editing (already implemented in LoRA panel)

References

  • Spec §4.1.2 ("LoRA list: a to add a LoRA opens LoRA browser overlay")
  • Existing code: src/screens/generate.rs (LoRA panel), src/components/palette.rs (fuzzy search pattern)
  • Tracking issue: #47
## User Story As a **loom-tui user**, I want to press `a` in the LoRA panel to open a searchable overlay listing all available LoRAs from the backend, so that I can browse, search, and add LoRAs to my generation without memorizing filenames. ## Context The Generate screen LoRA panel (#21) supports add/remove/adjust operations, but `a` currently has no backend data source. This overlay connects to `PluginBridge` to fetch the available LoRA list and renders a picker with preview images. ## Acceptance Criteria ### Overlay - [ ] `a` in the LoRA panel opens a floating overlay listing all LoRAs from the active backend - [ ] Fuzzy search filters the list in real-time (reuse `nucleo_matcher` from command palette) - [ ] Each LoRA entry shows: name, base model compatibility, file size - [ ] Preview images rendered via `ImageRenderer` (if available from backend) - [ ] `Enter` adds the selected LoRA to the Generate screen's LoRA list with default weight 1.0 - [ ] `Esc` closes without adding - [ ] Already-added LoRAs are visually marked (dimmed or tagged) ### Data - [ ] LoRA list fetched from `PluginBridge` (cached per session, refreshable with `Ctrl+R`) - [ ] Loading spinner shown while fetching ### Tests - [ ] Unit test: fuzzy filter on LoRA names - [ ] Unit test: adding a LoRA from overlay updates Generate screen state ## Out of Scope - LoRA downloading/installation (that's Model browser territory) - LoRA weight editing (already implemented in LoRA panel) ## References - Spec §4.1.2 ("LoRA list: `a` to add a LoRA opens LoRA browser overlay") - Existing code: `src/screens/generate.rs` (LoRA panel), `src/components/palette.rs` (fuzzy search pattern) - Tracking issue: #47
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
charles/loom#87
No description provided.