Skip to content

mecatui: migrate /reflections proposal browsing to bounded controls #2174

Open

Description

@jbeda

Scope

Evaluate and migrate the /reflections proposal list and read-only proposal detail in cmd/mecatui/ui/reflections.go as separate bounded browsing regions. The list uses a height-8 cursor-centered window; detail increments detailScroll and only clamps a local value at render time (height-6, minimum four lines). This is distinct from the completed saved-memory browser.

Required outcome

  • Use bounded.List for proposal selection and bounded.Viewport for proposal detail if their measured geometry and interaction boundaries fit; preserve the original list and detail behavior if a concrete region needs its specialized window. Keep titles, footer, range wording, and approval/rejection actions surface-owned. Use presentListRow for standard selected rows.
  • Bound persisted detail offset and physical-row layout so Up after excessive Down/PageDown moves immediately; handle resize, long/multiline proposal evidence, compact heights, and safe untrusted text.
  • Preserve proposal IDs/selection across paging/refresh, action eligibility, and existing request/response correlation.

Verification

Scenario-first tests for cursor reveal with many proposals, long detail with over-scroll and resize, optional action states, safe multiline text, and the correct proposal acted upon after refresh. Run focused UI and bounded tests.

Relates to #1742 and #1589.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    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