Skip to content

feat: BYOK settings, editable preview, and quiet installer - #15

Merged
Robusr merged 5 commits into
mainfrom
feat/byok-settings-workflow
Nov 6, 2026
Merged

Robusr merged 5 commits into
mainfrom
feat/byok-settings-workflow

Conversation

@Robusr

@Robusr Robusr commented Nov 6, 2026

Copy link
Copy Markdown
Owner

Summary

  • Server: accept per-request BYOK overrides via X-LLM-API-Key, X-LLM-Base-URL, and X-LLM-Model. Validate length and scheme, honour VULCAN_ALLOW_CUSTOM_LLM_BASE_URL, and fall back to QINIU_*.
  • Client: new settings dialog (server URL, shared token, provider key/base URL/model) stored in %APPDATA%\Vulcan\settings.json with DPAPI-encrypted secrets; test-connection and log-folder buttons; server URL/token resolution is argument → settings → environment.
  • Workflow: every generated tree opens in an editable JSON preview and SolidWorks is only touched after confirmation; cancelling leaves the document untouched.
  • Packaging: install.bat / uninstall.bat self-elevate via PowerShell RunAs and support /quiet; Inno Setup runs them silently.
  • Docs: README (en/zh/fr) and SECURITY.md updated for settings, headers, preview, and install flow.

Testing

  • pytest in release/server: 46 passed, 88.79% coverage (CI gate 85%).
  • Client builds via msbuild Vulcan.SolidWorksClient.sln -p:Configuration=Release -p:Platform=x64.
  • SettingsStore DPAPI round-trip exercised against the built assembly; the settings file contains no plaintext key or token.

🤖 Generated with Claude Code

Robusr and others added 5 commits November 7, 2026 02:46
Allow clients to override the upstream provider for a single request via
X-LLM-API-Key, X-LLM-Base-URL, and X-LLM-Model headers. Omitted headers
fall back to the QINIU_* configuration. Validate key and base URL length,
require an http(s) scheme, and honour VULCAN_ALLOW_CUSTOM_LLM_BASE_URL so
a shared server can refuse client-supplied endpoints. Add BYOK tests and
update the existing app tests for the new keyword arguments.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Store server URL, shared token, and BYOK provider settings in
%APPDATA%\Vulcan\settings.json. Encrypt ServerToken and LlmApiKey with
Windows DPAPI for the current user. Add a code-only settings window with
test-connection and log-folder buttons, and make ApiClient resolve the
server URL and token from explicit arguments, saved settings, then
environment variables. Forward BYOK values as X-LLM-* headers and add a
health check for the dialog. Reference System.Security and compile the
new files.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Open every generated feature tree in an editable JSON window and write to
SolidWorks only after the user confirms. Validate that the edited JSON
still contains a feature type or feature list with params, surface parse
errors in the dialog, and allow cancelling without touching the document.
Add a settings button to the main panel and build a fresh ApiClient per
request so saved settings apply immediately.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Relaunch install.bat and uninstall.bat through PowerShell with RunAs when
the shell is not elevated, so a double-click no longer requires a manual
admin prompt. Add a /quiet mode that suppresses pause and reports failures
through the exit code, and pass /quiet from the Inno Setup [Run] and
[UninstallRun] entries for a silent install and uninstall.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Add capability rows for bring-your-own-key, the editable preview, and
quiet install/uninstall. Replace the client environment-variable section
with the settings dialog, the resolution order, the settings file path,
and the X-LLM-* headers. Update the quick start, API reference,
troubleshooting tables, roadmap, and project structure in English,
Chinese, and French. Note the DPAPI storage and the shared-server
override switch in SECURITY.md.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@Robusr
Robusr merged commit 82e56f5 into main Nov 6, 2026
6 checks passed
@Robusr
Robusr deleted the feat/byok-settings-workflow branch November 6, 2026 18:51
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.

1 participant