Skip to content

TUI: mod details view (parity with lmm mod show) #86

Description

@dyoung522

Problem

The CLI has lmm mod show (cmd/lmm/mod.go:93-104), which prints a mod's summary, description, image URL, and source URL (mod.go:426-450, JSON at :394,406). The TUI has no equivalent view at all.

The search detail pane (internal/tui/app.go:1332-1375) renders only Name/Author/Version/Source/Status/Downloads/Endorsements plus a clipped Summary. There is no binding for a fuller detail view on any screen.

This is a plumbing gap, not just a rendering gap: the TUI's row type ModItem (internal/tui/service.go:27-58) has no Description, PictureURL, or SourceURL field, and nothing in internal/tui/ ever calls core.Service.GetMod — grep shows only cmd/lmm/* and internal/core/flows.go call it.

Violates the CLI/TUI parity directive in CLAUDE.md.

Proposal

  • Extend ModItem (or add a detail-specific view model) with Description, PictureURL, SourceURL
  • Add a provider method backed by core.Service.GetMod, mirroring how other TUI provider methods wrap core (internal/tui/service_core.go)
  • Add a detail overlay/screen reachable from both Search results and Installed Mods, reusing the existing scrollable-overlay machinery added in v1.14.0
  • Prototype-provider parity as usual (internal/tui/ fake provider)
  • Watch the 80-col truncation budget; long descriptions need the scrolling overlay, not a clipped pane

Note on "images"

The domain type carries a single PictureURL (internal/domain/mod.go:72), not a gallery. CurseForge actually returns a Screenshots []ModAsset array (internal/source/curseforge/types.go:43) that is dropped during mapping (curseforge.go:294-327) — so even the CLI shows one image URL. Surfacing the full screenshot list is a separate, optional follow-up; a terminal can't render them anyway, so the value is in the URLs.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:tuiinternal/tui - screens, keys, renderingenhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions