Repository navigation
mecatui: track remaining bounded browsing adoption #1742
Description
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
- feat(mecatui): bound slash command palette #1820 — migrate slash-command palette to
bounded.List - feat(mecatui): bound mention palette #1833 — migrate
@mention menu tobounded.List
Tracked follow-on slices
- mecatui: migrate sessions inventory to bounded.List #1895 — sessions inventory (
bounded.List) - mecatui: bound saved-memory inventory and detail browser #1896 — saved-memory inventory and detail browser (
bounded.List+bounded.Viewport) - mecatui: migrate agent-definition inventory to bounded.Viewport #1897 — agent-definition inventory (
bounded.Viewport) - mecatui: classify skills inventory bounded viewport migration #1898 — skills inventory (classify
bounded.Viewportsuitability) - mecatui: migrate soul inspector to bounded.Viewport #1899 — soul/persona inspector (
bounded.Viewport) - mecatui: evaluate bounded.Viewport for Help browser #1900 — Help browser (evaluate/retain or migrate)
- mecatui: evaluate bounded.Viewport for Dream review #1901 — Dream review (evaluate/retain or migrate)
- mecatui: evaluate bounded viewports in Approval review #1902 — Approval review browsers (evaluate individual regions)
- mecatui: evaluate bounded.Viewport for stored-session transcript #1903 — stored-session transcript inspector (evaluate/retain or migrate)
- mecatui: bound /effort picker at constrained terminal heights #2170 —
/effortpicker (bounded tiers and shared surface lifecycle) - mecatui: bound /worktrees picker #2172 —
/worktreespicker (bounded filtered rows and shared surface lifecycle; PR feat(mecatui): bound worktree picker and move it to a modal surface #2279) - mecatui: bound /schedule inventory and fire-history browsing #2173 —
/scheduleinventory and fire history (bound both selectable regions) - mecatui: migrate /reflections proposal browsing to bounded controls #2174 —
/reflectionsproposal list and detail (bounded list + viewport) - mecatui: evaluate bounded MCP resource and prompt pickers #2175 — MCP resource and prompt pickers (evaluate separately)
- mecatui: evaluate bounded /connect target picker #2176 —
/connectsaved-target picker (evaluate multiline selectable rows)
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
scrollWindowonly for consumers explicitly deferred by this inventory. - Do not fold the main conversation viewport, text selection, or streaming-tail behavior into this work.
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.
Activity
[-]mecatui: inventory and migrate remaining bounded lists[/-][+]mecatui: track remaining bounded browsing adoption[/+]feat(mecatui): bound Dream plan and receipt browsing
feat(mecatui): bound Dream plan and receipt browsing