Skip to content

Add repository favorites: starred repos float to top of picker dialog#147

Draft
Copilot wants to merge 3 commits intomasterfrom
copilot/add-favorites-feature
Draft

Add repository favorites: starred repos float to top of picker dialog#147
Copilot wants to merge 3 commits intomasterfrom
copilot/add-favorites-feature

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Mar 22, 2026

Users had no way to prioritize frequently-used repositories in the picker dialog. This adds a per-repo star toggle that persists across sessions and sorts starred repos to the top of the list.

Storage

  • New FavoriteReposStore interface + PersistedFavoriteReposStore implementation
  • Stored as a comma-separated list in favorite_repositories.txt alongside existing app storage (same FileLocalStorage / appName as last_repository)
  • InMemoryFavoriteReposStore provided for testing

Filtering / ordering

filterRepoOptions gains an optional favoriteRepos: Set<String> parameter. Favorites are partitioned to the front of the filtered results; relative order within each group is preserved.

fun filterRepoOptions(
    repositoryOptions: List<String>,
    query: String,
    favoriteRepos: Set<String> = emptySet(),
): List<String>

UI

Each row in RepoPickerDialog now shows a star IconButton:

  • Icons.Filled.Star (gold starFavorite) when favorited
  • Icons.Filled.StarBorder (muted) when not favorited

Manual-entry candidates (valid owner/repo typed by the user) remain pinned above the favorites section.

Wiring

  • VisualizerViewModel holds FavoriteReposStore, exposes favoriteRepos: StateFlow<Set<String>> and toggleFavorite(fullName)
  • DialogHost and App updated to thread favorites state and callback down to RepoPickerDialog

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • dl.google.com
    • Triggering command: /usr/lib/jvm/temurin-17-jdk-amd64/bin/java /usr/lib/jvm/temurin-17-jdk-amd64/bin/java --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.prefs/java.util.prefs=ALL-UNNAMED --add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED --add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.prefs/java.util.prefs=ALL-UNNAMED --add-opens=java.base/java.nio.charset=ALL-UNNAMED --add-opens=java.base/java.net=ALL-UNNAMED --add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED --add-opens=java.xml/javax.xml.namespace=ALL-UNNAMED -Xmx3072M -Dfile.encoding=UTF-8 -Duser.country -Duser.language=en -Duser.variant -cp /home/REDACTED/.gradle/wrapper/dists/gradle-8.14.3-bin/cv11ve7ro1n3o1j4so8xd9n66/gradle-8.14.3/lib/gradle-daemon-main-8.14.3.jar (dns block)

If you need me to access, download, or install something from one of these locations, you can either:

Original prompt

This section details on the original issue you should resolve

<issue_title>レポジトリのお気に入り機能</issue_title>
<issue_description>星を付けたrepoを選択ダイアログの上位に表示する</issue_description>

Comments on the Issue (you are @copilot in this section)


💬 Send tasks to Copilot coding agent from Slack and Teams to turn conversations into code. Copilot posts an update in your thread when it's finished.

Copilot AI and others added 2 commits March 22, 2026 08:12
Copilot AI changed the title [WIP] Add favorites feature to display starred repos Add repository favorites: starred repos float to top of picker dialog Mar 22, 2026
Copilot AI requested a review from HayatoYagi March 22, 2026 08:16
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.

レポジトリのお気に入り機能

2 participants