Skip to content

Conversation

@marc-romu
Copy link
Member

No description provided.

# SmartHopper 1.0.0: Canvas Button, Component Badges & New Providers

This release introduces many exciting features; that's why the version
is bumped to 1.0!! The Canvas button for a live assistance chat,
component badges for model compatibility, new providers, and enhanced
stability and security.

## 🎨 Canvas Button
- New button on the top-left corner of your canvas to trigger an AI chat
with SmartHopper Assistant.
- Designed to help with Grasshopper tasks and equipped with tools for
valuable information and basic tasks.
- Can be hidden in settings if not needed.

## 🏷️ Component Badges
- New badges display model compatibility with components before running
them.
- Green tick badge for verified models (gpt-5-mini from OpenAI and
mistral-small-latest from MistralAI).
- Blue badge indicates automatic replacement of incompatible models with
compatible defaults.
- Red badge indicating that no model was found compatible.

## 🤖 New Providers
- Added support for **Anthropic** and **OpenRouter**, alongside
MistralAI, OpenAI, and DeepSeek.

## ✨ Other Improvements
- Internal improvements for stability and expandability.
- Encrypted API keys with individualized keys for enhanced security.

## 🛠️ Technical Requirements
- Rhino 8.19 or above
- Windows 10/11 (macOS untested)
- Valid API keys for chosen providers (OpenAI, MistralAI, DeepSeek,
Anthropic, OpenRouter)

## ⚠️ Important Notes
- Settings file will rewrite on the first run due to security
enhancements. Save your API keys again if you encounter issues.
- Image generation currently supports only OpenAI DALL·E models.
- Automatic model fallback may override user-selected models to meet
component requirements. You will see a blue badge on the component
indicating that the model was replaced.
- API usage costs apply based on your provider plan.

