Skip to content

Release/2.0.0#998

Merged
tunjid merged 200 commits intoreleasesfrom
release/2.0.0
Feb 16, 2026
Merged

Release/2.0.0#998
tunjid merged 200 commits intoreleasesfrom
release/2.0.0

Conversation

@tunjid
Copy link
Owner

@tunjid tunjid commented Feb 16, 2026

No description provided.

tunjid and others added 27 commits February 16, 2026 00:49
Add support for feed list filters
Remove filter card border, tint is enough
Pop all related feed routes off the backstack when feed is deleted
Session switching animations & shared element transition
@gemini-code-assist
Copy link

Summary of Changes

Hello @tunjid, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request introduces the foundational 'Graze Editor' feature, enabling users to craft personalized content feeds through a new, extensible filtering system. It involves a substantial overhaul of the data layer, centralizing record management in a dedicated RecordRepository and enhancing network session handling. Additionally, the account switching flow has been significantly improved for a more fluid user experience, and UI components have been refactored for better reusability across the application.

Highlights

  • Graze Editor Feature Introduction: Introduced a new 'Graze Editor' feature, allowing users to create and manage custom feeds based on a sophisticated filtering system. This includes new UI components, ViewModel logic, and data models for defining and applying filters.
  • Data Layer Refactoring and New Module: A new data:graze module was added to encapsulate the logic and models for Graze feeds and their filtering mechanisms. Significant refactoring occurred in ProfileRepository and RecordRepository, moving record-related functionalities to the latter and introducing a FeedCreationService.
  • Enhanced Account Switching Experience: Implemented a more robust and visually appealing account switching mechanism in the settings, including new UI components and state management for a smoother user experience with visual transitions and haptic feedback.
  • Improved Session Management and Network Handling: Introduced SessionContext to manage network requests within specific user sessions, allowing for more precise authentication and PDS URL handling. The switchSession logic in AuthRepository was updated to fetch fresh authentication tokens, and video upload timeouts were increased.
  • Dynamic Empty State Timelines: Added dynamic empty states for various timelines (e.g., home, profile, feed, list) with specific icons and descriptions, improving user feedback when no content is available.
  • UI Component Reusability and Refinements: Moved the PagerIndicator and blockClickEvents modifier to the ui:core module for broader reusability. Profile search results UI was also extracted into a reusable component.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Changelog
  • build-logic/convention/src/main/kotlin/ext/UiModuleExt.kt
    • Added navigation.event and navigation.event.compose dependencies.
  • composeApp/build.gradle.kts
    • Implemented the new feature:graze-editor module.
  • composeApp/src/commonMain/kotlin/com/tunjid/heron/Platform.kt
    • Imported and bound GrazeEditorBindings and GrazeEditorNavigationBindings.
  • composeApp/src/commonMain/kotlin/com/tunjid/heron/di/AppGraph.kt
    • Imported and included GrazeEditorBindings.
  • composeApp/src/commonMain/kotlin/com/tunjid/heron/di/AppNavigationGraph.kt
    • Imported and included GrazeEditorNavigationBindings.
  • data/core/build.gradle.kts
    • Added data:graze module implementation.
  • data/core/src/commonMain/kotlin/com/tunjid/heron/data/datastore/migrations/SavedStateVersion.kt
    • Added profileData override for accessing profile-specific data.
  • data/core/src/commonMain/kotlin/com/tunjid/heron/data/di/Bindings.kt
    • Imported FeedCreationService and GrazeFeedCreationService.
    • Provided FeedCreationService for dependency injection.
  • data/core/src/commonMain/kotlin/com/tunjid/heron/data/network/FeedCreationService.kt
    • Added FeedCreationService and GrazeFeedCreationService for managing Graze feeds.
  • data/core/src/commonMain/kotlin/com/tunjid/heron/data/network/NetworkService.kt
    • Added validatingApi and logic to use it based on SessionContext.
  • data/core/src/commonMain/kotlin/com/tunjid/heron/data/network/SessionContext.kt
    • Added SessionContext for managing network requests within specific user sessions.
  • data/core/src/commonMain/kotlin/com/tunjid/heron/data/network/SessionManager.kt
    • Updated atProtoAuth to use SessionContext for reading/saving auth.
    • Added logic to switch PDS host based on authentication tokens.
  • data/core/src/commonMain/kotlin/com/tunjid/heron/data/network/VideoUploadService.kt
    • Increased video upload request timeout to 6 minutes.
    • Handled HttpStatusCode.Conflict for video uploads.
  • data/core/src/commonMain/kotlin/com/tunjid/heron/data/network/models/PostConversions.kt
    • Changed FeedGenerator.did type from FeedGeneratorId to ProfileId.
  • data/core/src/commonMain/kotlin/com/tunjid/heron/data/repository/AuthRepository.kt
    • Modified switchSession logic to fetch fresh authentication and use inPastSession.
    • Updated savePreferences parameter type.
  • data/core/src/commonMain/kotlin/com/tunjid/heron/data/repository/ProfileRepository.kt
    • Removed blocks, starterPacks, lists, and feedGenerators functions.
    • Removed StarterPackDao and FeedGeneratorDao dependencies.
  • data/core/src/commonMain/kotlin/com/tunjid/heron/data/repository/RecordRepository.kt
    • Refactored and added blocks, starterPacks, lists, and feedGenerators functions (moved from ProfileRepository).
    • Added recentLists flow and updateGrazeFeed function.
    • Added dependencies for FeedCreationService, ProfileLookup, MultipleEntitySaverProvider, and NetworkService.
  • data/core/src/commonMain/kotlin/com/tunjid/heron/data/repository/SavedStateDataSource.kt
    • Added profileData abstract method.
    • Added updateAuth and removeAuth methods.
    • Modified switchSession to accept freshAuth.
    • Updated inCurrentProfileSession, onEachSignedInProfile, singleAuthorizedSessionFlow, and singleSessionFlow to use SessionContext.
    • Added inPastSession for managing past session contexts.
  • data/core/src/commonMain/kotlin/com/tunjid/heron/data/repository/TimelineRepository.kt
    • Modified timelineState calls to include itemsAvailable.
    • Updated supportsMediaPresentation logic to use a set of media content modes.
  • data/core/src/commonMain/kotlin/com/tunjid/heron/data/repository/UserDataRepository.kt
    • Added a blank line for formatting.
  • data/core/src/commonMain/kotlin/com/tunjid/heron/data/utilities/multipleEntitysaver/SaveFeedGeneratorView.kt
    • Changed FeedGeneratorEntity.did type from FeedGeneratorId to ProfileId.
  • data/core/src/commonMain/kotlin/com/tunjid/heron/data/utilities/recordResolver/RecordResolver.kt
    • Added AtProtoException and HttpStatusCode imports.
    • Implemented logic to delete local records if a network record is not found.
  • data/core/src/commonMain/kotlin/com/tunjid/heron/data/utilities/writequeue/WriteQueue.kt
    • Increased VideoWriteTimeout from 60 seconds to 8 minutes.
  • data/database/src/commonMain/kotlin/com/tunjid/heron/data/database/daos/FeedGeneratorDao.kt
    • Added deleteFeedGenerator method.
  • data/database/src/commonMain/kotlin/com/tunjid/heron/data/database/daos/LabelDao.kt
    • Added deleteLabeler method.
  • data/database/src/commonMain/kotlin/com/tunjid/heron/data/database/daos/ListDao.kt
    • Added deleteList method.
  • data/database/src/commonMain/kotlin/com/tunjid/heron/data/database/daos/PostDao.kt
    • Added LikeUri and RepostUri imports.
    • Added deletePost, deletePostViewerStatisticsLike, and deletePostViewerStatisticsRepost methods.
  • data/database/src/commonMain/kotlin/com/tunjid/heron/data/database/daos/ProfileDao.kt
    • Added BlockUri and FollowUri imports.
    • Added deleteFollow and deleteBlock methods.
  • data/database/src/commonMain/kotlin/com/tunjid/heron/data/database/daos/StarterPackDao.kt
    • Added deleteStarterPack method.
  • data/database/src/commonMain/kotlin/com/tunjid/heron/data/database/daos/TimelineDao.kt
    • Added count method for timeline items.
  • data/database/src/commonMain/kotlin/com/tunjid/heron/data/database/entities/FeedGeneratorEntity.kt
    • Changed did type from FeedGeneratorId to ProfileId.
  • data/graze/.gitignore
    • Added .gitignore for the data:graze module.
  • data/graze/build.gradle.kts
    • Added build.gradle.kts for the new data:graze module, including serialization and Ktor dependencies.
  • data/graze/src/commonMain/kotlin/com/tunjid/heron/data/graze/Filter.kt
    • Added Filter hierarchy for Graze feeds, including comparators, logic containers, attributes, entities, regex, social, ML, and analysis filters.
  • data/graze/src/commonMain/kotlin/com/tunjid/heron/data/graze/GrazeFeed.kt
    • Added GrazeFeed and its update types, along with isGrazeFeed and GrazeDid.
  • data/graze/src/commonMain/kotlin/com/tunjid/heron/data/graze/Validation.kt
    • Added Filter.isValid extension property for filter validation.
  • data/graze/src/commonMain/kotlin/com/tunjid/heron/data/graze/serializers/ComparatorSerializer.kt
    • Added ComparatorSerializer for serializing filter comparators.
  • data/graze/src/commonMain/kotlin/com/tunjid/heron/data/graze/serializers/FilterSerializer.kt
    • Added FilterSerializer for polymorphic serialization of filters.
  • data/graze/src/commonMain/kotlin/com/tunjid/heron/data/graze/serializers/LeafFilterSerializer.kt
    • Added LeafSerializer for serializing leaf filters.
  • data/graze/src/commonMain/kotlin/com/tunjid/heron/data/graze/serializers/RootFilterSerializer.kt
    • Added RootFilterSerializer for serializing root filters.
  • data/models/src/commonMain/kotlin/com/tunjid/heron/data/core/models/FeedGenerator.kt
    • Changed did type from FeedGeneratorId to ProfileId.
  • data/models/src/commonMain/kotlin/com/tunjid/heron/data/core/models/TimelineItem.kt
    • Added itemsAvailable to Timeline interface and its implementations.
    • Replaced TimelineItem.Loading with TimelineItem.Placeholder and introduced TimelineItem.Empty.
  • data/models/src/commonMain/kotlin/com/tunjid/heron/data/core/types/Exceptions.kt
    • Changed SessionSwitchException constructor parameter type.
  • data/models/src/commonMain/kotlin/com/tunjid/heron/data/core/types/Uri.kt
    • Added recordUriOrNull function.
  • data/models/src/commonTest/kotlin/com/tunjid/heron/fakes/FakeTimeline.kt
    • Updated FakeTimeline to include itemsAvailable.
    • Changed FeedGenerator.did type.
  • data/models/src/commonTest/kotlin/com/tunjid/heron/models/polymorphic/timeline/TimelineProfileSerializationTest.kt
    • Updated test data to include itemsAvailable.
  • feature/auth/src/commonMain/kotlin/com/tunjid/heron/signin/State.kt
    • Added canSwitchAccount property.
    • Updated submitButtonEnabled logic to consider account switching.
  • feature/auth/src/commonMain/kotlin/com/tunjid/heron/signin/di/Bindings.kt
    • Added Icons.Rounded.SwapHoriz for the switch account button.
  • feature/compose/src/commonMain/kotlin/com/tunjid/heron/compose/ComposeScreen.kt
    • Removed AutoCompletePostProfileSearchResults and ProfileResultItem (moved to ui/timeline).
  • feature/feed/src/commonMain/composeResources/values/strings.xml
    • Added edit_feed string resource.
  • feature/feed/src/commonMain/kotlin/com/tunjid/heron/feed/FeedViewModel.kt
    • Added RecordRepository dependency.
    • Implemented recentListsMutations.
  • feature/feed/src/commonMain/kotlin/com/tunjid/heron/feed/State.kt
    • Added recentLists to the state.
    • Added UpdateRecentLists action.
  • feature/feed/src/commonMain/kotlin/com/tunjid/heron/feed/di/Bindings.kt
    • Added Timeline and isGrazeFeed imports.
    • Added grazeEditorDestination import.
    • Implemented logic to show 'Edit Feed' button for editable Graze feeds and navigate to the Graze editor.
  • feature/gallery/src/commonMain/kotlin/com/tunjid/heron/gallery/GalleryScreen.kt
    • Removed Indicator import from gallery.ui and imported it from ui.core.
  • feature/gallery/src/commonMain/kotlin/com/tunjid/heron/gallery/GalleryViewModel.kt
    • Updated profileGalleryTimeline to include itemsAvailable.
  • feature/graze-editor/.gitignore
    • Added .gitignore for the feature:graze-editor module.
  • feature/graze-editor/build.gradle.kts
    • Added build.gradle.kts for the new feature:graze-editor module.
  • feature/graze-editor/src/commonMain/composeResources/values/strings.xml
    • Added numerous string resources for the Graze editor UI.
  • feature/graze-editor/src/commonMain/kotlin/com/tunjid/heron/graze/editor/GrazeEditorScreen.kt
    • Added GrazeEditorScreen composable for the Graze editor UI.
  • feature/graze-editor/src/commonMain/kotlin/com/tunjid/heron/graze/editor/GrazeEditorViewModel.kt
    • Added GrazeEditorViewModel for managing Graze feed editing, saving, deleting, and profile search.
  • feature/graze-editor/src/commonMain/kotlin/com/tunjid/heron/graze/editor/State.kt
    • Added State and Action definitions for the Graze editor.
  • feature/graze-editor/src/commonMain/kotlin/com/tunjid/heron/graze/editor/di/Bindings.kt
    • Added DI bindings for the Graze editor, including route matchers and pane entry.
  • feature/graze-editor/src/commonMain/kotlin/com/tunjid/heron/graze/editor/ui/AddFilterSheetState.kt
    • Added AddFilterSheetState for the 'Add Filter' bottom sheet UI.
  • feature/graze-editor/src/commonMain/kotlin/com/tunjid/heron/graze/editor/ui/EditFeedInfoSheetState.kt
    • Added EditFeedInfoSheetState for the 'Edit Feed Info' bottom sheet UI.
  • feature/graze-editor/src/commonMain/kotlin/com/tunjid/heron/graze/editor/ui/ScreenTitle.kt
    • Added Title composable for the Graze editor screen title.
  • feature/graze-editor/src/commonMain/kotlin/com/tunjid/heron/graze/editor/ui/SelectTextSheetState.kt
    • Added SelectTextSheetState for a generic text selection bottom sheet.
  • feature/graze-editor/src/commonMain/kotlin/com/tunjid/heron/graze/editor/ui/TopBarActions.kt
    • Added TopBarActions composable for Graze editor top bar actions (save, edit feed info, delete).
  • feature/graze-editor/src/commonMain/kotlin/com/tunjid/heron/graze/editor/ui/filter/AnalysisFilter.kt
    • Added AnalysisFilter composable for Analysis filters UI.
  • feature/graze-editor/src/commonMain/kotlin/com/tunjid/heron/graze/editor/ui/filter/AttributeFilters.kt
    • Added AttributeCompareFilter and AttributeEmbedFilter composables for Attribute filters UI.
  • feature/graze-editor/src/commonMain/kotlin/com/tunjid/heron/graze/editor/ui/filter/ComparatorDropdown.kt
    • Added ComparatorDropdown composable for a generic comparator dropdown.
  • feature/graze-editor/src/commonMain/kotlin/com/tunjid/heron/graze/editor/ui/filter/Dropdown.kt
    • Added Dropdown composable for a generic dropdown UI component.
  • feature/graze-editor/src/commonMain/kotlin/com/tunjid/heron/graze/editor/ui/filter/EntityFilters.kt
    • Added EntityFilter composable for Entity filters UI.
  • feature/graze-editor/src/commonMain/kotlin/com/tunjid/heron/graze/editor/ui/filter/Filters.kt
    • Added common filter UI components: FilterCard, StandardFilter, ChipFilter, UnsupportedFilter, ThresholdSlider, FilterTextChips, and validationTint.
  • feature/graze-editor/src/commonMain/kotlin/com/tunjid/heron/graze/editor/ui/filter/MLFilters.kt
    • Added MLModerationFilter composable for ML filters UI.
  • feature/graze-editor/src/commonMain/kotlin/com/tunjid/heron/graze/editor/ui/filter/RegexFilters.kt
    • Added RegexFilter composable for Regex filters UI.
  • feature/graze-editor/src/commonMain/kotlin/com/tunjid/heron/graze/editor/ui/filter/SocialFilters.kt
    • Added SocialGraphFilter, SocialUserListFilter, SocialStarterPackFilter, SocialListMemberFilter, and SocialMagicAudienceFilter composables for Social filters UI.
  • feature/home/src/commonMain/kotlin/com/tunjid/heron/home/HomeScreen.kt
    • Added grazeEditorDestination import.
    • Integrated onCreateFeedClicked action for creating new feeds.
    • Updated onExpandedTabSelected logic for pinned items.
  • feature/home/src/commonMain/kotlin/com/tunjid/heron/home/HomeTabs.kt
    • Added Icons.Rounded.Add for the create feed button.
    • Added onCreateFeedClicked parameter.
    • Updated shouldRenderAppBarButtonsInOverlay logic.
  • feature/home/src/commonMain/kotlin/com/tunjid/heron/home/HomeViewModel.kt
    • Added RecordRepository dependency.
    • Implemented recentListsMutations.
  • feature/home/src/commonMain/kotlin/com/tunjid/heron/home/State.kt
    • Added recentLists to the state.
    • Added UpdateRecentLists action.
  • feature/home/src/commonMain/kotlin/com/tunjid/heron/home/ui/ExpandableTabsState.kt
    • Added shouldRenderAppBarButtonsInOverlay property.
  • feature/list/src/commonMain/kotlin/com/tunjid/heron/list/ListViewModel.kt
    • Added RecordRepository dependency.
    • Implemented recentListsMutations.
  • feature/list/src/commonMain/kotlin/com/tunjid/heron/list/State.kt
    • Added recentLists to the state.
    • Added UpdateRecentLists action.
  • feature/list/src/commonMain/kotlin/com/tunjid/heron/list/di/Bindings.kt
    • Added editTitle and onEditClicked parameters to rememberUpdatedEmbeddableRecordOptionsState.
  • feature/post-detail/src/commonMain/kotlin/com/tunjid/heron/postdetail/PostDetailViewModel.kt
    • Added RecordRepository dependency.
    • Implemented recentListsMutations.
    • Changed TimelineItem.Loading to TimelineItem.Placeholder.
  • feature/post-detail/src/commonMain/kotlin/com/tunjid/heron/postdetail/State.kt
    • Added recentLists to the state.
    • Added UpdateRecentLists action.
  • feature/posts/src/commonMain/kotlin/com/tunjid/heron/posts/PostsViewModel.kt
    • Added RecordRepository dependency.
    • Implemented recentListsMutations.
  • feature/posts/src/commonMain/kotlin/com/tunjid/heron/posts/State.kt
    • Added recentLists to the state.
    • Added UpdateRecentLists action.
  • feature/profile/src/commonMain/kotlin/com/tunjid/heron/profile/ProfileScreen.kt
    • Added LaunchedEffect and snapshotFlow for PageChanged action.
  • feature/profile/src/commonMain/kotlin/com/tunjid/heron/profile/ProfileViewModel.kt
    • Added RecordRepository dependency.
    • Implemented pageChangeMutations and recentListsMutations.
    • Updated recordStateHolders to use RecordRepository for feedGenerators, starterPacks, and lists.
  • feature/profile/src/commonMain/kotlin/com/tunjid/heron/profile/State.kt
    • Added currentPage and recentLists to the state.
    • Added PageChanged and UpdateRecentLists actions.
  • feature/profile/src/commonMain/kotlin/com/tunjid/heron/profile/di/Bindings.kt
    • Added Icons.Rounded.Add and grazeEditorDestination import.
    • Updated FAB logic to allow creating Graze feeds from the profile screen.
  • feature/profiles/src/commonMain/kotlin/com/tunjid/heron/profiles/ProfilesViewModel.kt
    • Added RecordRepository dependency.
    • Updated profilesLoadMutations to use recordRepository.blocks.
  • feature/search/src/commonMain/kotlin/com/tunjid/heron/search/SearchViewModel.kt
    • Added RecordRepository dependency.
    • Implemented recentListsMutations.
  • feature/search/src/commonMain/kotlin/com/tunjid/heron/search/State.kt
    • Added recentLists to the state.
    • Added UpdateRecentLists action.
  • feature/settings/src/commonMain/composeResources/values/strings.xml
    • Added string resources for account switching functionality.
  • feature/settings/src/commonMain/kotlin/com/tunjid/heron/settings/SettingsScreen.kt
    • Integrated AccountSwitchingItem and AccountSwitchingTransitionLayer for account management.
  • feature/settings/src/commonMain/kotlin/com/tunjid/heron/settings/SettingsViewModel.kt
    • Added SessionSummary import and AccountSwitchPhase enum.
    • Implemented loadSessionSummaryMutations, handleSwitchSessionMutations, and observeActiveProfileMutations.
  • feature/settings/src/commonMain/kotlin/com/tunjid/heron/settings/State.kt
    • Added activeProfileId, switchPhase, switchingSession, and pastSessions to the state.
    • Added AccountSwitchPhase enum and SwitchSession action.
  • feature/settings/src/commonMain/kotlin/com/tunjid/heron/settings/di/Bindings.kt
    • Updated onBackPressed logic and navigationBar visibility based on AccountSwitchPhase.
  • feature/settings/src/commonMain/kotlin/com/tunjid/heron/settings/ui/AccountSwitchingItem.kt
    • Added AccountSwitchingItem composable for account switching UI.
  • feature/settings/src/commonMain/kotlin/com/tunjid/heron/settings/ui/SettingsItemRow.kt
    • Removed fillMaxWidth from SettingsItemRow.
    • Adjusted ExpandableSettingsItemRow icon rotation.
  • scaffold/src/commonMain/kotlin/com/tunjid/heron/scaffold/navigation/NavigationMutator.kt
    • Added grazeEditorDestination function for navigating to the Graze editor.
  • settings.gradle.kts
    • Included data:graze and feature:graze-editor modules.
  • ui/core/src/commonMain/composeResources/values/strings.xml
    • Added feed_generator_create string resource.
  • ui/core/src/commonMain/kotlin/com/tunjid/heron/ui/AppBarButton.kt
    • Added enabled parameter to AppBarButton.
  • ui/core/src/commonMain/kotlin/com/tunjid/heron/ui/PagerIndicator.kt
    • Moved Indicator composable from feature/gallery to ui/core.
    • Added an overload for LazyListState to Indicator.
  • ui/core/src/commonMain/kotlin/com/tunjid/heron/ui/modifiers/ModifierExt.kt
    • Added blockClickEvents modifier.
  • ui/timeline/src/commonMain/composeResources/values/strings.xml
    • Added numerous string resources for various empty timeline states.
  • ui/timeline/src/commonMain/kotlin/com/tunjid/heron/timeline/state/Timeline.kt
    • Added EMPTY_STATE_DELAY.
    • Implemented logic to display TimelineItem.Empty after a delay if a timeline is empty.
  • ui/timeline/src/commonMain/kotlin/com/tunjid/heron/timeline/ui/EmbeddableRecordOptionsSheetState.kt
    • Added editTitle and onEditClicked parameters to EmbeddableRecordOptionsSheetState.
  • ui/timeline/src/commonMain/kotlin/com/tunjid/heron/timeline/ui/SelectListSheetState.kt
    • Added SelectListSheetState for selecting a list from a bottom sheet.
  • ui/timeline/src/commonMain/kotlin/com/tunjid/heron/timeline/ui/TimelineItem.kt
    • Integrated TimelineItem.Empty and updated TimelineCard logic to handle empty states.
  • ui/timeline/src/commonMain/kotlin/com/tunjid/heron/timeline/ui/post/PostReasonLine.kt
    • Updated TimelineItem.Loading to TimelineItem.Placeholder.
  • ui/timeline/src/commonMain/kotlin/com/tunjid/heron/timeline/ui/post/feature/EmptyPost.kt
    • Added EmptyPost composable for displaying empty timeline states.
  • ui/timeline/src/commonMain/kotlin/com/tunjid/heron/timeline/ui/profile/ProfileSearchResults.kt
    • Added ProfileSearchResults composable for displaying profile search results.
  • ui/timeline/src/commonMain/kotlin/com/tunjid/heron/timeline/utilities/ViewTypeExt.kt
    • Removed blockClickEvents (moved to ui/core).
Ignored Files
  • Ignored by pattern: .github/workflows/** (1)
    • .github/workflows/publish.yml
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request introduces a significant new feature for creating and editing custom feeds, referred to as "Graze Feeds". It also includes a major refactoring to support multi-account functionality, improving data consistency and user experience with polished animations and contextual actions. The codebase is well-structured, with clear separation of concerns and robust state management. I've identified a minor debugging statement that should be removed.

@tunjid tunjid merged commit b26869c into releases Feb 16, 2026
6 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.

3 participants