From 08d82785e3c186e9b70d2033c2c8abe29bdb2b29 Mon Sep 17 00:00:00 2001 From: "b.b" <76818625+breaking-brake@users.noreply.github.com> Date: Tue, 25 Nov 2025 20:41:42 +0900 Subject: [PATCH 1/3] fix: improve error message when no workspace is open (#153) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add i18n support for workspace error message - Display user-friendly message instead of technical error - Support 5 languages (en, ja, ko, zh-CN, zh-TW) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude --- src/extension/commands/open-editor.ts | 11 ++++++++--- src/extension/i18n/translation-keys.ts | 3 +++ src/extension/i18n/translations/en.ts | 3 +++ src/extension/i18n/translations/ja.ts | 3 +++ src/extension/i18n/translations/ko.ts | 3 +++ src/extension/i18n/translations/zh-CN.ts | 3 +++ src/extension/i18n/translations/zh-TW.ts | 3 +++ 7 files changed, 26 insertions(+), 3 deletions(-) diff --git a/src/extension/commands/open-editor.ts b/src/extension/commands/open-editor.ts index b8dfb803..adccfcfe 100644 --- a/src/extension/commands/open-editor.ts +++ b/src/extension/commands/open-editor.ts @@ -7,6 +7,7 @@ import * as vscode from 'vscode'; import type { WebviewMessage } from '../../shared/types/messages'; +import { translate } from '../i18n/i18n-service'; import { cancelGeneration } from '../services/claude-code-service'; import { FileService } from '../services/file-service'; import { SlackApiService } from '../services/slack-api-service'; @@ -82,9 +83,13 @@ export function registerOpenEditorCommand( try { fileService = new FileService(); } catch (error) { - vscode.window.showErrorMessage( - `Failed to initialize File Service: ${error instanceof Error ? error.message : 'Unknown error'}` - ); + // Check if this is a "no workspace" error + const errorMessage = error instanceof Error ? error.message : 'Unknown error'; + if (errorMessage === 'No workspace folder is open') { + vscode.window.showErrorMessage(translate('error.noWorkspaceOpen')); + } else { + vscode.window.showErrorMessage(`Failed to initialize File Service: ${errorMessage}`); + } return; } diff --git a/src/extension/i18n/translation-keys.ts b/src/extension/i18n/translation-keys.ts index bcb07ab8..bed5b0f1 100644 --- a/src/extension/i18n/translation-keys.ts +++ b/src/extension/i18n/translation-keys.ts @@ -64,4 +64,7 @@ export interface TranslationKeys { 'mcpNode.optional': string; 'mcpNode.noDescription': string; 'mcpNode.executionMethod': string; + + // Error messages + 'error.noWorkspaceOpen': string; } diff --git a/src/extension/i18n/translations/en.ts b/src/extension/i18n/translations/en.ts index eaed0214..763a310c 100644 --- a/src/extension/i18n/translations/en.ts +++ b/src/extension/i18n/translations/en.ts @@ -72,4 +72,7 @@ export const enTranslations: TranslationKeys = { 'mcpNode.noDescription': 'No description available', 'mcpNode.executionMethod': 'This node invokes an MCP (Model Context Protocol) tool. When executing this workflow, use the configured parameters to call the tool via the MCP server.', + + // Error messages + 'error.noWorkspaceOpen': 'Please open a folder or workspace first.', }; diff --git a/src/extension/i18n/translations/ja.ts b/src/extension/i18n/translations/ja.ts index 4d669c39..32477253 100644 --- a/src/extension/i18n/translations/ja.ts +++ b/src/extension/i18n/translations/ja.ts @@ -71,4 +71,7 @@ export const jaTranslations: TranslationKeys = { 'mcpNode.noDescription': '説明なし', 'mcpNode.executionMethod': 'このノードはMCP(Model Context Protocol)ツールを呼び出します。ワークフロー実行時は、設定されたパラメータを使用してMCPサーバー経由でツールを呼び出してください。', + + // Error messages + 'error.noWorkspaceOpen': 'フォルダまたはワークスペースを開いてから実行してください。', }; diff --git a/src/extension/i18n/translations/ko.ts b/src/extension/i18n/translations/ko.ts index 589c4b26..615955e9 100644 --- a/src/extension/i18n/translations/ko.ts +++ b/src/extension/i18n/translations/ko.ts @@ -71,4 +71,7 @@ export const koTranslations: TranslationKeys = { 'mcpNode.noDescription': '설명 없음', 'mcpNode.executionMethod': '이 노드는 MCP(Model Context Protocol) 도구를 호출합니다. 워크플로를 실행할 때 구성된 매개변수를 사용하여 MCP 서버를 통해 도구를 호출하세요.', + + // Error messages + 'error.noWorkspaceOpen': '폴더 또는 워크스페이스를 먼저 열어주세요.', }; diff --git a/src/extension/i18n/translations/zh-CN.ts b/src/extension/i18n/translations/zh-CN.ts index b76b0f6a..a94abd86 100644 --- a/src/extension/i18n/translations/zh-CN.ts +++ b/src/extension/i18n/translations/zh-CN.ts @@ -68,4 +68,7 @@ export const zhCNTranslations: TranslationKeys = { 'mcpNode.noDescription': '无描述', 'mcpNode.executionMethod': '此节点调用MCP(Model Context Protocol)工具。执行此工作流时,请使用已配置的参数通过MCP服务器调用该工具。', + + // Error messages + 'error.noWorkspaceOpen': '请先打开文件夹或工作区。', }; diff --git a/src/extension/i18n/translations/zh-TW.ts b/src/extension/i18n/translations/zh-TW.ts index 0488d169..75759ba0 100644 --- a/src/extension/i18n/translations/zh-TW.ts +++ b/src/extension/i18n/translations/zh-TW.ts @@ -68,4 +68,7 @@ export const zhTWTranslations: TranslationKeys = { 'mcpNode.noDescription': '無描述', 'mcpNode.executionMethod': '此節點調用MCP(Model Context Protocol)工具。執行此工作流時,請使用已配置的參數通過MCP伺服器調用該工具。', + + // Error messages + 'error.noWorkspaceOpen': '請先開啟資料夾或工作區。', }; From a17728b67e929c7858aa8fd710e928c9ff79d8e7 Mon Sep 17 00:00:00 2001 From: "b.b" <76818625+breaking-brake@users.noreply.github.com> Date: Tue, 25 Nov 2025 20:55:10 +0900 Subject: [PATCH 2/3] fix: improve node palette description text visibility (#154) - Changed color from descriptionForeground to button-foreground - Added opacity 0.8 for visual hierarchy with node titles --- src/webview/src/components/NodePalette.tsx | 27 ++++++++++++++-------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/src/webview/src/components/NodePalette.tsx b/src/webview/src/components/NodePalette.tsx index 877db5ca..d75f4cb7 100644 --- a/src/webview/src/components/NodePalette.tsx +++ b/src/webview/src/components/NodePalette.tsx @@ -250,7 +250,8 @@ export const NodePalette: React.FC = () => {
{t('node.prompt.description')} @@ -289,7 +290,8 @@ export const NodePalette: React.FC = () => {
{t('node.subAgent.description')} @@ -328,7 +330,8 @@ export const NodePalette: React.FC = () => {
{t('node.skill.description')} @@ -367,7 +370,8 @@ export const NodePalette: React.FC = () => {
{t('node.mcp.description')} @@ -420,7 +424,8 @@ export const NodePalette: React.FC = () => {
{t('node.ifElse.description')} @@ -458,7 +463,8 @@ export const NodePalette: React.FC = () => {
{t('node.switch.description')} @@ -497,7 +503,8 @@ export const NodePalette: React.FC = () => {
{t('node.askUserQuestion.description')} @@ -536,7 +543,8 @@ export const NodePalette: React.FC = () => {
{t('node.end.description')} @@ -577,7 +585,8 @@ export const NodePalette: React.FC = () => {
{t('node.branch.description')} From 22add735d3f10ef4b937110e3ef2f4e2f83faf50 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 25 Nov 2025 12:01:33 +0000 Subject: [PATCH 3/3] chore(release): 2.13.2 [skip ci] ## [2.13.2](https://github.com/breaking-brake/cc-wf-studio/compare/v2.13.1...v2.13.2) (2025-11-25) ### Bug Fixes * improve error message when no workspace is open ([#153](https://github.com/breaking-brake/cc-wf-studio/issues/153)) ([08d8278](https://github.com/breaking-brake/cc-wf-studio/commit/08d82785e3c186e9b70d2033c2c8abe29bdb2b29)) * improve node palette description text visibility ([#154](https://github.com/breaking-brake/cc-wf-studio/issues/154)) ([a17728b](https://github.com/breaking-brake/cc-wf-studio/commit/a17728b67e929c7858aa8fd710e928c9ff79d8e7)) --- CHANGELOG.md | 7 +++++++ package.json | 2 +- src/webview/package-lock.json | 4 ++-- src/webview/package.json | 2 +- 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index becb1a39..e38ba8e9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## [2.13.2](https://github.com/breaking-brake/cc-wf-studio/compare/v2.13.1...v2.13.2) (2025-11-25) + +### Bug Fixes + +* improve error message when no workspace is open ([#153](https://github.com/breaking-brake/cc-wf-studio/issues/153)) ([08d8278](https://github.com/breaking-brake/cc-wf-studio/commit/08d82785e3c186e9b70d2033c2c8abe29bdb2b29)) +* improve node palette description text visibility ([#154](https://github.com/breaking-brake/cc-wf-studio/issues/154)) ([a17728b](https://github.com/breaking-brake/cc-wf-studio/commit/a17728b67e929c7858aa8fd710e928c9ff79d8e7)) + ## [2.13.1](https://github.com/breaking-brake/cc-wf-studio/compare/v2.13.0...v2.13.1) (2025-11-25) ### Bug Fixes diff --git a/package.json b/package.json index 6880fa29..543c8473 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "cc-wf-studio", "displayName": "Claude Code Workflow Studio", "description": "Visual workflow editor for Claude Code Slash Commands, Sub Agents, Agent Skills, and MCP Tools", - "version": "2.13.1", + "version": "2.13.2", "publisher": "breaking-brake", "icon": "resources/icon.png", "repository": { diff --git a/src/webview/package-lock.json b/src/webview/package-lock.json index 940a46ef..09f40ebf 100644 --- a/src/webview/package-lock.json +++ b/src/webview/package-lock.json @@ -1,12 +1,12 @@ { "name": "cc-wf-studio-webview", - "version": "2.13.1", + "version": "2.13.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "cc-wf-studio-webview", - "version": "2.13.1", + "version": "2.13.2", "dependencies": { "@radix-ui/react-select": "^2.2.6", "@radix-ui/react-switch": "^1.2.6", diff --git a/src/webview/package.json b/src/webview/package.json index 43039575..d47d546c 100644 --- a/src/webview/package.json +++ b/src/webview/package.json @@ -1,6 +1,6 @@ { "name": "cc-wf-studio-webview", - "version": "2.13.1", + "version": "2.13.2", "private": true, "type": "module", "scripts": {