Skip to content
Closed
Show file tree
Hide file tree
Changes from 8 commits
Commits
Show all changes
72 commits
Select commit Hold shift + click to select a range
258abc7
app: Add langchain mcp adapter
ashu8912 Sep 8, 2025
e389f3d
app: Add mcp client
ashu8912 Sep 8, 2025
d986808
app: Allo mcp server to accept env vars
ashu8912 Sep 21, 2025
2c03c6c
ai-plugin: fix mcp client initialization
ashu8912 Sep 23, 2025
fe6db0f
app: Add confirmation and mcp config update api
ashu8912 Oct 13, 2025
53f188f
app: Fix initialization and schema config
ashu8912 Oct 18, 2025
a72233c
app: Replace mcp config if server config changes
ashu8912 Oct 19, 2025
476f33d
app: Handle cluster change
ashu8912 Oct 27, 2025
216b803
Add root-level npm
joaquimrocha Oct 17, 2025
820a106
docs,README.md: Update docs to use npm commands instead of make
joaquimrocha Oct 17, 2025
89f2447
frontend: components: Fix isDrawerMode fetch when state not there
illume Oct 22, 2025
404aabf
backend: serviceproxy: Extract tests for TestGet
skoeva Oct 20, 2025
c460e04
backend: serviceproxy: Restrict requests to relative paths
skoeva Oct 20, 2025
f3a7dce
headlamp-plugin/config/plugins-tsconfig.json: Enable checkJS
illume Oct 19, 2025
2dfa991
frontend: Bump vite to 6.4.1
skoeva Oct 21, 2025
ae9a8d8
headlamp-plugin: Bump vite to 6.4.1
skoeva Oct 21, 2025
4c75f44
headlamp-plugin/template: Bump vite to 6.4.1
skoeva Oct 21, 2025
d15a8a0
plugins/examples/app-menus: Bump vite to 6.4.1
skoeva Oct 21, 2025
cf29f48
plugins/examples/change-logo: Bump vite to 6.4.1
skoeva Oct 21, 2025
84c866a
plugins/examples/cluster-chooser: Bump vite to 6.4.1
skoeva Oct 21, 2025
0d1207b
plugins/examples/custom-theme: Bump vite to 6.4.1
skoeva Oct 21, 2025
78a62d6
plugins/examples/customizing-map: Bump vite to 6.4.1
skoeva Oct 21, 2025
8c7537b
plugins/examples/details-view: Bump vite to 6.4.1
skoeva Oct 21, 2025
44ffbc3
plugins/examples/dynamic-clusters: Bump vite to 6.4.1
skoeva Oct 21, 2025
729fd37
plugins/examples/headlamp-events: Bump vite to 6.4.1
skoeva Oct 21, 2025
5a45f10
plugins/examples/pod-counter: Bump vite to 6.4.1
skoeva Oct 21, 2025
f56e09d
plugins/examples/projects: Bump vite to 6.4.1
skoeva Oct 21, 2025
a355055
plugins/examples/resource-charts: Bump vite to 6.4.1
skoeva Oct 21, 2025
17fa7cc
plugins/examples/sidebar: Bump vite to 6.4.1
skoeva Oct 21, 2025
241f4a7
plugins/examples/tables: Bump vite to 6.4.1
skoeva Oct 21, 2025
135c069
plugins/examples/ui-panels: Bump vite to 6.4.1
skoeva Oct 21, 2025
59276ac
frontend: resourceMap: Display valid dates for events
skoeva Oct 20, 2025
7db4e55
build(deps): bump playwright and @playwright/test in /e2e-tests
dependabot[bot] Oct 20, 2025
7405705
build(deps): bump playwright and @playwright/test in /app/e2e-tests
dependabot[bot] Oct 23, 2025
5cd99bb
.github/build-container.yml: Cleanup disk space to avoid running out
illume Oct 24, 2025
d108c1a
headlamp-plugin: Add missing registerProjectDeleteButton export
illume Oct 23, 2025
cc491ed
plugins/examples/projects: Fix for using id instead of name field
illume Oct 23, 2025
ef1147c
frontend: KubeMetadata: Add version of metadata for creation
illume Oct 23, 2025
0496d48
charts: fix loadBalancerSourceRanges formatting
caymard Oct 24, 2025
953ec87
frontend: Add storybook stories for Layout component with various states
hxrshxz Oct 21, 2025
bf919c1
backend: server.go: Extract helpers for createHeadlampConfig
skoeva Sep 30, 2025
d64ce28
backend: config_test.go: Extract tests for TestParseWithEnv
skoeva Sep 30, 2025
b505f20
backend: config.go: Extract helpers for flagset
skoeva Oct 19, 2025
6406233
backend: Add /clusters/clusterName/me endpoint
skoeva Sep 30, 2025
5dee244
frontend: TopBar: Display user info from endpoint in user menu
skoeva Sep 30, 2025
4a14f9d
helm: Add pkce support to the helm and readme docs
k-airos Jul 27, 2025
39906e4
backend: Add PKCE support
k-airos Jul 26, 2025
1574266
docs: Add projects to learn section
vyncent-t Oct 24, 2025
aeb4ea6
frontend: Enhance ErrorComponent with GitHub issue reporting and erro…
hxrshxz Oct 26, 2025
97e890b
frontend: Settings: Refactor cluster rename functionality.
Faakhir30 Oct 4, 2025
fdee4a2
frontend: Settings: Add stories for rename cluster component.
Faakhir30 Oct 4, 2025
08f4d46
app: tests: Add e2e test for cluster renaming.
Faakhir30 Oct 4, 2025
b0e6b42
app: app-build-manifest: Bump app-catalog to 0.7.0 and plugin-catalog…
illume Oct 27, 2025
260c739
frontend: KubeObject: ScaleButton: Add isScalable attribute
illume Oct 28, 2025
231f198
backend: auth: Fetch user info from header
skoeva Oct 27, 2025
ff3dd58
frontend: Improve empty state for the cluster list view
joaquimrocha Oct 29, 2025
ae10b47
app,frontend: Allow open the About dialog from the menu item
joaquimrocha Oct 29, 2025
b9fc006
charts/headlamp: Fix for pluginctl without global install
illume Oct 27, 2025
02b9559
frontend: charts: TopBar: backend/auth: Add me-user-info-url config
illume Oct 30, 2025
303715c
frontend: TopBar: Hide empty user info fields
skoeva Oct 30, 2025
edfa603
app: Bump version to 0.37.0
joaquimrocha Oct 30, 2025
74d78ee
chocolatey: Bump Headlamp version to 0.37.0
joaquimrocha Oct 30, 2025
5f658ab
charts: Bump Headlamp version to v0.37.0
joaquimrocha Oct 30, 2025
bb953ef
docs: Separate OIDC scopes by comma
skoeva Oct 31, 2025
05861ac
github: Remove the winget action
joaquimrocha Oct 31, 2025
3bf0fa3
github: Remove homebrew action
joaquimrocha Oct 31, 2025
765570e
github: Add action to push chocolatey automatically
joaquimrocha Oct 31, 2025
2a7e13c
backend: server: headlamp: Fix meUserInfoURL and log config items
illume Nov 3, 2025
cb37dcd
backend: headlamp: Add logging of missing config items
illume Nov 3, 2025
6f22306
frontend: Sidebar: Remove extra border
sniok Nov 4, 2025
4b5ab9d
WIP
joaquimrocha Nov 5, 2025
be794ad
WIP
joaquimrocha Nov 5, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 25 additions & 0 deletions app/electron/main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ import url from 'url';
import yargs from 'yargs';
import { hideBin } from 'yargs/helpers';
import i18n from './i18next.config';
import ElectronMCPClient from './mcp-client';
import {
addToPath,
ArtifactHubHeadlampPkg,
Expand Down Expand Up @@ -131,6 +132,7 @@ const shouldCheckForUpdates = process.env.HEADLAMP_CHECK_FOR_UPDATES !== 'false'

// make it global so that it doesn't get garbage collected
let mainWindow: BrowserWindow | null;
let mcpClient: ElectronMCPClient;

/**
* `Action` is an interface for an action to be performed by the plugin manager.
Expand Down Expand Up @@ -1131,6 +1133,12 @@ function adjustZoom(delta: number) {

function startElecron() {
console.info('App starting...');
mcpClient = new ElectronMCPClient();

// Initialize MCP client
mcpClient.initialize().catch(error => {
console.error('Failed to initialize MCP client on startup:', error);
});

Copy link
Contributor

Choose a reason for hiding this comment

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

Do not replace newlines like this.

let appVersion: string;
if (isDev && process.env.HEADLAMP_APP_VERSION) {
Expand Down Expand Up @@ -1247,6 +1255,9 @@ function startElecron() {
},
});

// Set the main window reference in the MCP client for dialogs
mcpClient.setMainWindow(mainWindow);

// Load the frontend
mainWindow.loadURL(startUrl);

Expand Down Expand Up @@ -1411,6 +1422,15 @@ function startElecron() {
mainWindow?.webContents.send('backend-token', backendToken);
});

// Handle cluster change notifications from frontend
ipcMain.on('cluster-changed', (event: IpcMainEvent, cluster: string | null) => {
if (mcpClient) {
mcpClient.handleClusterChange(cluster).catch(error => {
console.error('Failed to handle cluster change in MCP client:', error);
});
}
});

setupRunCmdHandlers(mainWindow, ipcMain);

new PluginManagerEventListeners().setupEventHandlers();
Expand Down Expand Up @@ -1463,6 +1483,11 @@ function startElecron() {
if (mainWindow) {
mainWindow.removeAllListeners('close');
}

// Cleanup MCP client
if (mcpClient) {
mcpClient.cleanup().catch(console.error);
}
});
}

Expand Down
Loading
Loading