Skip to content

Improve pull request status display and filtering#135

Closed
premsathisha wants to merge 122 commits intostylessh:mainfrom
premsathisha:prem/pull-status-filters
Closed

Improve pull request status display and filtering#135
premsathisha wants to merge 122 commits intostylessh:mainfrom
premsathisha:prem/pull-status-filters

Conversation

@premsathisha
Copy link
Copy Markdown
Contributor

@premsathisha premsathisha commented Apr 16, 2026

Summary

This PR makes pull request status handling accurate across DiffKit:

  • Loads all pull states: Pull request queues now include open, draft, merged, and closed pull requests instead of being limited to open pulls.
  • Improves status filtering: The Status filter now consistently supports Open, Draft, Merged, and Closed across global pull queues and repository pull lists.
  • Updates tab status display: Pull request tabs now carry real status metadata and use the correct icon for open, draft, merged, and closed pull requests.
  • Fixes count wording: The Pull Requests heading no longer describes every listed pull request as open.
  • Cleans up filter selection UI: Selected filter values now use a right-aligned checkmark instead of a boxed checkbox treatment.

Before

  • Pull request search was built around open pull requests only.
  • The Pull Requests heading said open pulls across your queues, which became incorrect once non-open pull requests were shown.
  • Tabs could not directly tell whether a pull request was open, draft, merged, or closed.
  • Filter selections used heavier boxed checkmarks inside compact menus.

After

  • Pull request queues can show open, draft, merged, and closed pull requests.
  • Status filters work consistently across pull request views.
  • Tabs use status-specific icons based on actual pull request state.
  • The Pull Requests heading describes the count as pulls across your queues.
  • Filter menus are easier to scan with cleaner selected-state styling.

Validation

  • pnpm --filter @diffkit/dashboard check
  • pnpm --filter @diffkit/dashboard check-types
  • pnpm --filter @diffkit/dashboard build

Summary by CodeRabbit

  • New Features

    • Pull request tabs now display state-specific icons reflecting their current status (draft, merged, closed, or open).
  • Improvements

    • Search now includes all pull request states, not just open ones.
    • Enhanced pull request state tracking across the dashboard.
  • Style

    • Updated filter selection visual display.
    • Refined pulls page summary text.

stylessh added 30 commits April 7, 2026 10:32
Integrate ultracite as the Biome configuration preset across the
monorepo, replacing manual biome.json configs with extends-based
biome.jsonc files. Set up husky pre-commit hook with lint-staged
to auto-fix staged files on commit.
…tylessh#9)

- Create @quickhub/icons package wrapping @hugeicons/react with stable aliases
- Add horizontal topbar with user avatar dropdown, nav tabs, and theme switcher
- Establish layout shell: muted background surface with rounded content card
- Add surface tokens (surface-0/1/2) for layered background levels
- Tune typography: 13px body at weight 450, 500 for interactive elements
- Configure dark mode with inverted surface hierarchy and elevated popovers
- Update button, dropdown, and select components for consistent radius and transitions
- Move dashboard route from /dashboard to / with protected layout wrapper
* Share local D1 state across worktrees

* Only share local D1 state in worktrees
* Redesign overview page with metric cards and PR comment preview

Rebuild the overview page with a contained max-w-3xl layout featuring
Luma-style metric cards (open PRs, issues, review requests), a recent
pull requests list with state-colored icons and inline comment preview,
and a shared GitHub Flavored Markdown renderer in the UI package.

* Extract PullRequestRow component and add custom scrollbar

Move PullRequestRow into #/components/pulls/ for feature-based
organization. Add custom scrollbar styles with stable gutter, thumb-only
rendering, and auto-hide on inactivity. Add welcome header to overview.

* Fix markdown images breaking inline flow in table cells
Build detail pages at /$owner/$repo/pull/$id and /$owner/$repo/issues/$id
with two-column layout: content on the left (header, description, activity
timeline with comments, comment box) and metadata sidebar on the right
(reviewers, participants, assignees, milestones, details). PR view includes
merge status card with CI checks, review state, branch status, and update
branch action. Stacked participant avatars with tooltips. Smaller tooltip
styling globally. Issue rows now link internally instead of to GitHub.
* Improve dashboard caching and preloading

