[Release] v1.2.4#603
Conversation
…#436) * Initial plan * feat: add pptb-validate CLI for tool package validation Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> * docs: add long-term plan for shared @pptb/validation package Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> * feat: update tool validation script and README for improved usability * feat(validate): warn on missing optional fields (icon, website, funding) Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> * feat(validate): improve funding validation logic in tool validation script * Update packages/lib/validate.js Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update packages/lib/validate.js Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update packages/lib/validate.js Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * feat(validate): add 'media-src' to valid CSP directives in validation logic * fix(validate): reject Windows absolute paths and backslashes in icon paths 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 <175728472+Copilot@users.noreply.github.com>
…elective optional domain consent (#431) * Initial plan * Allow toolmakers to explain why they need CSP exceptions Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> * Split CSP modal into required/optional sections with selective opt-in checkboxes Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> * Store required domains in CSP consent record alongside optional domains Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> * Consolidate CSP consent storage and add disabled checkboxes for required domains Co-authored-by: Power-Maverick <36135520+Power-Maverick@users.noreply.github.com> * fix: update CSP documentation link in exception modal * Update src/renderer/modals/cspException/view.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update src/renderer/modules/toolManagement.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * fix: enhance CSP exception domain display with additional styling --------- 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 <175728472+Copilot@users.noreply.github.com>
* 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>
Bundle Size Report 📦
Bundle Analysis ReportsThe detailed bundle analysis reports are available in the workflow artifacts:
Download the artifacts from the workflow run to view interactive visualizations. Bundle size tracking is now active! This helps prevent bundle bloat. |
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 116 out of 129 changed files in this pull request and generated 1 comment.
Comments suppressed due to low confidence (11)
src/renderer/modals/toolDetail/controller.ts:169
- Avoid
console.errorin production modal scripts (project guideline is to use the app logger/Sentry instead of console). Here the error is not otherwise used, so this can be removed while still showing the user-facing fallback text.
src/renderer/modals/selectMultiConnection/controller.ts:351 - Avoid
console.errorin production modal scripts. The caught error isn't used here beyond logging, so remove the console call and just restore the button state.
src/renderer/modals/selectMultiConnection/controller.ts:488 - Avoid
console.errorin production modal scripts. If you need user-visible feedback here, prefer wiring an inline feedback element; otherwise remove the console logging line to comply with the repo's no-console policy.
packages/types/package.json:28 @pptb/typesdepends on@pptb/validatebut the range^0.0.2will never resolve to the newly introduced@pptb/validate@1.0.0(it is restricted to <0.0.3). This will cause consumers to install an older validate package or fail to resolve the expected CLI/export behavior.
test-results/.last-run.json:4- Playwright/Jest outputs under
test-results/should be treated as local/CI artifacts and not checked into git. Please remove this tracked file (e.g.git rm --cached test-results/.last-run.json) and add an ignore rule fortest-results/(and optionallyplaywright-report/).
packages/validation/src/cli.ts:52 - Replace remaining
console.*calls in this helper with stdout/stderr writes to keep CLI output deterministic and avoid console usage.
packages/validation/src/cli.ts:57 - Avoid
console.errorin the top-level error handler; write to stderr explicitly instead.
src/renderer/modals/selectConnection/controller.ts:33 - Avoid
console.warnin production modal scripts. IfmodalBridgeis missing, just return without logging to the console.
This issue also appears on line 420 of the same file.
src/renderer/modals/selectConnection/controller.ts:422
- Avoid
console.warnin production modal scripts. IfmodalBridge.onMessageisn't available, there's nothing actionable to do here besides skipping subscription.
src/renderer/modals/selectMultiConnection/controller.ts:39 - Avoid
console.warnin production modal scripts. IfmodalBridgeis missing, just return without logging to the console.
This issue also appears on line 495 of the same file.
src/renderer/modals/selectMultiConnection/controller.ts:497
- Avoid
console.warnin production modal scripts. IfmodalBridge.onMessageisn't available, skip wiring handlers without writing to the console.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 116 out of 129 changed files in this pull request and generated 2 comments.
Comments suppressed due to low confidence (4)
src/renderer/modals/toolDetail/controller.ts:169
- Avoid direct console.error in the modal script. This project centralizes logging/telemetry via utilities exposed to modals; emitting to the console here makes it harder to manage logging consistently and can be noisy for users running with DevTools open. Consider using the modal-exposed notification utility (or another centralized mechanism) instead of console.error.
src/renderer/modals/selectMultiConnection/controller.ts:488 - Avoid console.error in the modal script for auth failures. This is user-visible noise in DevTools and bypasses the centralized modal utilities that already exist for communicating issues back to the user.
packages/types/package.json:28 @pptb/typesnow depends on@pptb/validate, but the version range ("^0.0.2") does not match the workspace package added in this PR (packages/validation is version 1.0.0). With pnpm workspaces this range will not be satisfied by the local package, so installs may pull an older registry version (or fail) instead of linking the workspace package.
test-results/.last-run.json:4- This looks like a generated Playwright artifact (test output). Committing it will create noisy diffs and potential merge conflicts; it should be removed from version control and ignored (e.g., ignore the test-results/ directory).
…bsolete .last-run.json file
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 115 out of 128 changed files in this pull request and generated 2 comments.
Comments suppressed due to low confidence (6)
src/renderer/modals/toolDetail/controller.ts:167
- Avoid using console.error in production modal scripts (repo guideline). The UI already falls back to a generic README failure message; remove the console error to keep production logs clean and consistent with the app’s logging/telemetry approach.
src/renderer/modals/selectMultiConnection/controller.ts:348 - Avoid using console.error in production modal scripts. Use the existing modal-exposed toolboxAPI.utils.showNotification (or similar app logging mechanism) so failures are surfaced without emitting console errors in shipped code.
src/renderer/modals/selectMultiConnection/controller.ts:487 - Avoid using console.error in production modal scripts. Surface auth failures via the existing notification utility (or app logging) rather than writing to the devtools console.
packages/types/package.json:28 - The workspace now defines
@pptb/validateas version 1.0.0 (packages/validation/package.json), but@pptb/typesdepends on ^0.0.2. In a pnpm workspace this range mismatch prevents linking the local package and instead pulls from the registry, which can break the build/release if 0.0.2 isn’t published (or is the wrong code). Align the dependency range with the workspace package version.
src/renderer/modals/selectConnection/controller.ts:421 - Avoid using console.warn in production modal scripts. If modalBridge.onMessage is unavailable, silently skip registration rather than logging to the console.
src/renderer/modals/selectMultiConnection/controller.ts:496 - Avoid using console.warn in production modal scripts. If modalBridge.onMessage is unavailable, silently skip registration rather than writing to the console.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 115 out of 128 changed files in this pull request and generated no new comments.
Comments suppressed due to low confidence (4)
src/renderer/modals/toolDetail/controller.ts:169
- Avoid using console.error in production modal scripts; this repo’s logging guidelines prohibit console.*. Since the error is already handled via UI fallback, remove the console call (and rename the unused catch binding to satisfy eslint).
src/renderer/modals/selectMultiConnection/controller.ts:351 - Avoid console.error in production modal controller scripts. Remove the console call and rename the unused catch binding to satisfy eslint; UI state restoration is already handled here.
src/renderer/modals/selectMultiConnection/controller.ts:488 - Avoid console.error in production modal controller scripts. If no user-visible feedback is needed here, drop the console logging and rely on the existing connect button reset / UI re-rendering paths.
packages/types/package.json:28 @pptb/typesdepends on@pptb/validateat ^0.0.2, but the workspace package is version 1.0.0. This range won’t satisfy the local package and will force pnpm to fetch an old/nonexistent version from the registry, breaking installs/builds. Update the dependency range to match the validate package version.
Summary
Releasing v1.2.4
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