Enhance Anypoint Studio with UI improvements and new workflows#33
Conversation
Enhance Anypoint Studio with new tools, UI improvements, and workflows
Master: Enhance MuleSoft tools, UI, and auto-approve features
Enhance MuleSoft tools, UI, and auto-approve features
…for Anypoint Studio
…ed (microsoft#254) When the user cancels a subagent tool confirmation dialog, the subagent panel stays expanded at its pre-cancel height. This happens because cancelConfirmation() only called parent.layout() (relaying the turn widget's children), but never updated the ScrolledComposite's minimum size via refreshScrollerLayout(). On the Continue path this goes unnoticed because subsequent subagent messages trigger a layout refresh; on the Cancel path no further messages arrive, so the panel is stuck. Fix by adding a dispose listener on the dialog in BaseTurnWidget that walks up to the nearest ChatContentViewer and calls requestRefreshScrollerLayout(), a new coalesced async helper that schedules a single refreshScrollerLayout() after pending SWT mutations settle. InvokeToolConfirmationDialog remains self-contained: both the accept and cancel paths use a private disposeAndRequestParentLayout() helper, keeping scroller-specific behaviour out of the dialog. Fixes microsoft#169
There was a problem hiding this comment.
Pull request overview
This PR updates the Eclipse UI chat experience (warning/confirmation rendering + layout refresh behavior) and modifies GitHub Actions workflows used for building/packaging the Anypoint Studio distribution.
Changes:
- Replace warning-message rendering with an SWT
Linkthat converts markdown links / raw URLs into clickable anchors. - Ensure chat scroller layout refreshes after tool-confirmation dialogs are disposed.
- Adjust GitHub Actions workflows: disable the existing CI workflow and add a new packaging/release workflow for
main.
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| com.microsoft.copilot.eclipse.ui/src/com/microsoft/copilot/eclipse/ui/chat/WarnWidget.java | Switch warning text to an SWT Link and add link-markup conversion helpers. |
| com.microsoft.copilot.eclipse.ui/src/com/microsoft/copilot/eclipse/ui/chat/InvokeToolConfirmationDialog.java | Refactor disposal + parent relayout into a helper method. |
| com.microsoft.copilot.eclipse.ui/src/com/microsoft/copilot/eclipse/ui/chat/ChatContentViewer.java | Add an async “request refresh layout” entry point for the scroller. |
| com.microsoft.copilot.eclipse.ui/src/com/microsoft/copilot/eclipse/ui/chat/BaseTurnWidget.java | Trigger scroller layout refresh when the confirmation dialog is disposed. |
| .github/workflows/ci.yml | Entire workflow is commented out (CI effectively disabled). |
| .github/workflows/build-win-mac-universal.yml | New workflow to build/repackage p2 ZIPs and publish a GitHub pre-release from main. |
| import org.eclipse.swt.events.SelectionAdapter; | ||
| import org.eclipse.swt.graphics.Color; | ||
| import org.eclipse.swt.graphics.Image; |
| private int buttonLeftMargin; | ||
| private Color darkBackground; | ||
| private Color darkForeground; |
| /** | ||
| * Schedules a single async {@link #refreshScrollerLayout()} call so that multiple dispose/layout | ||
| * events that arrive in the same event-loop tick are coalesced into one pass. | ||
| */ |
| # name: CI | ||
|
|
||
| # on: | ||
| # push: | ||
| # branches: [ "main" ] |
| VERSION=$(grep -oP '(?<=<copilot-plugin-version>)[^<]+' pom.xml) | ||
| TIMESTAMP=$(date -u +%Y%m%d%H%M%S) | ||
| DISPLAY_VERSION="${VERSION/-SNAPSHOT/-$TIMESTAMP}" | ||
| echo "COPILOT_PLUGIN_VERSION=$VERSION" >> $GITHUB_ENV | ||
| echo "COPILOT_DISPLAY_VERSION=$DISPLAY_VERSION" >> $GITHUB_ENV |
| import org.eclipse.swt.widgets.Composite; | ||
| import org.eclipse.swt.widgets.Control; | ||
| import org.eclipse.swt.widgets.Label; |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: e75221702c
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| # on: | ||
| # push: | ||
| # branches: [ "main" ] | ||
| # pull_request: | ||
| # branches: [ "main" ] |
There was a problem hiding this comment.
Re-enable pull_request CI checks
This change comments out the entire CI workflow, so the repository no longer runs any build/test job on pull_request (or on push to main) from this file. I checked the other workflow files in .github/workflows and none define a pull_request trigger, which means regressions can now be merged without automated validation.
Useful? React with 👍 / 👎.
| } | ||
|
|
||
| private static String escapeLinkAttribute(String text) { | ||
| return escapeLinkText(text).replace("\"", """).replace("'", "'"); |
There was a problem hiding this comment.
Keep URL query separators unescaped in Link href
escapeLinkAttribute HTML-escapes & via escapeLinkText, but SWT Link treats the href value as plain text and the selection handler opens event.text directly. As a result, links with query params (for example ...?a=1&b=2) are converted to ...?a=1&b=2 and the browser is opened with the wrong URL.
Useful? React with 👍 / 👎.
No description provided.