Skip to content

mecatui: track remaining bounded browsing adoption #1742

Open
11 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.

Completed coordinated slice

#2173 (/schedule) merged in PR #2398: bounded inventory and run history, separate scrollable details, and shared surface lifecycle. Reusable placement, hierarchy, geometry, and async-ownership conventions are recorded in docs/tui.md. Approval (#1902) and stored-session transcript (#1903) remain open independent evaluations; the other unchecked slices above also remain outstanding.

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