Skip to content

feat: Allow cross-tab package multi-select and batch actions#126

Open
pisum-sativum wants to merge 1 commit into
pie-314:mainfrom
pisum-sativum:feature/cross-tab-selection
Open

feat: Allow cross-tab package multi-select and batch actions#126
pisum-sativum wants to merge 1 commit into
pie-314:mainfrom
pisum-sativum:feature/cross-tab-selection

Conversation

@pisum-sativum

Copy link
Copy Markdown

Description

Allows users to select packages across multiple tabs and act on them all at once. Switching tabs now persists the selected packages instead of resetting them.

Key enhancements:

  • Selections are stored as HashSet<(String, String)> (package name + provider) in the App struct to avoid manager conflicts.
  • Dynamic selection count badges are displayed on the relevant tab headers (e.g., Search [3] and Updates [2]).
  • Pressing i (install), r (remove), or u (update) acts on all selected packages across all managers in a single batch.
  • Selections are successfully pruned after operations are executed.
  • Hitboxes for tab switching via mouse events are updated dynamically to handle variable tab title lengths.

Fixes #

Type of Change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation update

How Has This Been Tested?

  • Manual test (mockup validation, static typing verification, and git diff inspection to verify type alignment across sub-managers).
  • cargo test

Checklist:

  • My code follows the Coding Guidelines.
  • I have performed a self-review of my own code.
  • I have commented my code, particularly in hard-to-understand areas.
  • I have NOT added useless AI-generated comments.
  • I have NOT deleted existing unrelated comments.
  • I have NOT modified files unrelated to this task.
  • I have included screenshots/recordings (for UI changes).
  • My changes generate no new warnings (clippy/fmt).
  • I have linked the issue I am working on.

Screenshots (if applicable)

Description

Allows users to select packages across multiple tabs and act on them all at once. Switching tabs now persists the selected packages instead of resetting them.

Key enhancements:

  • Selections are stored as HashSet<(String, String)> (package name + provider) in the App struct to avoid manager conflicts.
  • Dynamic selection count badges are displayed on the relevant tab headers (e.g., Search [3] and Updates [2]).
  • Pressing i (install), r (remove), or u (update) acts on all selected packages across all managers in a single batch.
  • Selections are successfully pruned after operations are executed.
  • Hitboxes for tab switching via mouse events are updated dynamically to handle variable tab title lengths.

Fixes #

Type of Change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation update

How Has This Been Tested?

  • Manual test (mockup validation, static typing verification, and git diff inspection to verify type alignment across sub-managers).
  • cargo test

Checklist:

  • My code follows the Coding Guidelines.
  • I have performed a self-review of my own code.
  • I have commented my code, particularly in hard-to-understand areas.
  • I have NOT added useless AI-generated comments.
  • I have NOT deleted existing unrelated comments.
  • I have NOT modified files unrelated to this task.
  • I have included screenshots/recordings (for UI changes).
  • My changes generate no new warnings (clippy/fmt).
  • I have linked the issue I am working on.

Screenshots (if applicable)

trx_tui_mockup

@vercel

vercel Bot commented Jun 5, 2026

Copy link
Copy Markdown

@pisum-sativum is attempting to deploy a commit to the pie's projects Team on Vercel.

A member of the Team first needs to authorize it.

@pie-314 pie-314 added the ai-slop label Jun 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants