Skip to content

feat(my-prs): filter by organization and highlight active threads - #257

Merged
mjsz merged 1 commit into
mainfrom
feat/my-prs-org-filter-active-threads
Nov 4, 2026
Merged

mjsz merged 1 commit into
mainfrom
feat/my-prs-org-filter-active-threads

Conversation

@mjsz

@mjsz mjsz commented Nov 4, 2026 •

Copy link
Copy Markdown
Collaborator

Adds an Organization select to the My PRs header so the page shows one GitHub organization at a time, and highlights PRs whose linked thread is working.

Files changed

  • plugins/my-prs/app.tsx: organization select, organization-scoped rows, per-scope scroll memory, and the active-thread chip and row accent
  • plugins/my-prs/app.test.tsx: tests for both features, and an explicit All organizations choice in the two existing tests that mix organizations

Organization filter

  • The header select defaults to the first organization alphabetically. Options come from every PR in the snapshot and stay the same when the status filter changes. All organizations shows every PR
  • The page remembers an explicit choice for the browser session, including All organizations. A saved organization that no longer exists falls back to the first one, and the saved choice stays in place until the user picks again
  • The organization scopes the overview counts, the Your turn, Other open PRs, On hold, and dismissed sections, the status filter, select-all, and bulk actions. Show all PRs resets only the status filter
  • Switching organization clears the selection, so no bulk action reaches a PR that is out of view
  • Saved scroll positions are keyed by organization and status. A new scope starts at the top
  • The sidebar badge and the header Your turn count still count every organization

Active threads

  • A PR with a linked thread that is working shows a blue Active thread chip with a spinner. The chip used to read "Working" and turn gray in Other, held, and dismissed rows
  • The row gets a blue left accent and a light blue tint. Selected and hover styles still apply
  • The chip keeps its "Open thread for repo#number" label, and adds aria-description and a title that describe the active state
  • Idle, failed, and unknown threads, and PRs that are starting without a linked thread, do not show as active

Testing

  • npm run typecheck: pass
  • Full test suite: pass (8 files, 126 tests)
  • npm run build: pass
  • Live check in the bb host at desktop and mobile widths: composed status and organization filtering, session persistence, scoped counts, and selection clearing on organization change

Add an Organization select to the My PRs header so the page shows one GitHub
organization at a time, and make PRs with a working linked thread easy to spot
in every section.

Organization filter:
- Default to the first organization alphabetically, and offer All organizations
- Remember an explicit choice, including All organizations, for the browser
  session, and fall back to the first organization without overwriting the saved
  choice when that organization is gone
- Scope the overview counts, sections, status filter, select-all, and bulk
  actions to the chosen organization; Show all PRs resets only the status
- Clear the selection when the organization changes, so no action reaches a
  hidden PR
- Key saved scroll positions by organization and status

Active threads:
- Show an Active thread chip with a spinner when a linked thread is working
- Keep the chip blue in Your turn, Other, held, and dismissed rows; it used to
  turn gray outside Your turn
- Add a blue accent and tint to the row, and describe the state through
  aria-description and the chip title

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@mjsz
mjsz merged commit 8ce854c into main Nov 4, 2026
22 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant