Skip to content

Conversation

@marc-romu
Copy link
Member

@marc-romu marc-romu commented Aug 5, 2025

Description

Reorganized the settings dialog into a tabbed interface to improve navigation and clarity, splitting SmartHopper Assistant and Trusted Providers into separate tabs. Enhanced security by migrating API key encryption to use the OS secure store (DPAPI on Windows, file-based on macOS) with automatic migration of existing keys.

Breaking Changes

None.

Testing Done

  • Verified that the Settings dialog now displays distinct tabs: “General”, “SmartHopper Assistant” and “Providers” and a specific tab per provider, even if they are disabled.
  • Confirmed that existing API keys are detected, re-encrypted with the new OS secure store mechanism, and loaded successfully.
  • Tested on clean and legacy installations to ensure backward compatibility.
  • Ran unit tests covering SmartHopperSettings encryption, decryption, and migration logic.

Checklist

  • This PR is focused on a single feature or bug fix
  • Version in Solution.props was updated, if necessary, and follows semantic versioning
  • CHANGELOG.md has been updated
  • PR title follows Conventional Commits format
  • PR description follows Pull Request Description Template

Copilot AI review requested due to automatic review settings August 5, 2025 07:25
@github-actions github-actions bot added this to the 0.6.0-alpha milestone Aug 5, 2025
@github-actions
Copy link
Contributor

github-actions bot commented Aug 5, 2025

🏷️ This PR has been automatically assigned to milestone 0.6.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 reorganizes the settings dialog into a tabbed interface and enhances API key encryption security. The changes improve user experience by splitting settings into logical tabs (General, Providers, Canvas Assistant, and provider-specific tabs) while migrating to OS-level secure storage for API keys.

  • Implemented tabbed settings dialog with dedicated pages for different configuration areas
  • Enhanced API key encryption using OS secure store (DPAPI on Windows, file-based on macOS/Linux) with automatic migration
  • Added SmartHopper Assistant configuration with dedicated settings model

Reviewed Changes

Copilot reviewed 36 out of 38 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
src/SmartHopper.Menu/Dialogs/SettingsDialog.cs Complete refactor to tabbed interface with separate settings pages
src/SmartHopper.Infrastructure/Settings/SmartHopperSettings.cs Enhanced encryption system with OS secure store and migration logic
src/SmartHopper.Menu/Dialogs/SettingsTabs/*.cs New tab pages for different settings categories
Provider classes Code style improvements and nullable annotations
src/SmartHopper.Infrastructure/Settings/SmartHopperAssistantSettings.cs New settings model for assistant configuration
Comments suppressed due to low confidence (3)

src/SmartHopper.Infrastructure/Settings/SmartHopperSettings.cs:504

  • The conditional compilation directive 'WINDOWS' may not be defined. Consider using 'NET7_0_OR_GREATER && WINDOWS' or the proper target framework conditional compilation symbols.
#if WINDOWS

src/SmartHopper.Infrastructure/Settings/SmartHopperSettings.cs:557

  • Same conditional compilation issue - 'WINDOWS' may not be defined. Use proper target framework conditionals like 'NET7_0_OR_GREATER && WINDOWS'.
#if WINDOWS

src/SmartHopper.Core.Grasshopper/AITools/web_generic_page_read.cs:30

  • Class name 'web_generic_page_read' does not follow C# naming conventions. Should be PascalCase, e.g., 'WebGenericPageRead'.
    public class web_generic_page_read : IAIToolProvider

marc-romu and others added 5 commits August 5, 2025 09:28
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
…ttings.cs

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@marc-romu marc-romu merged commit 3744174 into dev Aug 5, 2025
10 checks passed
@github-actions github-actions bot deleted the feature/0.6.0-settings branch August 5, 2025 07:40
@marc-romu marc-romu modified the milestones: 0.6.0-alpha, 1.0.0-alpha Oct 11, 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.

2 participants