[Fix] Resolve scoped npm package paths when launching tools - #643
Closed
martintoelk wants to merge 3 commits into
Closed
[Fix] Resolve scoped npm package paths when launching tools#643martintoelk wants to merge 3 commits into
martintoelk wants to merge 3 commits into
Conversation
…owerPlatformToolBox#612) * fix: update version to 1.2.0 in package.json * handle entity collection bound action/function correctly (#445) * correctly handle dates in function parameters (formatFunctionParameter) (#446) * fix: update preflight job condition to correctly handle pull request events * feat: enhance preflight checks with detailed failure comments for release notes and version validation * feat: enhance preflight checks with detailed error reporting for version validation and release notes * chore: update release notes for version 1.2.0 with new highlights, fixes, and developer changes * fix: update version to 1.2.1 in package.json and 1.2.1-beta.0 in packages/package.json * fix: adjust loading overlay window settings to avoid conflicts with system modals. fix for [Bug]: Update is above all windows, not just toolbox Fixes #447 * fix: enable protocol handling in development mode with environment variable check (#452) * Add search clear buttons to sidebar search inputs #442 (#451) * Remove alwaysOnTop property from loading overlay and update auto-update notification modal to prevent covering system dialogs * Add search clear buttons to sidebar search inputs * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * Add clear buttons to search inputs in select connection modals * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Power-Maverick <danish.naglekar@hotmail.com> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * Implement "What's New" feature with auto-update notification (#453) * feat: implement "What's New" feature with auto-update notifications and markdown rendering * feat: enhance "What's New" feature to support insider version detection and update URLs accordingly * Fix: Inject PPTB_UPDATES_ORIGIN into renderer CSP at build time (#454) * Initial plan * fix: make CSP reflect configured PPTB_UPDATES_ORIGIN at build time via Vite transformIndexHtml Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * refactor: replace duplicate escapeHtml in markdown.ts with shared import from toolIconResolver (#457) --------- Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * Feature/tab context menu (#456) * feat: add native context menu support with IPC integration for tabs * fix: format grantCspConsent function for improved readability * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * Bugfix * Bugfix context menu position --------- Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * feat: Allow sharing of connection files (import/export) (#444) * Initial plan * feat: add connection import/export with warning for incomplete credentials Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> * fix: update color adjustment method for connection warning in light theme * fix: improve import/export UI layout, fix theme-aware icons, add export by category Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> * fix: always show category export button and make it theme-aware Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * fix: address unresolved code review comments (error normalization, UUID, accessibility) Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> Co-authored-by: Power-Maverick <danish.naglekar@hotmail.com> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * Fix: Wrong BrowserView dimensions and connection prompt after force-reload (#461) * Initial plan * Fix refresh issue: correct BrowserView dimensions and restore session with saved connections Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> * Fix closeAllToolViews to also close terminals and revoke filesystem access per instance Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> * Settings opens as a tab with VSCode-style UI; adds Settings to View menu (#464) * Initial plan * Change settings to open as a tab and add Settings option in View menu Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> * Redesign settings tab: VSCode-style UI, fix tab label to show 'Settings' only, scrollable content Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> * refactor: reorganize settings management and remove unused navigation elements * Rename loadSidebarSettings/saveSidebarSettings to loadSettings/saveSettings Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> Co-authored-by: Power-Maverick <danish.naglekar@hotmail.com> * feat: Import connections from XrmToolBox XML files (#463) * Initial plan * feat: import connections from XrmToolBox XML files Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> * fix: import crypto from node built-in in connectionsManager to fix ReferenceError in main process Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * feat: Support US Government cloud (GCC High / DoD) Dataverse URLs (#469) * Initial plan * feat: support US Gov cloud (GCC High/DoD) URLs for Dataverse connections Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> * refactor: extract isValidDataverseUrl helper with hostname-only, anchored, case-insensitive validation Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> * Add a Links Hub and Multi-agent Orchestration (#470) * wip/feat: implement multi-agent workflow setup with defined roles and human approval gate * feat: implement mesh collaboration and risk-based checkpointing for agent workflows * feat: enhance chat output contracts for agents to improve communication and clarity * feat: add important links sidebar with curated resources and strict URL validation * feat: enhance important links sidebar with display host and improved styling * feat: add favicon fetching functionality and update important links sidebar with descriptions and icons * Update src/main/index.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Fix: Rename `getFaviconApiUrl` parameter from `host` to `url` (#471) * Initial plan * fix: update getFaviconApiUrl parameter name from host to url Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> * Fix: Links Hub favicon handler security, XSS, and rendering bugs (#472) * Initial plan * fix: address unresolved PR review comments on Links Hub favicon handler and sidebar Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com> * fix: deprecate showLoading and hideLoading methods in toolboxAPI (#475) * minor change to clarify usage of metadata api functions (#474) * Fix dual-connection tab colour split, swap Test/UAT env defaults, improve category and environment colour UX (#476) * Initial plan * fix(ui): fix dual-connection tab colours, swap test/uat env defaults, add category colour reuse in modals Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/36215f3c-c4f5-4b8d-b69c-38a10596f30b * fix(ui): replace category datalist with styled select dropdown; show -- when no category selected Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/e63c4fea-b3f3-4128-a5e4-31201aeca998 * feat(ui): env color defaults, category reset visibility, sidebar category color swatch Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/04495a30-b495-4fa9-8788-86465ede19cb * feat(ui): hide category color section when no category (default) is selected Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/afe2255f-00cc-455e-99a4-9ff8d1b4a95e --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> * Replace blocking About dialog with custom modal BrowserWindow (#477) * Initial plan * Replace blocking About dialog with custom modal BrowserWindow The About dialog previously used dialog.showMessageBoxSync which is not modal relative to the main app window and can be hidden behind it. Now it sends a SHOW_ABOUT IPC event to the renderer which shows a custom BrowserWindow-based modal (same pattern as the update dialog) with version info, environment details, and a copy-to-clipboard button. Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/51cb116a-9705-4972-8e3b-242f5767550e * Show success notification after copying About info to clipboard Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/5b424552-b2fb-4bce-adb3-1893b210285a * Guard showAboutDialog against destroyed/loading webContents; remove unused GET_ABOUT_INFO IPC Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/a4e390e5-c47b-4e65-b9a4-6e47ed1385d3 --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> * Add appearance settings for category color and environment color borders (#481) * Initial plan * Add appearance settings for category/environment color show/hide and border thickness Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/193f644f-df36-4d4c-8ed0-96b7a0f482c9 * Move hardcoded appearance defaults into named constants Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/f393659c-9ed8-4b82-a91b-e94a799801a8 --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> * fix: enhance dual connection handling in tool management (#483) * Add option to disable session restore on startup (#482) * Initial plan * Add 'Restore Session on Startup' setting to skip reopening tools on app start Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/8ec8d9a2-6b1a-4686-879a-b04708e4cbe8 * Fix build error, add tool name to connection modals, fix missing braces from merge Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/3d6bb8bf-f335-43ee-9634-7e61be7db8fc * fix: silently re-authenticate connections on session restore, show modal on failure Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/24765ec3-ad59-4605-a741-566555503b34 * feat: add unsaved changes detection and close guard for settings tab feat: made settings button sticky * fix pr review comment - https://github.com/PowerPlatformToolBox/desktop-app/pull/482#discussion_r2970765680 * fix: apply unresolved reviewer feedback - shared escapeHtml, await closeOtherTabs Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/fb9f6281-aee9-4813-b322-1751c3a0844b --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> Co-authored-by: Power-Maverick <danish.naglekar@hotmail.com> * fix: improve connection import handling and clean up logger imports (#495) * Fix: Global search command palette renders behind active tool BrowserView and align UI with modal windows (#491) * Initial plan * Fix global search overlay appearing behind tool BrowserView Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/98496443-e99d-461f-9385-da0c10cd5dc5 * UI: Add modal-style header with close button to global search Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/263a78e7-da1f-4f02-9ab5-5b5d92d93119 --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> * Fix: TypeError "Object has been destroyed" in emitModalClosed during force-close with auto-update (#501) * Initial plan * fix: guard webContents.isDestroyed() to prevent crash on force-close during auto-update Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/58b630b9-e75d-4941-9bae-5a32113756eb Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> * Rename "Important Links" to "Community Resources" with dynamic Supabase-backed links (#499) * feat: rename Important Links to Community Resources, make links dynamic via Supabase community_links table Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/3e132f84-fa7c-40ca-801c-b1d29fae727b Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> * fix: address code review - remove unnecessary type assertion and simplify Supabase row cast Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/3e132f84-fa7c-40ca-801c-b1d29fae727b Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> * fix: remove group_sort_order column - group ordering handled by the app Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/e2dc53c8-11c9-4527-8170-7a70b191705b Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> * Update src/main/managers/toolRegistryManager.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update src/main/managers/toolRegistryManager.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * feat: source selection modal for connection import (XTB vs PPTB) (#500) * feat: add import connection source modal (XTB vs PPTB) with XTB export hint Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/007d517e-6939-4a4e-9019-cb7badde489d Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> * feat: add custom modal popup for import connection source with copy path functionality --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> Co-authored-by: Power-Maverick <danish.naglekar@hotmail.com> * fix: update DevTools opening mode to detach for main and tool windows * feat: add backdrop overlay to all modal windows Copy the global-search overlay pattern (semi-transparent backdrop + backdrop-filter blur) to all BrowserWindow-backed modals. - modalWindowManager: modal windows now fill the full main-window bounds so the overlay covers the entire app; injects --modal-panel-width and --modal-panel-height CSS vars so each panel keeps its intended size - sharedStyles: add .modal-overlay rule (fixed inset-0, rgba(0,0,0,0.5) background, backdrop-filter blur(4px), flex-centered); update .modal-panel to CSS-var sizing with border-radius and max constraints - All 10 modal view.ts files: wrap panel div in <div class="modal-overlay"> - Custom-panel modals (about, troubleshooting, updateNotification, toolDetail): inject .modal-overlay CSS inline and update panel class to CSS-var dimensions Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * fix: apply only background/blur styling to modal windows Revert the full-size window and CSS-var sizing modals remainchanges content-sized and centered as before. Only copy the visual background styling from the global-search overlay: - modalWindowManager: body gets background: rgba(0,0,0,0.5) and backdrop-filter: blur(4px) so the modal window shows the dark blurred backdrop behind the panel (through Electron transparent window) - Remove .modal-overlay wrapper divs and CSS var sizing from all modals - Restore .modal-panel to width/height: 100% in sharedStyles Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * fix: render modal backdrop overlay in main renderer window The backdrop-filter on a child BrowserWindow cannot blur the parent window's content (different OS-level windows). Instead, inject the overlay directly into the main the same approach therenderer global-search overlay uses. - index.html: add #modal-backdrop div (hidden by default) - styles.scss: .modal-backdrop mirrors the global-search overlay styles (position fixed, inset 0, rgba(0,0,0,0.5), backdrop-filter blur(4px)) - browserWindowModals.ts: listen to MODAL_WINDOW_OPENED/CLOSED events and toggle the backdrop div visibility - modalWindowManager.ts: revert body background to transparent (backdrop is now handled in the main renderer, not the modal window itself) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * fix: show modal backdrop immediately with correct display value - Show backdrop synchronously in showBrowserWindowModal() before awaiting the modal window, eliminating the timing gap where the modal appears before the dark overlay - Use display: flex for .modal-backdrop (matching .global-search-overlay) and update all JS toggle calls to use flex instead of block Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * chore: update release notes for version 1.2.1 with highlights, fixes, and developer notes * fix: improve formatting and organization of changelog entries for clarity * Fix: Tool detail page icon not adapting to dark/light theme (#510) * Initial plan * Fix tool detail page icon to be theme-aware (dark/light mode) Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/1d192ffc-640c-4a9e-9d8f-96251f98fd16 Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> * Address review feedback: consolidate CSS and add theme-change handler for detail tab fallback icon Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/d7760afb-4ed5-4874-97a5-1bc4275d4dbc Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> * fix: improve empty state handling in sidebar tools by updating hint display (#516) * feat: Add visual indicator and one-click clear to filter button when filters are active (#509) * Initial plan * feat: add visual indicator dot on filter button when filters are active Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/66184e84-c43b-4345-8093-4b9e767369f7 Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> * feat: add one-click clear button for active dropdown filters on filter icon Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/2f611815-65e8-44d8-b84c-47eb20959bb2 Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> * style: reuse search-filter-btn styles for filter-clear-btn, remove duplicate CSS Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/23c5d071-ba7f-43a5-9964-6170812cf4c0 Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> * Update src/renderer/index.html Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update src/renderer/index.html Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update src/renderer/index.html Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Pre-filter marketplace to "new tools only" when clicking the homepage notification banner (#511) * Initial plan * Pre-filter marketplace to new tools only when clicking homepage banner Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/fd0d5ced-b91b-4e39-8812-cc2c8c36b293 Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> Co-authored-by: Power-Maverick <danish.naglekar@hotmail.com> * chore(deps): bump handlebars (#512) Bumps the npm_and_yarn group with 1 update in the / directory: [handlebars](https://github.com/handlebars-lang/handlebars.js). Updates `handlebars` from 4.7.8 to 4.7.9 - [Release notes](https://github.com/handlebars-lang/handlebars.js/releases) - [Changelog](https://github.com/handlebars-lang/handlebars.js/blob/v4.7.9/release-notes.md) - [Commits](https://github.com/handlebars-lang/handlebars.js/compare/v4.7.8...v4.7.9) --- updated-dependencies: - dependency-name: handlebars dependency-version: 4.7.9 dependency-type: indirect dependency-group: npm_and_yarn ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump lodash in the npm_and_yarn group across 1 directory (#513) Bumps the npm_and_yarn group with 1 update in the / directory: [lodash](https://github.com/lodash/lodash). Updates `lodash` from 4.17.21 to 4.18.1 - [Release notes](https://github.com/lodash/lodash/releases) - [Commits](https://github.com/lodash/lodash/compare/4.17.21...4.18.1) --- updated-dependencies: - dependency-name: lodash dependency-version: 4.18.1 dependency-type: indirect dependency-group: npm_and_yarn ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump @xmldom/xmldom (#514) Bumps the npm_and_yarn group with 1 update in the / directory: [@xmldom/xmldom](https://github.com/xmldom/xmldom). Updates `@xmldom/xmldom` from 0.8.11 to 0.8.12 - [Release notes](https://github.com/xmldom/xmldom/releases) - [Changelog](https://github.com/xmldom/xmldom/blob/master/CHANGELOG.md) - [Commits](https://github.com/xmldom/xmldom/compare/0.8.11...0.8.12) --- updated-dependencies: - dependency-name: "@xmldom/xmldom" dependency-version: 0.8.12 dependency-type: indirect dependency-group: npm_and_yarn ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * introduce merge pr workflow * fix: update version to 1.2.2 in package.json * fix: update version from 1.2.1-beta.0 to 1.2.1 in package.json * fix: update version to 1.2.2-beta.0 in package.json * Update src/renderer/modules/browserWindowModals.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update src/renderer/modals/updateNotification/view.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update src/renderer/modals/troubleshooting/view.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update src/renderer/modals/toolDetail/view.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update src/renderer/modals/about/view.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Initial plan * Fix Windows assembly signing: sign app binaries before packaging into installers Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/1c00549d-1aa5-4784-be1b-0fc190cf013e Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> * Initial plan * feat: add system tray icon so app is accessible when window is closed on macOS Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/a7d2908f-d101-49f9-a3b6-ddcfcd5fb9f0 Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> * chore: clean up code structure and remove unused code blocks * Delete .DS_Store * fix: update icon paths from assets/ to icons/ Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/387e28e6-3a31-4d4f-96ee-5c14bb7b515f Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> * feat: support separate icons for stable and insider release channels Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/a833a978-e0b2-44f6-9555-11afb1fda407 Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> * ci: update release workflows for stable/insider channel separation Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/6169cb36-5558-430f-a318-03d813393ba8 Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> * Refactor code structure for improved readability and maintainability * Apply suggestions from code review Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * fix: track isQuitting flag so tray Quit fully exits app on macOS Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/128b27c8-deee-4c1f-b225-37ad33f4a61c Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> * feat: restrict pptb:// protocol registration to stable channel only Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/a8b5c445-f78d-4413-9740-a79c5df277d8 Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> * fix: cross-platform package scripts and single-instance lock for insider builds Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/511a31fa-b819-45c7-87b8-063c46adf051 Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> * Fix unpacked dir path and --dir flag for Windows signing steps Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/41781746-20f4-4a83-949e-dec4147c6056 Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> * feat(pptb-validate): add pptb.config.json invocation validation with semver enforcement Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/f5d8d8b6-bbf6-473f-a251-979e002c64a3 Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> * feat(inter-tool-launch): implement all 7 parts of Inter-Tool Launch Context Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/06819ca7-d6e6-42b6-ab39-1eff21e59a5f Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> * fix: address code review comments (explicit null check, blank line, .gitignore) Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/06819ca7-d6e6-42b6-ab39-1eff21e59a5f Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> * docs: add plan-inter-tool-launch-context.md with accurate v3 reflecting all 7 implemented parts Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/16f5bfb7-7f3f-4b6c-9829-843603515c18 Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> * fix: rename PptbConfig→PPTBConfig and validatePptbConfig→validatePPTBConfig for consistent casing Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/f894c5cf-a937-472f-a7ee-823d77dc6687 Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> * [Feature]: Send version, platflorm etc automagically to feedback Fixes #528 Co-authored-by: Copilot <copilot@github.com> * fix: improve feedback URL fallback and separate instanceId/toolId fields Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/c7033bef-3d6b-497a-9254-6fc4196b1145 Co-authored-by: LinkeD365 <43988771+LinkeD365@users.noreply.github.com> * [Bug]: Color/Size of update available not clear Fixes #524 * fix: apply PR review feedback - update badge icon and checkbox accent color Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/ef1aad69-82ba-4d9b-afce-07c091abc7c7 Co-authored-by: LinkeD365 <43988771+LinkeD365@users.noreply.github.com> * fix: update tool update badge styling and replace image with text indicator Co-authored-by: Copilot <copilot@github.com> * fix: address review feedback - remove unused var, add ARIA attrs, fix doc comment, remove dev mock Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/82a20789-a4d1-4ba9-b4a0-1ccd6012a19d Co-authored-by: LinkeD365 <43988771+LinkeD365@users.noreply.github.com> * Potential fix for code scanning alert no. 21: Workflow does not contain permissions Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> * Update .github/workflows/merge-prs.yml Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update .github/workflows/merge-prs.yml Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * update based on copilot review * formatting * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * Apply suggestions from code review Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * update to fix copilot suggestions * Add concurrency to merge PRs workflow * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * Apply suggestions from code review Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * Update merge-prs.yml * Update workflow to combine PRs with new permissions * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * [Feature]: Send version, platflorm etc automagically to feedback for tools Fixes #528 * Configure concurrency for PR merge workflow Add concurrency settings to manage PR merging. * added support for url's ending in `mcas.ms` ref: #525 * fixed notification z-index issue ref: #527 * Initial plan * fix: address PR 531 review feedback in feedback URL diagnostics Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/5a454d32-db47-4c80-a1c1-5c492b04ecf5 Co-authored-by: LinkeD365 <43988771+LinkeD365@users.noreply.github.com> * [Bug]: Color/Size of update available not clear Fixes #524 * chore: refactored file and code * Initial plan * fix inter-tool launch and invocation error handling Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/5d2d33f6-43a4-484c-b967-cafc9ab27295 Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> * refine non-blocking inter-tool launch flow Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/5d2d33f6-43a4-484c-b967-cafc9ab27295 Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> * harden invocation failure cleanup logging Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/5d2d33f6-43a4-484c-b967-cafc9ab27295 Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> * clarify fire-and-forget invocation launch handling Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/5d2d33f6-43a4-484c-b967-cafc9ab27295 Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> * bump version to 1.2.2-beta.1 in package.json * remove deprecated loading screen API and associated handlers * fix: address review feedback - remove stale comment, unused LoadingOverlayWindowManager, and deprecated UtilsAPI methods Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/9533b0ba-911a-4e4b-ac3a-2dfdf994bfd1 Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> * Initial plan * Initial plan * feat: sync zoom level between main window and all open tool BrowserViews - Add applyZoomLevelToAllTools() to ToolWindowManager to apply zoom to all tool views - Apply main window's zoom level to newly launched tool BrowserViews - Replace role-based zoom menu items with custom handlers that sync zoom to tools - Rename Window menu 'Zoom' to 'Maximize Window' to avoid confusion with content zoom - Use 0.5 zoom level steps (~10% per step) matching Electron default behaviour Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/67f9177d-fcba-4d85-8aa2-4d16d45a7816 Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> * feat: allow tools to open mailto: links with user consent - Add 'mailto' to CspExceptions type so tools can declare they use mailto links - Handle mailto: navigation events in toolWindowManager to open via shell.openExternal when consent was granted - Set setWindowOpenHandler to intercept window.open('mailto:...') calls - Update CSP exception consent modal to display mailto entries as 'Email links (mailto:)' - Use dynamic modal title/description based on whether the permission is mailto-only, mixed, or web-only Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/1d13b2f4-4369-4693-ba94-a27242b3979f Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> * refactor: address code review - extract helper, add URL validation, fix comments Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/1d13b2f4-4369-4693-ba94-a27242b3979f Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> * fix: correct zoom-in accelerator and re-fit BrowserView bounds after zoom - Change Zoom In accelerator from Command/Ctrl+= to Command/Ctrl+Shift+= so pressing the physical + key (Shift+=) triggers zoom in, matching the symmetry of Zoom Out (Command/Ctrl+-) and user expectation - Scale renderer-reported CSS pixel bounds by zoom factor in boundsResponseListener so BrowserView.setBounds() receives correct logical pixel values after zoom - Call scheduleBoundsUpdate() in applyZoomLevelToAllTools() to re-fit the active tool BrowserView to its panel immediately after every zoom change Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/fec4ad6f-b603-4629-a308-40ef888ded44 Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> * feat: update zoom in accelerator keys and improve window menu structure * fix: improve parse-failure log message with scheme context (no PII) Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/46b0bf4b-fc34-43c9-bb8e-62ca2cde6d6b Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> * fix: avoid full-url lowercase in mailto scheme checks Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/9f34ff3e-f284-4e0d-af0c-746cd60450e9 Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> * feat: enable mock updates in development environment * feat: enhance protocol handler to support single-instance lock for stable builds only and add insider tag to About modal * docs: add Inter-Tool Invocation documentation Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/a0a2ae7a-e1e0-451a-acbc-cd18a2266a85 Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> * docs: fix markdown escaping in parameter table Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/a0a2ae7a-e1e0-451a-acbc-cd18a2266a85 Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> * feat: Open URLs in external browser using connection's browser profile (#547) * chore: update package version to 1.2.2 and release notes for consistency * feat: enhance DataverseConnection interface with optional fields for category and timestamps (#553) * feat: Inter-Tool Launch Context v2 — capabilities, auto-close, FXS inherit, one-at-a-time, banner, noReturn + multi-connection prompt + capability registry (#552) * feat: Inter-Tool Launch Context v2 (capabilities, auto-close, banner, FXS inherit, one-at-a-time) * fix: remove duplicate doc content; replace O(n) activeCallees scan with O(1) reverse map * feat: noReturn banner warning, multi-connection auto-prompt for invocation, FXS Send To scenario docs * fix: remove unsafe type cast, add logWarn in catch block for connection prompt * refactor: remove registerSendToAction, suppress banner when noReturn: true * fix: update stale JSDoc for noReturn parameter * refactor: drop calleeToCallerMap, remove calleeInstanceId from banner state * fix: guard RETURN_INVOCATION_DATA fallback against non-pending active tool * feat: capability tag registry — fixed list, Supabase config, validation, auto-complete types * fix: add sync comments between capability lists, prevent Supabase retry spam on failure --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> * docs: reorganize Table of Contents in INTER_TOOL_INVOCATION.md for improved navigation * fix: open callee tool in its own tab during inter-tool invocation When a tool (e.g. Data Migrator) calls invocation.launchTool() the IPC call went directly to the main process, creating the callee BrowserView but never notifying the renderer. This caused the callee to appear in the same tab as the caller, and the invocation banner to be unreliable. Changes: - channels.ts: add CALLEE_TOOL_OPENED / CALLEE_TOOL_CLOSED IPC events - toolWindowManager.ts: send CALLEE_TOOL_OPENED after successful callee launch; send CALLEE_TOOL_CLOSED after auto-close via resolveInvocation() - preload.ts: expose onCalleeToolOpened / onCalleeToolClosed listeners - api.ts: add the two new methods to ToolboxAPI interface - toolManagement.ts: add initializeCalleeToolListeners() — creates a tab for the callee on CALLEE_TOOL_OPENED and removes it / switches back to the caller on CALLEE_TOOL_CLOSED - initialization.ts: wire up initializeCalleeToolListeners() * refactor: use Tool type instead of any casts in callee tab listener * fix: move invocation banner into content-wrapper and update text labels * fix: offset BrowserView bounds by banner height to prevent tool content overlap * Initial plan * feat: harden tool terminal execution * feat: tighten terminal command allowlist * refactor: finalize terminal safeguards * fix: finalize secure terminal restrictions * refactor: switch terminal security from allowlist to blocklist * feat: add startShellProcess with shell selection and sentinel-based command execution * fix: address code review — cmd flags, pwsh exit code capture, sentinel default, shell injection guard * fix: log warning when sentinel exit code is malformed * fix: pass raw command string to shell stdin so && and other operators work correctly * fix(terminal): filter sentinel echo lines from stdout display When PowerShell (and other shells) run in interactive mode with stdin piped, they echo the commands written to stdin back to stdout. This caused the internal sentinel command used for exit-code detection to appear verbatim in the terminal UI. Fix: buffer stdout by line while a command is executing and drop any line that matches the per-shell-type sentinel echo pattern before emitting output to the display. Remaining buffered data is flushed (with the same filter applied) when the pending command is resolved or fails. * refactor(terminal): extract flushStdoutBuffer helper to remove duplication * refactor(terminal): reorganize imports and improve logging for stdout processing * fix(styles): adjust button alignment and layout in settings and tool item sections * Initial plan * feat: support beta/pre-release npm packages (#382) * fix(version): update version to 1.2.3 in package.json * fix(version): update version to 1.2.3-beta.0 in package.json * Enhance terminal blocking * Added capabilities to npm and locally loaded tools * fix: version scope is sanitized from npm install * moved out of beta into stable * 1.2.3 Release Notes * Update RELEASE_NOTES.md * fixed the icon path and check status badge in readme * fixed the issue with npm install * fixed the uninstall issue for npm and local loaded tools * Revert "Merge branch 'main' into dev" This reverts commit 0adb1549748dfc7fd002e7624094a6c7fac7d2c2, reversing changes made to 3c1c898a872added66d75c3eebecf1569731e669. * Added common validate package for both types and web; incremented the versions as well * issue fixed for double encryption (#574) * Enable Power Platform API access (#575) * incomplete - wip * Updated package definition and readme; expose to mainworld using toolPreloadBridge * upgraded the version to 1.2.4 for both app and packages * ignore Kilo AI files * wip on pp-api-access * working pp api code * removed debug code * Added enabled for pp api for all type and removed filtering; but added tag * Added enabledForPPAPI to the connection * renamed dataverse connection to connection and minor ui fixes * types package updated * fix the placement of PP-API types * Added PP API scopes to Connection (#580) * incomplete - wip * Updated package definition and readme; expose to mainworld using toolPreloadBridge * upgraded the version to 1.2.4 for both app and packages * ignore Kilo AI files * wip on pp-api-access * working pp api code * removed debug code * Added enabled for pp api for all type and removed filtering; but added tag * Added enabledForPPAPI to the connection * renamed dataverse connection to connection and minor ui fixes * types package updated * fix the placement of PP-API types * Added scopes to the Connection for Power Platform API * MCP-enabled agent assisted process (#581) * incomplete - wip * Updated package definition and readme; expose to mainworld using toolPreloadBridge * upgraded the version to 1.2.4 for both app and packages * ignore Kilo AI files * wip on pp-api-access * working pp api code * removed debug code * Added agentInvokable to tool manifest plus schema converter helper function * mcp server with auth created and connection tested * wip: agent tool registry * fix: name passed to the mcp client * wired up the agent call with launch invocation * working mcp sync * some styling fixes * Reformat the language on the connection selection modals * update the pptb config and associated plumbing plus some minor fixes * types and some minor edits * doc updates, comment updates and minor tweaks * enabled tray menu for MCP and moved all dispersed items into one tab called MCP Server with MCP icon * Add MCP Headless for fully unattended flow (#582) * incomplete - wip * Updated package definition and readme; expose to mainworld using toolPreloadBridge * upgraded the version to 1.2.4 for both app and packages * ignore Kilo AI files * wip on pp-api-access * working pp api code * removed debug code * Added agentInvokable to tool manifest plus schema converter helper function * mcp server with auth created and connection tested * wip: agent tool registry * fix: name passed to the mcp client * wired up the agent call with launch invocation * working mcp sync * some styling fixes * Reformat the language on the connection selection modals * update the pptb config and associated plumbing plus some minor fixes * types and some minor edits * doc updates, comment updates and minor tweaks * enabled tray menu for MCP and moved all dispersed items into one tab called MCP Server with MCP icon * init headless mcp - cli * headless invocation wiring * Headless CLI invoked and response provided * add buttons to quickly setup mcp for Claude Desktop and VSCode * Enhanced Terminal Hardening Rules plus added Test Suites (#583) * feat: add Jest unit tests and Playwright e2e test suite - Install jest, ts-jest, @types/jest, ts-node, @playwright/test - Add jest.config.ts, playwright.config.ts, tsconfig.test.json - Add manual mocks for electron and electron-store - Add unit tests: SettingsManager (29 tests), InstallIdManager (5 tests), EncryptionManager (11 tests), ConnectionsManager (20 tests), cspUtils (4 tests), toolSourceIcon (6 tests) — 76 total - Add e2e fixtures, app.spec.ts and navigation.spec.ts - Add GitHub Actions test.yml workflow (runs on PRs to dev and main) - Add test/test:unit/test:unit:watch/test:unit:coverage/test:e2e/test:e2e:ui scripts * fix(tests): use inline test.skip condition in navigation e2e tests * docs: standardize E2E test terminology and improve README formatting * docs: standardize E2E test terminology in test workflow * fix(e2e): wait for index.html URL before asserting on window state * fix(ci): explicitly install Electron binary in e2e workflow * more hardening terminal commands --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> * feat: Add notification history panel with bell icon in footer (#585) * Initial plan * feat: add notification history bell button in footer (#364) * Add Playwright e2e tests for notification history bell button * Fix: remove force:true from outside-click test, use activity-bar as click target * fix: notification panel hidden attribute overridden by CSS flex display * fix: move initNotificationHistoryPanel early and shrink BrowserView when panel is open * refactor: extract named constants for notification panel margin and min tool width * refactor: use BrowserWindow with alwaysOnTop for notification history, merge into notifications.ts * fix: extract named constants and clarify IPC args indexing in notification history manager * fix the alignment issue * Added proper copy and clear all functions --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: Power-Maverick <danish.naglekar@hotmail.com> * Removed the incorrect filter and updated the wording on connection selection modal for PP API (#586) * Removed the incorrect filter and updated the wording for PP API * fix the test script * [Feature] side by side toolview (#588) * implemented correct split functionality * added test cases plus update the PR template * added ElicitRequest to MCP * [Feature] Add preview feature flagging, gate MCP Server behind it, move MCP icon to activity bar footer (#589) * Add preview feature flagging and move MCP button to activity bar footer * Rename mcpBtn to mcpButton for consistency --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> * Added MCP to preview feature and added preview feature enablement in settings * Implement headless mode support for tools, adding globals for toolboxAPI, dataverseAPI, and powerplatformAPI in Node.js environment. Update MCP server to handle headless invocations with connection management and logging. Enhance type definitions for headless API access and ensure compatibility with existing tools. * fix: remove unused getPowerPlatformManager variable in headlessToolRuntime.ts * feat: implement preview feature management and settings integration * refactor: remove Power Platform API preview feature references from connection modals and management * feat: add consent confirmation for Power Platform API access in connection modals * Resolving bug [Bug]: Uninstall local debugged tool deletes local folder Fixes #578 * Initial plan * fix: color success and error modal feedback correctly * fix: show modal success messages in green * fix: hide/show Power Platform API based on auth type in connection modals * #591, #561 fix: update Dataverse hostname pattern to include new regions and improve URL validation * feat: implement app registration configuration and update connection modals * feat: add start and stop functionality for MCP server and based on that status app either quits or runs in background * fix: update PR checklist & bundle-size to handle forked PRs errors * fix: resolving issue with second instance invocation creating two instances of the app * feat: add 'Copy Script & Add/Save' functionality and update connection modals for app registration * chore: update MCP Server label and description for clarity on agentic AI capabilities * feat: add MCP headless to related UI elements * fix: add validation for app-update.yml existence and enhance auto-update error handling * fix: update PR title validation to include 'Release' type * fix: correct PR title validation message to include proper formatting for types * release v1.2.4 prep * Initial plan * fix: make notification panel and toast respect the selected app theme Both NotificationWindowManager and NotificationHistoryWindowManager now accept a SettingsManager instance and expose a private isDarkTheme() helper that reads the user's theme setting via resolveTheme(). generateHTML() (toast popup) and generateHistoryHTML() (bell panel) now produce light or dark colour schemes based on the resolved theme instead of being hard-coded to the dark palette, fixing the bug where the notification UI always rendered dark even when the app was set to light theme. * fix: enhance preflight check comments and handling for PRs * some improvements to the workflows and updating the release notes * fix: update .gitignore to include test-results directory and remove obsolete .last-run.json file * Apply suggestions from code review Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * fix: reorder comments for clarity in connection button handling * fix: update paths for types package version validation in workflows * fix: move app-update.yml validation to the correct job in release workflows * fix: add step to generate app-update.yml metadata for Windows in release workflows * [Fix] Bundle app-update.yml into Windows installers so auto-update works (#611) * Initial plan * Generate app-update.yml before packaging Windows installers --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: David Rivard <38399134+drivardxrm@users.noreply.github.com> Co-authored-by: Lars Hildebrandt <info@larshildebrandt.de> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com> Co-authored-by: Lars Hildebrandt <lars.hildebrandt@tuleva.de> Co-authored-by: Oliver Flint <oliverflint@gmail.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: darkwheel <christoph@raidl.de> Co-authored-by: LinkeD365 <carl.cookson@gmail.com> Co-authored-by: Copilot <copilot@github.com> Co-authored-by: LinkeD365 <43988771+LinkeD365@users.noreply.github.com> Co-authored-by: darkwheel <37546897+darkwheel@users.noreply.github.com> Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> Co-authored-by: Matt Berg <25282996+MattBerg11@users.noreply.github.com>
* fix: deprecate showLoading and hideLoading methods in toolboxAPI (#475)
* minor change to clarify usage of metadata api functions (#474)
* Fix dual-connection tab colour split, swap Test/UAT env defaults, improve category and environment colour UX (#476)
* Initial plan
* fix(ui): fix dual-connection tab colours, swap test/uat env defaults, add category colour reuse in modals
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/36215f3c-c4f5-4b8d-b69c-38a10596f30b
* fix(ui): replace category datalist with styled select dropdown; show -- when no category selected
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/e63c4fea-b3f3-4128-a5e4-31201aeca998
* feat(ui): env color defaults, category reset visibility, sidebar category color swatch
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/04495a30-b495-4fa9-8788-86465ede19cb
* feat(ui): hide category color section when no category (default) is selected
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/afe2255f-00cc-455e-99a4-9ff8d1b4a95e
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
* Replace blocking About dialog with custom modal BrowserWindow (#477)
* Initial plan
* Replace blocking About dialog with custom modal BrowserWindow
The About dialog previously used dialog.showMessageBoxSync which is
not modal relative to the main app window and can be hidden behind it.
Now it sends a SHOW_ABOUT IPC event to the renderer which shows a
custom BrowserWindow-based modal (same pattern as the update dialog)
with version info, environment details, and a copy-to-clipboard button.
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/51cb116a-9705-4972-8e3b-242f5767550e
* Show success notification after copying About info to clipboard
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/5b424552-b2fb-4bce-adb3-1893b210285a
* Guard showAboutDialog against destroyed/loading webContents; remove unused GET_ABOUT_INFO IPC
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/a4e390e5-c47b-4e65-b9a4-6e47ed1385d3
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
* Add appearance settings for category color and environment color borders (#481)
* Initial plan
* Add appearance settings for category/environment color show/hide and border thickness
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/193f644f-df36-4d4c-8ed0-96b7a0f482c9
* Move hardcoded appearance defaults into named constants
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/f393659c-9ed8-4b82-a91b-e94a799801a8
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
* fix: enhance dual connection handling in tool management (#483)
* Add option to disable session restore on startup (#482)
* Initial plan
* Add 'Restore Session on Startup' setting to skip reopening tools on app start
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/8ec8d9a2-6b1a-4686-879a-b04708e4cbe8
* Fix build error, add tool name to connection modals, fix missing braces from merge
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/3d6bb8bf-f335-43ee-9634-7e61be7db8fc
* fix: silently re-authenticate connections on session restore, show modal on failure
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/24765ec3-ad59-4605-a741-566555503b34
* feat: add unsaved changes detection and close guard for settings tab
feat: made settings button sticky
* fix pr review comment - https://github.com/PowerPlatformToolBox/desktop-app/pull/482#discussion_r2970765680
* fix: apply unresolved reviewer feedback - shared escapeHtml, await closeOtherTabs
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/fb9f6281-aee9-4813-b322-1751c3a0844b
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
Co-authored-by: Power-Maverick <danish.naglekar@hotmail.com>
* fix: improve connection import handling and clean up logger imports (#495)
* Fix: Global search command palette renders behind active tool BrowserView and align UI with modal windows (#491)
* Initial plan
* Fix global search overlay appearing behind tool BrowserView
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/98496443-e99d-461f-9385-da0c10cd5dc5
* UI: Add modal-style header with close button to global search
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/263a78e7-da1f-4f02-9ab5-5b5d92d93119
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
* Fix: TypeError "Object has been destroyed" in emitModalClosed during force-close with auto-update (#501)
* Initial plan
* fix: guard webContents.isDestroyed() to prevent crash on force-close during auto-update
Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/58b630b9-e75d-4941-9bae-5a32113756eb
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
* Rename "Important Links" to "Community Resources" with dynamic Supabase-backed links (#499)
* feat: rename Important Links to Community Resources, make links dynamic via Supabase community_links table
Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/3e132f84-fa7c-40ca-801c-b1d29fae727b
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
* fix: address code review - remove unnecessary type assertion and simplify Supabase row cast
Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/3e132f84-fa7c-40ca-801c-b1d29fae727b
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
* fix: remove group_sort_order column - group ordering handled by the app
Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/e2dc53c8-11c9-4527-8170-7a70b191705b
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
* Update src/main/managers/toolRegistryManager.ts
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update src/main/managers/toolRegistryManager.ts
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* feat: source selection modal for connection import (XTB vs PPTB) (#500)
* feat: add import connection source modal (XTB vs PPTB) with XTB export hint
Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/007d517e-6939-4a4e-9019-cb7badde489d
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
* feat: add custom modal popup for import connection source with copy path functionality
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
Co-authored-by: Power-Maverick <danish.naglekar@hotmail.com>
* fix: update DevTools opening mode to detach for main and tool windows
* feat: add backdrop overlay to all modal windows
Copy the global-search overlay pattern (semi-transparent backdrop +
backdrop-filter blur) to all BrowserWindow-backed modals.
- modalWindowManager: modal windows now fill the full main-window bounds
so the overlay covers the entire app; injects --modal-panel-width and
--modal-panel-height CSS vars so each panel keeps its intended size
- sharedStyles: add .modal-overlay rule (fixed inset-0, rgba(0,0,0,0.5)
background, backdrop-filter blur(4px), flex-centered); update
.modal-panel to CSS-var sizing with border-radius and max constraints
- All 10 modal view.ts files: wrap panel div in <div class="modal-overlay">
- Custom-panel modals (about, troubleshooting, updateNotification,
toolDetail): inject .modal-overlay CSS inline and update panel class
to CSS-var dimensions
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* fix: apply only background/blur styling to modal windows
Revert the full-size window and CSS-var sizing modals remainchanges
content-sized and centered as before.
Only copy the visual background styling from the global-search overlay:
- modalWindowManager: body gets background: rgba(0,0,0,0.5) and
backdrop-filter: blur(4px) so the modal window shows the dark
blurred backdrop behind the panel (through Electron transparent window)
- Remove .modal-overlay wrapper divs and CSS var sizing from all modals
- Restore .modal-panel to width/height: 100% in sharedStyles
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* fix: render modal backdrop overlay in main renderer window
The backdrop-filter on a child BrowserWindow cannot blur the parent
window's content (different OS-level windows). Instead, inject the
overlay directly into the main the same approach therenderer
global-search overlay uses.
- index.html: add #modal-backdrop div (hidden by default)
- styles.scss: .modal-backdrop mirrors the global-search overlay styles
(position fixed, inset 0, rgba(0,0,0,0.5), backdrop-filter blur(4px))
- browserWindowModals.ts: listen to MODAL_WINDOW_OPENED/CLOSED events
and toggle the backdrop div visibility
- modalWindowManager.ts: revert body background to transparent (backdrop
is now handled in the main renderer, not the modal window itself)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* fix: show modal backdrop immediately with correct display value
- Show backdrop synchronously in showBrowserWindowModal() before
awaiting the modal window, eliminating the timing gap where the
modal appears before the dark overlay
- Use display: flex for .modal-backdrop (matching .global-search-overlay)
and update all JS toggle calls to use flex instead of block
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* chore: update release notes for version 1.2.1 with highlights, fixes, and developer notes
* fix: improve formatting and organization of changelog entries for clarity
* Fix: Tool detail page icon not adapting to dark/light theme (#510)
* Initial plan
* Fix tool detail page icon to be theme-aware (dark/light mode)
Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/1d192ffc-640c-4a9e-9d8f-96251f98fd16
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
* Address review feedback: consolidate CSS and add theme-change handler for detail tab fallback icon
Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/d7760afb-4ed5-4874-97a5-1bc4275d4dbc
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
* fix: improve empty state handling in sidebar tools by updating hint display (#516)
* feat: Add visual indicator and one-click clear to filter button when filters are active (#509)
* Initial plan
* feat: add visual indicator dot on filter button when filters are active
Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/66184e84-c43b-4345-8093-4b9e767369f7
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
* feat: add one-click clear button for active dropdown filters on filter icon
Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/2f611815-65e8-44d8-b84c-47eb20959bb2
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
* style: reuse search-filter-btn styles for filter-clear-btn, remove duplicate CSS
Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/23c5d071-ba7f-43a5-9964-6170812cf4c0
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
* Update src/renderer/index.html
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update src/renderer/index.html
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update src/renderer/index.html
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Pre-filter marketplace to "new tools only" when clicking the homepage notification banner (#511)
* Initial plan
* Pre-filter marketplace to new tools only when clicking homepage banner
Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/fd0d5ced-b91b-4e39-8812-cc2c8c36b293
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
Co-authored-by: Power-Maverick <danish.naglekar@hotmail.com>
* chore(deps): bump handlebars (#512)
Bumps the npm_and_yarn group with 1 update in the / directory: [handlebars](https://github.com/handlebars-lang/handlebars.js).
Updates `handlebars` from 4.7.8 to 4.7.9
- [Release notes](https://github.com/handlebars-lang/handlebars.js/releases)
- [Changelog](https://github.com/handlebars-lang/handlebars.js/blob/v4.7.9/release-notes.md)
- [Commits](https://github.com/handlebars-lang/handlebars.js/compare/v4.7.8...v4.7.9)
---
updated-dependencies:
- dependency-name: handlebars
dependency-version: 4.7.9
dependency-type: indirect
dependency-group: npm_and_yarn
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps): bump lodash in the npm_and_yarn group across 1 directory (#513)
Bumps the npm_and_yarn group with 1 update in the / directory: [lodash](https://github.com/lodash/lodash).
Updates `lodash` from 4.17.21 to 4.18.1
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.21...4.18.1)
---
updated-dependencies:
- dependency-name: lodash
dependency-version: 4.18.1
dependency-type: indirect
dependency-group: npm_and_yarn
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps): bump @xmldom/xmldom (#514)
Bumps the npm_and_yarn group with 1 update in the / directory: [@xmldom/xmldom](https://github.com/xmldom/xmldom).
Updates `@xmldom/xmldom` from 0.8.11 to 0.8.12
- [Release notes](https://github.com/xmldom/xmldom/releases)
- [Changelog](https://github.com/xmldom/xmldom/blob/master/CHANGELOG.md)
- [Commits](https://github.com/xmldom/xmldom/compare/0.8.11...0.8.12)
---
updated-dependencies:
- dependency-name: "@xmldom/xmldom"
dependency-version: 0.8.12
dependency-type: indirect
dependency-group: npm_and_yarn
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* introduce merge pr workflow
* fix: update version to 1.2.2 in package.json
* fix: update version from 1.2.1-beta.0 to 1.2.1 in package.json
* fix: update version to 1.2.2-beta.0 in package.json
* Update src/renderer/modules/browserWindowModals.ts
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update src/renderer/modals/updateNotification/view.ts
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update src/renderer/modals/troubleshooting/view.ts
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update src/renderer/modals/toolDetail/view.ts
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update src/renderer/modals/about/view.ts
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Initial plan
* Fix Windows assembly signing: sign app binaries before packaging into installers
Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/1c00549d-1aa5-4784-be1b-0fc190cf013e
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
* Initial plan
* feat: add system tray icon so app is accessible when window is closed on macOS
Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/a7d2908f-d101-49f9-a3b6-ddcfcd5fb9f0
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
* chore: clean up code structure and remove unused code blocks
* Delete .DS_Store
* fix: update icon paths from assets/ to icons/
Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/387e28e6-3a31-4d4f-96ee-5c14bb7b515f
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
* feat: support separate icons for stable and insider release channels
Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/a833a978-e0b2-44f6-9555-11afb1fda407
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
* ci: update release workflows for stable/insider channel separation
Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/6169cb36-5558-430f-a318-03d813393ba8
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
* Refactor code structure for improved readability and maintainability
* Apply suggestions from code review
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* fix: track isQuitting flag so tray Quit fully exits app on macOS
Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/128b27c8-deee-4c1f-b225-37ad33f4a61c
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
* feat: restrict pptb:// protocol registration to stable channel only
Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/a8b5c445-f78d-4413-9740-a79c5df277d8
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
* fix: cross-platform package scripts and single-instance lock for insider builds
Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/511a31fa-b819-45c7-87b8-063c46adf051
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
* Fix unpacked dir path and --dir flag for Windows signing steps
Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/41781746-20f4-4a83-949e-dec4147c6056
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
* feat(pptb-validate): add pptb.config.json invocation validation with semver enforcement
Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/f5d8d8b6-bbf6-473f-a251-979e002c64a3
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
* feat(inter-tool-launch): implement all 7 parts of Inter-Tool Launch Context
Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/06819ca7-d6e6-42b6-ab39-1eff21e59a5f
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
* fix: address code review comments (explicit null check, blank line, .gitignore)
Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/06819ca7-d6e6-42b6-ab39-1eff21e59a5f
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
* docs: add plan-inter-tool-launch-context.md with accurate v3 reflecting all 7 implemented parts
Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/16f5bfb7-7f3f-4b6c-9829-843603515c18
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
* fix: rename PptbConfig→PPTBConfig and validatePptbConfig→validatePPTBConfig for consistent casing
Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/f894c5cf-a937-472f-a7ee-823d77dc6687
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
* [Feature]: Send version, platflorm etc automagically to feedback
Fixes #528
Co-authored-by: Copilot <copilot@github.com>
* fix: improve feedback URL fallback and separate instanceId/toolId fields
Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/c7033bef-3d6b-497a-9254-6fc4196b1145
Co-authored-by: LinkeD365 <43988771+LinkeD365@users.noreply.github.com>
* [Bug]: Color/Size of update available not clear
Fixes #524
* fix: apply PR review feedback - update badge icon and checkbox accent color
Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/ef1aad69-82ba-4d9b-afce-07c091abc7c7
Co-authored-by: LinkeD365 <43988771+LinkeD365@users.noreply.github.com>
* fix: update tool update badge styling and replace image with text indicator
Co-authored-by: Copilot <copilot@github.com>
* fix: address review feedback - remove unused var, add ARIA attrs, fix doc comment, remove dev mock
Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/82a20789-a4d1-4ba9-b4a0-1ccd6012a19d
Co-authored-by: LinkeD365 <43988771+LinkeD365@users.noreply.github.com>
* Potential fix for code scanning alert no. 21: Workflow does not contain permissions
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
* Update .github/workflows/merge-prs.yml
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update .github/workflows/merge-prs.yml
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* update based on copilot review
* formatting
* Potential fix for pull request finding
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
* Potential fix for pull request finding
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
* Potential fix for pull request finding
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
* Apply suggestions from code review
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
* update to fix copilot suggestions
* Add concurrency to merge PRs workflow
* Potential fix for pull request finding
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
* Apply suggestions from code review
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
* Update merge-prs.yml
* Update workflow to combine PRs with new permissions
* Potential fix for pull request finding
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
* [Feature]: Send version, platflorm etc automagically to feedback for tools
Fixes #528
* Configure concurrency for PR merge workflow
Add concurrency settings to manage PR merging.
* added support for url's ending in `mcas.ms`
ref: #525
* fixed notification z-index issue
ref: #527
* Initial plan
* fix: address PR 531 review feedback in feedback URL diagnostics
Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/5a454d32-db47-4c80-a1c1-5c492b04ecf5
Co-authored-by: LinkeD365 <43988771+LinkeD365@users.noreply.github.com>
* [Bug]: Color/Size of update available not clear
Fixes #524
* chore: refactored file and code
* Initial plan
* fix inter-tool launch and invocation error handling
Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/5d2d33f6-43a4-484c-b967-cafc9ab27295
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
* refine non-blocking inter-tool launch flow
Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/5d2d33f6-43a4-484c-b967-cafc9ab27295
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
* harden invocation failure cleanup logging
Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/5d2d33f6-43a4-484c-b967-cafc9ab27295
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
* clarify fire-and-forget invocation launch handling
Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/5d2d33f6-43a4-484c-b967-cafc9ab27295
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
* bump version to 1.2.2-beta.1 in package.json
* remove deprecated loading screen API and associated handlers
* fix: address review feedback - remove stale comment, unused LoadingOverlayWindowManager, and deprecated UtilsAPI methods
Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/9533b0ba-911a-4e4b-ac3a-2dfdf994bfd1
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
* Initial plan
* Initial plan
* feat: sync zoom level between main window and all open tool BrowserViews
- Add applyZoomLevelToAllTools() to ToolWindowManager to apply zoom to all tool views
- Apply main window's zoom level to newly launched tool BrowserViews
- Replace role-based zoom menu items with custom handlers that sync zoom to tools
- Rename Window menu 'Zoom' to 'Maximize Window' to avoid confusion with content zoom
- Use 0.5 zoom level steps (~10% per step) matching Electron default behaviour
Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/67f9177d-fcba-4d85-8aa2-4d16d45a7816
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
* feat: allow tools to open mailto: links with user consent
- Add 'mailto' to CspExceptions type so tools can declare they use mailto links
- Handle mailto: navigation events in toolWindowManager to open via shell.openExternal when consent was granted
- Set setWindowOpenHandler to intercept window.open('mailto:...') calls
- Update CSP exception consent modal to display mailto entries as 'Email links (mailto:)'
- Use dynamic modal title/description based on whether the permission is mailto-only, mixed, or web-only
Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/1d13b2f4-4369-4693-ba94-a27242b3979f
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
* refactor: address code review - extract helper, add URL validation, fix comments
Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/1d13b2f4-4369-4693-ba94-a27242b3979f
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
* fix: correct zoom-in accelerator and re-fit BrowserView bounds after zoom
- Change Zoom In accelerator from Command/Ctrl+= to Command/Ctrl+Shift+=
so pressing the physical + key (Shift+=) triggers zoom in, matching the
symmetry of Zoom Out (Command/Ctrl+-) and user expectation
- Scale renderer-reported CSS pixel bounds by zoom factor in boundsResponseListener
so BrowserView.setBounds() receives correct logical pixel values after zoom
- Call scheduleBoundsUpdate() in applyZoomLevelToAllTools() to re-fit the
active tool BrowserView to its panel immediately after every zoom change
Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/fec4ad6f-b603-4629-a308-40ef888ded44
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
* feat: update zoom in accelerator keys and improve window menu structure
* fix: improve parse-failure log message with scheme context (no PII)
Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/46b0bf4b-fc34-43c9-bb8e-62ca2cde6d6b
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
* fix: avoid full-url lowercase in mailto scheme checks
Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/9f34ff3e-f284-4e0d-af0c-746cd60450e9
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
* feat: enable mock updates in development environment
* feat: enhance protocol handler to support single-instance lock for stable builds only and add insider tag to About modal
* docs: add Inter-Tool Invocation documentation
Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/a0a2ae7a-e1e0-451a-acbc-cd18a2266a85
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
* docs: fix markdown escaping in parameter table
Agent-Logs-Url: https://github.com/PowerPlatformToolBox/desktop-app/sessions/a0a2ae7a-e1e0-451a-acbc-cd18a2266a85
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
* feat: Open URLs in external browser using connection's browser profile (#547)
* chore: update package version to 1.2.2 and release notes for consistency
* feat: enhance DataverseConnection interface with optional fields for category and timestamps (#553)
* feat: Inter-Tool Launch Context v2 — capabilities, auto-close, FXS inherit, one-at-a-time, banner, noReturn + multi-connection prompt + capability registry (#552)
* feat: Inter-Tool Launch Context v2 (capabilities, auto-close, banner, FXS inherit, one-at-a-time)
* fix: remove duplicate doc content; replace O(n) activeCallees scan with O(1) reverse map
* feat: noReturn banner warning, multi-connection auto-prompt for invocation, FXS Send To scenario docs
* fix: remove unsafe type cast, add logWarn in catch block for connection prompt
* refactor: remove registerSendToAction, suppress banner when noReturn: true
* fix: update stale JSDoc for noReturn parameter
* refactor: drop calleeToCallerMap, remove calleeInstanceId from banner state
* fix: guard RETURN_INVOCATION_DATA fallback against non-pending active tool
* feat: capability tag registry — fixed list, Supabase config, validation, auto-complete types
* fix: add sync comments between capability lists, prevent Supabase retry spam on failure
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
* docs: reorganize Table of Contents in INTER_TOOL_INVOCATION.md for improved navigation
* fix: open callee tool in its own tab during inter-tool invocation
When a tool (e.g. Data Migrator) calls invocation.launchTool() the IPC call
went directly to the main process, creating the callee BrowserView but never
notifying the renderer. This caused the callee to appear in the same tab as
the caller, and the invocation banner to be unreliable.
Changes:
- channels.ts: add CALLEE_TOOL_OPENED / CALLEE_TOOL_CLOSED IPC events
- toolWindowManager.ts: send CALLEE_TOOL_OPENED after successful callee
launch; send CALLEE_TOOL_CLOSED after auto-close via resolveInvocation()
- preload.ts: expose onCalleeToolOpened / onCalleeToolClosed listeners
- api.ts: add the two new methods to ToolboxAPI interface
- toolManagement.ts: add initializeCalleeToolListeners() — creates a tab
for the callee on CALLEE_TOOL_OPENED and removes it / switches back to
the caller on CALLEE_TOOL_CLOSED
- initialization.ts: wire up initializeCalleeToolListeners()
* refactor: use Tool type instead of any casts in callee tab listener
* fix: move invocation banner into content-wrapper and update text labels
* fix: offset BrowserView bounds by banner height to prevent tool content overlap
* Initial plan
* feat: harden tool terminal execution
* feat: tighten terminal command allowlist
* refactor: finalize terminal safeguards
* fix: finalize secure terminal restrictions
* refactor: switch terminal security from allowlist to blocklist
* feat: add startShellProcess with shell selection and sentinel-based command execution
* fix: address code review — cmd flags, pwsh exit code capture, sentinel default, shell injection guard
* fix: log warning when sentinel exit code is malformed
* fix: pass raw command string to shell stdin so && and other operators work correctly
* fix(terminal): filter sentinel echo lines from stdout display
When PowerShell (and other shells) run in interactive mode with stdin
piped, they echo the commands written to stdin back to stdout. This
caused the internal sentinel command used for exit-code detection to
appear verbatim in the terminal UI.
Fix: buffer stdout by line while a command is executing and drop any
line that matches the per-shell-type sentinel echo pattern before
emitting output to the display. Remaining buffered data is flushed
(with the same filter applied) when the pending command is resolved
or fails.
* refactor(terminal): extract flushStdoutBuffer helper to remove duplication
* refactor(terminal): reorganize imports and improve logging for stdout processing
* fix(styles): adjust button alignment and layout in settings and tool item sections
* Initial plan
* feat: support beta/pre-release npm packages (#382)
* fix(version): update version to 1.2.3 in package.json
* fix(version): update version to 1.2.3-beta.0 in package.json
* Enhance terminal blocking
* Added capabilities to npm and locally loaded tools
* fix: version scope is sanitized from npm install
* moved out of beta into stable
* 1.2.3 Release Notes
* Update RELEASE_NOTES.md
* fixed the icon path and check status badge in readme
* fixed the issue with npm install
* fixed the uninstall issue for npm and local loaded tools
* Revert "Merge branch 'main' into dev"
This reverts commit 0adb1549748dfc7fd002e7624094a6c7fac7d2c2, reversing
changes made to 3c1c898a872added66d75c3eebecf1569731e669.
* Added common validate package for both types and web; incremented the versions as well
* issue fixed for double encryption (#574)
* Enable Power Platform API access (#575)
* incomplete - wip
* Updated package definition and readme; expose to mainworld using toolPreloadBridge
* upgraded the version to 1.2.4 for both app and packages
* ignore Kilo AI files
* wip on pp-api-access
* working pp api code
* removed debug code
* Added enabled for pp api for all type and removed filtering; but added tag
* Added enabledForPPAPI to the connection
* renamed dataverse connection to connection and minor ui fixes
* types package updated
* fix the placement of PP-API types
* Added PP API scopes to Connection (#580)
* incomplete - wip
* Updated package definition and readme; expose to mainworld using toolPreloadBridge
* upgraded the version to 1.2.4 for both app and packages
* ignore Kilo AI files
* wip on pp-api-access
* working pp api code
* removed debug code
* Added enabled for pp api for all type and removed filtering; but added tag
* Added enabledForPPAPI to the connection
* renamed dataverse connection to connection and minor ui fixes
* types package updated
* fix the placement of PP-API types
* Added scopes to the Connection for Power Platform API
* MCP-enabled agent assisted process (#581)
* incomplete - wip
* Updated package definition and readme; expose to mainworld using toolPreloadBridge
* upgraded the version to 1.2.4 for both app and packages
* ignore Kilo AI files
* wip on pp-api-access
* working pp api code
* removed debug code
* Added agentInvokable to tool manifest plus schema converter helper function
* mcp server with auth created and connection tested
* wip: agent tool registry
* fix: name passed to the mcp client
* wired up the agent call with launch invocation
* working mcp sync
* some styling fixes
* Reformat the language on the connection selection modals
* update the pptb config and associated plumbing plus some minor fixes
* types and some minor edits
* doc updates, comment updates and minor tweaks
* enabled tray menu for MCP and moved all dispersed items into one tab called MCP Server with MCP icon
* Add MCP Headless for fully unattended flow (#582)
* incomplete - wip
* Updated package definition and readme; expose to mainworld using toolPreloadBridge
* upgraded the version to 1.2.4 for both app and packages
* ignore Kilo AI files
* wip on pp-api-access
* working pp api code
* removed debug code
* Added agentInvokable to tool manifest plus schema converter helper function
* mcp server with auth created and connection tested
* wip: agent tool registry
* fix: name passed to the mcp client
* wired up the agent call with launch invocation
* working mcp sync
* some styling fixes
* Reformat the language on the connection selection modals
* update the pptb config and associated plumbing plus some minor fixes
* types and some minor edits
* doc updates, comment updates and minor tweaks
* enabled tray menu for MCP and moved all dispersed items into one tab called MCP Server with MCP icon
* init headless mcp - cli
* headless invocation wiring
* Headless CLI invoked and response provided
* add buttons to quickly setup mcp for Claude Desktop and VSCode
* Enhanced Terminal Hardening Rules plus added Test Suites (#583)
* feat: add Jest unit tests and Playwright e2e test suite
- Install jest, ts-jest, @types/jest, ts-node, @playwright/test
- Add jest.config.ts, playwright.config.ts, tsconfig.test.json
- Add manual mocks for electron and electron-store
- Add unit tests: SettingsManager (29 tests), InstallIdManager (5 tests),
EncryptionManager (11 tests), ConnectionsManager (20 tests),
cspUtils (4 tests), toolSourceIcon (6 tests) — 76 total
- Add e2e fixtures, app.spec.ts and navigation.spec.ts
- Add GitHub Actions test.yml workflow (runs on PRs to dev and main)
- Add test/test:unit/test:unit:watch/test:unit:coverage/test:e2e/test:e2e:ui scripts
* fix(tests): use inline test.skip condition in navigation e2e tests
* docs: standardize E2E test terminology and improve README formatting
* docs: standardize E2E test terminology in test workflow
* fix(e2e): wait for index.html URL before asserting on window state
* fix(ci): explicitly install Electron binary in e2e workflow
* more hardening terminal commands
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
* feat: Add notification history panel with bell icon in footer (#585)
* Initial plan
* feat: add notification history bell button in footer (#364)
* Add Playwright e2e tests for notification history bell button
* Fix: remove force:true from outside-click test, use activity-bar as click target
* fix: notification panel hidden attribute overridden by CSS flex display
* fix: move initNotificationHistoryPanel early and shrink BrowserView when panel is open
* refactor: extract named constants for notification panel margin and min tool width
* refactor: use BrowserWindow with alwaysOnTop for notification history, merge into notifications.ts
* fix: extract named constants and clarify IPC args indexing in notification history manager
* fix the alignment issue
* Added proper copy and clear all functions
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Power-Maverick <danish.naglekar@hotmail.com>
* Removed the incorrect filter and updated the wording on connection selection modal for PP API (#586)
* Removed the incorrect filter and updated the wording for PP API
* fix the test script
* [Feature] side by side toolview (#588)
* implemented correct split functionality
* added test cases plus update the PR template
* added ElicitRequest to MCP
* [Feature] Add preview feature flagging, gate MCP Server behind it, move MCP icon to activity bar footer (#589)
* Add preview feature flagging and move MCP button to activity bar footer
* Rename mcpBtn to mcpButton for consistency
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
* Added MCP to preview feature and added preview feature enablement in settings
* Implement headless mode support for tools, adding globals for toolboxAPI, dataverseAPI, and powerplatformAPI in Node.js environment. Update MCP server to handle headless invocations with connection management and logging. Enhance type definitions for headless API access and ensure compatibility with existing tools.
* fix: remove unused getPowerPlatformManager variable in headlessToolRuntime.ts
* feat: implement preview feature management and settings integration
* refactor: remove Power Platform API preview feature references from connection modals and management
* feat: add consent confirmation for Power Platform API access in connection modals
* Resolving bug [Bug]: Uninstall local debugged tool deletes local folder
Fixes #578
* Initial plan
* fix: color success and error modal feedback correctly
* fix: show modal success messages in green
* fix: hide/show Power Platform API based on auth type in connection modals
* #591, #561 fix: update Dataverse hostname pattern to include new regions and improve URL validation
* feat: implement app registration configuration and update connection modals
* feat: add start and stop functionality for MCP server and based on that status app either quits or runs in background
* fix: update PR checklist & bundle-size to handle forked PRs errors
* fix: resolving issue with second instance invocation creating two instances of the app
* feat: add 'Copy Script & Add/Save' functionality and update connection modals for app registration
* chore: update MCP Server label and description for clarity on agentic AI capabilities
* feat: add MCP headless to related UI elements
* fix: add validation for app-update.yml existence and enhance auto-update error handling
* fix: update PR title validation to include 'Release' type
* fix: correct PR title validation message to include proper formatting for types
* release v1.2.4 prep
* Initial plan
* fix: make notification panel and toast respect the selected app theme
Both NotificationWindowManager and NotificationHistoryWindowManager now
accept a SettingsManager instance and expose a private isDarkTheme()
helper that reads the user's theme setting via resolveTheme().
generateHTML() (toast popup) and generateHistoryHTML() (bell panel) now
produce light or dark colour schemes based on the resolved theme instead
of being hard-coded to the dark palette, fixing the bug where the
notification UI always rendered dark even when the app was set to light
theme.
* fix: enhance preflight check comments and handling for PRs
* some improvements to the workflows and updating the release notes
* fix: update .gitignore to include test-results directory and remove obsolete .last-run.json file
* Apply suggestions from code review
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
* fix: reorder comments for clarity in connection button handling
* fix: update paths for types package version validation in workflows
* fix: move app-update.yml validation to the correct job in release workflows
* fix: add step to generate app-update.yml metadata for Windows in release workflows
* [Fix] Bundle app-update.yml into Windows installers so auto-update works (#611)
* Initial plan
* Generate app-update.yml before packaging Windows installers
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
* Fixed the issue when Supabase creds are missing; ensureing mock data loads
* chore: bump version to 1.2.5 in package.json
* [Feature] Re-trigger CSP consent when tool adds new permissions since last approval (#613)
* Initial plan
* feat: re-trigger CSP consent when tool adds new permissions since last approval
- Add `seenOptional` field to `CspConsentRecord` to track all optional
domains presented at consent time (approved or declined). This enables
accurate detection of truly new optional permissions versus domains the
user previously saw and chose not to approve.
- Update `grantCspConsent` in `settingsManager.ts` to accept and persist
`seenOptionalDomains` as 4th parameter.
- Propagate the new parameter through the IPC handler in `index.ts` and
the renderer-facing preload in `preload.ts`.
- Add `CspReconsentContext` interface to `view.ts` (also re-exported from
`cspExceptionModal.ts`). When supplied, the CSP modal renders in
re-consent mode: new required/optional permissions appear under
"New Required" / "New Optional" sections (with checkboxes), while
previously approved domains are shown as an informational read-only
"Previously Approved" section with reduced opacity.
- Update `openCspExceptionModal` to accept an optional `CspReconsentContext`
and pass it through to the view builder.
- In `toolManagement.ts`, after confirming an existing consent record exists
for a tool, compute the current required and optional domains and compare
against `required` and `seenOptional` in the stored record. If any new
domains are found, open the re-consent modal. On accept, the consent
record is updated by merging new domains into the existing sets. On
decline, the old consent record is left unchanged and the tool launch is
cancelled with a notification.
- Add 3 unit tests for the new `seenOptional` behaviour in
`settingsManager.test.ts`.
* fix: add seenOptionalDomains param to grantCspConsent type in api.ts
* feat: enhance modal layout and styling for CSP exception view
* feat(csp): implement CSP consent management and review functionality
- Add utility functions for normalizing CSP domains and calculating consent deltas.
- Create a sidebar and tab interface for reviewing and managing CSP consent for marketplace-installed tools.
- Introduce new SVG icons for consent management UI.
- Implement unit tests for CSP consent utilities to ensure correct behavior.
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Power-Maverick <danish.naglekar@hotmail.com>
* [Feature] Enable Private Marketplace (#616)
* feat: add support for multiple marketplace sources and enhance settings management
* feat: enhance private marketplace settings UI with improved layout and styling
* feat: enhance marketplace source normalization to allow empty URL for built-in source
* feat: add authors field to private marketplace tool entries for improved UI display
* [Feature] Private marketplace: Restart app modal (#618)
* feat: add support for multiple marketplace sources and enhance settings management
* feat: enhance private marketplace settings UI with improved layout and styling
* feat: enhance marketplace source normalization to allow empty URL for built-in source
* feat: add authors field to private marketplace tool entries for improved UI display
* feat: add private marketplace support with UI filters and app restart functionality
* feat: update restart notification message for marketplace source changes
* [Feature] Implement Sentry telemetry for Electron main and renderer with PII scrubbing (#622)
* feat: implement Sentry for Electron main and renderer with PII scrubbing
- Add @sentry/electron@7.16.0 dependency
- Create src/common/sentry.ts with getSentryConfig(), PII scrubbing
utilities (scrubPii, scrubPiiFromObject, scrubSentryEvent) covering
emails, auth tokens, GUIDs, Dynamics URLs, and IPv4 addresses
- Create src/common/sentryHelper.ts with structured log functions
(logTrace, logDebug, logInfo, logWarn, logError, logFatal,
logCheckpoint), addBreadcrumb, captureException, captureMessage,
setSentryMachineId, wrapAsyncOperation, and initializeSentryHelper
- Update src/common/logger.ts to route through sentryHelper
- Add SENTRY_DSN build-time injection to vite.config.ts
- Initialize Sentry at module top in src/main/index.ts using
@sentry/electron/main with nodeContextIntegration,
localVariablesIntegration and beforeSend PII hook; set install ID
as Sentry machine ID after app.whenReady()
- Initialize Sentry at module top in src/renderer/modules/initialization.ts
using @sentry/electron/renderer with browserTracingIntegration and
beforeSend PII hook; tag each event with process = 'renderer'
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
* feat: enhance PII scrubbing with additional patterns for file paths and tokens
* Implement Sentry consent flow
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
* Prepare validation environment
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
* Finish telemetry consent validation
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
* feat: update Sentry consent modal text for clarity and improve user understanding
* Prevent late main Sentry init on consent update
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
* Update telemetry consent modal messaging
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
* Clarify restart scope in telemetry consent modal
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
* feat: update Sentry consent modal styling and content for improved clarity
* fix: implement function to dismiss Sentry telemetry consent modal if present in e2e tests
* feat: add Sentry Electron integration and update OpenTelemetry dependencies
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
Co-authored-by: Power-Maverick <danish.naglekar@hotmail.com>
* [Fix] Capture download and MAU analytics errors in Sentry (#623)
* Initial plan
* fix: capture analytics tracking errors in Sentry via captureException
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
* fix: use update/insert instead of upsert to prevent overwriting downloads and MAU columns
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
* refactor: replace read-modify-write analytics with atomic Supabase RPCs
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
* fix: properly convert Supabase RPC errors to Error instances for legible logging
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
* [Fix] Update telemetry consent messaging for clarity and adjust modal height
* [Fix] Add repository links in installed tool details and context menu (#626)
* feat: add repository links for installed tool details and menu
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
* feat: add repository links in installed tool details and menu
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
* feat: implement rating formatting utility and update tool analytics display
* fix: update consent modal test to check for correct error information
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
Co-authored-by: Power-Maverick <danish.naglekar@hotmail.com>
* [Fix] Update connection modal to include 'Configure App' button and adjust related functionality (#628)
* [Feature] MCP tools headless execution (#629)
* [Feature] Add option to keep MCP server running on tool open/reopen
* feat(mcp): enhance headless job management and logging
- Introduced HeadlessJobLogEntry and HeadlessJobDetails interfaces for better job logging.
- Added MCP_HEADLESS_JOB_UPDATED event to notify job status changes.
- Implemented clearLogs functionality in both AgentInvocationAPI and McpServerAPI.
- Enhanced ToolBoxApp to handle job status updates and clear logs.
- Updated HeadlessToolInvocationManager to manage job logs and notify changes.
- Improved agentInvocationLogger to read from multiple log files.
- Added UI components for displaying job invocation details and clearing logs.
- Implemented tests for McpServerManager's headless auth resolution.
* feat(mcp): add client configuration status retrieval and enhance job management
* fix: remove unnecessary line breaks in log rendering and test files
* refactor: remove MCP preview UI checks and simplify related logic
* feat(mcp): refactor client config path retrieval into a separate function
* Potential fix for pull request finding
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
* Potential fix for pull request finding
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
* [Fix] Update 'Copy Script' messaging in Configure App notes for clarity
* [Fix] Preserve error stack in logError when passed an Error object (#631)
* Initial plan
* Fix logError to preserve error stack when an Error object is passed
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
* Fix logError to preserve error stack when an Error object is passed
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
Co-authored-by: Power-Maverick <danish.naglekar@hotmail.com>
* [Fix] Open Consent Review directly in full view (#633)
* Initial plan
* fix: open consent review in full view
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
* refactor: enhance consent review UI and improve summary statistics display
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
Co-authored-by: Power-Maverick <danish.naglekar@hotmail.com>
* [Fix] issue with selecting Environment URL after enabling Power Platform API (#636)
* Initial plan
* Fix: Replace window.confirm() with inline overlay for PP API consent to prevent Electron modal focus loss
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
* [Fix] Bump package versions for @pptb/types to 1.2.5 and @pptb/validate to 1.0.1
* Release note updated and fixed some issues with the agents
* Fix header formatting in release notes for consistency
* [Fix] Enhance Sentry environment detection and add unit tests for getSentryEnvironment
---------
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Oliver Flint <oliverflint@gmail.com>
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: darkwheel <christoph@raidl.de>
Co-authored-by: LinkeD365 <carl.cookson@gmail.com>
Co-authored-by: Copilot <copilot@github.com>
Co-authored-by: LinkeD365 <43988771+LinkeD365@users.noreply.github.com>
Co-authored-by: darkwheel <37546897+darkwheel@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Co-authored-by: Matt Berg <25282996+MattBerg11@users.noreply.github.com>
Co-authored-by: Lars Hildebrandt <lars.hildebrandt@tuleva.de>
Author
|
Closing this PR at the contributor's request. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fixes the npm/debug tool launch path for scoped packages without a version suffix.
Type of change
Changes
BrowserviewProtocolManager.Architecture checklist
Packages (
types&validation)packages/Code quality
npm run typecheckpasses with 0 errors (warnings are acceptable)npm run lintpasses with 0 errors (warnings are acceptable)npm run buildcompletes successfullyTesting
npm run test:unit -- --runInBandpasses for the main-process utility and BrowserView path changeScenario tested:
The regression tests verify that unscoped names, scoped names, versions, and dist-tags resolve to the correct installed package directory name. Full unit tests pass (202 tests).
Breaking changes
Reviewer notes
Related context: #638