-
Notifications
You must be signed in to change notification settings - Fork 0
feat(release): 0.3.0-alpha with AI tools, UI enhancement, security enhancements, and ci tests #180
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…h .github (#154) ## Branch Update This PR updates `marc-romu/chat` with changes from `marc-romu/workflows` for the path `.github`. ### ℹ️ Protected Branch This PR was created because `marc-romu/chat` is a protected branch that requires changes through pull requests. ### Instructions 1. Review the changes 2. Approve and merge the changes This PR was automatically created by the Branch Update workflow.
## Branch Update This PR updates `dev` with changes from `main` for the path `.github`. ### ℹ️ Protected Branch This PR was created because `dev` is a protected branch that requires changes through pull requests. ### Instructions 1. Review the changes 2. Approve and merge the changes This PR was automatically created by the Branch Update workflow.
## Branch Update This PR updates `marc-romu/chat` with changes from `main` for the path `.github`. ### ℹ️ Protected Branch This PR was created because `marc-romu/chat` is a protected branch that requires changes through pull requests. ### Instructions 1. Review the changes 2. Approve and merge the changes This PR was automatically created by the Branch Update workflow.
## Description This PR introduces a new Grasshopper component `GhRetrieveComponents` and its AI tool counterpart `ghretrievecomponents`. They provide a unified way to enumerate all installed Grasshopper components, returning for each: - Name, GUID, category, subcategory, description, keywords - Detailed lists of input and output parameters (name, description, data type, access) This enhancement enables AI-driven workflows and script-based discovery of component metadata and parameter signatures. ## Breaking Changes None. ## Testing Done - Manual validation in Grasshopper: `GhRetrieveComponents` lists components correctly. - AI script invocation of `ghretrievecomponents` returns valid JSON with expected fields. - Added unit tests for parameter introspection via `GHParameterUtils`. ## 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)
… subcategories in the file
… subcategories of components (#167) ## Description - Introduces a new `ghcategories` AI tool in [GhTools](cci:2://file:///c:/Users/Marc%20Roca/source/repos/architects-toolkit/SmartHopper/src/SmartHopper.Core.Grasshopper/Tools/GhTools.cs:31:4-536:5) that lists all Grasshopper component categories and their subcategories. - Adds an optional `"filter"` parameter: normalizes the input (removes `,;_-`), splits by space, and performs a case‑insensitive “soft” match against category and subcategory names. - Updates the `ghretrievecomponents` tool’s `categoryFilter` description to point users to `ghcategories` for a full list of available categories. ## Breaking Changes None. ## Testing Done RH8.18 on windows, using AiChat. ## 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)
…ew (#168) ## Description Introduces a new `ghtogglepreview` tool in `GhVisTools` allowing users to programmatically turn Grasshopper component preview on or off by GUID. Utilizes `GHCanvasUtils.FindInstance` and `GHComponentUtils.SetComponentPreview` with debug logging for tracing. ## Breaking Changes None. ## Testing Done - Manually invoked `ghtogglepreview` via AIChatComponent with valid component GUIDs. - Verified preview state toggles and canvas redraw occurs without errors. - Checked debug output to confirm object lookup and state changes. ## 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)
…abled) of components in canvas
…abled) of components in canvas (#169) ## Description Introduces a new `ghtogglelocked` tool in `GhObjTools` allowing users to programmatically turn Grasshopper component on or off by GUID (enabling and disabling(. Utilizes `GHCanvasUtils.FindInstance` and `GHComponentUtils.SetComponentLock` with debug logging for tracing. ## Breaking Changes None ## Testing Done Tried in RH8.18 on windows, with the AiChat interface. ## 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)
This PR updates the development version date in Solution.props to reflect the latest changes. This is an automated PR created by the Update Development Version Date workflow.
…with smarthopper logo
…cements (#178) ## Description This PR introduces several improvements and fixes across the codebase: - **feat(webtools):** Added new tools to retrieve HTML and JSON from the web, expanding SmartHopper's integration capabilities. - **docs(changelog):** Updated documentation to reflect recent changes. - **fix(ghget):** Re-enabled the select button function in the GhGet component, restoring intended UI interactivity. - **feat(dialogs):** Added the SmartHopper logo to WebChat, message, about, and settings dialogs for improved branding and a cohesive look. - **feat(messagebox):** Enhanced error, warning, and information dialogs with a good-looking design and SmartHopper logo. - **ci(workflows):** Updated CI configuration to add permissions for dotnet test workflows, improving CI security and reliability. These changes collectively improve user experience, maintainability, and integration with external web resources. ## Breaking Changes No breaking changes. ## Testing Done - Manual testing of new web tools for HTML and JSON retrieval. - Verified visual updates in dialogs and message boxes. - Confirmed the select button works in GhGet. - CI workflows validated on recent pushes. ## 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)
This PR updates the version badge in the README.md to match the current version in Solution.props. This is an automated PR created by the Update Version Badge workflow.
Contributor
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR introduces the 0.3.0‑alpha release with enhancements to AI & Grasshopper tools, UI improvements, and improved security and CI workflows.
- Added multiple AI toolbox commands for component listing, category filtering, preview toggling, and object movement.
- Refactored test component files for cleaner using directives and updated build and release pipelines for .NET 7 and signing.
Reviewed Changes
Copilot reviewed 78 out of 86 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| src/SmartHopper.Components.Test/Misc/TestStatefulTreePrimeCalculatorComponent.cs | Updated using statements for Bitmap types. |
| src/SmartHopper.Components.Test/Misc/TestStatefulPrimeCalculatorComponent.cs | Same update as above with improved readability. |
| src/SmartHopper.Components.Test/Misc/TestAsyncPrimeCalculatorComponent.cs | Removed unused Windows.Forms and streamlined using. |
| src/SmartHopper.Components.Test/Misc/TestAIStatefulTreePrimeCalculatorComponent.cs | Consistent update for using System.Drawing. |
| RELEASE_CHECKLIST.md | Added checklist item for cleaning up old settings. |
| README.md | Updated badges, description, and usage examples. |
| LIMITATIONS.md | Removed outdated limitations documentation. |
| CONTRIBUTING.md | Added Visual Studio 2022 setup instructions. |
| CHANGELOG.md | Documented all changes including breaking and fixed items. |
| .github/workflows/release-build.yml | Updated CI release workflow for signing and SDK setup. |
| .github/workflows/ci-dotnet-tests.yml | Introduced a new workflow for .NET CI tests. |
| .github/labels.yml | Added and updated GitHub labels for new components/features. |
Files not reviewed (8)
- .github/CODEOWNERS: Language not supported
- .windsurfrules: Language not supported
- Directory.Build.props: Language not supported
- Directory.Build.targets: Language not supported
- Sign-Authenticode.ps1: Language not supported
- Sign-StrongNames.ps1: Language not supported
- SmartHopper.sln: Language not supported
- Solution.props: Language not supported
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
AI & Grasshopper Tools
GhRetrieveComponents+ghretrievecomponents) lists types, inputs/outputs, keywordsGhGetComponents) supports include/exclude tag filters and type‐based filteringghcategories(list component categories)ghtogglepreview/ghtogglelock(toggle preview/lock by GUID)ghmoveobj(move component pivot by GUID)UI & UX Improvements
StyledMessageDialogfor polished info/warning pop-upsRhinoApp.InvokeOnUiThreadfor reliabilityProvider Security & Initialization
SmartHopperInitializerfor safe startupCI & Testing
Breaking Changes
GhGetComponents→GhGetComponent(schema updated)FilterListAsyncnow returns indices; downstream list construction moved toAIListFilterToolFunction/ToolArgumentin AIResponse replaced byAIToolCallUnder-the-Hood (Internal)
SmartHopper.Core.GrasshopperProviderManager,SmartHopperSettings, andAIStatefulAsyncComponentBaseSmartHopperInitializer,AIToolCall,StyledMessageDialogTesting Done
Checklist