[Fix] Open Consent Review directly in full view - #633
Merged
Conversation
Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Update consent review panel to full view only
[Fix] Open Consent Review directly in full view
Aug 16, 2026
✅ PR ChecklistAll required checklist items are complete. This PR is ready for review. |
Bundle Size Report 📦
Bundle Analysis ReportsThe detailed bundle analysis reports are available in the workflow artifacts:
Download the artifacts from the workflow run to view interactive visualizations. Bundle size tracking is now active! This helps prevent bundle bloat. |
Power-Maverick
approved these changes
Aug 16, 2026
Power-Maverick
marked this pull request as ready for review
August 16, 2026 15:48
Power-Maverick
added a commit
that referenced
this pull request
Aug 23, 2026
* 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>
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
Consent Review duplicated information across sidebar and full-view panels. The activity-bar action now opens a redesigned full-view tab directly.
Type of change
Changes
Architecture checklist
Packages (
types&validation)packages/If you did change a package:
@pptb/types(types): type definitions updated and version bumped inpackages/types/package.json@pptb/validate(validation): validation rules updated and version bumped inpackages/validation/package.jsonCode quality
pnpm run typecheckpasses with 0 errors (warnings are acceptable)pnpm run lintpasses with 0 errors (warnings are acceptable)pnpm run buildcompletes successfullyTesting
pnpm run test:unitpasses (for changes tosrc/main/,src/common/, orsrc/renderer/utilities)pnpm run test:e2epasses (for UI / navigation / end-to-end flows)pnpm run dev)Scenario tested:
Selected Consent Review from the activity bar and verified the navigation test targets the full-view tab directly with no consent sidebar present.
Screenshots / recordings
Not included.
Breaking changes
No tool API, IPC channel, or package changes.
Reviewer notes