Skip to content

mecatui: track remaining bounded browsing adoption #1742

Open
9 of 15 issues completed
Open

Description

@jbeda

Bounded browsing adoption tracker

This issue tracks the remaining independently scrollable Mecatui surfaces following the completed bounded-list migrations for the slash-command palette (#1820) and @ mention menu (#1833).

Completed

Tracked follow-on slices

Explicit exclusions

  • Active conversation scrollback remains on its purpose-built viewport: semantic reading anchors, text selection, live streaming, and tail-follow are outside this effort.
  • Prompt-editor scrolling remains text-widget behavior, not browsing-list behavior.
  • Surfaces without an independent scrolling window are not migration targets.
  • Agents overlay, Models picker, slash palette, and mention menu already use bounded controls.

Required implementation rule

Every new bounded.List surface that uses the standard cursor treatment must render rows through the UI-level presentListRow helper in cmd/mecatui/ui/list_row.go. Do not recreate the ▶ versus blank-gutter and selected/unselected-style logic at each surface. Keep headers, footers, overflow wording, hit regions, and activation surface-owned.

If a surface needs a different presentation, document why rather than silently bypassing the helper.

Scope and process

  • Preserve the bounded package boundary: it owns geometry, anchors, selection, and row metadata, not themes or surface interaction.
  • Each child needs scenario-first acceptance coverage before implementation where its interaction differs materially from prior bounded migrations.
  • Keep legacy scrollWindow only for consumers explicitly deferred by this inventory.
  • Do not fold the main conversation viewport, text selection, or streaming-tail behavior into this work.

Relates to #1589 and #2237.

Next coordinated slice

#2173 (/schedule) is next after /worktrees: bound inventory and fire history, and migrate the legacy overlay to the shared surface lifecycle in the same focused change. Compare its placement and navigation with /sessions; record reusable consistency rules in docs/tui.md. The layout decision belongs to the reviewed schedule plan, not to an assumption that all inventories must be cards. Approval (#1902) and stored-session transcript (#1903) remain open independent evaluations.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions