diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md
index d33a7203..1e3a5379 100644
--- a/.github/copilot-instructions.md
+++ b/.github/copilot-instructions.md
@@ -13,7 +13,7 @@ This is the **GitHub Copilot for Eclipse** plugin - an Eclipse IDE extension tha
- **Multi-Platform Support**: Windows, macOS (x64/aarch64), and Linux (x64/aarch64)
### Tech Stack
-- **Java**: Primary language (Java 17+, with Eclipse 4.31+ requiring Java 21+)
+- **Java**: Primary language (Java 21+, with Eclipse 4.38+ requiring Java 21+)
- **Eclipse RCP/OSGi**: Plugin architecture using Eclipse platform APIs
- **Maven/Tycho**: Build system for Eclipse plugin development
- **LSP4E**: Language Server Protocol integration for Eclipse
@@ -46,7 +46,7 @@ You MUST verify compilation and code quality before declaring work complete!
- Root POM coordinates multi-module build with Tycho
- Each bundle/feature/test has its own POM inheriting from root
- Checkstyle validation runs during `verify` phase
-- Target platform defined in `base.target`, `target-terminal.target`, `target-tm-terminal.target`
+- Target platform defined in `target-platforms/2025-12.target`
### Code Change Review Trigger
@@ -547,7 +547,7 @@ CompletableFuture.runAsync(() -> {
**When** writing tests → use JUnit 5 for core logic; integration tests for Eclipse integration
-**When** adding dependencies → only add necessary bundles; check `base.target` for Eclipse 2024-03 version constraints
+**When** adding dependencies → only add necessary bundles; check `target-platforms/2025-12.target` for Eclipse 2025-12 version constraints
**When** targeting Eclipse versions → support multiple versions when possible
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index a77cc802..14852bcf 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -29,10 +29,10 @@ jobs:
working-directory: com.microsoft.copilot.eclipse.core/copilot-agent
run: npm i -f
- - name: Set up JDK 17
+ - name: Set up JDK 21
uses: actions/setup-java@v4
with:
- java-version: '17'
+ java-version: '21'
distribution: 'temurin'
cache: maven
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index e78e21d4..93e05ad8 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -16,10 +16,10 @@ When you submit a pull request, a CLA bot will automatically determine whether y
### Prerequisites
-- **Java 17** or later (CI uses Temurin 17; use a newer JDK if required by your Eclipse IDE)
+- **Java 21** or later (CI uses Temurin 21; use a newer JDK if required by your Eclipse IDE)
- **Maven 3.8+** (or use the provided Maven wrapper `./mvnw`)
- **Node.js 22.13** or later, with npm
-- **Eclipse IDE for Eclipse Committers 2024-03** or later (for development)
+- **Eclipse IDE for Eclipse Committers 2025-12** or later (for development)
- Recommended: **Eclipse Checkstyle plugin** for code style compliance
(e.g. install from update site: https://checkstyle.org/eclipse-cs-update-site/)
@@ -61,8 +61,8 @@ The installable P2 repository is generated in `com.microsoft.copilot.eclipse.rep
* Do also import the agent bundle for your OS (e.g., `com.microsoft.copilot.eclipse.core.agent.win32`)
after building the project with npm and maven or import all OS-specific agent bundles.
2. Activate one of the target platforms, i.e. open one of the target definition files and select `Set As Active Target Platform`.
- * target-terminal.target (Eclipse 4.37+)
- * target-tm-terminal.target (Eclipse 4.36 and earlier)
+ * `target-platforms/2025-12.target` (Eclipse 4.38 and later)
+ * `target-platforms/2024-12.target` (Eclipse 4.36 and earlier)
3. For using the Checkstyle configuration (assuming you have installed the Eclipse Checkstyle plugin, see prerequisites),
add a new named Checkstyle configuration.
* Select *Window > Preferences > Checkstyle* and press the *New...* button.
diff --git a/base.target b/base.target
deleted file mode 100644
index a6fc6705..00000000
--- a/base.target
+++ /dev/null
@@ -1,77 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- org.mockito
- mockito-core
- 5.14.2
- jar
-
-
- org.mockito
- mockito-junit-jupiter
- 5.14.2
- jar
-
-
- org.objenesis
- objenesis
- 3.4
- jar
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/com.microsoft.copilot.eclipse.core.agent.linux.aarch64/META-INF/MANIFEST.MF b/com.microsoft.copilot.eclipse.core.agent.linux.aarch64/META-INF/MANIFEST.MF
index e13e44f3..3d704da3 100644
--- a/com.microsoft.copilot.eclipse.core.agent.linux.aarch64/META-INF/MANIFEST.MF
+++ b/com.microsoft.copilot.eclipse.core.agent.linux.aarch64/META-INF/MANIFEST.MF
@@ -6,5 +6,5 @@ Automatic-Module-Name: com.microsoft.copilot.eclipse.core.agent.linux.aarch64
Bundle-Version: 0.20.0.qualifier
Bundle-Vendor: GitHub Copilot
Fragment-Host: com.microsoft.copilot.eclipse.core
-Bundle-RequiredExecutionEnvironment: JavaSE-17
+Bundle-RequiredExecutionEnvironment: JavaSE-21
Eclipse-PlatformFilter: (&(osgi.os=linux)(osgi.arch=aarch64))
diff --git a/com.microsoft.copilot.eclipse.core.agent.linux.x64/META-INF/MANIFEST.MF b/com.microsoft.copilot.eclipse.core.agent.linux.x64/META-INF/MANIFEST.MF
index b8a762ac..0c02a5db 100644
--- a/com.microsoft.copilot.eclipse.core.agent.linux.x64/META-INF/MANIFEST.MF
+++ b/com.microsoft.copilot.eclipse.core.agent.linux.x64/META-INF/MANIFEST.MF
@@ -6,5 +6,5 @@ Automatic-Module-Name: com.microsoft.copilot.eclipse.core.agent.linux.x64
Bundle-Version: 0.20.0.qualifier
Bundle-Vendor: GitHub Copilot
Fragment-Host: com.microsoft.copilot.eclipse.core
-Bundle-RequiredExecutionEnvironment: JavaSE-17
+Bundle-RequiredExecutionEnvironment: JavaSE-21
Eclipse-PlatformFilter: (&(osgi.os=linux)(osgi.arch=x86_64))
diff --git a/com.microsoft.copilot.eclipse.core.agent.macosx.aarch64/META-INF/MANIFEST.MF b/com.microsoft.copilot.eclipse.core.agent.macosx.aarch64/META-INF/MANIFEST.MF
index d2a33578..fd877242 100644
--- a/com.microsoft.copilot.eclipse.core.agent.macosx.aarch64/META-INF/MANIFEST.MF
+++ b/com.microsoft.copilot.eclipse.core.agent.macosx.aarch64/META-INF/MANIFEST.MF
@@ -6,5 +6,5 @@ Automatic-Module-Name: com.microsoft.copilot.eclipse.core.agent.macosx.aarch64
Bundle-Version: 0.20.0.qualifier
Bundle-Vendor: GitHub Copilot
Fragment-Host: com.microsoft.copilot.eclipse.core
-Bundle-RequiredExecutionEnvironment: JavaSE-17
+Bundle-RequiredExecutionEnvironment: JavaSE-21
Eclipse-PlatformFilter: (&(osgi.os=macosx) (osgi.arch=aarch64))
diff --git a/com.microsoft.copilot.eclipse.core.agent.macosx.x64/META-INF/MANIFEST.MF b/com.microsoft.copilot.eclipse.core.agent.macosx.x64/META-INF/MANIFEST.MF
index a6a5e998..ee074624 100644
--- a/com.microsoft.copilot.eclipse.core.agent.macosx.x64/META-INF/MANIFEST.MF
+++ b/com.microsoft.copilot.eclipse.core.agent.macosx.x64/META-INF/MANIFEST.MF
@@ -6,5 +6,5 @@ Automatic-Module-Name: com.microsoft.copilot.eclipse.core.agent.macosx.x64
Bundle-Version: 0.20.0.qualifier
Bundle-Vendor: GitHub Copilot
Fragment-Host: com.microsoft.copilot.eclipse.core
-Bundle-RequiredExecutionEnvironment: JavaSE-17
+Bundle-RequiredExecutionEnvironment: JavaSE-21
Eclipse-PlatformFilter: (&(osgi.os=macosx)(osgi.arch=x86_64))
diff --git a/com.microsoft.copilot.eclipse.core.agent.win32/META-INF/MANIFEST.MF b/com.microsoft.copilot.eclipse.core.agent.win32/META-INF/MANIFEST.MF
index b9c752e5..ca5678cb 100644
--- a/com.microsoft.copilot.eclipse.core.agent.win32/META-INF/MANIFEST.MF
+++ b/com.microsoft.copilot.eclipse.core.agent.win32/META-INF/MANIFEST.MF
@@ -6,5 +6,5 @@ Automatic-Module-Name: com.microsoft.copilot.eclipse.core.agent.win32
Bundle-Version: 0.20.0.qualifier
Bundle-Vendor: GitHub Copilot
Fragment-Host: com.microsoft.copilot.eclipse.core
-Bundle-RequiredExecutionEnvironment: JavaSE-17
+Bundle-RequiredExecutionEnvironment: JavaSE-21
Eclipse-PlatformFilter: (osgi.os=win32)
diff --git a/com.microsoft.copilot.eclipse.core.test/.classpath b/com.microsoft.copilot.eclipse.core.test/.classpath
index 38f401ad..766df48f 100644
--- a/com.microsoft.copilot.eclipse.core.test/.classpath
+++ b/com.microsoft.copilot.eclipse.core.test/.classpath
@@ -1,11 +1,15 @@
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/com.microsoft.copilot.eclipse.core.test/.settings/org.eclipse.core.resources.prefs b/com.microsoft.copilot.eclipse.core.test/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 00000000..4824b802
--- /dev/null
+++ b/com.microsoft.copilot.eclipse.core.test/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/=UTF-8
diff --git a/com.microsoft.copilot.eclipse.core.test/.settings/org.eclipse.jdt.core.prefs b/com.microsoft.copilot.eclipse.core.test/.settings/org.eclipse.jdt.core.prefs
index 21eccc09..a98206bc 100644
--- a/com.microsoft.copilot.eclipse.core.test/.settings/org.eclipse.jdt.core.prefs
+++ b/com.microsoft.copilot.eclipse.core.test/.settings/org.eclipse.jdt.core.prefs
@@ -1,12 +1,12 @@
eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=17
-org.eclipse.jdt.core.compiler.compliance=17
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=21
+org.eclipse.jdt.core.compiler.compliance=21
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
org.eclipse.jdt.core.compiler.release=enabled
-org.eclipse.jdt.core.compiler.source=17
+org.eclipse.jdt.core.compiler.source=21
org.eclipse.jdt.core.formatter.align_arrows_in_switch_on_columns=false
org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns=false
org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647
diff --git a/com.microsoft.copilot.eclipse.core.test/META-INF/MANIFEST.MF b/com.microsoft.copilot.eclipse.core.test/META-INF/MANIFEST.MF
index efcd8dba..8b8f5fc5 100644
--- a/com.microsoft.copilot.eclipse.core.test/META-INF/MANIFEST.MF
+++ b/com.microsoft.copilot.eclipse.core.test/META-INF/MANIFEST.MF
@@ -4,7 +4,7 @@ Bundle-Name: com.microsoft.copilot.eclipse.core.test
Bundle-SymbolicName: com.microsoft.copilot.eclipse.core.test;singleton:=true
Bundle-Version: 0.20.0.qualifier
Bundle-Vendor: GitHub Copilot
-Bundle-RequiredExecutionEnvironment: JavaSE-17
+Bundle-RequiredExecutionEnvironment: JavaSE-21
Fragment-Host: com.microsoft.copilot.eclipse.core
Automatic-Module-Name: com.microsoft.copilot.eclipse.core.test
Import-Package: org.objenesis;version="[3.4.0,4.0.0)",
diff --git a/com.microsoft.copilot.eclipse.core.test/build.properties b/com.microsoft.copilot.eclipse.core.test/build.properties
index 100b378a..3cb14ae9 100644
--- a/com.microsoft.copilot.eclipse.core.test/build.properties
+++ b/com.microsoft.copilot.eclipse.core.test/build.properties
@@ -1,5 +1,5 @@
-source.. = src
-output.. = target/classes
+source.. = src/
+output.. = target/classes/
bin.includes = META-INF/,\
.
diff --git a/com.microsoft.copilot.eclipse.core/.classpath b/com.microsoft.copilot.eclipse.core/.classpath
index 8d861214..b1415d56 100644
--- a/com.microsoft.copilot.eclipse.core/.classpath
+++ b/com.microsoft.copilot.eclipse.core/.classpath
@@ -1,7 +1,11 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
diff --git a/com.microsoft.copilot.eclipse.core/.settings/org.eclipse.core.resources.prefs b/com.microsoft.copilot.eclipse.core/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 00000000..4824b802
--- /dev/null
+++ b/com.microsoft.copilot.eclipse.core/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/=UTF-8
diff --git a/com.microsoft.copilot.eclipse.core/.settings/org.eclipse.jdt.core.prefs b/com.microsoft.copilot.eclipse.core/.settings/org.eclipse.jdt.core.prefs
index 21eccc09..2fc4a03e 100644
--- a/com.microsoft.copilot.eclipse.core/.settings/org.eclipse.jdt.core.prefs
+++ b/com.microsoft.copilot.eclipse.core/.settings/org.eclipse.jdt.core.prefs
@@ -1,12 +1,17 @@
eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=17
-org.eclipse.jdt.core.compiler.compliance=17
+org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=21
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=21
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
org.eclipse.jdt.core.compiler.release=enabled
-org.eclipse.jdt.core.compiler.source=17
+org.eclipse.jdt.core.compiler.source=21
org.eclipse.jdt.core.formatter.align_arrows_in_switch_on_columns=false
org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns=false
org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647
diff --git a/com.microsoft.copilot.eclipse.core/META-INF/MANIFEST.MF b/com.microsoft.copilot.eclipse.core/META-INF/MANIFEST.MF
index 9b5eb2d0..0f3025fd 100644
--- a/com.microsoft.copilot.eclipse.core/META-INF/MANIFEST.MF
+++ b/com.microsoft.copilot.eclipse.core/META-INF/MANIFEST.MF
@@ -23,10 +23,10 @@ Export-Package: com.microsoft.copilot.eclipse.core,
com.microsoft.copilot.eclipse.core.lsp.protocol.quota,
com.microsoft.copilot.eclipse.core.lsp.protocol.tools,
com.microsoft.copilot.eclipse.core.nes;x-friends:="com.microsoft.copilot.eclipse.ui",
- com.microsoft.copilot.eclipse.core.persistence;x-friends:="com.microsoft.copilot.eclipse.ui,com.microsoft.copilot.eclipse.core.test,com.microsoft.copilot.eclipse.core.utils",
+ com.microsoft.copilot.eclipse.core.persistence;x-friends:="com.microsoft.copilot.eclipse.ui,com.microsoft.copilot.eclipse.core.test,com.microsoft.copilot.eclipse.core.utils",
com.microsoft.copilot.eclipse.core.utils
Bundle-Activator: com.microsoft.copilot.eclipse.core.CopilotCore
-Bundle-RequiredExecutionEnvironment: JavaSE-17
+Bundle-RequiredExecutionEnvironment: JavaSE-21
Automatic-Module-Name: com.microsoft.copilot.eclipse.core
Bundle-ActivationPolicy: lazy
Import-Package: org.eclipse.ui,
diff --git a/com.microsoft.copilot.eclipse.core/build.properties b/com.microsoft.copilot.eclipse.core/build.properties
index d6219466..326a0702 100644
--- a/com.microsoft.copilot.eclipse.core/build.properties
+++ b/com.microsoft.copilot.eclipse.core/build.properties
@@ -1,5 +1,5 @@
-source.. = src
-output.. = target/classes
+source.. = src/
+output.. = target/classes/
bin.includes = META-INF/,\
.,\
plugin.xml,\
diff --git a/com.microsoft.copilot.eclipse.swtbot.test/.classpath b/com.microsoft.copilot.eclipse.swtbot.test/.classpath
index 38f401ad..766df48f 100644
--- a/com.microsoft.copilot.eclipse.swtbot.test/.classpath
+++ b/com.microsoft.copilot.eclipse.swtbot.test/.classpath
@@ -1,11 +1,15 @@
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/com.microsoft.copilot.eclipse.swtbot.test/.settings/org.eclipse.core.resources.prefs b/com.microsoft.copilot.eclipse.swtbot.test/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 00000000..4824b802
--- /dev/null
+++ b/com.microsoft.copilot.eclipse.swtbot.test/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/=UTF-8
diff --git a/com.microsoft.copilot.eclipse.swtbot.test/.settings/org.eclipse.jdt.core.prefs b/com.microsoft.copilot.eclipse.swtbot.test/.settings/org.eclipse.jdt.core.prefs
index 62ef3488..23fa13b1 100644
--- a/com.microsoft.copilot.eclipse.swtbot.test/.settings/org.eclipse.jdt.core.prefs
+++ b/com.microsoft.copilot.eclipse.swtbot.test/.settings/org.eclipse.jdt.core.prefs
@@ -1,9 +1,9 @@
eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=17
-org.eclipse.jdt.core.compiler.compliance=17
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=21
+org.eclipse.jdt.core.compiler.compliance=21
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
org.eclipse.jdt.core.compiler.release=enabled
-org.eclipse.jdt.core.compiler.source=17
+org.eclipse.jdt.core.compiler.source=21
diff --git a/com.microsoft.copilot.eclipse.swtbot.test/META-INF/MANIFEST.MF b/com.microsoft.copilot.eclipse.swtbot.test/META-INF/MANIFEST.MF
index 8fbc5c1a..a35198cd 100644
--- a/com.microsoft.copilot.eclipse.swtbot.test/META-INF/MANIFEST.MF
+++ b/com.microsoft.copilot.eclipse.swtbot.test/META-INF/MANIFEST.MF
@@ -4,7 +4,7 @@ Bundle-Name: com.microsoft.copilot.eclipse.swtbot.test
Bundle-SymbolicName: com.microsoft.copilot.eclipse.swtbot.test;singleton:=true
Bundle-Version: 0.20.0.qualifier
Bundle-Vendor: GitHub Copilot
-Bundle-RequiredExecutionEnvironment: JavaSE-17
+Bundle-RequiredExecutionEnvironment: JavaSE-21
Automatic-Module-Name: com.microsoft.copilot.eclipse.swtbot.test
Require-Bundle: org.eclipse.swtbot.swt.finder;bundle-version="4.1.0",
org.eclipse.swtbot.eclipse.finder;bundle-version="4.1.0",
diff --git a/com.microsoft.copilot.eclipse.swtbot.test/build.properties b/com.microsoft.copilot.eclipse.swtbot.test/build.properties
index 8e6b406e..73ec1c61 100644
--- a/com.microsoft.copilot.eclipse.swtbot.test/build.properties
+++ b/com.microsoft.copilot.eclipse.swtbot.test/build.properties
@@ -1,5 +1,5 @@
-source.. = src
-output.. = target/classes
+source.. = src/
+output.. = target/classes/
bin.includes = META-INF/,\
.,\
plugin.xml,\
diff --git a/com.microsoft.copilot.eclipse.terminal.api/.classpath b/com.microsoft.copilot.eclipse.terminal.api/.classpath
index 8d861214..b1415d56 100644
--- a/com.microsoft.copilot.eclipse.terminal.api/.classpath
+++ b/com.microsoft.copilot.eclipse.terminal.api/.classpath
@@ -1,7 +1,11 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
diff --git a/com.microsoft.copilot.eclipse.terminal.api/.settings/org.eclipse.core.resources.prefs b/com.microsoft.copilot.eclipse.terminal.api/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 00000000..4824b802
--- /dev/null
+++ b/com.microsoft.copilot.eclipse.terminal.api/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/=UTF-8
diff --git a/com.microsoft.copilot.eclipse.terminal.api/.settings/org.eclipse.jdt.core.prefs b/com.microsoft.copilot.eclipse.terminal.api/.settings/org.eclipse.jdt.core.prefs
index 62ef3488..23fa13b1 100644
--- a/com.microsoft.copilot.eclipse.terminal.api/.settings/org.eclipse.jdt.core.prefs
+++ b/com.microsoft.copilot.eclipse.terminal.api/.settings/org.eclipse.jdt.core.prefs
@@ -1,9 +1,9 @@
eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=17
-org.eclipse.jdt.core.compiler.compliance=17
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=21
+org.eclipse.jdt.core.compiler.compliance=21
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
org.eclipse.jdt.core.compiler.release=enabled
-org.eclipse.jdt.core.compiler.source=17
+org.eclipse.jdt.core.compiler.source=21
diff --git a/com.microsoft.copilot.eclipse.terminal.api/META-INF/MANIFEST.MF b/com.microsoft.copilot.eclipse.terminal.api/META-INF/MANIFEST.MF
index 75b5a994..ecc33c85 100644
--- a/com.microsoft.copilot.eclipse.terminal.api/META-INF/MANIFEST.MF
+++ b/com.microsoft.copilot.eclipse.terminal.api/META-INF/MANIFEST.MF
@@ -7,7 +7,7 @@ Bundle-Vendor: GitHub Copilot
Export-Package: com.microsoft.copilot.eclipse.terminal.api
Automatic-Module-Name: com.microsoft.copilot.eclipse.terminal.api
Bundle-ActivationPolicy: lazy
-Bundle-RequiredExecutionEnvironment: JavaSE-17
+Bundle-RequiredExecutionEnvironment: JavaSE-21
Import-Package: org.osgi.framework;version="[1.10.0,2.0.0)"
Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.30.0,4.0.0)",
com.microsoft.copilot.eclipse.core;bundle-version="0.20.0",
diff --git a/com.microsoft.copilot.eclipse.terminal.api/build.properties b/com.microsoft.copilot.eclipse.terminal.api/build.properties
index f38581b9..eb7c4c16 100644
--- a/com.microsoft.copilot.eclipse.terminal.api/build.properties
+++ b/com.microsoft.copilot.eclipse.terminal.api/build.properties
@@ -1,5 +1,5 @@
source.. = src/
-output.. = bin/
+output.. = target/classes/
bin.includes = META-INF/,\
.,\
scripts/
diff --git a/com.microsoft.copilot.eclipse.ui.jobs/.classpath b/com.microsoft.copilot.eclipse.ui.jobs/.classpath
index 5508535a..b1415d56 100644
--- a/com.microsoft.copilot.eclipse.ui.jobs/.classpath
+++ b/com.microsoft.copilot.eclipse.ui.jobs/.classpath
@@ -1,7 +1,11 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
diff --git a/com.microsoft.copilot.eclipse.ui.jobs/.settings/org.eclipse.core.resources.prefs b/com.microsoft.copilot.eclipse.ui.jobs/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 00000000..4824b802
--- /dev/null
+++ b/com.microsoft.copilot.eclipse.ui.jobs/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/=UTF-8
diff --git a/com.microsoft.copilot.eclipse.ui.jobs/.settings/org.eclipse.jdt.core.prefs b/com.microsoft.copilot.eclipse.ui.jobs/.settings/org.eclipse.jdt.core.prefs
index 20cc7b58..f7d4b5bf 100644
--- a/com.microsoft.copilot.eclipse.ui.jobs/.settings/org.eclipse.jdt.core.prefs
+++ b/com.microsoft.copilot.eclipse.ui.jobs/.settings/org.eclipse.jdt.core.prefs
@@ -1,10 +1,10 @@
eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=17
-org.eclipse.jdt.core.compiler.compliance=17
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=21
+org.eclipse.jdt.core.compiler.compliance=21
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
org.eclipse.jdt.core.compiler.release=enabled
-org.eclipse.jdt.core.compiler.source=17
+org.eclipse.jdt.core.compiler.source=21
diff --git a/com.microsoft.copilot.eclipse.ui.jobs/META-INF/MANIFEST.MF b/com.microsoft.copilot.eclipse.ui.jobs/META-INF/MANIFEST.MF
index 7c499bb2..64b090c5 100644
--- a/com.microsoft.copilot.eclipse.ui.jobs/META-INF/MANIFEST.MF
+++ b/com.microsoft.copilot.eclipse.ui.jobs/META-INF/MANIFEST.MF
@@ -5,7 +5,7 @@ Bundle-SymbolicName: com.microsoft.copilot.eclipse.ui.jobs;singleton:=true
Bundle-Version: 0.20.0.qualifier
Bundle-Vendor: GitHub Copilot
Bundle-Activator: com.microsoft.copilot.eclipse.ui.jobs.CopilotJobs
-Bundle-RequiredExecutionEnvironment: JavaSE-17
+Bundle-RequiredExecutionEnvironment: JavaSE-21
Bundle-Localization: plugin
Automatic-Module-Name: com.microsoft.copilot.eclipse.ui.jobs
Bundle-ActivationPolicy: lazy
diff --git a/com.microsoft.copilot.eclipse.ui.jobs/build.properties b/com.microsoft.copilot.eclipse.ui.jobs/build.properties
index 18012dbe..2257d712 100644
--- a/com.microsoft.copilot.eclipse.ui.jobs/build.properties
+++ b/com.microsoft.copilot.eclipse.ui.jobs/build.properties
@@ -1,5 +1,5 @@
source.. = src/
-output.. = bin/
+output.. = target/classes/
bin.includes = META-INF/,\
.,\
plugin.xml,\
diff --git a/com.microsoft.copilot.eclipse.ui.terminal.tm/pom.xml b/com.microsoft.copilot.eclipse.ui.terminal.tm/pom.xml
index 1d4b3904..a1089315 100644
--- a/com.microsoft.copilot.eclipse.ui.terminal.tm/pom.xml
+++ b/com.microsoft.copilot.eclipse.ui.terminal.tm/pom.xml
@@ -18,7 +18,7 @@
${tycho-version}
- ../target-tm-terminal.target
+ ../target-platforms/2024-12.target
diff --git a/com.microsoft.copilot.eclipse.ui.terminal/.classpath b/com.microsoft.copilot.eclipse.ui.terminal/.classpath
index e0ce1f7e..b1415d56 100644
--- a/com.microsoft.copilot.eclipse.ui.terminal/.classpath
+++ b/com.microsoft.copilot.eclipse.ui.terminal/.classpath
@@ -1,8 +1,11 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
diff --git a/com.microsoft.copilot.eclipse.ui.terminal/.settings/org.eclipse.core.resources.prefs b/com.microsoft.copilot.eclipse.ui.terminal/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 00000000..4824b802
--- /dev/null
+++ b/com.microsoft.copilot.eclipse.ui.terminal/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/=UTF-8
diff --git a/com.microsoft.copilot.eclipse.ui.terminal/.settings/org.eclipse.jdt.core.prefs b/com.microsoft.copilot.eclipse.ui.terminal/.settings/org.eclipse.jdt.core.prefs
index 62ef3488..23fa13b1 100644
--- a/com.microsoft.copilot.eclipse.ui.terminal/.settings/org.eclipse.jdt.core.prefs
+++ b/com.microsoft.copilot.eclipse.ui.terminal/.settings/org.eclipse.jdt.core.prefs
@@ -1,9 +1,9 @@
eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=17
-org.eclipse.jdt.core.compiler.compliance=17
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=21
+org.eclipse.jdt.core.compiler.compliance=21
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
org.eclipse.jdt.core.compiler.release=enabled
-org.eclipse.jdt.core.compiler.source=17
+org.eclipse.jdt.core.compiler.source=21
diff --git a/com.microsoft.copilot.eclipse.ui.terminal/META-INF/MANIFEST.MF b/com.microsoft.copilot.eclipse.ui.terminal/META-INF/MANIFEST.MF
index 5fdd2792..43daf562 100644
--- a/com.microsoft.copilot.eclipse.ui.terminal/META-INF/MANIFEST.MF
+++ b/com.microsoft.copilot.eclipse.ui.terminal/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@ Bundle-Name: com.microsoft.copilot.eclipse.ui.terminal
Bundle-SymbolicName: com.microsoft.copilot.eclipse.ui.terminal;singleton:=true
Bundle-Version: 0.20.0.qualifier
Bundle-Vendor: GitHub Copilot
-Bundle-RequiredExecutionEnvironment: JavaSE-17
+Bundle-RequiredExecutionEnvironment: JavaSE-21
Automatic-Module-Name: com.microsoft.copilot.eclipse.ui.terminal
Bundle-ActivationPolicy: lazy
Service-Component: OSGI-INF/component.xml
diff --git a/com.microsoft.copilot.eclipse.ui.terminal/build.properties b/com.microsoft.copilot.eclipse.ui.terminal/build.properties
index 4aee9b7a..367dd831 100644
--- a/com.microsoft.copilot.eclipse.ui.terminal/build.properties
+++ b/com.microsoft.copilot.eclipse.ui.terminal/build.properties
@@ -1,5 +1,5 @@
source.. = src/
-output.. = bin/
+output.. = target/classes/
bin.includes = META-INF/,\
.,\
OSGI-INF/component.xml
\ No newline at end of file
diff --git a/com.microsoft.copilot.eclipse.ui.terminal/pom.xml b/com.microsoft.copilot.eclipse.ui.terminal/pom.xml
index f70016ec..830edfbf 100644
--- a/com.microsoft.copilot.eclipse.ui.terminal/pom.xml
+++ b/com.microsoft.copilot.eclipse.ui.terminal/pom.xml
@@ -18,7 +18,7 @@
${tycho-version}
- ../target-terminal.target
+ ../target-platforms/2025-12.target
diff --git a/com.microsoft.copilot.eclipse.ui.test/.classpath b/com.microsoft.copilot.eclipse.ui.test/.classpath
index 38f401ad..766df48f 100644
--- a/com.microsoft.copilot.eclipse.ui.test/.classpath
+++ b/com.microsoft.copilot.eclipse.ui.test/.classpath
@@ -1,11 +1,15 @@
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/com.microsoft.copilot.eclipse.ui.test/.settings/org.eclipse.core.resources.prefs b/com.microsoft.copilot.eclipse.ui.test/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 00000000..4824b802
--- /dev/null
+++ b/com.microsoft.copilot.eclipse.ui.test/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/=UTF-8
diff --git a/com.microsoft.copilot.eclipse.ui.test/.settings/org.eclipse.jdt.core.prefs b/com.microsoft.copilot.eclipse.ui.test/.settings/org.eclipse.jdt.core.prefs
index 62ef3488..23fa13b1 100644
--- a/com.microsoft.copilot.eclipse.ui.test/.settings/org.eclipse.jdt.core.prefs
+++ b/com.microsoft.copilot.eclipse.ui.test/.settings/org.eclipse.jdt.core.prefs
@@ -1,9 +1,9 @@
eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=17
-org.eclipse.jdt.core.compiler.compliance=17
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=21
+org.eclipse.jdt.core.compiler.compliance=21
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
org.eclipse.jdt.core.compiler.release=enabled
-org.eclipse.jdt.core.compiler.source=17
+org.eclipse.jdt.core.compiler.source=21
diff --git a/com.microsoft.copilot.eclipse.ui.test/META-INF/MANIFEST.MF b/com.microsoft.copilot.eclipse.ui.test/META-INF/MANIFEST.MF
index fa2de66b..f1f4fee6 100644
--- a/com.microsoft.copilot.eclipse.ui.test/META-INF/MANIFEST.MF
+++ b/com.microsoft.copilot.eclipse.ui.test/META-INF/MANIFEST.MF
@@ -4,7 +4,7 @@ Bundle-Name: com.microsoft.copilot.eclipse.ui.test
Bundle-SymbolicName: com.microsoft.copilot.eclipse.ui.test;singleton:=true
Bundle-Version: 0.20.0.qualifier
Bundle-Vendor: GitHub Copilot
-Bundle-RequiredExecutionEnvironment: JavaSE-17
+Bundle-RequiredExecutionEnvironment: JavaSE-21
Fragment-Host: com.microsoft.copilot.eclipse.ui
Automatic-Module-Name: com.microsoft.copilot.eclipse.ui.test
Import-Package: org.objenesis;version="[3.4.0,4.0.0)"
diff --git a/com.microsoft.copilot.eclipse.ui.test/build.properties b/com.microsoft.copilot.eclipse.ui.test/build.properties
index 07c97efe..8ffd6363 100644
--- a/com.microsoft.copilot.eclipse.ui.test/build.properties
+++ b/com.microsoft.copilot.eclipse.ui.test/build.properties
@@ -1,5 +1,5 @@
-source.. = src
-output.. = target/classes
+source.. = src/
+output.. = target/classes/
bin.includes = META-INF/,\
.,\
fragment.xml
diff --git a/com.microsoft.copilot.eclipse.ui/.classpath b/com.microsoft.copilot.eclipse.ui/.classpath
index 8d861214..b1415d56 100644
--- a/com.microsoft.copilot.eclipse.ui/.classpath
+++ b/com.microsoft.copilot.eclipse.ui/.classpath
@@ -1,7 +1,11 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
diff --git a/com.microsoft.copilot.eclipse.ui/.settings/org.eclipse.core.resources.prefs b/com.microsoft.copilot.eclipse.ui/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 00000000..4824b802
--- /dev/null
+++ b/com.microsoft.copilot.eclipse.ui/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/=UTF-8
diff --git a/com.microsoft.copilot.eclipse.ui/.settings/org.eclipse.jdt.core.prefs b/com.microsoft.copilot.eclipse.ui/.settings/org.eclipse.jdt.core.prefs
index 21eccc09..a98206bc 100644
--- a/com.microsoft.copilot.eclipse.ui/.settings/org.eclipse.jdt.core.prefs
+++ b/com.microsoft.copilot.eclipse.ui/.settings/org.eclipse.jdt.core.prefs
@@ -1,12 +1,12 @@
eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=17
-org.eclipse.jdt.core.compiler.compliance=17
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=21
+org.eclipse.jdt.core.compiler.compliance=21
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
org.eclipse.jdt.core.compiler.release=enabled
-org.eclipse.jdt.core.compiler.source=17
+org.eclipse.jdt.core.compiler.source=21
org.eclipse.jdt.core.formatter.align_arrows_in_switch_on_columns=false
org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns=false
org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647
diff --git a/com.microsoft.copilot.eclipse.ui/META-INF/MANIFEST.MF b/com.microsoft.copilot.eclipse.ui/META-INF/MANIFEST.MF
index dc86d49a..87615634 100644
--- a/com.microsoft.copilot.eclipse.ui/META-INF/MANIFEST.MF
+++ b/com.microsoft.copilot.eclipse.ui/META-INF/MANIFEST.MF
@@ -21,7 +21,7 @@ Export-Package: com.microsoft.copilot.eclipse.ui,
com.microsoft.copilot.eclipse.ui.extensions,
com.microsoft.copilot.eclipse.ui.nes;x-friends:="com.microsoft.copilot.eclipse.ui.test"
Bundle-Activator: com.microsoft.copilot.eclipse.ui.CopilotUi
-Bundle-RequiredExecutionEnvironment: JavaSE-17
+Bundle-RequiredExecutionEnvironment: JavaSE-21
Automatic-Module-Name: com.microsoft.copilot.eclipse.ui
Bundle-ActivationPolicy: lazy
Import-Package: org.osgi.framework;version="[1.10.0,2.0.0)"
diff --git a/com.microsoft.copilot.eclipse.ui/build.properties b/com.microsoft.copilot.eclipse.ui/build.properties
index 5ba08abe..9ce23e6a 100644
--- a/com.microsoft.copilot.eclipse.ui/build.properties
+++ b/com.microsoft.copilot.eclipse.ui/build.properties
@@ -1,5 +1,5 @@
-source.. = src
-output.. = target/classes
+source.. = src/
+output.. = target/classes/
bin.includes = META-INF/,\
.,\
plugin.xml,\
diff --git a/launch/Verify Copilot for Eclipse.launch b/launch/Verify Copilot for Eclipse.launch
new file mode 100644
index 00000000..e2537bd2
--- /dev/null
+++ b/launch/Verify Copilot for Eclipse.launch
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/launch/plugin_debug_configuration.launch b/launch/plugin_debug_configuration.launch
index 8c8419e6..eedd1787 100644
--- a/launch/plugin_debug_configuration.launch
+++ b/launch/plugin_debug_configuration.launch
@@ -19,7 +19,7 @@
-
+
diff --git a/pom.xml b/pom.xml
index 2a9b33d6..8fbefc9a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -18,7 +18,7 @@
-
+
com.microsoft.copilot.eclipse.terminal.api
com.microsoft.copilot.eclipse.ui.terminal
com.microsoft.copilot.eclipse.ui.terminal.tm
@@ -92,7 +92,7 @@
${tycho-version}
- ../base.target
+ ../target-platforms/2025-12.target
JavaSE-21
diff --git a/target-platforms/2024-12.target b/target-platforms/2024-12.target
new file mode 100644
index 00000000..53adbaac
--- /dev/null
+++ b/target-platforms/2024-12.target
@@ -0,0 +1,67 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/target-platforms/2025-12.target b/target-platforms/2025-12.target
new file mode 100644
index 00000000..fcbd4cb3
--- /dev/null
+++ b/target-platforms/2025-12.target
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/target-terminal.target b/target-terminal.target
deleted file mode 100644
index ad2e7c96..00000000
--- a/target-terminal.target
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/target-tm-terminal.target b/target-tm-terminal.target
deleted file mode 100644
index ff989f09..00000000
--- a/target-tm-terminal.target
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file