From c4a50dccf1b30a17c5cda8914661c83b1ea5f169 Mon Sep 17 00:00:00 2001 From: NagyVikt Date: Thu, 23 Apr 2026 15:29:30 +0200 Subject: [PATCH] Stop advertising a file icon theme from Active Agents The Active Agents companion now leaves file icon theme selection to the workspace and other installed themes, so the extension details page no longer offers Set File Icon Theme. The only code changes are the live/template manifests plus the focused regression that locks this contract. Constraint: VS Code shows the Set File Icon Theme button whenever the extension contributes iconThemes in its manifest Rejected: Keep the icon theme contribution and try to hide the button elsewhere | the button is driven by manifest metadata, not extension runtime code Confidence: high Scope-risk: narrow Directive: If the companion should stay out of workspace icon-theme choice, do not reintroduce contributes.iconThemes without explicitly wanting the button back Tested: node --test test/vscode-active-agents-session-state.test.js test/metadata.test.js; node scripts/install-vscode-active-agents-extension.js; installed manifest version 0.0.14 with iconThemes null Not-tested: Visual screenshot proof of the extension details page after reload --- .../vscode/guardex-active-agents/package.json | 9 +----- ...vscode-active-agents-session-state.test.js | 28 +++---------------- vscode/guardex-active-agents/package.json | 9 +----- 3 files changed, 6 insertions(+), 40 deletions(-) diff --git a/templates/vscode/guardex-active-agents/package.json b/templates/vscode/guardex-active-agents/package.json index 1758ff0..9955846 100644 --- a/templates/vscode/guardex-active-agents/package.json +++ b/templates/vscode/guardex-active-agents/package.json @@ -3,7 +3,7 @@ "displayName": "GitGuardex Active Agents", "description": "Shows live Guardex sandbox sessions and repo changes in a dedicated VS Code Active Agents sidebar.", "publisher": "recodeee", - "version": "0.0.13", + "version": "0.0.14", "license": "MIT", "icon": "icon.png", "engines": { @@ -22,13 +22,6 @@ ], "main": "./extension.js", "contributes": { - "iconThemes": [ - { - "id": "gitguardex-file-icons", - "label": "GitGuardex File Icons", - "path": "./fileicons/gitguardex-fileicons.json" - } - ], "commands": [ { "command": "gitguardex.activeAgents.startAgent", diff --git a/test/vscode-active-agents-session-state.test.js b/test/vscode-active-agents-session-state.test.js index 5a8add8..dda64c6 100644 --- a/test/vscode-active-agents-session-state.test.js +++ b/test/vscode-active-agents-session-state.test.js @@ -1215,7 +1215,7 @@ test('install-vscode-active-agents-extension installs the current extension into assert.equal(installedManifest.icon, 'icon.png'); assert.equal(installedManifest.version, manifest.version); assert.deepEqual(installedManifest.activationEvents, manifest.activationEvents); - assert.deepEqual(installedManifest.contributes.iconThemes, manifest.contributes.iconThemes); + assert.equal(installedManifest.contributes.iconThemes, undefined); assert.equal(installedManifest.activationEvents.includes('onStartupFinished'), true); assert.equal(fs.existsSync(path.join(canonicalDir, 'icon.png')), true); assert.equal(fs.existsSync(path.join(canonicalDir, 'fileicons', 'gitguardex-fileicons.json')), true); @@ -1251,7 +1251,7 @@ test('active-agents extension edits require a higher manifest version than the b templateManifest.activationEvents, 'Live and template Active Agents activation events must stay in sync.', ); - assert.deepEqual( + assert.equal( liveManifest.contributes.iconThemes, templateManifest.contributes.iconThemes, 'Live and template Active Agents icon theme contributions must stay in sync.', @@ -1297,29 +1297,9 @@ test('active-agents manifest uses a dedicated activity bar container with a hive ]); }); -test('active-agents file icon theme maps Guardex workflow paths and ships referenced assets', () => { +test('active-agents manifest does not contribute a file icon theme', () => { const manifest = readExtensionManifest(); - const themeContribution = manifest.contributes.iconThemes.find((entry) => entry.id === 'gitguardex-file-icons'); - assert.ok(themeContribution, 'Expected the GitGuardex file icon theme contribution.'); - assert.equal(themeContribution.path, './fileicons/gitguardex-fileicons.json'); - - const themePath = path.join(path.dirname(extensionManifestPath), themeContribution.path); - const theme = readJson(themePath); - assert.equal(theme.folderNames.changes, '_gitguardex_openspec'); - assert.equal(theme.folderNames.plan, '_gitguardex_plan'); - assert.equal(theme.folderNames.specs, '_gitguardex_spec'); - assert.equal(theme.folderNames['agent-worktrees'], '_gitguardex_branch'); - assert.equal(theme.folderNames['.githooks'], '_gitguardex_hook'); - assert.equal(theme.fileNames['AGENTS.md'], '_gitguardex_agent'); - assert.equal(theme.fileNames['proposal.md'], '_gitguardex_openspec'); - assert.equal(theme.fileNames['tasks.md'], '_gitguardex_plan'); - assert.equal(theme.fileNames['spec.md'], '_gitguardex_spec'); - assert.equal(theme.fileNames['pre-commit'], '_gitguardex_hook'); - - for (const definition of Object.values(theme.iconDefinitions)) { - assert.equal(typeof definition.iconPath, 'string'); - assert.equal(fs.existsSync(path.join(path.dirname(themePath), definition.iconPath)), true); - } + assert.equal(manifest.contributes.iconThemes, undefined); }); test('active-agents extension auto-installs a newer workspace build and offers reload', async () => { diff --git a/vscode/guardex-active-agents/package.json b/vscode/guardex-active-agents/package.json index 1758ff0..9955846 100644 --- a/vscode/guardex-active-agents/package.json +++ b/vscode/guardex-active-agents/package.json @@ -3,7 +3,7 @@ "displayName": "GitGuardex Active Agents", "description": "Shows live Guardex sandbox sessions and repo changes in a dedicated VS Code Active Agents sidebar.", "publisher": "recodeee", - "version": "0.0.13", + "version": "0.0.14", "license": "MIT", "icon": "icon.png", "engines": { @@ -22,13 +22,6 @@ ], "main": "./extension.js", "contributes": { - "iconThemes": [ - { - "id": "gitguardex-file-icons", - "label": "GitGuardex File Icons", - "path": "./fileicons/gitguardex-fileicons.json" - } - ], "commands": [ { "command": "gitguardex.activeAgents.startAgent",