Conversation
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
Bundle Size Report 📦
Bundle Analysis ReportsThe detailed bundle analysis reports are available in the workflow artifacts:
Download the artifacts from the workflow run to view interactive visualizations. Bundle size tracking is now active! This helps prevent bundle bloat. |
There was a problem hiding this comment.
Pull request overview
Adds an application-level HTTP proxy setting to ToolBox, wiring it from the settings UI through persisted user settings and into the Electron main process so proxy configuration can be applied at runtime.
Changes:
- Introduces
httpProxyin shared/renderer settings types and SettingsManager defaults. - Adds a “Network / HTTP Proxy” field to the Settings sidebar and exposes it via global settings search.
- Applies proxy configuration on startup and immediately after settings updates via
session.defaultSession.setProxy(...).
Reviewed changes
Copilot reviewed 7 out of 7 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| src/renderer/types/index.ts | Extends renderer settings state with httpProxy. |
| src/renderer/modules/settingsManagement.ts | Loads/saves the HTTP proxy setting from the sidebar UI into user settings updates. |
| src/renderer/modules/globalSearchManagement.ts | Adds “HTTP Proxy” as a searchable settings entry with focus target. |
| src/renderer/index.html | Adds the Network settings section and HTTP proxy input/help text. |
| src/main/managers/settingsManager.ts | Adds httpProxy default to persisted user settings. |
| src/main/index.ts | Applies proxy settings at startup and upon settings updates; adds applyProxySettings. |
| src/common/types/settings.ts | Adds httpProxy to the shared UserSettings interface. |
You can also share your feedback on Copilot code review. Take the survey.
| logError(err instanceof Error ? err : new Error(String(err))); | ||
| }); | ||
| // Configure Node.js native network requests (main process fetch, http, https) | ||
| process.env.HTTP_PROXY = trimmed; | ||
| process.env.HTTPS_PROXY = trimmed; | ||
| logInfo(`[Proxy] HTTP proxy configured: ${redacted}`); |
| // Apply saved proxy settings before any network requests (apply even if empty to clear any env vars) | ||
| const savedProxy = this.settingsManager.getSetting("httpProxy"); | ||
| if (savedProxy !== undefined) { | ||
| this.applyProxySettings(savedProxy); |
| <div class="settings-field"> | ||
| <label class="setting-label" for="sidebar-http-proxy-input">HTTP Proxy</label> | ||
| <input type="text" id="sidebar-http-proxy-input" class="fluent-input" placeholder="http://user:password@host:port" /> | ||
| <span class="setting-hint">Leave empty for a direct connection. Format: <code>http://user:password@host:port</code>. Credentials are stored in plain text in local settings. Applies to all ToolBox network requests on save.</span> |
| <input type="text" id="sidebar-http-proxy-input" class="fluent-input" placeholder="http://user:password@host:port" /> | ||
| <span class="setting-hint">Leave empty for a direct connection. Format: <code>http://user:password@host:port</code>. Credentials are stored in plain text in local settings. Applies to all ToolBox network requests on save.</span> |
|
the dataverse and rest of the connection are not going through the proxy. Need a real proxy config to test it fully. Will need to create a separate build for this and share it with someone who has proxy configured |
Adds a user-configurable HTTP proxy setting so ToolBox can route all outbound internet traffic through a corporate or custom proxy server.
Changes
Types & persistence
UserSettings.httpProxy?: string— new field, defaults to""(no proxy)SettingsState.httpProxy?: string— tracked for change detection in rendererSettingsManagerdefault:httpProxy: ""Main process proxy application (
src/main/index.ts)applyProxySettings(url)— setssession.defaultSession.setProxy()(Chromium/BrowserViews) andprocess.env.HTTP_PROXY/HTTPS_PROXY(Node.jsfetch,http,https)!== undefinedto correctly handle clearing a proxy back to"")UPDATE_USER_SETTINGSincludes anhttpProxychangeUI
******host:port)Original prompt
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.