Skip to content

Conversation

@marc-romu
Copy link
Member

No description provided.

marc-romu and others added 26 commits March 3, 2025 18:19
## Description

This PR adds a new AI Chat component to SmartHopper, providing an
interactive chat interface for communicating with AI providers. The
component allows users to have conversations with AI models while
keeping the Grasshopper canvas responsive.

Key features:

- Interactive chat dialog using Eto.Forms
- Support for multiple AI providers
- Non-modal interface that doesn't freeze the Grasshopper canvas
- Metrics tracking for token usage
- Consistent error handling

## Breaking Changes

No breaking changes.

## Testing Done

- Tested the component with various AI providers
- Verified that the chat dialog opens correctly and doesn't block the
Grasshopper canvas
- Confirmed that messages can be sent and received properly
- Ensured compatibility with C# 7.3

## Checklist

- [x] This PR is focused on a single feature or bug fix
- [x] Version in Solution.props was updated, if necessary, and follows
semantic versioning
- [x] CHANGELOG.md has been updated
- [x] PR title follows [Conventional
Commits](https://www.conventionalcommits.org/en/v1.0.0/) format
- [x] PR description follows [Pull Request Description
Template](#pull-request-description-template)
Automated PR to update version badge in README.md for dev branch

  Changes:
  - Updated version badge to 0.1.2-dev.250303
  - Updated status and color based on version type
…hanges (#55)

## Description

This PR fixes an issue with the AI Chat component where it wouldn't open
the chat dialog when the Run parameter was set to true but no input
values had changed. The component should always run when the Run
parameter is set to true, regardless of input changes.

The fix adds a new RunOnlyOnInputChanges property to the
StatefulAsyncComponentBase class that controls whether a component
should only run when inputs change. This property is set to true by
default for most components, but is set to false for the AI Chat
component, allowing it to run every time the Run parameter is set to
true.

Key changes:

- Added RunOnlyOnInputChanges property to StatefulAsyncComponentBase
- Modified StatefulAsyncComponentBase.SolveInstance to check this
property
- Set RunOnlyOnInputChanges = false in the AIChatComponent constructor

## Breaking Changes

No breaking changes. All existing components will maintain their current
behavior with the default value of RunOnlyOnInputChanges = true.

## Testing Done

- Verified that the AI Chat component now runs every time the Run
parameter is set to true
- Confirmed that other components still only run when their inputs
change

## Checklist

- [x] This PR is focused on a single feature or bug fix
- [x] Version in Solution.props was updated, if necessary, and follows
semantic versioning
- [x] CHANGELOG.md has been updated
- [x] PR title follows [Conventional
Commits](https://www.conventionalcommits.org/en/v1.0.0/) format
- [x] PR description follows [Pull Request Description
Template](#pull-request-description-template)
… currently supported and planned Grasshopper-native types
Automated PR to update version badge in README.md for dev branch

  Changes:
  - Updated version badge to 0.1.2-dev.250308
  - Updated status and color based on version type
…con display (#57)

## Description

This PR introduces a centralized default provider selection and improves
the component icon display when using the default provider. The changes
include:

- Added a dropdown in the settings dialog to select the global default
AI provider
- Modified AIComponentAttributes to display the correct provider icon
when "Default" is selected
- Updated CHANGELOG.md to document these changes
- These changes provide a more intuitive user experience by allowing
centralized configuration of the default provider and ensuring visual
consistency in component display.

Fixes #41

## Breaking Changes

There are no breaking changes in this PR. Existing functionality remains
the same, with added features for better provider management.

## Testing Done

- Tested default provider selection in settings dialog
- Verified correct icon display when "Default" is selected in components
- Checked persistence of default provider setting across sessions

## Checklist

- [x] This PR is focused on a single feature or bug fix
- [x] Version in Solution.props was updated, if necessary, and follows
semantic versioning
- [x] CHANGELOG.md has been updated
- [x] PR title follows [Conventional
Commits](https://www.conventionalcommits.org/en/v1.0.0/) format
- [x] PR description follows [Pull Request Description
Template](#pull-request-description-template)
## Description

This PR includes several enhancements to the user interface:

- Custom Icon for SmartHopper Tab: Added a distinct icon for the
SmartHopper tab in Grasshopper, improving visual recognition.
- AI Chat Component Icon: Placed a proper icon for the AI chat
component, enhancing the overall user experience.
- About Dialog Font Size: Decreased the font size of the About dialog
for better readability and aesthetics.
- Minimum Size for About Dialog: Defined a minimum size for the About
dialog to ensure all content remains accessible and visually appealing,
even when resized.

## Breaking Changes

No breaking changes.

## Testing Done

RH 8.16 on windows.

## Checklist

- [x] This PR is focused on a single feature or bug fix
- [x] Version in Solution.props was updated, if necessary, and follows
semantic versioning
- [x] CHANGELOG.md has been updated
- [x] PR title follows [Conventional
Commits](https://www.conventionalcommits.org/en/v1.0.0/) format
- [x] PR description follows [Pull Request Description
Template](#pull-request-description-template)
Automated PR to update version badge in README.md for dev branch

  Changes:
  - Updated version badge to 0.1.2-dev.250312
  - Updated status and color based on version type
## Description

Migrate changes from main to dev.

## Breaking Changes

None.

## Testing Done

None.

## Checklist

- [x] This PR is focused on a single feature or bug fix
- [x] Version in Solution.props was updated, if necessary, and follows
semantic versioning
- [x] CHANGELOG.md has been updated
- [x] PR title follows [Conventional
Commits](https://www.conventionalcommits.org/en/v1.0.0/) format
- [x] PR description follows [Pull Request Description
Template](#pull-request-description-template)
@marc-romu marc-romu closed this Mar 17, 2025
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