Skip to content

feat: adds upstream repo discovery and multi-user tracking#36

Merged
wgordon17 merged 13 commits intogordon-code:mainfrom
wgordon17:worktree-upstream-repos-multi-user
Mar 30, 2026
Merged

feat: adds upstream repo discovery and multi-user tracking#36
wgordon17 merged 13 commits intogordon-code:mainfrom
wgordon17:worktree-upstream-repos-multi-user

Conversation

@wgordon17
Copy link
Copy Markdown
Member

Summary

  • Adds upstream repo discovery (repos the user participates in but doesn't own) with auto-discovery during onboarding and manual entry in settings
  • Adds multi-user tracking to monitor other GitHub users' issues and PRs alongside the main user's, with surfacedBy annotations, avatar badges, and user filter chips
  • Parallelizes main-user PR backfill with tracked-user searches for faster enrichment

@wgordon17 wgordon17 force-pushed the worktree-upstream-repos-multi-user branch from eea5f58 to 77530db Compare March 30, 2026 19:10
Replaces activity-based org sorting in RepoSelector with personal org first (type user), then remaining orgs alphabetically. Upstream section remains structurally last. Repos within orgs retain recency order from fetchRepos.
- refactor(api): extracts executeLightCombinedQuery shared helper, eliminating
  ~80 lines of duplication between graphqlLightCombinedSearch and
  graphqlGlobalUserSearch
- fix(api): removes superfluous !userLogin from early exit guard
- fix(api): guards onLightData to only fire when results exist
- perf(api): swaps PR_SEARCH_QUERY to LIGHT_PR_SEARCH_QUERY in
  discoverUpstreamRepos for lower GraphQL point cost
- fix(api): unifies VALID_LOGIN with VALID_TRACKED_LOGIN regex
- refactor(dashboard): extracts buildSurfacedByUsers helper, removes
  duplicated surfacedByBadge logic from IssuesTab and PullRequestsTab
- fix(dashboard): guards allUsers memo against empty login
- fix(dashboard): adds stale user-filter guard for removed tracked users
- fix(settings): renumbers section comments after Tracked Users insertion
- refactor(tabs): imports TrackedUser type instead of inline declaration
- perf(onboarding): uses Set for manualUpstreamRepos dedup
- test: adds ConfigSchema, TrackedUsersSection, RepoSelector, and
  api-users coverage for identified gaps
- adds GET /repos/{owner}/{repo} check on manual upstream entry
- 404 shows "Repository not found", disables input during check
- enables "Finish Setup" when upstream repos selected (no org repos)
- updates button repo count to include upstream repos
- adds "involved" fallback role when upstream item has no specific
  author/assignee/reviewer match (ghost badge-sm styling)
- settings repo count now includes upstream repos with breakdown
@wgordon17 wgordon17 force-pushed the worktree-upstream-repos-multi-user branch from e6ed7ed to 81390af Compare March 30, 2026 19:38
@wgordon17 wgordon17 merged commit 2220936 into gordon-code:main Mar 30, 2026
1 check passed
@wgordon17 wgordon17 deleted the worktree-upstream-repos-multi-user branch March 31, 2026 18:07
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