Skip to content

SmartHopper 1.4.3: macOS Compatibility, Provider Security, and Smarter AI Canvas Tools

Choose a tag to compare

@github-actions github-actions released this 05 Jul 21:36

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_generate output is now correctly placed by the GhPlace component.
  • gh_put can instantiate components when the AI uses informal component names.
  • Script code is now properly applied to placed script components after alias resolution.
  • AIScriptGenerator renamed to AIScriptGenerate for consistent naming.
  • Fixed Id missing 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

  1. Install SmartHopper in Grasshopper
  2. Add your API key in SmartHopper Settings
  3. Click the SmartHopper button on the canvas to start chatting
  4. Drag AI components onto your canvas for specific tasks
  5. 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

Full Changelog: 1.2.4...1.4.3