[Fix] Validate app-update.yml exists - #609
Conversation
* fix: add alwaysOnTop option for modal windows and update notification text * fix: ensure modal windows move to the top when opened * fix: update action button text for update notification modal
…#440) * Initial plan * feat: add category filter and grouping to connection selection modals 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>
…#443) * Initial plan * feat: remove Sentry and replace with console logging Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> * Replace sentryHelper calls with direct console.* equivalents - logInfo → console.info - logWarn → console.warn - logDebug → console.debug - logCheckpoint → console.log - captureException(err, ctx) → console.error(err) (ctx dropped) - captureMessage(msg, level, ctx) → console.error/warn(msg) (ctx dropped) - addBreadcrumb(...) → removed entirely - wrapAsyncOperation(name, async () => { body }, ctx) → (async () => { body })() - Removed all sentryHelper import lines across 26 files Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * fix: resolve lint errors after sentryHelper removal - Fix unterminated string literals in encryptionManager, terminalManager, toolRegistryManager - Rename unused catch params to _error/_trigger to satisfy no-unused-vars rule - Rename unused function param extra -> _extra in homepageManagement Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * refactor: replace console.* calls with centralized logger functions Replace all direct console.info/warn/error/debug/log calls in src/main/ and src/renderer/modules/ with the corresponding logger functions from the new src/common/logger module: - console.info → logInfo - console.warn → logWarn - console.error → logError - console.debug → logDebug - console.log → logCheckpoint Each file receives a scoped import for only the functions it uses. Files in src/renderer/modals/ are intentionally left unchanged as they contain console calls inside template literal strings for inline browser scripts. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * refactor: introduce src/common/logger.ts and route all logging through it Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> * refactor: pass caught error as second arg to logError/logWarn in catch blocks In catch blocks across the codebase, replace error message interpolation (e.g. `${(error as Error).message}`) with passing the raw catch variable as the second `data` argument to logError/logWarn. Also strip trailing colon-only patterns where the colon was only there to precede the error. Files changed: - src/main/managers/authManager.ts (5 calls) - src/main/managers/browserManager.ts (4 calls) - src/main/managers/browserviewProtocolManager.ts (2 calls) - src/main/managers/encryptionManager.ts (1 call) - src/main/managers/toolRegistryManager.ts (7 calls) - src/main/managers/toolWindowManager.ts (11 calls) - src/main/managers/toolsManager.ts (1 call) - src/renderer/modules/connectionManagement.ts (14 calls) - src/renderer/modules/marketplaceManagement.ts (1 call) - src/renderer/modules/toolsSidebarManagement.ts (1 call) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * fix: apply all PR review feedback - severity corrections, pass error args, remove unused params, simplify IIFEs 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 <223556219+Copilot@users.noreply.github.com>
…k in build workflow
…ease notes and version validation
…ion validation and release notes
…xes, and developer changes
…ages/package.json
…ystem modals. fix for [Bug]: Update is above all windows, not just toolbox Fixes #447
* 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>
* 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>
* 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>
* 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>
…eload (#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>
…enu (#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>
* 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>
* 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>
* 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>
…rove 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>
* 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>
…ers (#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>
…tances of the app
…n modals for app registration
…id-configuration [Feature] Configure App in Entra with proper configurations when add/edit connections
…ate error handling
[Fix] Fixed issue with auto-update for windows exe
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.
…ation-panel-theme [Fix] Notification panel and toast follow selected app theme
…bsolete .last-run.json file
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
✅ 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. |
| const scriptLines = [ | ||
| "$ErrorActionPreference = 'Stop'", | ||
| `$clientId = '${safeClientId}'`, | ||
| '$requiredRedirectUris = @("msal${clientId}://auth", "http://localhost")', |
| * Report that auto-updates are unavailable for the current installation. | ||
| */ | ||
| private reportAutoUpdateUnavailable(action: string): void { | ||
| let message = "Automatic updates are unavailable for this installation."; |
There was a problem hiding this comment.
Pull request overview
This PR adds a guardrail for Windows auto-update availability by checking for resources/app-update.yml, while also introducing a significantly broader set of changes across testing infrastructure, MCP/preview features, headless tooling/CLI scaffolding, and multiple UI + type updates.
Changes:
- Add runtime + CI validation that
app-update.ymlexists before attempting Windows auto-update flows. - Introduce Jest unit tests + Playwright Electron e2e tests (configs, mocks, workflows, and initial test suites).
- Expand MCP/preview/headless-related capabilities (preview feature flags/UI gating, MCP assets/types, CLI scaffold, and related API/type surface additions).
Reviewed changes
Copilot reviewed 115 out of 128 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| tsconfig.test.json | Adds a dedicated TS config for tests (Jest/Playwright typings and includes). |
| tsconfig.cli.json | Adds a dedicated TS build target for the Node CLI output. |
| tests/unit/renderer/toolSourceIcon.test.ts | Unit tests for renderer icon HTML helpers. |
| tests/unit/renderer/modalFeedback.test.ts | Unit tests asserting modal feedback CSS/script behavior. |
| tests/unit/main/managers/terminalManager.test.ts | Unit tests for terminal command parsing/hardening helpers. |
| tests/unit/main/managers/installIdManager.test.ts | Unit tests for install ID persistence/migration behavior. |
| tests/unit/main/managers/encryptionManager.test.ts | Unit tests for encryption behavior with Electron mocks. |
| tests/unit/common/cspUtils.test.ts | Unit tests for CSP exception normalization. |
| tests/README.md | Documents the test structure and how to run unit/e2e tests. |
| tests/e2e/splitLayout.spec.ts | E2E coverage for split-layout DOM structure and ARIA state. |
| tests/e2e/notificationHistory.spec.ts | E2E coverage for notification history bell + window behavior. |
| tests/e2e/navigation.spec.ts | E2E smoke tests for sidebar/settings/marketplace/modals/search. |
| tests/e2e/fixtures.ts | Playwright Electron fixtures for launching and finding the main window. |
| tests/e2e/app.spec.ts | E2E smoke tests for app launch and startup errors. |
| tests/mocks/electron.ts | Jest manual mock for Electron APIs used by unit tests. |
| tests/mocks/electron-store.ts | Jest manual mock for electron-store using an in-memory Map. |
| src/renderer/utils/connectionSorting.ts | Updates connection type naming (DataverseConnection → Connection) and formatting cleanup. |
| src/renderer/types/index.ts | Adds preview feature settings state and tool MCP capability flag. |
| src/renderer/styles/homepage.scss | Adds layout + styling for MCP badge on quick tool tiles. |
| src/renderer/styles/_variables.scss | Adds muted text variables for light/dark themes. |
| src/renderer/modules/whatsNewManagement.ts | Switches tab open helper to openLocalPageAsTab. |
| src/renderer/modules/settingsManagement.ts | Adds preview feature settings UI + change detection + persistence wiring. |
| src/renderer/modules/previewFeatureManagement.ts | New module to normalize/apply preview feature flags and gate MCP UI. |
| src/renderer/modules/notifications.ts | Adds notification history bell wiring + badge updates; improves notification docs/comments. |
| src/renderer/modules/initialization.ts | Initializes split layout, notification history, preview feature visibility, and MCP logs button behavior. |
| src/renderer/modules/homepageManagement.ts | Adds MCP headless badge rendering behind preview gate. |
| src/renderer/modules/globalSearchManagement.ts | Type rename to Connection and import ordering cleanup. |
| src/renderer/modals/toolDetail/controller.ts | README load error path updated (now uses console.error; see review comment). |
| src/renderer/modals/sharedStyles.ts | Adds success/error feedback variants, PP API badge styling, and checkbox styling. |
| src/renderer/modals/selectMultiConnection/view.ts | Adds PP API info message and minor template formatting changes. |
| src/renderer/modals/selectMultiConnection/controller.ts | Adds PP API badge + guidance toggles and a new parameter; introduces console.error (see review comments). |
| src/renderer/modals/selectConnection/view.ts | Adds PP API info message and minor template formatting changes. |
| src/renderer/modals/selectConnection/controller.ts | Adds PP API badge + guidance toggles and a new parameter. |
| src/renderer/modals/feedbackScript.ts | Adds shared helpers for structured modal feedback payload parsing. |
| src/renderer/modals/editConnection/view.ts | Adds “Enable for Power Platform API” checkbox and footer button tweaks. |
| src/renderer/modals/addConnection/view.ts | Adds “Enable for Power Platform API” checkbox and footer button tweaks. |
| src/renderer/index.html | Adds MCP button, MCP-enabled filters, split layout containers/divider, and notification bell/badge markup. |
| src/renderer/icons/light/mcp.svg | Adds MCP icon (light). |
| src/renderer/icons/light/logs.svg | Adds logs icon (light). |
| src/renderer/icons/dark/mcp.svg | Adds MCP icon (dark). |
| src/renderer/icons/dark/logs.svg | Adds logs icon (dark). |
| src/renderer/constants/index.ts | Registers the MCP icon in activity bar icon loading list. |
| src/main/toolPreloadBridge.ts | Exposes Power Platform API client surface; adds PP API connection fields; enriches launch context metadata. |
| src/main/preload.ts | Adds split layout, MCP server, and agent invocation APIs to renderer preload bridge. |
| src/main/notificationPreload.ts | Adds notification history actions to notification window preload API. |
| src/main/modalPreload.ts | Adds app registration config + clipboard/notification utils for modals. |
| src/main/mcp/schemaConverter.ts | New converter from PPTB schema to JSON schema for MCP/tool surfaces. |
| src/main/mcp/agentToolRegistry.ts | New registry for agent-invokable tools based on installed manifests/config. |
| src/main/managers/trayManager.ts | Adds MCP server start/stop + status to tray menu (with refresh). |
| src/main/managers/toolsManager.ts | Adds MCP headless flag propagation and local-tool uninstall behavior change. |
| src/main/managers/toolRegistryManager.ts | Adds MCP headless flag detection/propagation and safe uninstall guard. |
| src/main/managers/terminalManager.ts | Hardens executable blocking (normalized candidates) and exports test utilities. |
| src/main/managers/settingsManager.ts | Adds MCP access token generation + preview-feature migration + defaults. |
| src/main/managers/protocolHandlerManager.ts | Updates protocol listener docs/behavior when protocol is disabled. |
| src/main/managers/headlessToolInvocationManager.ts | New headless job tracking/execution state machine with TTL cleanup. |
| src/main/managers/encryptionManager.ts | Avoids decryption attempts on non-canonical base64 inputs. |
| src/main/managers/dataverseManager.ts | Type rename and formatting cleanup in operation URL construction. |
| src/main/managers/browserManager.ts | Type rename (DataverseConnection → Connection) and import ordering cleanup. |
| src/main/managers/autoUpdateManager.ts | Adds app-update.yml presence validation before update checks/download/scheduling. |
| src/main/constants.ts | Expands blocked terminal commands list (node/dotnet/conhost/start etc.). |
| src/common/types/tool.ts | Adds PP API feature flag and MCP headless-enabled flag on tools/manifests. |
| src/common/types/settings.ts | Adds preview feature flag system, MCP token, and split divider persistence fields; type rename to Connection. |
| src/common/types/connection.ts | Renames and expands connection type to include PP API fields; updates type guard + parsing. |
| src/common/ipc/channels.ts | Adds channels for PP API requests, MCP server, agent logs, split layout, and MCP token retrieval. |
| src/cli/index.ts | Adds initial CLI scaffold for headless operation (placeholder commands). |
| src/cli/constants.ts | Adds CLI constants, commands, and exit codes. |
| RELEASE_NOTES.md | Bumps release notes to 1.2.4 with new highlight set. |
| README.md | Adds links to inter-tool/MCP docs for tool authors. |
| playwright.config.ts | Adds Playwright test configuration for Electron e2e tests. |
| packages/validation/tsconfig.json | Adds TS config for the new @pptb/validate package. |
| packages/validation/src/npm.ts | Adds Node-only npm registry + tarball structure validation helpers. |
| packages/validation/src/index.ts | Exposes validation-only public API surface. |
| packages/validation/src/cli.ts | Adds a CLI entry for validation package checks. |
| packages/validation/package.json | Adds the new @pptb/validate package manifest. |
| packages/types/toolboxAPI.d.ts | Extends tool API types for invocation metadata + connection type rename. |
| packages/types/pptbConfig.d.ts | Adds agents contract typing for MCP/agent invocation. |
| packages/types/package.json | Bumps version and adds dependency on @pptb/validate (see review comment). |
| packages/types/index.d.ts | Adds powerplatform API references/exports and adjusts export order. |
| packages/types/dataverseAPI.d.ts | Adds globalThis.dataverseAPI typing for headless usage. |
| packages/types/bin/pptb-validate.js | Adds a bin wrapper that invokes @pptb/validate/cli. |
| packages/lib/validate.js | Updates validation JS to include new agents + PP API feature flag validations. |
| package.json | Bumps app version; adds CLI bin, build:cli, test scripts, and Jest/Playwright deps. |
| jest.config.ts | Adds Jest configuration with ts-jest and Electron/electron-store mocks. |
| docs/MCP_TOOL_AUTHOR_MIGRATION.md | Adds tool author migration guidance for MCP agent invocation. |
| docs/MCP_HEADLESS_UNATTENDED_IMPLEMENTATION.md | Documents the headless/unattended MCP execution plan and architecture. |
| docs/LOGGING_BEST_PRACTICES.md | Adds guidance for redacting invocation logs. |
| docs/INTER_TOOL_INVOCATION.md | Adds MCP agentic invocation section and reorganizes examples. |
| buildScripts/electron-builder-win.json | Removes MSI wrapped target (Windows packaging adjustment). |
| .gitignore | Ignores Playwright test results output directory. |
| .github/workflows/test.yml | Adds CI workflows for Jest unit tests and Playwright Electron e2e tests. |
| .github/workflows/prod-release.yml | Adds Windows app-update.yml validation step; fixes types version path. |
| .github/workflows/nightly-release.yml | Adds Windows app-update.yml validation step. |
| .github/workflows/bundle-size.yml | Prevents commenting on forks; makes bundle-size comment sticky/updatable. |
| .github/workflows/build.yml | Fixes types version path; makes preflight comment sticky/updatable and adjusts permissions. |
| .github/pull_request_template.md | Replaces template with structured checklist (summary/testing/architecture/etc.). |
| .github/plans/plan-mcp-headless-unattended-execution.md | Adds a phased plan doc for headless MCP execution. |
Comments suppressed due to low confidence (2)
src/renderer/modals/selectMultiConnection/controller.ts:487
- Avoid console.error in production modal scripts. If you want to surface authentication failures, prefer the existing modal feedback UI or the app notification system rather than logging to the console.
packages/types/package.json:27 @pptb/typesdepends on@pptb/validatewith a version range (^0.0.2) that does not satisfy the workspace package version (packages/validation is 1.0.0). In a pnpm workspace this prevents local linking and will attempt to fetch from the registry instead, breaking installs/builds.
| } catch (error) { | ||
| captureException("Failed to load README", error); | ||
| console.error("Failed to load README", error); | ||
| readmeContainer.textContent = "Unable to load README."; | ||
| } | ||
| }; |
| } catch (error) { | ||
| captureException('Error connecting:', error); | ||
| console.error('Error connecting:', error); | ||
| button.disabled = false; | ||
| button.textContent = originalText; | ||
| } |
| /** | ||
| * Determine whether the installed app has the updater metadata electron-updater needs. | ||
| */ | ||
| private canCheckForUpdates(): boolean { | ||
| if (!app.isPackaged) { | ||
| return false; | ||
| } | ||
|
|
||
| return fs.existsSync(this.appUpdateConfigPath); | ||
| } |
Summary
Validate app-update.yml exists
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:
Screenshots / recordings
Breaking changes
Reviewer notes