## 🤝 We Value Your Feedback!
- Share your experiences and suggestions via the [discussion
forum](https://github.com/architects-toolkit/SmartHopper/discussions)
- Report issues or request features on the [issue
tracker](https://github.com/architects-toolkit/SmartHopper/issues)
- Contribute to a better SmartHopper!

Happy designing! 🎨
# SmartHopper 1.0.1-alpha: Enhanced Model Support & Error Handling [Patch]

This patch release introduces significant improvements to model handling, error reporting, and tool usability, along with several important bug fixes.

## Detailed list of changes:

- **Enhanced Model Support**:
  - Added support for any model name, even if not explicitly listed in the provider's registry
  - Expanded the provider's database with more predefined models

- **Tooling Improvements**:
  - Enhanced AI Tool descriptions with better guided instructions
  - Added specialized wrappers for common Grasshopper operations (selection, visibility, grouping, etc.)
  - Improved `list_filter` tool with better natural language support for filtering, sorting, and reordering

- **Bug Fixes**:
  - Fixed model badge display to correctly show "invalid model" status ([#332](#332), [#329](#329))
  - Improved error message visibility in WebChat UI, especially for HTTP 400 and token limit errors ([#334](#334))
  - Fixed `list_filter` tool's automatic sorting and deduplication issues ([#335](#335))

- **Technical Improvements**:
  - Centralized error handling in AIReturn and tool calls
  - Enhanced metric aggregation in Conversation Sessions
  - Improved error handling to ensure all error messages are properly surfaced to users
# SmartHopper 1.1.0-alpha: Smarter GhJSON & knowledge tools

This alpha release focuses on a modern GhJSON/property system and
powerful knowledge tools for McNeel forum and web—plus foundational
scripting improvements that prepare SmartHopper for richer script
workflows in future releases.

## 🌐 Knowledge tools for McNeel forum, web & Rhino files

- McNeel forum AI tools:
- `mcneel_forum_search` with configurable result limits and raw JSON
post payloads.
- `mcneel_forum_post_get` (renamed from `web_rhino_forum_read_post`) to
fetch full posts by ID.
- `mcneel_forum_post/topic_summarize` to generate AI‑powered summaries
of forum threads.
- `web_generic_page_read` now returns clean, context‑aware text for:
- Wikipedia/Wikimedia, Discourse forums, GitHub/GitLab file URLs, and
Stack Exchange questions via official APIs.

## 📦 Modern GhJSON & Property Management V2

- New `PropertyManagerV2` architecture with:
  - Clear separation of filtering, extraction, and application.
- `PropertyFilter`, `PropertyHandlers`, `PropertyFilterConfig`,
`SerializationContext`, and `ComponentCategory` for precise,
scenario‑aware property control.
- GhJSON optimization:
  - Groups only include members that are part of the current selection.
- Runtime‑only properties (`VolatileData`, `IsValid`, `ReferenceID`,
`IsGeometryLoaded`, etc.) are removed to keep JSON compact.
- Fixed contradictory whitelist/omit rules and simplified
`ComponentProperty` (removed `Type` and `HumanReadable`).
- Enhanced GhJSON schema:
- Rich parameter metadata: `parameterName`, `dataMapping`, `simplify`,
`reverse`, `invert`, `unitize`, `expression`, `variableName`,
`isPrincipal`, `locked`.
- Unified `value` property for component state across sliders, panels,
scribbles, scripts, and value lists.
- Extended component schema with `Id`, `Params`, `InputSettings`,
`OutputSettings`, and `ComponentState`.
- Removed redundant/implicit fields (`expressionContent`, `access`,
`description`, `optional`, type/object metadata).
- **BREAKING**: The enhanced schema is now the default for all `gh_get`
and `gh_put` operations, with legacy `Pivot` preserved for positioning
compatibility.

## 🧠 Preparing advanced scripting workflows

- Lays the groundwork for future scripting-focused releases with robust
VB Script and script component handling:
- Full 3‑section VB Script serialization/deserialization (`imports`,
`script`, `additional`) with a dedicated `VBScriptCode` model and
`vbCode` support in `ComponentState`.
- GhJSON now extracts and restores VB Script code via ScriptSource
properties (`UsingCode`, `ScriptCode`, `AdditionalCode`) using
reflection.
- Script components implement `IGH_VariableParameterComponent` for
reliable dynamic parameter creation/removal:
- Parameter settings applied via `CreateParameter`/`DestroyParameter`
and `VariableParameterMaintenance()` with names, optional flags, and
modifiers.
- All script parameter and code operations are wrapped in
`RhinoApp.InvokeOnUiThread()` to keep the Rhino/Grasshopper UI
responsive and stable.
- New unified `script_generator` AI tool replaces legacy `script_new`
and `script_edit`, creating or editing script components from natural
language and optional component GUIDs—forming the base for richer
scripting assistants in upcoming versions.

## 🧪 Reliability, workflows & test coverage

- Utility helpers for centralized Grasshopper/Rhino operations:
- `GHConnectionUtils`, `GHGenerateUtils`, `RhinoFileUtils`,
`RhinoGeometryUtils`.
- `SelectingComponentBase` now persists selected objects across file
save/load, including restored selection counts and graceful handling of
missing objects.
- New `SmartHopper.Core.Grasshopper.Tests` project:
  - 40+ `AIResponseParserTests` covering complex parsing and edge cases.
- 30+ `PropertyManagerTests` validating type conversion and persistent
data behavior.
- Hotfix workflow system:
- Automated hotfix branch creation, version bumping, conflict‑safe
milestone updates, and fully documented hotfix pipelines.
- Extended CI validations and test workflows for `hotfix/**` and
`release/**` branches.

## 🛠️ Technical Requirements

- Rhino 8.24 or above is required
- Windows 10/11 (macOS has not been tested)
- Valid API keys for at least one supported AI provider (MistralAI,
OpenAI, DeepSeek, Anthropic, OpenRouter)

## ⚠️ Important Notes

- This is an alpha release with some features still unstable or subject
to change.
- API keys are required, and usage costs apply based on your provider
and model choices.
- Documentation is actively evolving to cover the new GhJSON schema,
scripting tools, and knowledge workflows.

## 🤝 We Value Your Feedback!

Help shape SmartHopper’s future by:

- Sharing your experiences with the new GhJSON, scripting, and knowledge
tools
- Suggesting improvements via our
[discussions](https://github.com/architects-toolkit/SmartHopper/discussions)
- Telling us what AI capabilities or workflows would help your
Grasshopper/Rhino practice most

We hope you enjoy these new features and improvements!

Happy designing! 🎨
Copilot AI review requested due to automatic review settings November 23, 2025 23:28
@marc-romu marc-romu merged commit a68fa1a into dev Nov 23, 2025
20 of 21 checks passed
@github-actions github-actions bot added this to the 1.1.0-alpha milestone Nov 23, 2025
@github-actions
Copy link
Contributor

🏷️ This PR has been automatically assigned to milestone 1.1.0-alpha based on the version in Solution.props.

Copy link
Contributor

Copilot AI left a 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 refactors the release workflow to simplify how release information is accessed by removing an intermediate step that set environment variables.

  • Removes the "Set Release Info" step that created job-level environment variables
  • Uses step outputs and GitHub context directly instead of environment variables
  • Scopes the RELEASE_VERSION environment variable to only the step that needs it

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

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.

2 participants