Skip to content

Conversation

@JZilla808
Copy link
Contributor

@JZilla808 JZilla808 commented Jan 16, 2026

Summary

This PR adds a dedicated ideationModel setting to give users granular control over which AI model powers the Ideation pane, distinct from suggestionsModel. It also fixes an issue where tasks created from ideation suggestions were not inheriting the correct model configuration.

Problem

Previously:

  1. The Ideation pane used suggestionsModel for interactive brainstorming sessions, offering no separate configuration
  2. When ideas from the Ideation pane were accepted and converted to tasks, they defaulted to hardcoded model values instead of respecting user settings

Solution

New ideationModel Setting

  • Added ideationModel to the PhaseModelConfig interface in libs/types/src/settings.ts
  • Added default value (sonnet) in DEFAULT_PHASE_MODELS
  • Added UI entry "Ideation & Brainstorming" under Model Defaults > Generation Tasks
  • Updated ideation-service.ts to use ideationModel for interactive chat sessions

Task Model Defaults Fix

  • Updated add-suggestion.ts to retrieve defaultFeatureModel from user settings
  • Features created from ideation suggestions now use the user's configured model

Files Changed

File Change
libs/types/src/settings.ts Added ideationModel to interface and defaults
apps/ui/.../model-defaults-section.tsx Added UI entry for ideation model
apps/server/.../ideation-service.ts Use ideationModel for chat sessions
apps/server/.../add-suggestion.ts Apply defaultFeatureModel to created tasks
apps/server/.../ideation/index.ts Pass settingsService to route handlers

Testing

  • TypeScript compilation passes (npx tsc --noEmit)
  • Package builds succeed (npm run build:packages)
  • Manual UI verification (blocked by pre-existing dev server issue)

Notes

The dev server has a pre-existing CachedInputFileSystem error unrelated to these changes, which blocks local UI testing. Code correctness has been verified through type checking and build validation.

…l defaults

Add a separate ideationModel configuration to give users granular control
over which AI model powers the Ideation pane, distinct from suggestionsModel.

Changes for ideationModel setting:
- Add ideationModel to PhaseModelConfig interface (libs/types)
- Add default value (sonnet) in DEFAULT_PHASE_MODELS
- Add UI entry 'Ideation & Brainstorming' in Model Defaults settings
- Update ideation-service.ts to use ideationModel for interactive chat

Fix for task model defaults from ideation:
- Pass settingsService to ideation routes
- Update add-suggestion.ts to get defaultFeatureModel from settings
- Features created from ideation suggestions now use the configured model

This ensures:
1. Ideation chat uses the user's configured ideationModel
2. Tasks created from ideation use the user's defaultFeatureModel
3. No more hardcoded Anthropic model fallbacks
@coderabbitai
Copy link

coderabbitai bot commented Jan 16, 2026

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @JZilla808, 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 capability to configure the language model used for ideation features within the application. By integrating the SettingsService into the ideation routes and services, users can now specify their preferred models for both interactive ideation sessions and the generation of AI suggestions. This enhancement provides greater flexibility and control over the AI-driven aspects of the ideation process, ensuring that generated features and suggestions align with user-defined preferences.

Highlights

  • Configurable Ideation Model: The ideation API routes (/api/ideation) now receive the settingsService to access global configurations, enabling dynamic model selection for ideation features.
  • Feature Creation Model Consistency: The add-suggestion handler now utilizes the user's defaultFeatureModel from global settings when creating new features, ensuring consistency with manually created features.
  • Dynamic Model Selection in IdeationService: The IdeationService has been updated to dynamically select the model for both idea generation and suggestions based on user-defined ideationModel and suggestionsModel settings, with 'sonnet' serving as a default fallback.
  • New Ideation Model Setting: A new ideationModel property has been added to the PhaseModelConfig interface and DEFAULT_PHASE_MODELS, allowing users to specify the model used for interactive ideation and brainstorming sessions.
  • UI for Ideation Model Configuration: The UI for model defaults now includes a dedicated entry for 'Ideation & Brainstorming', enabling users to easily configure the new ideation model setting.

🧠 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.

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
Contributor

@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 successfully makes the ideation model configurable by plumbing the SettingsService through to the ideation routes and services. The changes correctly fetch the configured model from settings with a fallback to a default value. I've identified one area of code duplication in IdeationService where fetching the model from settings is repeated. I've suggested refactoring this into a private helper method to improve maintainability. Otherwise, the changes look good and are consistent with the existing patterns in the codebase.

Comment on lines +211 to +219
let defaultModel = 'sonnet';
if (this.settingsService) {
try {
const settings = await this.settingsService.getGlobalSettings();
defaultModel = settings.phaseModels.ideationModel.model;
} catch (error) {
logger.warn('Failed to get settings for model selection, using default', error);
}
}
Copy link
Contributor

Choose a reason for hiding this comment

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

medium

There's an opportunity to reduce code duplication. This block of code for fetching a model from settings is very similar to the one in the generateSuggestions method (lines 676-684).

Consider extracting this logic into a private helper method to improve maintainability. For example:

private async _getModelForPhase(phase: keyof PhaseModelConfig, fallback: string): Promise<string> {
  if (!this.settingsService) {
    return fallback;
  }
  try {
    const settings = await this.settingsService.getGlobalSettings();
    return settings.phaseModels[phase]?.model ?? fallback;
  } catch (error) {
    logger.warn(`Failed to get settings for ${phase} model, using default`, error);
    return fallback;
  }
}

You could then use it like this in sendMessage:

const defaultModel = await this._getModelForPhase('ideationModel', 'sonnet');

And in generateSuggestions:

const modelToUse = await this._getModelForPhase('suggestionsModel', 'sonnet');

@Shironex Shironex added Enhancement Improvements to existing functionality or UI. Testers-Requested Request for others to test an enhancement or bug fix/etc. Do Not Merge Use this label if something should not be merged. labels Jan 16, 2026
@webdevcody webdevcody deleted the branch AutoMaker-Org:v0.12.0rc January 17, 2026 23:51
@webdevcody webdevcody closed this Jan 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Do Not Merge Use this label if something should not be merged. Enhancement Improvements to existing functionality or UI. Testers-Requested Request for others to test an enhancement or bug fix/etc.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants