SmartHopper 1.4.3: macOS Compatibility, Provider Security, and Smarter AI Canvas Tools
This patch promotes the 1.4.3 release candidate to a stable release with no additional changes. From the last stable release (1.2.4), this release provides full macOS support through Yak/Rhino Package Manager, a safer cross-platform provider verification system, an updated AI model catalog, and more reliable AI-generated script placement on the Grasshopper canvas.
Detailed list of changes
🖥️ macOS Compatibility
- Full Yak/Rhino Package Manager support for macOS, including fixes for race conditions, GhJSON validation, JSON parsing, and URL handling.
- First release open to everyone (not just as a pre-release) as macOS-compatible through Yak/Rhino Package Manager.
- Platform-appropriate provider security: Authenticode + hash verification on Windows, hash-only on macOS.
- Fixes "Compatibility with Mac" (#263) and macOS-specific issues in 1.4.0-alpha (#389, #393, #395).
🔒 Provider Security
- SHA-256 hash verification for AI provider DLLs.
- Three-tier verification modes: Soft, Hard, and Strict.
- Manual verification menu item and a comprehensive status dialog.
- Improved offline detection, caching, and reduced timeout for faster hash checks.
🛠️ Grasshopper Components & Canvas Tools
- Component name alias resolution: AI tools can use informal names like "python" or "slider" and resolve them to canonical Grasshopper components via the live component server before GhJSON placement.
script_generateoutput is now correctly placed by the GhPlace component.gh_putcan instantiate components when the AI uses informal component names.- Script code is now properly applied to placed script components after alias resolution.
AIScriptGeneratorrenamed toAIScriptGeneratefor consistent naming.- Fixed
Idmissing GhJSON validation errors in script tools.
🤖 AI Models
- Refreshed model registries across Anthropic, DeepSeek, Gemini, MistralAI, OpenAI, and OpenRouter.
- Adjusted default models and rankings across providers based on official documentation.
⚙️ Settings & UI
- Enhanced About Dialog now shows the current SmartHopper version and platform information.
- Fixed encryption initialization to use local hash storage.
- Improved provider status dialog messaging, sizing, and text wrapping.
🏗️ Infrastructure & Stability
- Improved provider stability, thread safety, and timeout handling.
- Centralized canvas connection and replacement logic to preserve external wires during component replacement.
- Improved AI capability bit ordering and model catalog consistency.
🛠️ Technical Requirements
- Rhino 8.24 or above is required
- Windows 10/11 or macOS
- Valid API keys for at least one supported AI provider
⚠️ Important Notes
- API keys are required, and usage costs apply based on your provider and model choices
- Selecting the right provider and model for each task is key to getting the best results and requires some trial and error.
🚀 Getting Started
- Install SmartHopper in Grasshopper
- Add your API key in SmartHopper Settings
- Click the SmartHopper button on the canvas to start chatting
- Drag AI components onto your canvas for specific tasks
- Explore a new endless world of possibilities with SmartHopper!
🤝 We Value Your Feedback!
Help shape SmartHopper's future by:
- Sharing your experiences with the stable release
- Suggesting new features or improvements via our discussion
- Reporting any issues to help us maintain stability
- Telling us what AI capabilities would help your workflow most
SmartHopper is your creative partner in Grasshopper. Let's build something amazing together.
Happy designing! 🎨
Auto-generated release notes
What's Changed
- refactor(ghjson): externalize GhJSON libraries to ghjson-dotnet package by @marc-romu in #374
- chore: update development version date to 1.3.0-dev.260208 by @github-actions[bot] in #375
- chore: add automated copyright year update workflow and centralize metadata in Directory.Build.props by @marc-romu in #376
- refactor(ghjson): externalize GhJSON libraries to ghjson-dotnet NuGet packages by @marc-romu in #379
- chore: prepare release 1.3.0-alpha with version update and code style fixes by @github-actions[bot] in #380
- release/1.3.0-alpha by @github-actions[bot] in #381
- fix(core): add macOS compatibility for provider loading and URL handling by @nofcfy-fanqi in #382
- feat(security): add SHA-256 provider verification and macOS compatibility improvements by @marc-romu in #383
- chore: prepare release 1.4.0-alpha with version update and code style fixes by @github-actions[bot] in #384
- release/1.4.0-alpha by @github-actions[bot] in #385
- chore: add provider hash manifest for 1.4.0-alpha by @github-actions[bot] in #386
- chore: add provider hash manifest for 1.4.0-alpha by @github-actions[bot] in #388
- update dev from main by @marc-romu in #390
- chore: update 263-compatibility-with-mac from dev by @marc-romu in #391
- fix(core): resolve macOS issues in 1.4.0-alpha — deadlock, GhJSON validation, and JSON parsing by @nofcfy-fanqi in #389
- feat(infrastructure): enhance provider security verification and macOS compatibility by @marc-romu in #397
- docs: update contributors section for dev by @github-actions[bot] in #398
- chore: prepare release 1.4.1-alpha with version update and code style fixes by @github-actions[bot] in #399
- chore: remove date from version for main release by @github-actions[bot] in #401
- release/1.4.1-alpha by @github-actions[bot] in #400
- chore: add provider hash manifest for 1.4.1-alpha by @github-actions[bot] in #403
- ci: fixed github pages deployment by @marc-romu in #404
- fix(tools): prevent GhJSON Id missing errors in script_edit and script_generate by @marc-romu in #406
- docs: update contributors section for dev by @github-actions[bot] in #407
- chore: prepare release 1.4.2-alpha with version update and code style fixes by @github-actions[bot] in #408
- release/1.4.2-alpha by @github-actions[bot] in #409
- chore: add provider hash manifest for 1.4.2-alpha by @github-actions[bot] in #410
- ci: enhance milestone management and release automation workflows by @marc-romu in #411
- ci: new automatic milestone management, automatic update to yak, and release stages manager by @marc-romu in #412
- chore: prepare release 1.4.2-beta with version update and code style fixes by @github-actions[bot] in #422
- release/1.4.2-beta by @github-actions[bot] in #426
- chore: add provider hash manifest for 1.4.2-beta by @github-actions[bot] in #427
- chore: add provider hash manifest for 1.4.2-beta by @github-actions[bot] in #428
- chore: add provider hash manifest for 1.4.2-beta by @github-actions[bot] in #429
- [patch] ci: add reusable cherry-pick action and patch propagation workflow for multi-branch commit fan-out → dev-1.4.2 by @github-actions[bot] in #431
- [patch] ci: add patch/ prefix to auto-delete branch patterns in PR cleanup workflow → dev-1.4.2 by @github-actions[bot] in #434
- [patch] feat(model-registry): refresh AI model catalog across all providers with Apr 2026 updates and rebalance rankings → dev-1.4.2 by @github-actions[bot] in #436
- [patch] docs(changelog): correct OpenAI gpt-5.5 rank and Anthropic claude-opus-4-7 default capabilities; align OpenRouter mirrored model defaults with native OpenAI provider → dev-1.4.2 by @github-actions[bot] in #437
- ci: automate release notes generation with Mistral AI by @devin-ai-integration[bot] in #439
- ci: add concurrency controls, promotion freeze, auto-discover branches, and CI improvements by @devin-ai-integration[bot] in #442
- docs(rules): clarify Windsurf guidance by @devin-ai-integration[bot] in #443
- docs: update contributors section for main by @github-actions[bot] in #445
- chore: sync main → dev-1.4.2 by @github-actions[bot] in #449
- ci(models): automated provider model discovery via OpenRouter API by @marc-romu in #453
- chore: anonymize SmartHopperPublicKey for main by @github-actions[bot] in #454
- chore: sync main → dev-1.4.2 (infra + provider models) by @github-actions[bot] in #452
- chore: sync main → dev-1.4.2 (infra + provider models) by @github-actions[bot] in #460
- chore: sync main → dev-1.4.2 (infra + provider models) by @github-actions[bot] in #468
- chore: sync main → dev-1.4.2 (infra + provider models) by @github-actions[bot] in #471
- chore: prepare release 1.4.2-rc with version update and code style fixes by @github-actions[bot] in #481
- chore: sync main → dev-1.4.2 (infra + provider models) by @github-actions[bot] in #484
- chore: sync main → dev-1.4.2 (infra + provider models) by @github-actions[bot] in #486
- release/1.4.2-rc by @github-actions[bot] in #482
- fix: backport robust JSON recovery pipeline for scriptgenerate/ghput interaction by @devin-ai-integration[bot] in #494
- chore: sync main → dev-1.4.2 (infra + provider models) by @github-actions[bot] in #492
- chore: sync main → dev-1.4.2 (infra + provider models) by @github-actions[bot] in #504
- chore: sync main → dev-1.4.2 (infra + provider models) by @github-actions[bot] in #506
- feat: add component name alias resolution for AI-generated GhJSON by @devin-ai-integration[bot] in #507
- fix: resolve component aliases via live server GUID lookup for script code placement by @devin-ai-integration[bot] in #508
- chore: prepare release 1.4.3 with version update and code style fixes by @github-actions[bot] in #510
- release/1.4.3 by @github-actions[bot] in #511
- release/1.4.3 by @github-actions[bot] in #642
New Contributors
- @nofcfy-fanqi made their first contribution in #382
Full Changelog: 1.2.4...1.4.3