diff --git a/docs/features/local-tool-environment/prd.md b/docs/features/local-tool-environment/prd.md index f1c2a8a6..3d5bf12e 100644 --- a/docs/features/local-tool-environment/prd.md +++ b/docs/features/local-tool-environment/prd.md @@ -130,7 +130,10 @@ Python、虚拟环境或 Conda 环境时,也不能被 GoodBuddy 静默替换 ### FR-6 状态与诊断 -- 分别显示“工具环境状态”和“能力依赖状态”。 +- 工具执行环境页只显示有真实诊断结果的解释器和配套工具状态,不显示固定的能力依赖占位 + 状态。 +- 具体 SKILL/MCP 只有在其实际入口及第三方依赖通过验证后,才在对应能力详情中显示能力 + 依赖状态。 - Node 诊断覆盖 Node、npm、npx、标准库和子进程。 - Python 诊断覆盖 Python 3、架构、标准库、SSL、pip 和 venv。 - 诊断使用临时目录并在结束后清理。 diff --git a/docs/features/local-tool-environment/progress.md b/docs/features/local-tool-environment/progress.md index a0f757a6..49e42703 100644 --- a/docs/features/local-tool-environment/progress.md +++ b/docs/features/local-tool-environment/progress.md @@ -34,6 +34,7 @@ Windows ARM64、macOS 和 Linux 工件仍需原生 CI 验证,第三方许可 对应工具卡内显示。 - [x] “能力与工具”统一入口及三个水平 Tab,MCP 原内层页签保持不变。 - [x] 工具下载源、Node.js、Python、候选、诊断、安装进度、取消和删除界面。 +- [x] 工具卡只展示真实工具诊断;未接入具体能力证据前不显示固定的能力依赖占位状态。 - [x] 使用 `PageTabs`、应用通知、就地操作错误、删除确认和具名进度条。 ### 托管 Node 与进程注入 diff --git a/docs/features/local-tool-environment/ui-design.md b/docs/features/local-tool-environment/ui-design.md index 804515bc..6a3c9156 100644 --- a/docs/features/local-tool-environment/ui-design.md +++ b/docs/features/local-tool-environment/ui-design.md @@ -239,6 +239,9 @@ SKILL/MCP 的能力详情展示能力依赖状态: - 缺少第三方包 - 入口不可用 +工具执行环境页不掌握具体 SKILL/MCP 的验证证据,因此不显示固定的“依赖未验证”占位 +区块。只有对应能力产生真实验证结果后,才在该能力详情中展示上述状态。 + 不得把工具卡的“已就绪”复用为某个 SKILL 或 MCP 的“完全可用”。 ## 9. 生效与刷新 diff --git a/src/renderer/src/ToolEnvironmentSettingsSection.test.tsx b/src/renderer/src/ToolEnvironmentSettingsSection.test.tsx index aa1d49c3..87af1065 100644 --- a/src/renderer/src/ToolEnvironmentSettingsSection.test.tsx +++ b/src/renderer/src/ToolEnvironmentSettingsSection.test.tsx @@ -139,7 +139,7 @@ describe('ToolEnvironmentSettingsSection', () => { ).toBeVisible() expect(screen.getAllByText('工具状态')).toHaveLength(2) expect(screen.getAllByText('工具链/配套工具状态')).toHaveLength(2) - expect(screen.getAllByText('能力依赖状态')).toHaveLength(2) + expect(screen.queryByText('能力依赖状态')).not.toBeInTheDocument() expect( screen.getByRole('button', { name: /C:\\Tools\\node\.exe/u diff --git a/src/renderer/src/ToolEnvironmentSettingsSection.tsx b/src/renderer/src/ToolEnvironmentSettingsSection.tsx index 7656c08f..0d96eeda 100644 --- a/src/renderer/src/ToolEnvironmentSettingsSection.tsx +++ b/src/renderer/src/ToolEnvironmentSettingsSection.tsx @@ -564,11 +564,6 @@ export function ToolEnvironmentSettingsSection({ )} -
-

{t('toolEnvironment.capabilityDependencyStatus')}

-

{t('toolEnvironment.capabilityDependenciesUnverified')}

-
- {kind === 'python' && selection.source === 'managed' && (

diff --git a/src/renderer/src/i18n/locales/en-US/settingsSections.ts b/src/renderer/src/i18n/locales/en-US/settingsSections.ts index 5d0d3104..5162be05 100644 --- a/src/renderer/src/i18n/locales/en-US/settingsSections.ts +++ b/src/renderer/src/i18n/locales/en-US/settingsSections.ts @@ -784,9 +784,6 @@ export const settingsSections = { 'No valid candidates were found. Scan user/system PATH, Conda, virtual environments, and common install locations, or choose another executable.', toolStatus: 'Tool status', companionStatus: 'Toolchain/companion status', - capabilityDependencyStatus: 'Capability dependency status', - capabilityDependenciesUnverified: - 'Capability dependencies are unverified because no capability evidence is available.', status: 'Status', available: 'Available', unavailable: 'Unavailable', diff --git a/src/renderer/src/i18n/locales/zh-CN/settingsSections.ts b/src/renderer/src/i18n/locales/zh-CN/settingsSections.ts index 3202c694..7dbfd643 100644 --- a/src/renderer/src/i18n/locales/zh-CN/settingsSections.ts +++ b/src/renderer/src/i18n/locales/zh-CN/settingsSections.ts @@ -734,9 +734,6 @@ export const settingsSections = { '未发现有效候选。可扫描用户/系统 PATH、Conda、虚拟环境和常见安装位置,或选择其他可执行文件。', toolStatus: '工具状态', companionStatus: '工具链/配套工具状态', - capabilityDependencyStatus: '能力依赖状态', - capabilityDependenciesUnverified: - '尚未获得具体能力的依赖验证证据。', status: '状态', available: '可用', unavailable: '不可用',