Skip to content

Conversation

@markijbema
Copy link
Contributor

(vibecoded, needs proper selfreview/changes first)

Add support for profile types to distinguish between chat and autocomplete provider configurations. This allows users to create a dedicated autocomplete profile that is automatically used for code completion while keeping it separate from chat profiles.

Key Features:

  • Extensible profile type system: 'chat' (default) | 'autocomplete'
  • Only ONE autocomplete profile allowed at a time (enforced by validation)
  • Autocomplete profiles hidden from chat interface dropdown
  • Status bar displays active autocomplete profile name
  • Automatic migration sets existing profiles to 'chat' type

Backend Changes:

  • Add ProfileType type and validation to provider-settings.ts
  • Add validateAutocompleteConstraint() to ProviderSettingsManager
  • Update GhostModel.reload() to prioritize autocomplete profiles
  • Add profile name/type tracking methods to GhostModel
  • Add migration logic for backward compatibility

UI Changes:

  • Add profile type selector in providers settings (new & edit)
  • Add '(Autocomplete)' badge to autocomplete profiles in list
  • Filter autocomplete profiles from ChatTextArea profile selector
  • Update GhostStatusBar to show 'Autocomplete: [Profile Name]'

Testing:

  • Add comprehensive test coverage for all new functionality
  • All existing tests pass (40 ProviderSettingsManager, 18 GhostModel, 165 ghost service, 36 ChatTextArea, 13 settings UI)

Breaking Changes: None

  • Existing profiles automatically migrate to 'chat' type
  • All changes are backward compatible

Closes #[issue-number]

Context

Implementation

Add support for profile types to distinguish between chat and autocomplete
provider configurations. This allows users to create a dedicated autocomplete
profile that is automatically used for code completion while keeping it
separate from chat profiles.

Key Features:
- Extensible profile type system: 'chat' (default) | 'autocomplete'
- Only ONE autocomplete profile allowed at a time (enforced by validation)
- Autocomplete profiles hidden from chat interface dropdown
- Status bar displays active autocomplete profile name
- Automatic migration sets existing profiles to 'chat' type

Backend Changes:
- Add ProfileType type and validation to provider-settings.ts
- Add validateAutocompleteConstraint() to ProviderSettingsManager
- Update GhostModel.reload() to prioritize autocomplete profiles
- Add profile name/type tracking methods to GhostModel
- Add migration logic for backward compatibility

UI Changes:
- Add profile type selector in providers settings (new & edit)
- Add '(Autocomplete)' badge to autocomplete profiles in list
- Filter autocomplete profiles from ChatTextArea profile selector
- Update GhostStatusBar to show 'Autocomplete: [Profile Name]'

Testing:
- Add comprehensive test coverage for all new functionality
- All existing tests pass (40 ProviderSettingsManager, 18 GhostModel,
  165 ghost service, 36 ChatTextArea, 13 settings UI)

Breaking Changes: None
- Existing profiles automatically migrate to 'chat' type
- All changes are backward compatible

Closes #[issue-number]
@changeset-bot
Copy link

changeset-bot bot commented Oct 23, 2025

⚠️ No Changeset found

Latest commit: eb02487

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

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