* Refine dashboard detail route loading
… polish (stylessh#24)

- Add shiki-based syntax highlighting to markdown code blocks with custom Vercel
  light/dark themes, copy button, and React Suspense for flash-free rendering
- Move issue labels to sidebar with theme-aware label pill styling
- Add icons to PR detail sidebar rows (calendar, clock, message, file, commit)
- Restructure PR header layout with copyable branch badges
- Add diff boxes visualization to PR stats bar
- Darken green-500 in light mode, switch to Geist Mono variable font
* Add PR review page with diff viewer, inline comments, and file tree

Introduces a dedicated code review page at /$owner/$repo/review/$pullId
powered by @pierre/diffs for syntax-highlighted diffs with multi-line
comment support via gutter drag selection. Includes resizable file tree
sidebar, review submission (Comment/Approve/Request Changes), and proper
dark/light theme integration.

* Fix CF Workers deployment: exclude shiki from server bundle

Shiki's bundled language grammars (~1.5 MB) were being included in the
server bundle via @pierre/diffs and markdown.tsx, pushing the worker
over the 3 MiB free plan limit.

- Add Vite plugin to stub shiki in SSR environment
- Lazy-load PatchDiff component to avoid SSR import chain to shiki
- Guard shiki highlighter initialization to client-only in markdown.tsx
premsathisha and others added 15 commits April 13, 2026 18:27
* Fix README image asset URLs

* add more edge cases

---------

Co-authored-by: Prem Sathisha Etagi <premsathisha@users.noreply.github.com>
Co-authored-by: Alan Daniel <stylesshjs@gmail.com>
…tylessh#112)

* Add comment reply action, thread rendering, and fix timeline date sorting

- Add inline reply form for issue/PR comments with quoted parent context
- Detect and render comment threads via blockquote pattern matching
- Fix reviewed events missing timestamps by reading submitted_at fallback

* Simplify CI to single pull_request trigger with no conditional guards

* Deduplicate check runs by name in merge status card

When a workflow re-runs, GitHub creates new check run entries with the
same name but a new id. Keep only the latest run (highest id) per name
so the checks list doesn't show stale skipped/cancelled duplicates.
Co-authored-by: Prem Sathisha Etagi <premsathisha@users.noreply.github.com>
* Refine PR merge and branch update permissions

* show/hide bypass check based on met criterias

---------

Co-authored-by: Alan Daniel <stylesshjs@gmail.com>
* fix: hide merge section for users without merge permissions

* feat: merge commit form, close/reopen PR, and reviewers empty state

- Add inline commit message form when merging (title + extended description, pre-filled from first commit)
- Add close/reopen PR button next to send in comment box
- Add updatePullState server function
- Pass commitTitle and commitMessage through to GitHub merge API
- Add empty state in reviews section when no reviewers added
- Style commit form with surface background to match other sections

* fix: simplify merge bypass to rely on server-provided status

Remove client-side guesswork from bypass logic. Now only uses
server-derived isMergeBlocked, canBypassProtections, and hasConflicts.
No auto-bypass — user must explicitly opt in. Bypass hidden for
conflicts since GitHub rejects those regardless of permissions.
* feat: add inbox page for GitHub notifications

Adds a split-view inbox page (Linear-style) with notification list sidebar
and content preview pane that renders actual PR/Issue detail pages.

- Notification list with unread/all filter, mark as read/done, archive actions
- Avatar stack showing all participants (author, assignees, reviewers, commenters)
- Subject state-aware icons and colors (open/closed/merged)
- Prefetch next notification's data on selection for instant navigation
- Fix closed PR merge status display in detail header and activity feed
- Repo name in preview header links to repo overview
- Hoisted regexes and memoized components for performance

* fix: use typed route params for repo link in inbox preview header

* feat: add unread notification dot to inbox tab and polish inbox list

- Show blue dot on Inbox nav tab when unread notifications exist
- Remove bottom border from last inbox list item
Render RepoActivityCards (Pull Requests, Issues, Discussions) into the
SidePanelPortal on the pulls and issues list pages, matching the repo
overview layout. Also ensure the "View all" link always appears in
activity cards even when there are no open items.
- Add "Browser extension" card in settings that detects whether the
  DiffKit extension is installed and prompts to install if not
- Guard dashboard-presence.js with an origin check so it only sets
  data-diffkit-extension on DiffKit origins (fixes Firefox injecting
  the script on all sites when broader host permissions are granted)
- Update Firefox extension store URL to canonical /addon/diffkit/ path
* feat: add test script and CI check for pull requests

Wire up `pnpm test` via Turborepo to run Vitest across all workspace
packages, and add a required Test job to the PR checks workflow.

https://claude.ai/code/session_01Tw4Aikrys2TqqyAmC9AEXe

* fix: align github.server and github-cache tests with refactored source

- Mock `@tanstack/react-start/server` in github-cache tests to avoid
  slow dynamic import that caused a timeout on the first test
- Add `Octokit.defaults` to the octokit mock so installation client
  tests can call the static method
- Mock `configureGitHubRequestPolicies` and update assertions to match
  the refactored code that delegates request policies instead of
  configuring throttle/retry inline

https://claude.ai/code/session_01Tw4Aikrys2TqqyAmC9AEXe

* chore: rename test CI check to "Test Suite"

https://claude.ai/code/session_01Tw4Aikrys2TqqyAmC9AEXe

---------

Co-authored-by: Claude <noreply@anthropic.com>
* Fix shortcut hints

* Polish shortcut navigation

* Remove PR screenshot assets

---------

Co-authored-by: Prem Sathisha Etagi <premsathisha@users.noreply.github.com>
@premsathisha
Copy link
Copy Markdown
Contributor Author

Screenshot 2026-04-16 at 12 28 01 AM

stylessh and others added 6 commits April 16, 2026 08:13
* feat: add drag-to-reorder tabs and "close merged" context menu option

- Add native HTML drag-and-drop to reorder dashboard tabs, persisted to localStorage
- Add "Close merged" context menu option with purple PR icon to bulk-close merged PR/review tabs
- Track merged state on tabs via explicit `merged` field with iconColor fallback for existing tabs

* fix: add merged field to useRegisterTab type signature
…lob/tree routes

* feat: add file explorer with tree sidebar, syntax highlighting, and blob/tree routes

Add a split-panel code explorer accessible from the repo overview file tree.
Clicking any file or folder navigates to tree/blob routes matching GitHub's
URL convention. The explorer features:

- Resizable left sidebar with recursive file tree (lazy-loaded directories)
- Folder view with commit messages and timestamps in the right pane
- Shiki syntax-highlighted code viewer with line numbers, copy, and raw download
- File-specific latest commit bar (fetches last commit affecting that file)
- Progressive BFS prefetching of all tree nodes to eliminate loading spinners
- Mobile drawer pattern for file tree (matches review page)
- Ref parsing from splat URLs with longest-branch-match strategy

* feat: shared file search, per-entry commits, image preview, and UI polish

- Extract file search card into shared component for reuse across repo sidebar and PR review page
- Add fuzzy file search library (fuzzy-file-search.ts)
- Fetch per-entry last commit data in folder view and file tree (commit message + relative time)
- Render image files (png, jpg, gif, etc.) as media preview instead of blob content
- Add preview/code toggle for SVG files
- Fix long-line background rendering by moving overflow to outer wrapper with sticky line numbers
- Split directory node click: arrow toggles expand, name navigates to folder
- Center README content with max-w-3xl and increased vertical padding
- Use bg-surface-1 for latest commit bar
- Align search card top padding with content pane
- Add F shortcut to focus search in PR review page

* perf: optimize re-renders and batch commit queries

- Batch per-entry commit messages into a single GraphQL query with
  aliased history fields instead of N separate REST calls
- Add explorer-path-store (useSyncExternalStore) so tree nodes subscribe
  to derived isActive booleans — only 2 nodes re-render on navigation
- Memoize scope objects in route components to stop busting memo on
  every child
- Prevent same-URL navigation on already-active tree nodes
- Stabilize callbacks in RepoExplorerLayout (useCallback + imperative
  reads from store)
- Isolate pathname subscription in dashboard-tabs via
  ScrollActiveTabIntoView renderless component
- Fix branch switch in blob view navigating to tree route
- Add light-mode border to branch selector button
* feat: filter private repos by GitHub App installation access

Build a cached installation access index that tracks which repos/owners
the GitHub App is installed for. Private repos are only shown if the
owning account has an "all" installation or the specific repo is in the
"selected" set. Public repos always pass through.

- Add `installationAccess` signal key and cache policy (30 min stale)
- Webhook events (installation, installation_repositories,
  github_app_authorization) invalidate the index immediately
- `getInstallationAccessIndex` fetches installations and paginates
  selected repos, cached via getOrRevalidateGitHubResource
- `isRepoVisibleWithInstallationAccess` filter utility (fail-open
  when no app is configured)
- Apply filter in `getUserRepos` (parallel fetch with repo list)
- Expose `getInstallationAccess` server function for other consumers
- 7 new tests covering all filter scenarios

* feat: extend installation access filtering to all GitHub data flows

Add isPrivate to RepositoryRef and all GraphQL repository fragments so
the installation access filter can be applied everywhere, not just
getUserRepos.

- Add isPrivate to RepositoryRef type and GitHubGraphQLRepositoryRef
- Update buildRepositoryRef, parseRepositoryRef, mapGraphQLRepositoryRef
- Add isPrivate to GraphQL fragments for pull search, issue search,
  pull detail, and issue detail queries
- Add generic filterItemsByInstallationAccess helper and specialized
  filterMyPullsResult / filterMyIssuesResult wrappers
- Apply filter in getMyPulls, getMyIssues (parallel fetch with result)
- Apply filter in searchCommandPaletteGitHub (parallel with search)
- Apply filter in getNotifications (parallel with notification fetch)
- Apply filter in getUserPinnedRepos

* chore: add debug logs throughout installation access filtering

Add debug() calls so the access index building and filtering behavior
is fully observable in local dev:

- Log when fetching the index (cache miss vs resolved from cache)
- Log each installation's access mode (all/selected/suspended)
- Log the full built index (owners, repos, counts)
- Log whenever items are filtered out, with repo names and counts
  (getUserRepos, getMyPulls, getMyIssues, command palette,
  notifications, pinned repos)

* feat: refresh installation access cache when returning from GitHub

Add visibilitychange listener to /setup page and access dialog that
busts the server-side installation access cache and invalidates all
GitHub queries when the user returns from configuring permissions.

* fix: address review feedback on installation access filtering

- Paginate GET /user/installations (handles >100 installations)
- Let transient API errors propagate instead of silently failing open
- Use app-user client (not OAuth) for listInstallationReposForAuthenticatedUser
- Default unknown repo visibility to null instead of false (public), so
  REST search results are checked against the access index
- Wrap refreshInstallationAccess in try/finally so client-side cache
  invalidation runs even if the server call fails
…elect

* feat: add open current page on github shortcut and command to cmd+k select

* chore: reconsidered ui change

* feat: Do not apply extension redirects for certain referers.
* feat: persist selected clone protocol in code explorer

* apply suggestion
Copy link
Copy Markdown
Owner

can you resolve conflicts

@premsathisha premsathisha force-pushed the prem/pull-status-filters branch from 473b44a to abbce3f Compare April 16, 2026 23:10
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Apr 16, 2026

Warning

Rate limit exceeded

@premsathisha has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 8 minutes and 19 seconds before requesting another review.

Your organization is not enrolled in usage-based pricing. Contact your admin to enable usage-based pricing to continue reviews beyond the rate limit, or try again in 8 minutes and 19 seconds.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 7c630362-463b-466a-92de-f6e5019542c6

📥 Commits

Reviewing files that changed from the base of the PR and between abbce3f and d6f6c6e.

📒 Files selected for processing (2)
  • apps/dashboard/src/lib/github.functions.ts
  • apps/dashboard/src/lib/tab-store.ts
📝 Walkthrough

Walkthrough

The changes introduce pull-request state tracking (draft/open/closed/merged) across the dashboard's UI and data-fetching layers. Pull state is derived from PR properties, propagated through tab registration, and used for icon selection. A shared status filter configuration consolidates duplicated filter logic. Search queries now include non-open pull states, and tab state management is extended to support the new pullState field.

Changes

Cohort / File(s) Summary
Pull State Tracking
apps/dashboard/src/components/pulls/detail/pull-detail-page.tsx, apps/dashboard/src/components/pulls/review/review-page.tsx, apps/dashboard/src/components/layouts/dashboard-tabs.tsx
Introduces pull-state derivation (draft/merged/closed/open) from PR properties or tab metadata, and uses it for tab registration and icon selection logic.
Tab State Management
apps/dashboard/src/lib/tab-store.ts, apps/dashboard/src/lib/use-register-tab.ts
Extends Tab interface with optional pullState field and updates tab registration hook to include and track this field.
Status Filter Consolidation
apps/dashboard/src/components/filters/pull-filters.ts
Introduces shared pull-status configuration and helper functions (getPullStatusFilterOptions(), matchPullStatus()), refactoring duplicate status-filter logic in both pullFilterDefs and repoPullFilterDefs.
Data Fetching Updates
apps/dashboard/src/lib/github.functions.ts
Adds mergeCachedMyPullsResult() function and changes PR search queries from state: "open" to state: "all", affecting result caching and shape.
UI Component Updates
apps/dashboard/src/components/filters/filter-bar.tsx
Refactors option-row rendering to replace bordered checkmark container with inline CheckIcon positioned at right when selected.
UI Text Updates
apps/dashboard/src/routes/_protected/pulls.tsx
Changes summary text from "{totalPulls} open pulls across your queues" to "{totalPulls} pulls across your queues".

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title 'Improve pull request status display and filtering' clearly and specifically summarizes the main changes across the changeset.
Description check ✅ Passed The PR description is comprehensive and well-structured, covering summary, before/after context, and validation steps, meeting the repository's template requirements.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
apps/dashboard/src/components/filters/filter-bar.tsx (1)

440-457: ⚠️ Potential issue | 🟠 Major

Expose selected state to assistive technology on toggle options.

Line 440 and Line 511 render selection state only visually (color + check icon). Screen readers won’t reliably get the selected/unselected state for these toggle buttons.

♿ Minimal fix
@@
 						<button
 							key={opt.value}
 							type="button"
 							onClick={() => onToggle(opt.value)}
+							aria-pressed={isSelected}
 							className={cn(
 								"flex items-center gap-2 rounded-md px-2.5 py-1.5 text-left text-sm transition-colors hover:bg-surface-2",
 								isSelected && "text-foreground",
 							)}
 						>
@@
 						<button
 							key={opt.value}
 							type="button"
 							onClick={() => onToggle(opt.value)}
+							aria-pressed={isSelected}
 							className={cn(
 								"flex items-center gap-2 rounded-md px-2.5 py-1.5 text-left text-sm transition-colors hover:bg-surface-2",
 								isSelected && "text-foreground",
 							)}
 						>

Also applies to: 511-528

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@apps/dashboard/src/components/filters/filter-bar.tsx` around lines 440 - 457,
The toggle option buttons only convey selection visually; update the button
elements in filter-bar.tsx (the button that calls onToggle(opt.value) and the
similar button around lines ~511) to expose state to assistive tech by adding
aria-pressed={isSelected} (or aria-checked if you prefer
role="checkbox"/"menuitemcheckbox" semantics) so screen readers announce
selected/unselected; keep existing visuals and onClick behavior unchanged and
apply the same attribute to both occurrences where the option button is
rendered.
🧹 Nitpick comments (1)
apps/dashboard/src/components/filters/pull-filters.ts (1)

51-56: Reuse this resolver everywhere PR status is derived.

apps/dashboard/src/components/pulls/detail/pull-detail-page.tsx:119-127 still computes status inline with a different precedence (draft before closed/merged). That can make a PR’s displayed status diverge from how this filter classifies it on edge states. Export the shared resolver/type from here and consume it there so the UI and filters stay in sync.

♻️ Suggested direction
+export type PullStatus = (typeof pullStatusFilterOptions)[number]["value"];
-
-function getPullStatusValue(pull: PullFilterableItem) {
+export function getPullStatusValue(pull: PullFilterableItem): PullStatus {
 	if (pull.mergedAt || pull.state === "merged") return "merged";
 	if (pull.state === "closed") return "closed";
 	if (pull.isDraft) return "draft";
 	return "open";
}
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@apps/dashboard/src/components/filters/pull-filters.ts` around lines 51 - 56,
Export the shared resolver and its input type from this module (export
getPullStatusValue and the PullFilterableItem/related type) and update the other
usage in pull-detail-page.tsx to import and call getPullStatusValue instead of
computing status inline; ensure the exported resolver preserves the intended
precedence (merged → closed → draft → open) so UI and filters stay in sync.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@apps/dashboard/src/lib/github.functions.ts`:
- Around line 4227-4239: The mergeCachedMyPullsResult function currently
overwrites existing partial-result warnings with only fresh.forbiddenOrgs and
fresh.timedOut, which can drop prior warnings; change the merge so when fresh is
partial (i.e., fresh.timedOut or fresh.forbiddenOrgs non-empty) you still merge
bucket data via mergeMyPullsResults([existing, fresh]) but set forbiddenOrgs to
the union of existing.forbiddenOrgs and fresh.forbiddenOrgs (deduplicated) and
set timedOut to existing.timedOut || fresh.timedOut so any prior warning state
is preserved; keep the early return for the fully fresh case.

In `@apps/dashboard/src/lib/tab-store.ts`:
- Line 13: The isMergedTab() logic should be updated to honor the new pullState
metadata: change its checks so it returns true when tab.pullState === "merged"
(in addition to retaining backward-compatible checks for the legacy merged
boolean or iconColor if you want), and update any other places that determine
merged-tabs (e.g., the handler referenced around the other occurrence) to rely
on pullState instead of only checking merged or iconColor; modify the Tab type
usages and the functions isMergedTab() and the other referenced conditional
(near the second occurrence) to prefer pullState === "merged" as the canonical
source of truth while keeping legacy checks for compatibility.

---

Outside diff comments:
In `@apps/dashboard/src/components/filters/filter-bar.tsx`:
- Around line 440-457: The toggle option buttons only convey selection visually;
update the button elements in filter-bar.tsx (the button that calls
onToggle(opt.value) and the similar button around lines ~511) to expose state to
assistive tech by adding aria-pressed={isSelected} (or aria-checked if you
prefer role="checkbox"/"menuitemcheckbox" semantics) so screen readers announce
selected/unselected; keep existing visuals and onClick behavior unchanged and
apply the same attribute to both occurrences where the option button is
rendered.

---

Nitpick comments:
In `@apps/dashboard/src/components/filters/pull-filters.ts`:
- Around line 51-56: Export the shared resolver and its input type from this
module (export getPullStatusValue and the PullFilterableItem/related type) and
update the other usage in pull-detail-page.tsx to import and call
getPullStatusValue instead of computing status inline; ensure the exported
resolver preserves the intended precedence (merged → closed → draft → open) so
UI and filters stay in sync.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: ca8795ac-4b6d-4ed6-bdf6-701a31d65407

📥 Commits

Reviewing files that changed from the base of the PR and between ce9a5a8 and abbce3f.

📒 Files selected for processing (9)
  • apps/dashboard/src/components/filters/filter-bar.tsx
  • apps/dashboard/src/components/filters/pull-filters.ts
  • apps/dashboard/src/components/layouts/dashboard-tabs.tsx
  • apps/dashboard/src/components/pulls/detail/pull-detail-page.tsx
  • apps/dashboard/src/components/pulls/review/review-page.tsx
  • apps/dashboard/src/lib/github.functions.ts
  • apps/dashboard/src/lib/tab-store.ts
  • apps/dashboard/src/lib/use-register-tab.ts
  • apps/dashboard/src/routes/_protected/pulls.tsx

Comment thread apps/dashboard/src/lib/github.functions.ts
Comment thread apps/dashboard/src/lib/tab-store.ts
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.

6 participants