Skip to content

Enhance Anypoint Studio with UI improvements and new workflows#33

Merged
ajaykontham merged 12 commits into
buildfrom
dev/anypoint-studio
May 26, 2026
Merged

Enhance Anypoint Studio with UI improvements and new workflows#33
ajaykontham merged 12 commits into
buildfrom
dev/anypoint-studio

Conversation

@ajaykontham

Copy link
Copy Markdown
Member

No description provided.

ajaykontham and others added 12 commits May 19, 2026 20:09
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
…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
Copilot AI review requested due to automatic review settings May 26, 2026 05:34

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 Link that 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.

Comment on lines 11 to 13
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.Image;
Comment on lines 40 to +42
private int buttonLeftMargin;
private Color darkBackground;
private Color darkForeground;
Comment on lines +407 to +410
/**
* 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.
*/
Comment thread .github/workflows/ci.yml
Comment on lines +1 to +5
# name: CI

# on:
# push:
# branches: [ "main" ]
Comment on lines +22 to +26
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
Comment on lines 18 to 20
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Label;
@ajaykontham ajaykontham merged commit b393a85 into build May 26, 2026
1 check passed

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

Comment thread .github/workflows/ci.yml
Comment on lines +3 to +7
# on:
# push:
# branches: [ "main" ]
# pull_request:
# branches: [ "main" ]

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge 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("\"", "&quot;").replace("'", "&apos;");

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge 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&amp;b=2 and the browser is opened with the wrong URL.

Useful? React with 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants