Skip to content

Commit 6fe2fee

Browse files
authored
Merge pull request #1003 from devoxx/release/v1.4.0
chore: bump version to v1.4.0 and use proper icons for provider settings
2 parents a34c4d3 + 76d043a commit 6fe2fee

6 files changed

Lines changed: 64 additions & 8 deletions

File tree

CHANGELOG.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,20 @@ so # Changelog
22

33
All notable changes to this project will be documented in this file.
44

5+
## [1.4.0]
6+
7+
### Added
8+
- Exo distributed AI cluster as new local LLM provider — run large AI models across multiple Apple Silicon devices connected via Thunderbolt (#1002)
9+
- Exo auto-discovery of downloaded models from /state API
10+
- Automatic Exo instance creation with placement preview across cluster
11+
- Background progress bar during Exo model loading with cancellation support
12+
- Auto-recovery when Exo instances disconnect or get recycled
13+
- Collapsible cluster status panel above chat showing nodes, memory, GPU usage, temperature, and active instance status
14+
- Exo Docusaurus documentation page
15+
16+
### Fixed
17+
- MarkdownConversationRenderer missing createConversationJEditorPane method
18+
519
## [1.3.3]
620

721
### Fixed

build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ plugins {
1212
}
1313

1414
group = "com.devoxx.genie"
15-
version = "1.3.3"
15+
version = "1.4.0"
1616

1717
repositories {
1818
mavenCentral()

src/main/java/com/devoxx/genie/ui/settings/AbstractSettingsComponent.java

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,4 +127,36 @@ protected void addProviderSettingRow(JPanel panel, GridBagConstraints gbc, Strin
127127
jPanel.add(btnApiKey, BorderLayout.WEST);
128128
return jPanel;
129129
}
130+
131+
protected @NotNull JComponent createTextWithDownloadButton(JComponent jComponent,
132+
String url) {
133+
return createTextWithIconButton(jComponent, AllIcons.Actions.Download, "Download from " + url, url);
134+
}
135+
136+
protected @NotNull JComponent createTextWithInfoButton(JComponent jComponent,
137+
String url) {
138+
return createTextWithIconButton(jComponent, AllIcons.General.Information, "Open documentation: " + url, url);
139+
}
140+
141+
private @NotNull JComponent createTextWithIconButton(JComponent jComponent,
142+
Icon icon,
143+
String tooltip,
144+
String url) {
145+
JPanel jPanel = new JPanel(new BorderLayout());
146+
jPanel.add(jComponent, BorderLayout.CENTER);
147+
JButton btn = createActionButton(
148+
null,
149+
icon, tooltip,
150+
e -> {
151+
try {
152+
BrowserUtil.open(url);
153+
} catch (Exception ex) {
154+
Project project = ProjectManager.getInstance().getOpenProjects()[0];
155+
NotificationUtil.sendNotification(project, "Error: Unable to open the link");
156+
}
157+
});
158+
159+
jPanel.add(btn, BorderLayout.WEST);
160+
return jPanel;
161+
}
130162
}

src/main/java/com/devoxx/genie/ui/settings/llm/LLMProvidersComponent.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -175,23 +175,23 @@ public JPanel createPanel() {
175175
addSection(panel, gbc, "Local LLM Providers");
176176

177177
addProviderSettingRow(panel, gbc, "Ollama URL", ollamaEnabledCheckBox,
178-
createTextWithLinkButton(ollamaModelUrlField, "https://ollama.com"));
178+
createTextWithDownloadButton(ollamaModelUrlField, "https://ollama.com"));
179179
addProviderSettingRow(panel, gbc, "Ollama Request Context Override", ollamaContextWindowOverrideCheckBox);
180180
addHintText(panel, gbc, "When enabled, DevoxxGenie sends Ollama num_ctx from discovered model metadata; when disabled, Ollama keeps its own runtime default.");
181181
addProviderSettingRow(panel, gbc, "LMStudio URL", lmStudioEnabledCheckBox,
182-
createTextWithLinkButton(lmStudioModelUrlField, "https://lmstudio.ai/"));
182+
createTextWithDownloadButton(lmStudioModelUrlField, "https://lmstudio.ai/"));
183183
// Add hint text for LMStudio URL
184184
addHintText(panel, gbc, "Base URL for OpenAI-compatible chat; model metadata is always fetched from /api/v1/models");
185185
addProviderSettingRow(panel, gbc, "LMStudio Fallback Context", lmStudioFallbackContextEnabledCheckBox, lmStudioFallbackContextField);
186186
addHintText(panel, gbc, "Used only when LMStudio model metadata does not expose context length");
187187
addProviderSettingRow(panel, gbc, "GPT4All URL", gpt4AllEnabledCheckBox,
188-
createTextWithLinkButton(gpt4AllModelUrlField, "https://gpt4all.io/"));
188+
createTextWithDownloadButton(gpt4AllModelUrlField, "https://gpt4all.io/"));
189189
addProviderSettingRow(panel, gbc, "Jan URL", janEnabledCheckBox,
190-
createTextWithLinkButton(janModelUrlField, "https://jan.ai/download"));
190+
createTextWithDownloadButton(janModelUrlField, "https://jan.ai/download"));
191191
addProviderSettingRow(panel, gbc, "LLaMA.c++ URL", llamaCPPEnabledCheckBox,
192-
createTextWithLinkButton(llamaCPPModelUrlField, "https://github.com/ggerganov/llama.cpp/blob/master/examples/server/README.md"));
192+
createTextWithDownloadButton(llamaCPPModelUrlField, "https://github.com/ggml-org/llama.cpp"));
193193
addProviderSettingRow(panel, gbc, "Exo URL", exoEnabledCheckBox,
194-
createTextWithLinkButton(exoModelUrlField, "https://genie.devoxx.com/docs/llm-providers/exo"));
194+
createTextWithInfoButton(exoModelUrlField, "https://genie.devoxx.com/docs/llm-providers/exo"));
195195
addHintText(panel, gbc, "Distributed AI cluster — auto-creates model instances across connected devices");
196196
addProviderSettingRow(panel, gbc, "Custom OpenAI URL", customOpenAIUrlEnabledCheckBox, customOpenAIUrlField);
197197
addProviderSettingRow(panel, gbc, "Custom OpenAI Model", customOpenAIModelNameEnabledCheckBox, customOpenAIModelNameField);

src/main/resources/META-INF/plugin.xml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,16 @@
4545
]]></description>
4646

4747
<change-notes><![CDATA[
48+
<h2>v1.4.0</h2>
49+
<UL>
50+
<LI>Feat: Add Exo distributed AI cluster as new local LLM provider — run large AI models across multiple Apple Silicon devices via Thunderbolt (#1002)</LI>
51+
<LI>Feat: Exo auto-discovery of downloaded models from /state API</LI>
52+
<LI>Feat: Automatic Exo instance creation with placement preview across cluster</LI>
53+
<LI>Feat: Background progress bar during Exo model loading with cancellation support</LI>
54+
<LI>Feat: Auto-recovery when Exo instances disconnect or get recycled</LI>
55+
<LI>Feat: Collapsible cluster status panel showing nodes, memory, GPU usage, temperature, and active instance status</LI>
56+
<LI>Fix: MarkdownConversationRenderer missing createConversationJEditorPane method</LI>
57+
</UL>
4858
<h2>v1.3.3</h2>
4959
<UL>
5060
<LI>Fix: Catch NoClassDefFoundError for CompilerTopics in non-Java IDEs (PhpStorm, WebStorm, etc.) (#990)</LI>
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
version=1.3.3
1+
version=1.4.0

0 commit comments

Comments
 (0)